Archetype & Template ANNOTATIONS - requirements?

All,

the next beta of the archetype workbench, which is progressively implementing all of ADL 1.5 will include ‘annotations’, which is a feature enabling a set of comments to be created on a per-node level in an archetype. The raw ADL appearance of this is typified by the following two test archetypes (go to the bottom): http://www.openehr.org/svn/knowledge2/TRUNK/archetypes/ADL_1.5_test/validity/annotations/

For a given node (i.e. path) and a given language in an archetype or template, the annotations are a set of name-value pairs (technically a Hash of Strings, with String keys). This means you might have the following on some node in an archetype (keys in italics, values to the right):

  • clinical justification: “see xyz examination protocol, at http://medline.org/some/ref.html

  • data type: “free text with optional preferred coding”
    On a template, we would expect the annotations to be more local, e.g.:

  • NHS data dictionary: “See doc xxxxx, ref yyyyy”

  • Terminology: “constrained according to NHS ED 4h protocol”

Of course we don’t know exactly how things will turn out, so we need to see some experimentation in the real world.

REQUIREMENTS QUESTIONS - please provide feedback:

  • BASIC REPRESENTATION: all annotations are (unicode) String values with (unicode) String keys,

  • this allows any string, including in script languages like Farsi, Hindi, Chinese etc

  • Q1: is such a structure powerful enough? It might be argued that the keys should be internal codes, i.e. at-codes, or external coded concepts, e.g. SNOMED codes.- PERSISTENCE: where do annotations get recorded?

  • if annotations are regarded as an intrinsic part of an archetype, they are recorded in the archetype: this is what we have currently implemented

  • if annotations are regarded as intrinsically part of the local use environment, then they would be persisted as some adjunct artefact that references an archetype, or else in specialised archetypes/templates, even if no other constraints are added to the archetype proper; we have currently assumed the latter.

  • Q2: if both are assumed, then some rules for a) translations and b) merging are required; SEE BELOW

  • LANGUAGE annotations groups (i.e. set of key, value) on a per-language basis, i.e. ‘en’ annotations separated from ‘es’ from ‘cz’ etc in the usual way

  • Q3: this means that for a given archetype, there is a choice with respect to translations:

  • force translation of all annotations to all languages available for this archetype: this is probably reasonable for international archetypes on CKM, since any such annotations must presumably be relevant no matter what language

  • for any given archetype, within a specific use context, allow just the annotations in the local language to exist? This appears to be reasonable, since just because a CKM archetype had a Swedish translation doesn’t mean your local users in Beijing should translate their annotations to Swedish…

  • If the answer to Q2 is that a mixture is allowed, then we should allow both of above possibilities for translation, and we assume that any local translations are within local archetypes / templates. I.e. you can’t add annotations outside of an archetype or template.- TAG VALUES: should keys be standardised in some way? Currently, we implemented just Strings. The answer depends on our notion of how interoperable annotations should be.

  • Q4: Requirements possibilities:

  • no standardisation (what has currently been assumed)

  • international standardisation only - i.e. only CKM archetypes would have standardised tags; this can be supported with the ‘no standardisation’ option as well, since centralised/standardised tooling could ensure standard tag sets.

  • standardisation at a national level, perhaps in concert (one day) with IHTSDO, and using the Snomed CT ‘national extension’ as a place to do it

  • standardisation within ‘families’ of archetypes. This does not seem so likely, since many tags should be standard across most archetypes developed by a particular programme.

  • Technical options:

  • Q5: make them internal coded terms instead, allowing tools to more easily control which sets of keys are used in a particular place.

  • Q6: but this still doesn’t force any standard set of key values across a group of archetypes, e.g. as created within a single government national repository. Doing that might be an argument to use SNOMED codes from the local extension. Assuming everyone agrees that they will use SNOMED!

  • MERGING: annotations on a given node are keyed by the path to that node in the archetype or template. Currently, annotations in a specialised node in a specialised archetype are treated as distinct, and the annotations are not merged.

  • Q7: it could be argued that in the ‘flat’ form of an archetype or template (including the operational template), the annotations from all specialised versions of the same node should be merged, rather than just keeping the annotations (if any) from the proximal archetype in use.

  • if merging is to be used, how to do it? If the same keys are encountered, do we simply append the string values for a given key? Or use some more sophisticated generation of key values a bit like at-codes, whose depth can always be known. E.g. a key “terminology” might be converted to the key “terminology.1” and “terminology.1.1”. This seems clunky, and might be an argument for making all keys at-coded terms, so that the keys are just normal at-codes like at0001, at0001.1 etc, and obey all the usual rules of these codes, which are already established

  • slight variation: make a new annotations-specific series of code types, “an0001”, “an0001.1”, “an0.1” etc. This would make it easy to keep annotations keys separate from at-codes, enabling the annotations part of an archetype to be thrown away in runtime versions. BUT SEE SNOMED option above.

  • OPERATIONAL USE: it is currently assumed that annotations are design-time only, and can be safely removed in operational expressions of archetypes, i.e. within operational templates (OPTs). However, it could be argued that OPTs should (sometimes?) keep annotations for use within some design time tools.

  • Q8: therefore, should anotations be present in OPTs but removable in downstream generated artefacts?

My own feeling is that we should get a balance between complexity/sophistication and pragmatism as follows, noting that we have little evidence in the field for this so far:

  • BASIC REPRESENTATION: the more I think about it, the more I am inclined to implement tags as ‘an-codes’ rather than just Strings. See following points for why.

  • PERSISTENCE: annotations can only exist in an archetype or template, i.e. no new kind of artefact is required. This means that if all you want to do is add annotations at a local level to a national or international archetype, you have to create a specialised archetype or template. This seems reasonable enough, since if you want to create local annotations, the likelihood is that you want to add some local constraints as well, typically at least on coded fields.

  • LANGUAGES: annotations have to be translated to all languages defined in the archetype in which the annotations were authored. This means that international and national archetypes, likely to have more languages, would indeed have annotations translated across all languages present, with the annotations in each language being of the same path & key structure.

  • TAG STANDARDISATION: YES to coding of the tags using internal codes, e.g. with an ‘an-code’ series (rather than no coding or SNOMED CT coding). WHY?

  • This enable tools to exert some control over translation, same as for at-codes, ac-codes

  • Internal codes can have bindings to external codes, e.g. SNOMED CT codes in the future. Assuming global access to and implementation of SNOMED CT & national extensions is probably too much at this stage. If it does all go SNOMED CT for everyone in the next few years, the binding ability will enable archetypes to easily simulate direct SNOMED CT coding.

  • term definitions for Internal codes for the tags can be changed, without structurally changing the archetype annotations

  • existing specialisation rules can be used to reason about merging, since we already have rules for this on at-codes attached to nodes.- OPERATIONAL TEMPLATE: we should assume that annotations are retained in the operational template (perhaps as a tooling option), since the OPT form is used in design time tools to create final stage artefacts, e.g. software APIs, GUI forms etc, and also documentary rendering of the templates for review.

The current implementation will be release in the next 2 weeks or so. All feedback is welcome, and will be used to improve the facility. Anyone who wants to write test archetypes also welcome. I am particularly interested in the thoughts of clinical people.

  • thomas beale

Thanks Tom

My experience is that annotations are organisation specific rather than national. They are often used to link to other data that is in use in a particular setting.

There seems to be two sensible approaches:

  1. A separate section of the archetype for annotations which have a language and organisation sections. The tag for an organisation can be their reverse statement.

  2. An annotation syntax that can be used as required anywhere in the archetype with optional organisation and language sub tags.

The former would allow CKM to present annotations required by a specific organisation on download, or in a specific language. This would help management a great deal.

Cheers, Sam

Hi Tom, a very comprehensive set of questions to determine the requirements…

I will provide my point by point feedback shortly but I have one objection/suggestion re using annotations for GUI matters.

As name implies annotations seem to me something for the humans; providing context and additional information about a particular data point. Exploiting this section for GUI generation which will be consumed by GUI tools/generators do not seem all too appropriate to me. What I have in mind is a separate section for GUI Directives or at least introduce a reserved keyword for this purpose within annotations section. I think that’ll ensure more consistent and safe implementations by different groups. Both support your points about tag standardisation…

Cheers & happy new year,

-koray

Hi Tom, a very comprehensive set of questions to determine the requirements…

I will provide my point by point feedback shortly but I have one objection/suggestion re using annotations for GUI matters.

As name implies annotations seem to me something for the humans; providing context and additional information about a particular data point. Exploiting this section for GUI generation which will be consumed by GUI tools/generators do not seem all too appropriate to me. What I have in mind is a separate section for GUI Directives or at least introduce a reserved keyword for this purpose within annotations section. I think that’ll ensure more consistent and safe implementations by different groups. Both support your points about tag standardisation…

Hi Tom, I wasn’t aware of that – thanks.

My initial thinking was to introduce GUI directives at the template level, persisting with it and passing onto OPT. I was reluctant to introduce “yet-another-layer” due to mainly maintainability concerns but it has been suggested that tooling should be able to handle that and hide complexity from users. That makes sense now (still with caution though ;).

Until this is defined may I suggest reserving a keyword (i.e. “GUI directive”) for use in annotations section. Or perhaps this can just be a design-pattern as you originally suggested which we all stick to so that our existing implementations will have some level of interoperability?

I’d be very keen to contribute to the definition of a new GUI artefact; perhaps it’d be great if you could provide a basis for (i.e. such as an initial set of requirements and design principles inline with the current specs and where openEHR wants to go) and facilitate the discussions. Referring back to Eric’s and Thilo’s messages perhaps we can work as a working group or a SIG and come up with useful proposals.

Another point was whether there were any directives to do with the structure and semantics (hence domain knowledge) within the list we came up with. The “CoreConcept” directive which basically depicts whether a CLUSTER and its downstream items can be recorded as absent, indeterminate etc. Ian also pointed out a more comprehensive set of requirements around the same issue referring the need to the need to represent detailed clinical findings without the need to insert unnecessary CLUSTERS for single ELEMENTS which may hold further ELEMENTS in future when there is a need to extend. I am not aware of the result of this discussion (if any) either.

Cheers,

-koray

Thomas and Koray,

The Operational Template XML schema used by the Ocean Template Designer has a view constraints element, which is a sibling of the description and definition elements. It is used to represent the Template Designer’s hide on form property (labelled more generically as pass_through in the OPT view constraints). This was designed to support GUI (and other view) directives.

The type of the view element is defined as follows.

<xs:complexType name=“T_VIEW”>

xs:sequence

<xs:element name=“constraints” minOccurs=“0” maxOccurs=“unbounded”>

xs:complexType

xs:sequence

<xs:element name=“items” maxOccurs=“unbounded” >

xs:complexType

xs:sequence

<xs:element name=“value” type=“xs:anySimpleType”/>

</xs:sequence>

<xs:attribute name=“id” type=“xs:string” use=“required”/>

</xs:complexType>

</xs:element>

</xs:sequence>

<xs:attribute name=“path” type=“xs:string” use=“required”/>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

An example of its use is below.

true

true

Regards

Heath Frankel

Product Development Manager

Ocean Informatics

Hi Tom, I wasn’t aware of that – thanks.

My initial thinking was to introduce GUI directives at the template level, persisting with it and passing onto OPT. I was reluctant to introduce “yet-another-layer” due to mainly maintainability concerns but it has been suggested that tooling should be able to handle that and hide complexity from users. That makes sense now (still with caution though ;).

Until this is defined may I suggest reserving a keyword (i.e. “GUI directive”) for use in annotations section. Or perhaps this can just be a design-pattern as you originally suggested which we all stick to so that our existing implementations will have some level of interoperability?

Hi!

Regarding annotations for GUI hints…

I still think this requirement is best solved by a design pattern that is
defined and that tools can trust - one that fits with the current reference
model.

What about a design pattern borrowed from RDF, where

  1. the annotated archetype node has the same role as a RDF subject, and
  2. URIs are used as predicate (relationship type - the left hand part of the ADL annotation) and
  3. URIs or RDF data types (including strings, numbers, booleans etc) are used as objects (targets/values - the right hand part of the ADL annotation).

Such annotations would be intended for (human language-independent) machine processing, perhaps that is not really the current intention behind the human language-dependent annotation sections in archetypes.

Using RDF-like notations would make it fairly easy to start with just plain string matching in tools and then extend tooling support by using available RDF or OWL toolkits to check e.g. allowed range for certain predicates against e.g. a small GUI ontology.

Technically the approach would of course not be limited to GUI usage, but could be used for many kinds of machine processable annotations (see example further down).

Would it be possible to extend the “language” annotation group subdivisions to not only allow language codes, but also include a set of additional codes for machine processable formalisms where e.g. “RDF” could be one?

Some may argue that the Term_binding and Constraint_binding are more appropriate places for connecting to ontologies - the difference from the annotation approach is that the current *_binding design only allows specification of a value not an annotation/predicate type. Using a design pattern for annotations won’t introduce changes to the underlying model.

In the thread “GUI-directives/hints again” we had a hypothetical example…

annotations = <
[“/data/items[at0003.7]/items[at0010]”] = <
items = <
[“GUI-show-if”] = <“$smoker”> – Other annotation name examples: GUI-hide-if …
[“some other annotation”] = <“whatever”>

…with RDF-like annotations, some additional examples (and a wildly guessed language subsection syntax) it might turn out something like…

annotations = <
language = <
[“RDF”] = <
[“/data/items[at0003.7]/items[at0010]”] = <
items = <
[“http://schema.openehr.org/GUI-v0_1#show-if”] = <“$smoker”>
[“/data/items[at0004.8]/items[at0011]”] = <
items = <
[“http://schema.openehr.org/GUI-v0_1#view”] = <“http://schema.openehr.org/GUI-v0_1#pass_through”>
[“http://s.skl.se/qualreg/diab/v-3_1#q10.2”] = <“http://s.skl.se/qualreg/diab/v-3_1#daily”>

[“en-UK”] = <
[“/data/items[at0003.7]/items[at0010]”] = <
[“some other annotation”] = <“whatever”>

Perhaps the distributed nature of URIs (e.g. s.skl.se above) also covers the “organisation sections” requirement mentioned by Sam?

Best regards,
Erik Sundvall
erik.sundvall@liu.se http://www.imt.liu.se/~erisu/ Tel: +46-13-286733

Erik,

that’s two innovative ideas in one post - you must have had a great christmas :wink:

  1. in the ‘languages’ space, allow formalisms as well - e.g. “rdf”
  2. the annotation structure, simple as it is, is in fact sufficient (or close) to support representation of RDF-like triples.

I can’t really comment on these ideas other than to say they look quite interesting - I had not thought of either before. The main decision for the ADL 1.5 spec and implementation is: whether to stick with annotations as a hash of Strings, with String keys, or to make the keys some kind of codes, defined elsewhere in the archetype. At the moment I am inclined to leave it as all Strings, let people experiment with it, and decide to enhance it once people have messed around with it.

Maybe Koray and other implementers might want to work on some of their own ideas, plus Erik’s, within some archetypes. The next ADL workbench beta (any day now) will support String-only annotations, arranged per language as shown in an earlier post. We don’t have an XML version of this yet, and would rather hold off on the XML version until we are more slid with the ADL version. But - advice, disagreement from others is welcome (or even better if others want to mess around with the XML on their own and feed it back in here).

I propose to get the next beta out as it is (~ 1 week), with some example archetypes containing annotations, and see where we go from there.

  • thomas
(attachments)

OceanInformaticsl.JPG

Hi Tom and Erik,

that’s two innovative ideas in one post - you must have had a great christmas :wink:

  1. in the ‘languages’ space, allow formalisms as well - e.g. “rdf”
  2. the annotation structure, simple as it is, is in fact sufficient (or close) to support representation of RDF-like triples.

[HKF: ] I think we are overloading the use of the annotations for two different purposes and should look at the distinction made in XML Schema where they have documentation and appinfo, where the former is used by humans and the later by applications for things such as GUI directives.

I can’t really comment on these ideas other than to say they look quite interesting - I had not thought of either before. The main decision for the ADL 1.5 spec and implementation is: whether to stick with annotations as a hash of Strings, with String keys, or to make the keys some kind of codes, defined elsewhere in the archetype. At the moment I am inclined to leave it as all Strings, let people experiment with it, and decide to enhance it once people have messed around with it.

[HKF: ] I agree with this (as per my other email)

Maybe Koray and other implementers might want to work on some of their own ideas, plus Erik’s, within some archetypes. The next ADL workbench beta (any day now) will support String-only annotations, arranged per language as shown in an earlier post. We don’t have an XML version of this yet, and would rather hold off on the XML version until we are more slid with the ADL version. But - advice, disagreement from others is welcome (or even better if others want to mess around with the XML on their own and feed it back in here).

[HKF: ] The Operational Template XML schema used by the Ocean Template Designer defines an annotations element, which is a sibling of the description and definitions elements. The type of the annotations element is defined as follows where the StringDictionaryItem is defined in the existing openEHR Resource.xsd.

<xs:complexType name=“ANNOTATION”>

xs:sequence

<xs:element name=“items” type=“StringDictionaryItem” maxOccurs=“unbounded”/>

</xs:sequence>

<xs:attribute name=“path” type=“xs:string” use=“required”/>

</xs:complexType>

Regards

Heath Frankel

Product Development Manager

Ocean Informatics

Hi!

Hi Tom and Erik,

that’s two innovative ideas in one post - you must have had a great christmas :wink:

  1. in the ‘languages’ space, allow formalisms as well - e.g. “rdf”
  2. the annotation structure, simple as it is, is in fact sufficient (or close) to support representation of RDF-like triples.

[HKF: ] I think we are overloading the use of the annotations for two different purposes and should look at the distinction made in XML Schema where they have documentation and appinfo, where the former is used by humans and the later by applications for things such as GUI directives.

Overloading or not, the technical structure would be very similar. I don’t think the border between data for human and machine use always will be completely clear. You might want to annotate information intended mostly for human consumption (i.e. documentation) by using a small ontology constraining allowed values under certain field names. Tools can in such cases easily show localized human language labels from ontologies instead of the URIs (owl ontologies have multilingual support).

However if there are strong reasons to split “documentation” and “appinfo” at root level rather than with the “language” in the annotation section, then of course that would be OK. The main thing is that we need a good place to experiment with some formalized machine readable annotations (or appinfo if you prefer to call it that).

Using RDF-ideas to make connections out from archetypes and templates to RDF/RDFS/OWL entities might open many possibilities.

While we are at it, what bout the other way around? Is there an official algorithm to convert an archetype/template-node to a URI (perhaps a URN) that can be used to reference archetypes and archetype nodes in semantic web formalisms? If not, then perhaps we should create one (in a separate discussion thread perhaps). I think we have a lot of owl wizards reading this, don’t be afraid to dive in to the discussion.

Best regards,
Erik Sundvall
erik.sundvall@liu.se http://www.imt.liu.se/~erisu/ Tel: +46-13-286733

Dear All

Thomas has raised the issue of an openEHR Clinical Document off line. The key point is that there are some issues for openEHR and HL7 that require aligning a) the CDA documents that flow around the system with b) EHR systems and openEHR. Most existing systems will bring CDAs in as documents and treat them pretty much like letters (text and PDF) – with smarter systems getting any structured information and offering to incorporate this data into the system.

CDA is a step forward conceptually and is used more and more as the basis for communication. There are still a number of issues that need to be addressed and also opportunities for openEHR to provide solutions.

  1. Will the data be structured consistently enough for safe processing by receiving systems? This remains uncertain except in highly controlled environments. The problem is that there are limited tools to assess the correctness of data which is largely specified in implementation guides. openEHR archetypes and templates can provide schemas through a formal process that will allow validation of data and also specific transforms to and from CDA (on a per archetype basis). This may improve utility, data quality and consistency of representation across different CDA documents.

  2. CDA documents contain document management information. This is not sufficiently complex to allow exchange of information - it requires serial output from a single source. Such a scheme is appropriate for lab results and other one-way feeds but not for sharing a health summary or other key persistent data. The openEHR specifications are much more attuned to requirements for health summaries including medication lists, past history, obstetric management, operation planning, care plans etc. We need to work with others to make sure the difference between a collection of documents and an EHR is well understood.

  3. CDA documents have participations that are fully populated. This includes identifying information about the client which would not usually be included in data in an EHR. This has implications for anonymisation. The EHR is the environment where identifying information needs to be managed and it seems unlikely that documents that are shared will contain overtly identifying data for many transactions in the future. Shared EHR repositories seem like a better and safer approach but again, we need to look at the requirements and understand the advantages of different approaches. The limited ability to populate other participations (at the composition and entry level) with structured data is an issue in openEHR where demographic data will not be shared between systems and probably should be put forward as a change request to allow data about doctors and other people to be shared without a transfer of demographic data. The CCR has an intermediate approach which may be better than the CDA approach as it allows multiple use of the same personID at different points in the same document/composition.

  4. Unstructured HTML or PDF or text is a feature of many health record documents. OpenEHR has a datatype that allows for storage of this sort of data. At present it is not related to the DV_TEXT and so it is not possible to have formatted text as a text field. There is also a PARAGRAPH type that is a mixture of formatted and DV_TEXT. Natural language processing is attempting to turn clinical records into post-coordinated SNOMED codes. This is interesting work and some form of this approach is likely to be helpful in the future. I do not think openEHR or CDA are well suited to meet these requirements where natural language (and formatted) text is mixed in with structured data that can be processed. CDA runs the two in parallel while openEHR forces explicit structure where required. The openEHR approach is undoubtedly safer but it is worth considering the best approach to meet these needs.

  5. Archetypes assume the openEHR reference model. In the current tools this is somewhat problematic as designers have to know a little about the reference model – but it is also the most important feature as consistency is critical for safe computing. Mistakes were made early on in not assuming the reference model features and being explicit about some features when there was actually no constraint. We have learned about this and the next round of tooling will need make it easier for designers and not create constraints where none are required.

The main opportunity for which everyone will be grateful is if we can use openEHR archetypes to create consistent CDA and provide the transforms required to move seamlessly from CDA to openEHR and back. This provides a single source of truth and is what many people are seeking. What we need to take this further is:

  1. A standard transformation of a template of an openEHR Composition to HL7 CDA – converting EHR attributes to CDA attributes – that does not require explicit modelling of data that is already captured in the openEHR RM. The transformation may require renaming of openEHR RM attributes that are specific for that the template as CDA documents may have different labels that are the same thing in an EHR system (e.g. a prescription may have a ‘prescriber’ whereas a document may have an ‘author’ where both are the legal creator of the document).

  2. An archetype to CDA transform (and back) that labels the CDA data in a way that it is clear which archetype this CDA data conforms to. This is needed for each archetype and should be available on CKM.

The openEHR RM should also consider adding a CLUSTER to participation to allow structured data or include participation data in the composition. Other_participations may be the location for this with IDs that are referenced within the composition – but this is not the planned use and will need some consideration. Some may argue that this should be from the demographic model but I do not think so.

Thoughts?

Cheers, Sam Heard

Dear Sam,

Some of your comments with respect to handling the discrete data are tackled in the HL7 Care Record message. This has with respect to the CDA level 3 content the same structure. My hypothesis is that a lot of the problems you mention can be tackled by focusing on the Care Record part of HL7 as addition to CDA.

Vriendelijke groet,

William Goossen
directeur Results 4 Care

Dear All

Thomas has raised the issue of an openEHR Clinical Document off line. The key point is that there are some issues for openEHR and HL7 that require aligning a) the CDA documents that flow around the system with b) EHR systems and openEHR. Most existing systems will bring CDAs in as documents and treat them pretty much like letters (text and PDF) – with smarter systems getting any structured information and offering to incorporate this data into the system.

CDA is a step forward conceptually and is used more and more as the basis for communication. There are still a number of issues that need to be addressed and also opportunities for openEHR to provide solutions.

  1. Will the data be structured consistently enough for safe processing by receiving systems? This remains uncertain except in highly controlled environments. The problem is that there are limited tools to assess the correctness of data which is largely specified in implementation guides. openEHR archetypes and templates can provide schemas through a formal process that will allow validation of data and also specific transforms to and from CDA (on a per archetype basis). This may improve utility, data quality and consistency of representation across different CDA documents.

  2. CDA documents contain document management information. This is not sufficiently complex to allow exchange of information - it requires serial output from a single source. Such a scheme is appropriate for lab results and other one-way feeds but not for sharing a health summary or other key persistent data. The openEHR specifications are much more attuned to requirements for health summaries including medication lists, past history, obstetric management, operation planning, care plans etc. We need to work with others to make sure the difference between a collection of documents and an EHR is well understood.

  3. CDA documents have participations that are fully populated. This includes identifying information about the client which would not usually be included in data in an EHR. This has implications for anonymisation. The EHR is the environment where identifying information needs to be managed and it seems unlikely that documents that are shared will contain overtly identifying data for many transactions in the future. Shared EHR repositories seem like a better and safer approach but again, we need to look at the requirements and understand the advantages of different approaches. The limited ability to populate other participations (at the composition and entry level) with structured data is an issue in openEHR where demographic data will not be shared between systems and probably should be put forward as a change request to allow data about doctors and other people to be shared without a transfer of demographic data. The CCR has an intermediate approach which may be better than the CDA approach as it allows multiple use of the same personID at different points in the same document/composition.

  4. Unstructured HTML or PDF or text is a feature of many health record documents. OpenEHR has a datatype that allows for storage of this sort of data. At present it is not related to the DV_TEXT and so it is not possible to have formatted text as a text field. There is also a PARAGRAPH type that is a mixture of formatted and DV_TEXT. Natural language processing is attempting to turn clinical records into post-coordinated SNOMED codes. This is interesting work and some form of this approach is likely to be helpful in the future. I do not think openEHR or CDA are well suited to meet these requirements where natural language (and formatted) text is mixed in with structured data that can be processed. CDA runs the two in parallel while openEHR forces explicit structure where required. The openEHR approach is undoubtedly safer but it is worth considering the best approach to meet these needs.

  5. Archetypes assume the openEHR reference model. In the current tools this is somewhat problematic as designers have to know a little about the reference model – but it is also the most important feature as consistency is critical for safe computing. Mistakes were made early on in not assuming the reference model features and being explicit about some features when there was actually no constraint. We have learned about this and the next round of tooling will need make it easier for designers and not create constraints where none are required.

The main opportunity for which everyone will be grateful is if we can use openEHR archetypes to create consistent CDA and provide the transforms required to move seamlessly from CDA to openEHR and back. This provides a single source of truth and is what many people are seeking. What we need to take this further is:

  1. A standard transformation of a template of an openEHR Composition to HL7 CDA – converting EHR attributes to CDA attributes – that does not require explicit modelling of data that is already captured in the openEHR RM. The transformation may require renaming of openEHR RM attributes that are specific for that the template as CDA documents may have different labels that are the same thing in an EHR system (e.g. a prescription may have a ‘prescriber’ whereas a document may have an ‘author’ where both are the legal creator of the document).

  2. An archetype to CDA transform (and back) that labels the CDA data in a way that it is clear which archetype this CDA data conforms to. This is needed for each archetype and should be available on CKM.

The openEHR RM should also consider adding a CLUSTER to participation to allow structured data or include participation data in the composition. Other_participations may be the location for this with IDs that are referenced within the composition – but this is not the planned use and will need some consideration. Some may argue that this should be from the demographic model but I do not think so.

Thoughts?

Cheers, Sam Heard

(attachments)

OceanInformaticsl.JPG

Hi Tom,

I tend to agree with same that annotations are most likely to be localised and the need for language translations will be minimal, hence the need to support annotations with a code is overkill and too complex for the 90% of use cases.

The only use case I have seen that would utilise annotations with multiple languages is where a multi-lingual application wants to draw its context sensitive help from an archetype/template annotation based on a user’s language setting. Although this use case may seem compelling, I still think this can be supported simply with an optional language attribute on each annotation.

I would suggest that the current pattern of ontology language translations being grouped by language, then by concept/node is difficult to consume by a human reader (yes I know, I should use a tool, but I am a geek and I read computer code, XML and ADL as my native tongue). Having an annotation for a node and each of its translations in the one place would be much easier to read the translations. However, I do understand it would be easier for CKM or other tools to manage a set of annotations by language, but this is where the tools can do the work rather than the human J.

Heath

The original structure published indeed had no language level in the structure. However, I think this will come as a surprise to tools, since the general rule is that all linguistic elements are within a language in dADL. And even though annotations may only be used locally, archetypes will inevitably be shared (relatively) locally, which in many places can still mean across language boundaries, e.g. in Scandinavia, where there are 3 distinct languages, 2 of them close variants, or within specialist networks spanning continents. If annotations were used in CKM during review phases, some reviewers might put annotations in their own language. In such situations, I think it is important to know which language the annotation is actually in.

I agree it is slightly more annoying for the human reader, but if you are Norwegian, you want to know if you are reading Norwegian with strange mis-spellings or just normal Danish. Similarly, a British reviewer of an archetype would probably like to know if the annotations in her archetype are badly spelled, or just a victim of the ‘one language divided by two cultures’ (the latter assumes that the language tags like en-gb and en-us would be used).

  • thomas

Thanks Tom

My experience is that annotations are organisation specific rather than national. They are often used to link to other data that is in use in a particular setting.

There seems to be two sensible approaches:

  1. A separate section of the archetype for annotations which have a language and organisation sections. The tag for an organisation can be their reverse statement.

  2. An annotation syntax that can be used as required anywhere in the archetype with optional organisation and language sub tags.

The former would allow CKM to present annotations required by a specific organisation on download, or in a specific language. This would help management a great deal.