openEHR to ISO 13606-1, ISO 21090 mapping
Introduction
This page provides information on which a technical solution to bidirectional openEHR / ISO 13606 conversion can be based. Since ISO 13606 uses the ISO 21090 pre-standard for data types, this mapping necessarily involves an openEHR datatype <-> ISO 21090 mapping as well. Key points to note:
there is currently no profile of 21090 (data types) for use in 13606; this means that 13606 currently uses the 'vanilla' 21090 schema and semantics. However many of these don't apply, and guidance now needs to be developed for them in the 13606 context.
the requirements for round-tripping faithfully between 13606 and openEHR have not yet been defined. This will essentially be up to users.
ISO 13606-1
ISO 13606-1 is the model of an EHR Extract, designed to enable data to be shared between EHR systems. Technically it resembles the openEHR reference model, but in a simplified way. In particular , the ENTRY types of openEHR are mapped to a single ENTRY type in 13606, but this is not the only difference. A mapping algorithm is being developed that shold allow a bidirectional transform between openEHR and 13606. The algorithm uses two types of mapping:
pre-defined class and attribute conversions, such as for the 13606 AUDIT_INFO class and the openEHR AUDIT_DETAILS class
a generic algorithm that can be applied between ENTRYs
Predefined conversion rules
Common IM structures
openEHR | attribute | type | 13606 | attribute | type | description | exceptions / ambiguities |
|---|---|---|---|---|---|---|---|
PATHABLE |
|
| RECORD_COMPONENT |
|
|
|
|
| parent (not persisted) | PATHABLE |
| orig_parent_ref | II [0..1] | rule: generate openEHR URI | see mismatches below |
LOCATABLE |
|
| RECORD_COMPONENT |
|
|
|
|
| uid | UID_BASED_ID [0..1] |
| rc_id | II [1] | rule: generate openEHR URI | see mismatches below |
| archetype_node_id | String [1] |
| archetype_id | String [0..1] | rule: String id->II |
|
| name | DV_TEXT [1] |
| name | TEXT [1] | rule: DV_TEXT -> TEXT | what are possible name values? |
| archetype_details | ARCHETYPED [0..1] |
|
|
|
|
|
| feeder_audit | FEEDER_AUDIT [0..1] |
| feeder_audit | AUDIT_INFO [0..1] | rule: follow link & map |
|
| links | Set<LINK> [0..1] |
| links | Set<LINK> [0..1] | rule: 1:1 iteration |
|
| - |
|
| sensitivity | Integer [0..1] |
| MISSING IN OPENEHR - could either be on LOCATABLE or on COMPOSITION |
|
|
|
| policy_ids | SET<II> |
| In openEHR, these settings are in the ACCESS_CONTROL object |
|
|
|
|
|
|
|
|
AUDIT_DETAILS |
|
| AUDIT_INFO |
|
|
|
|
| system_id | String [1] |
| ehr_system | II [1] | rule: String id->II | which system id is being used here? |
| committer | PARTY_PROXY [1] |
| committer | II [1] |
| which user id is being used here? |
| time_committed | DV_DATE_TIME [1] |
| time_committed | TS [1] | rule: |
|
| change_type | DV_CODED_TEXT [1] |
| reason_for_revision | CV [0..1] | rule: DV_CODED_TEXT->CV |
|
| description | DV_TEXT [0..1] |
| - |
|
| LOST INFORMATION |
+VERSION | lifecycle_state | DV_CODED_TEXT [1] |
| version_status | CS [0..1] | rule: DV_CODED_TEXT->CS |
|
+VERSION | preceding_version_id | OBJECT_VERSION_ID[1] |
| previous_version | II [0..1] | rule: |
|
+VERSION | owner_id | HIER_OBJECT_ID [1] |
| version_set_id | II [0..1] | rule: |
|
PARTY_PROXY |
|
| RELATED_PARTY |
|
|
|
|
| external_ref | PARTY_REF [0..1] |
| party | II [0..1] | rule: | LOST INFORMATION: namespace, type? |
PARTY_IDENTIFIED |
|
|
|
|
|
|
|
| name | String [0..1] | Demographics_package | name | ENTITY_NAME[*] | rule: String -> ENTITY_NAME synthesis |
|
| identifiers | List<DV_IDENTIFIER> [0..1] | Demographics_package | role | HEALTHCARE_ | rule: for each identifier: DV_IDENTIFIER -> HEALTHCARE_ |
|
PARTY_RELATED |
|
| RELATED_PARTY |
|
|
|
|
| relationship | DV_CODED_TEXT [1] |
| relationship | TEXT | rule: DV_CODED_TEXT->TEXT |
|
PARTY_SELF |
|
| RELATED_PARTY |
|
| convert to RELATED_PARTY with relationship = self? |
|
PARTICIPATION |
|
| FUNCTIONAL_ROLE |
|
|
|
|
| function | DV_TEXT [1] |
| function | CV [0..1] | rule: DV_CODED_TEXT->CV | LOST INFORMATION |
| performer | PARTY_PROXY [1] |
| performer | II [1] | use rule for: PARTY_PROXY.external_ref | LOST INFORMATION |
| time | DV_INTERVAL [0..1] |
| - |
| (no mapping available) | LOST INFORMATION |
| mode | DV_CODED_TEXT [1] |
| mode | CS [0..1] | rule: DV_CODED_TEXT->CS |
|
( EVENT_CONTEXT) | health_care_facility | PARTY_IDENTIFIED [0..1] |
| healthcare_facility | II [0..1] |