ADL 1.4 Migration Roadmap
These pages describe a set of post ADL 1.4 minor versions that leverage backwardly compatible elements of ADL 2, and can be used to migrate safely from ADL 1.4, which is the current ISO standard.
Post 1.4 Release profiles
The first step in working out these interim releases is to assign ADL / AOM 2 features to post 1.4 releases, i.e. 1.5, 1.6 etc.
The following table is design to help with this. Currently only minor versions are indicated, but as the details of impact become clearer, we can add patch versions e.g. 1.5.1, 1.5.2 etc as well.
Clearly, initial attempts to determine the best ADL/AOM version to add a feature may be wrong; please indicate problems in the 'ISSUES' column.
ADL 2 feature | Target version | Technical addition | OPT Req't | Impact on existing... | ISSUES |
---|---|---|---|---|---|
1.5 - 'Quick wins' release - changes that only affect the parser, minor additions to the AOM, but that can afterwards be ignored by systems | |||||
Namespaced ids | 1.5 | Implement ARCHETYPE_HRID class from AOM 2 Need to allow non-namespaced ids as well; these represent ids of uncontrolled archetype. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Full version numbers in ids | 1.5 | Implement ARCHETYPE_HRID class from AOM 2; continue to allow existing .vN style version ids. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Change ARCHETYPE. parent_archetype_id to a String | 1.5 | This is needed to allow references to specialisation parents with just major vesion, or major.minor, or full 3 -part version | Modelling Tools:
Archetypes:
| ||
Uids: ARCHETYPE.provenance_id, instance_id | 1.5 | Add properties from AOM 2 ARCHETYPE class. Add new Uid properties to ARCHETYPE objects. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
| ||
Change Any allowed to bare type in ADL | 1.5? | Currently ADL 1.4 requires the form: TYPE matches {*} and attribute matches {*} to indicate 'any allowed'; in ADL 2 the 'matches {*}' can be removed. Tools should continue to accept the old form, but write out the new form. | Modelling Tools:
Archetypes:
| ||
Extra meta-data: RESOURCE_DESCRIPTION. original_namespace, TRANSLATION_DETAILS. | 1.5? | From AOM 2 RESOURCE_DESCRIPTION class. Convert ADL 1.4 version of this meta-data to proper attributes. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Annotations | 1.5 | Implement ANNOTATION classes from Common IM | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
use_archetype external reference and slot-filler construct | 1.5 | Add C_ARCHETYPE_ROOT from AOM 2 class under C_COMPLEX_OBJECT | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
generated marker | 1.5 | Add 'generated' keyword to ADL; add is_generated Boolean property to ARCHETYPE class | Modelling Tools:
Archetypes:
| ||
existence optional | 1.5 | The existence constraint on attributes should be optional and only used when its value differs from that of the RM or parent archetype corresponding node. When implemented, parsers and tools should ignore and/or throw away non-significant uses of 'existence', which will be 90%. Rewrite archetypes. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
cardinality optional | 1.5 | As for existence, the cardinality constraint on attributes should be optional and only used when its value differs from that of the RM or parent archetype corresponding node. When implemented, parsers and tools should ignore and/or throw away non-significant uses of 'cardinality', which will be 90%. Rewrite archetypes. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Rename invariants section to rules | 1.5 | Change to parsers: accept both 'invariants' and 'rules'. When writing archetypes output 'rules' | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Remove concept from ADL and ARCHETYPE.concept from AOM | 1.5 | Change parser to ignore | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Allow RM type redefine in archetype | 1.5? | Allow specialised archetype to redefine RM type of node. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Implement relevant AOM 2 validity rules | 1.5 | Implement relevant AOM 2 validity rules in tools. | Modelling Tools:
| ||
1.6 - Tuples; remove openEHR special types - provide a 1.4 export mode | |||||
Tuple construct | 1.6 | Implement AOM 2 tuples | Modelling Tools:
Archetypes:
| ||
Remove C_DV_QUANTITY, C_DV_ORDINAL, C_CODE_PHRASE | 1.6 | Implement using AOM 2 tuples | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Add TERMINOLOGY_CODE type | 1.6? | Implement AOM 2 TERMINOLOGY_CODE; replaces C_CODE_PHRASE | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
ARCHETYPE_SLOT.is_closed | 1.6? | Implement AOM 2 ARCHETYPE_SLOT.is_closed, to allow closing of slots in specialisations | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
AOM 2 Slot include/exclude rules | 1.6? | Implement AOM 2 include / exclude rules. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Mandatory ids on all nodes; optional node-id term definitions | 1.6? | Adopt ADL 2 / 13606 style of using ids (still using at-codes). | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
AOM 2 node-id specialisation rules | 1.6? | Only need to specialise a node id for a) semantic purpose (term redefine) or b) specialise single C_OBJECT to multiple children | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Rename ontology section to terminology. | 1.6? | Continue to accept old keyword. Output new keyword on serialisation. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
1.7 - Differential archetypes and templates - provide a 1.4 export mode | |||||
Differential paths | 1.7? | Implement AOM 2 C_ATTRIBUTE.differential_path | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Add SIBLING_ORDER class and before and after keywords in ADL | 1.7? | Implement AOM 2 SIBLING_ORDER class | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
ADL 2 'template' and 'template_overlay' keywords | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||
OPERATIONAL_TEMPLATE class | 1.7? | Implement AOM 2 OPERATIONAL_TEMPLATE class | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Add ARCHETYPE.is_template and is_overlay | 1.7? | ||||
AOM 2 flattening semantics | Implement proper node clone-and-overlay; overridden node ids in differential paths. Algorithm available in AOM 2 specification. | ||||
RM release | 1.7? | Add to ARCHETYPE class. | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| ||
Merge C_PRIMITIVE_OBJECT and C_PRIMITIVE classes | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||
AOM 2 C_TERMINOLOGY_CODE; remove CONSTRAINT_REF type | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||
AOM 2 C_STRING | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||
AOM 2 C_BOOLEAN | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||
AOM 2 C_ORDERED<T> and subtypes | 1.7? | Modelling Tools:
Archetypes:
EHR & Demographics Stack:
AQL Queries:
| |||