On 28/04/2011 02:07, Heather Leslie wrote: > Hi everyone, > > I think you are missing some of the further complexity here. There is > a definite need for differentiation between draft and published > archetypes for which a version number alone is not enough. > Currently we are talking only about v1 archetypes and how to manage > them, and to a degree it makes sense. We certainly considered using > v0.x for drafts but it doesn't solve the downstream problems - once a > v1 archetype is published, the non-breaking revisions will become > v1.1, 1.2 etc. No problem > But when we make a breaking change it becomes v2 (or v3 or v4 or 125), > but it needs to be clear that it is v2 *draft* initially and not v2 > *published* until we have completed the neccessary collaborative reviews.
There are two ways to look at this: * A - 'draft' is only possible at the notional v0 or first version stage; after initial publication, it can't be used, since the archetype is now 'in the open' * B - it is possible to go back to 'draft' status when the major version number is incremented on the basis that a new major version is a new archetype, and authors need to be able to go back into 'initial development' mode I can see arguments for both. What we need to decide on as a community is what rule we want here, and to stick to it. If we can decide that, we can document it and post it in a new draft of the identification specification <http://www.openehr.org/svn/specification/TRUNK/publishing/architecture/am/knowledge_id_system.pdf>. Diego's problem of knowing what archetype one is actually using is real and needs to be solved. CKM does track revision numbers, but they are not part of the version id, and you have to go into the revision history view to see them. However the above-mentioned identification draft spec indicates a system of referencing to do this such that an archetype whose id is currently shown as openEHR-EHR-EVALUATION.diagnosis.v1 would be referenced from data and / or software (i.e. in any operational context) as openEHR-EHR-EVALUATION.diagnosis.v1.29.0, or in the future with a namespace as well, i.e. org.openehr.ehr::openEHR-EHR-EVALUATION.diagnosis.v1.29.0 Note that in this system of identification, if the final part of the revision number is a '0', i.e. the '0' above in '1.29.0', it means that the archetype is published; if it is anything else it is draft or some other pre-release state (this corresponds with view B above). Changes in the lifecycle state of the archetype are assumed to always cause an increment in final number of the extended version id. A fuller idea of referencing archetypes from from data is described in this spec, exemplified by the following: se.skl.epj::openEHR-EHR-EVALUATION.genetic_diagnosis.v1.12, -- some Swedish archetype org.openehr.ehr::openEHR-EHR-EVALUATION.diagnosis.v1.29, -- its parent, the CKM diagnosis archetype org.openehr.ehr::openEHR-EHR-EVALUATION.problem.v2.4 -- the ultimate parent, the CKM problem archetype here the whole specialisation lineage has been included. The reason for doing this are a) if the archetype lineage information is not shared between sender and receiver (maybe the receiver can't see the Swedish CKM) and b) to enable the receiver to know what archetypes could be used for querying the data, assuming it was not going to use the most specialised one (e.g. the data might have been sent from Sweden to Denmark, and the Danish system doesn't use the Swedish genetic diagnosis archetype, but does use the other two). Note that the version ids above only have 2 parts, because the final part is always '0' for published archetypes (but it could be included for better consistency). Assuming this kind of system was used, then supporting it requires some changes in CKM to a) make the full version + revision id visible. Note that the 'identifiers' above are just strings. Even in a future where Oids were used for identifying artefacts, you still need to generate the above strings, or the equivalent, from meta-data - essentially as composite keys (in the relational sense) so that comparisons can be made between artefacts. (Or they might also be obtainable from some Oid-keyed meta-data repository). In other words, embedding such strings in data isn't making a statement about how archetypes are identified, it is just one useful means of *referencing* archetypes. Finally, to be sure that the archetype you have in your environment is indeed what you think it is, digital signing, or at least hashing, is needed such that published archetypes are posted with their signatures alongside for verification by accessing systems. MD5-based hashing is already in use in some openEHR-based products, but it has not been properly described (an initial idea is in section 8 of the identification spec doc). It seems that there is enough use of archetypes now to finalise many of these issues, and describe them in a new issue of the identification specification. We then need to work out an implementation plan, mostly to do with changes to CKM to support the decisions. There are two ways to go about this: * interested parties review the identification spec, and provide feedback * we work out the details on the technical list + wiki via discussion and then update the spec. Key things that need decisions: * do we go with starting at v0 or v1 (I still like v0 because it implies 'you will most likely get burnt by using this archetype in a real system, but have fun and tell us your experience')? * can we agree on the archetype life-cycle states and the idea that a change in state always causes an increment in minor revision number? * how should archetypes be referenced from data? * what system of hashing and signing should be used? - thomas* * -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20110428/6eacdbf4/attachment.html>