Hi Sebastian,
Many thanks for your input. Your contribution is particularly important as Code24 is, as you say, one of the early pioneers of managing openEHR data and related artefacts. You have raised an important and very real issue, but I agree with Sebastian Garde that the .V0 question itself, is actually not what is going to potentially cause you a problem. Firstly I would defend what has been done in CKM to date as being completely in line with the specs and with the revisioning rules (which actually have worked extremely well for published archetypes). It has always been clear that any archetypes not marked as 'published' must be considered unstable and cannot be guaranteed to follow the numbering rules. I understand why you might take a view that 'anything that appears in CKM is de-facto published' but that is not, and never will be the case. CKM is first and foremost a clinical review environment which will always contain a mix of draft, published, re-draft and re-publshed archetypes. Having said all that, none of us are happy that it has take so long to get to a stage where we could get sufficient resource to properly fund editorial resource to take many archetypes through to publication though thankfully, through the Industry Sprint that point has now arrived. I am also familiar with and have sympathy for the issue you have raised which I will try to elucidate here, as I agree with Sebastian that it is a separate issue from V0. Your current situation is that you have used .v1 archetypes in your production system, even though they are marked as 'draft' in the metadata and by definition will have unstable structures leading to a situation where ongoing draft development and eventual publication of the draft v1 archetype may well break existing query paths in your patient data and in related code and querying statements. Although you can differentiate the draft from published archetypes in the archetypes themselves, there is no way that you can tell whether the instantiation of problem_diagnosis.v1 in patient data refers to the published version or to the previous draft version (and this may well include a breaking change). The problem essentially is not that the archetypes themselves are mis-labelled but that the archetypeId carried in data is not sufficient to disambiguate a draft archetype from a published archetype. This is a situation that was discussed on the lists a couple of years ago around the import of the NHHTA lab archetype where it was recognised that calling it lab_test.v1, been though it had many structural changes was going to cause problems for a number of vendors who had used the original draft lab_test.v1 in their applications. We asked the vendor community for their response and the message we got was that "by using draft archetypes we recognised that this might happen" and that we should keep the archetype at v1. I should add that this is not purely an issue for V0/V1 archetypes. When a published v1 archetype goes back into draft we will face the same issue, and for v2 and v3 etc. If vendors are going to use draft archetype in systems and in tooling (and they will) we need to be able to clearly identify unstable archetypes inside patient data and query statements, and not just in the archetypes. Vendors who do this need to understand that such an archetype is unstable and will break the rules but at least it is unambiguously identified in the patient data and any queries. This obviously comes back to the main discussion about the use of -unstable in the Semver proposals and I will try to explain our thinking in response to others who have made alternative suggestions. It turns out to be very,very tricky, and I don't think it is an accident that we have come back to Semver as the basis for a solution. So the issue you raised is real and significant, and will be faced by any vendor who is using a v1 draft archetype in an operational system. Adopting the new naming/numbering system will solve the problem going forward but the question remains about how to ameliorate the problem now There are, I think, three approaches: 1. Implementors accept that the use of draft archetypes was that 'own risk' and that they will have to manage the transition from draft to published, which will entail making changes to program code or query statements which refer to draft archetypes. i.e. rename lab_test.v1 to lab_test.v1-unstable or lab_test.v0. This is clearly a major pain (as Sebastian has said) but vendors we have spoken to so far have indicate that they are prepared to do this. Note that it will not have to be done as a batch, only when the system need to use each published v1 archetype, rather than the draft version. 2. Implementers rely on the new metadata that will be introduced when we publish archetypes from now on. This will include the original namespace and an optional Unique ID which can be used internally in the place of the current archetypeId. So the draft archetypeId reference in the data would be left unchanged as: openEHR-EHR-OBSERVATION.lab_test.v1 and any data captured using the published archetype would be labelled in the data (and any associated queries) as org.openehr::openEHR-EHR-OBSERVATION.lab_test.v1.0.0 or 123453446rhtytyyu.1.0.0 if you prefer When this published v1 archetype needs to go back into review it gets labelled as org.openehr::openEHR-EHR-OBSERVATION.lab_test.v1.0.1-unstable+build.e34dgtj67856 or using the uid - 123rhturytu55634567.v.1.0.1-unstable+build.e34dgtj67856 It is up to vendors to decide just how much of that mouthful to record in data and queries but if you are going to use unstable archetypes in data that is the only unequivocal method of knowing exactly which specific version of the archetype you are dealing with. I doubt that carrying the build is really necessary but knowing that this is v1.0.1-unstable is important, and resolves the problem that we all face right now. 3. The final option is that in CKM publication we bend the rules and go straight from V1 drafts to V2. We have discussed this as an editorial team and are not keen on the idea because it is a bit confusing for our clinical reviewer audience. If I was implementor I would go for option 2. At some point very soon I am going to have to get to grips with the need to identify namespaced and unstable archetypes in data. I don't have to upgrade to the new published archetypes right away, or as a bulk process but when I do so it makes sense at that point to be able to handle the kind of extended archetype naming that is proposed. Sorry that this was a bit of a tome. This ends up being a pretty complicated subject and part of the reason it took so long to figure out! We really need feedback. Everyone feel free to pitch in and argue Ian On 1 October 2014 14:35, Sebastian Iancu <sebastian at code24.nl> wrote: > Dear all, > > I'm surprise to see such a low analysis of the impact of changing v1 to v0 > of the existing CKM archetypes. > Even though they are not 'published', or are in logical 'draft' mode, they > were conformant to openEHR standards for at least past 5 years or so. Some > of them are used already in production environments for more than 2-3 years > (at least in our case). > Changing them now on CKM will break logical binding with already existing > production data. This cost has to be eventually supported by industry > implementers, and I can assure you this is not trivial, and it is giving > the impression that openEHR standard is not reliable/stable enough. > > Basically the proposal is to rename existing CKM archetypes (published or > not) in contradiction with what the current openEHR specifications is > stating right now, which is not right. > > Other than this, I personally think that is nice to have v0 for 'drafts', > and v1 for stable-published; it might be a better indication about a state > of an archetype. > So my suggestion is to keep existing CKM archetypes the way they are and > only apply the new 'rule' for archetypes created from now one. Published > archetypes from the sprint can become v2 (or 3, 4 etc) depends on the need > (see specifications). > > Sebastian > Code24 > > > > > > > On 10/1/2014 2:57 PM, Thomas Beale wrote: > > On 01/10/2014 13:31, Sebastian Garde wrote: > > > > > > It seems to me a no-brainer that we should support v0, because it's the > clearest possible sign I can think of, that everyone already recognises, > that indicates an artefact to be in early chaotic/uncontrolled development. > So v0 should be the start version for any archetypes created new on > someone's own machine, or any similar location. > > Supporting it as part of the specs for uncontrolled/chaotic development is > one thing and I agree. > But what we are looking at here is that all CKM archetypes would have a v0 > extension until they are first published (as v.1.0.0). > Existing pre-publication CKM archetypes would be converted to have a v0 > extension (either as a batch or one-by-one when each one is updated the > next time) > > > that sounds right to me - is it a problem? > > > > > > > - I think that the openEHR.org CKM archetypes identified for the > industry sprint should stay at v1.x, and others that are of unknown quality > should go to v0, which finally establishes what is clinically trustworthy > and what is not. > > That's not really an option unless you want to make this migration even > more difficult. > What you are suggesting requires two different sets of rules and someone > needing to deciding which stays at v1 and which is converted to v0. > I don't think it makes sense - either we use v0 to indicate > pre-publication archetypes or we don't. > > > I would have thought that individual archetypes can have their version > modified? I don't think the world minds if there is a period of a few > months during the industry sprint when the rules are technical being > broken. Once it's done, there will be 70+ archetypes with v1.x, and the > rest with v0.x, and that will correctly represent the situation of the > archetypes in CKM. > > Then for every mirroring, copy, and reuse of what's in openEHR.org CKM, > there is no need to educate anyone on anything - it's obvious what the > situation is. So we are only talking about a limited period of time where > the rules are being broken (as they are right now in fact ;-) > > > > - I don't see the problem with v0 references in templates, since it's > the same problem between any major version. An archetype xxxx.v0.x can't be > assumed to be compatible with xxxx.v1.y - as for other major versions, we > treat them technically as different archetypes. So either the template > reference is v* (any major version you like) or it isn't, in which case it > points to a known major version - v0, v1, v2 or other. > - we should assume that future tools will make it easy to change > these template references - it won't be difficult to do. > > Sure, looking forward to tooling support on it, but realistically at the > moment it is a pain that is not needed for the first publication if you go > with v1 as a the initial major version. > > > well I think its a bigger danger, given the level of reuse of CKM > archetypes, that the version ids wouldn't correct reflect the state of the > archetypes. We could in theory revert everything that is not published to > v0 right now, and i guess that is breaking the rules for less time. But > there are still some dozens of fully reviewed and published archetypes that > have to retain their v1.x version anyway. So I think the only question is > to do with the industry sprint archetypes. How about doing this: > > - mark archetypes that have never been 'published' and are not in the > industry sprint as v0.5.0 > - mark the industry sprint archetypes as v1.0.0-unstable > - leave currently published archetypes on v1.x, i.e. where they are > today. > > If I receive a copy of archetypes marked like that in say the GitHub > mirror, or through a different CKM, I don't need any further education, > it's obvious what's going on. > > - thomas > > > > _______________________________________________ > openEHR-clinical mailing listopenEHR-clinical at > lists.openehr.orghttp://lists.openehr.org/mailman/listinfo/openehr-clinical_lists.openehr.org > > > > _______________________________________________ > openEHR-technical mailing list > openEHR-technical at lists.openehr.org > > http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org > -- Dr Ian McNicoll office / fax +44(0)141 560 4657 mobile +44 (0)775 209 7859 skype ianmcnicoll ian at freshehr.com Clinical modelling consultant freshEHR Director openEHR Foundation Honorary Senior Research Associate, CHIME, UCL BCS Primary Health Care www.phcsg.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20141003/e7c7e94d/attachment-0001.html>