Due to recently implemented changes to archetype codes, node identification, value set representation and terminology binding representation, all existing ADL 1.4 and 'transitional' 1.5 archetypes need to be upgraded.
A summary of the id-code changes is:
- all archetype nodes have an id-code (e.g. "id14", "id1.4", "id0.0.3")
- id-codes on nodes under container attributes must have a definition in the terminology; for the rest it is optional
Full explanation here.
A summary of the terminology / value set representation changes is:
- a single code is an at-code, always. If you want a SNOMED or other code, this is a binding
- a local value set made of at-codes is now replaced by:
- an ac-code inline, that represents the value set as an entity (e.g. 'patient positions for BP measurement')
- and the set of at-codes, in the new 'value_sets' part of the archetype terminology
- a local value set made of external codes (i.e. the value set is still being declared in the archetype, just with some other codes) becomes:
- an ac-code inline, as above
- a value set definition of the ac-code + at-codes
- a set of bindings from each at-code to the original external code; each binding is a URI
- a an externally defined value set / ref-set appears in the archetype as
- an ac-code
- a binding to the external value set, as a URI
Full explanation here.
The ADL Workbench implements the following conversions, and marks converted archetypes as adl_version=1.5.1.
- upgrading of archetype identifier to the new ARCHETYPE_HRID (HRID = human-readable id)
- injection or correction of lifecycle state to one of the states described here
- injection of a UID on all archetypes that don't have them
- all openEHR-ish DV_ORDINAL, DV_QUANTITY and CODE_PHRASE special syntax => generic tuple constraints
- the 'ontology' section is now called 'terminology'
- codes are converted to id-codes (for node ids), at-codes (for value codes) and ac-codes (for value-set references)
- id codes are synthesised for nodes that don't have them
- all code definitions are now in a single 'term_definitions' table in the archetype terminology
- all bindings are now in a single 'term_bindings' table in the archetype terminology
- there is a new 'value_sets' table in the archetype terminology, containing all locally defined value sets, as described above
- all existing value sets and codes are converted according to the rules stated above
- all external codes & bindings become standard URIs, following Harold Solbrig's analysis.