Modeling:

 

If we want to switch to ADL 2, we need some kind of transition period. Some CDRs will not support ADL 2 yet, some might. We could take one of two possible modeling approaches:

 

There are several tools available that can convert from ADL 1.4/OPT 1.4 to ADL 2 already. At some point it is likely we want to switch modelling to ADL 2 natively. For that, we would need at least, during the transition period:

Adl 2 -> 1.4 converter
Opt 2 -> opt 1.4 converter

Modeling tool upgrades

CKM Upgrade: it can now only store ADL 1.4, but it has a feature to export ADL 2 at the moment

Graceful degradation for unsupported features possible? Potentially tricky things:

Specialisations can be converted without problems. ADL 2 handles the validation, and valid specialisation can be converted.

The impact is mainly for tooling development. The specification may need to address how graceful degradation in conversion from ADL 2 to ADL 1.4 works.

Thing to check: do we actually need to ADL 2 to ADL 1.4 converter, or just the OPT converter?

 

Upgrading the archetypes in the CKM

 At some point we will need to upgrade the source of archetypes. Possible strategies:

 

Other open questions:

CDR

Blockers:

Possible solutions for ID/AT-codes problem

  

Convert the ADL 2 to OPT 2 with at000x syntax

 

Change ADL 2 to use id/ac/at-codes, but use id0 as first code instead of id1

Change ADL 2 to use at000x style codes

Create a new ADL version that is ADL 2, but with at000x style codes

This keeps the full code syntax of ADL 1.4. The specialisation syntax that is currently underspecified in ADL 1.4 will need to be specified much better.

Benefits:

Drawbacks:

Migrate to new numbers for new archetypes, keep using the at000x-style numbers for old archetypes

benefits:

drawbacks

Define a way so that both old and new queries work at both data formats

impact: to be checked

Interoperability:

Result still two dataformats: with id codes or with at codes, with template specialisation or not.

AQL, inheritance and specialized codes (templates!):

An AQL query requesting at0053 now does not in all CDRs query for at0053.1 or at0053.0.1

This does solve real problems in disambiguating nodes in templates. But the AQL implementation in CDRs does not work this way.

 

Steps to take:

 

 

Inheritance/namespaces:

 

Other solution:

Ians archetype id syntax convention (todo: ask Ian about his syntax so we can add it here

ADL2 - Analysis by Ian McN and Sebastian Garde

The headings are taken from a list produced by Thomas as the key developments in ADL2. Most of the ‘challenges’ are already captured above but this analysis also includes the benefits - these are primarily to modellers but e.g. coded name/value overrides in templates are also useful to CDR builders

1. Making specialisation work - by differential specialisation + inheritance flattening

Benefits

Challenges:

2.Templates as archetypes and overlays, solving all the existing redefinition, template id, versioning and language problems

Benefits

Challenges:

3. Tuples to replace irregular special constructs for C_DV_QUANTITY, C_DV_ORDINAL and C_CODE_PHRASE

TOOLING: minor benefit. Streamlining ? add to 1.5

4. ADL enhancements

5. Regular internal code system / Greatly improved modelling of terminology constraint

Benefits

Challenges

6. Name-spaced archetype ids: allowing archetypes from different institutions with the same concept name to be distinguished (e.g. NHS bp_measurement and Norway bp_measurement)

Benefits

Challenges

Examples of a possible solution

When Thomas, Sebastian, Heather and I looked at this originally it did not seem possible to cleanly embed namespaces in a single string.

However we had another go at this recently…

Single domain, not specialised

org.openehr::OPENEHR-EHR-OBSERVATION.blood_pressure.v2

Single domain specialisation (specialisation namespace defaults to parent)

org.openehr::OPENEHR-EHR-OBSERVATION.blood_pressure.v2-variant.v1

Mixed domain specialisation

This is the apperta.org uk Variant.v1 specialisation of the openehr.org blood pressure archetype

uk.org.apperta::OPENEHR-EHR-OBSERVATION.org.openehr::blood_pressure.v2-ukvariant.v1

an alternative might be

uk.org.apperta::org.openehr::OPENEHR-EHR-OBSERVATION.blood_pressure.v2-ukvariant.v1

i.e chain the namespaces at the start and each segment corresponds to each specialisation level in reverse

So if Catalunya then specialises the same archetype, we get

es.catalunya::uk.org.apperta::org.openehr::OPENEHR-EHR-OBSERVATION.blood_pressure.v2-ukvariant.v1-my_catalan_variant.v1

If CDR vendors are happy to handle the specialisation lineages in a different way , that's fine - we are not particularly arguing for the use of this syntactical approach.