openEHR to ISO 13606-1, ISO 21090 mapping

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
class

attribute

type

13606
class

attribute

type

description

exceptions / ambiguities

openEHR
class

attribute

type

13606
class

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]
/dt:II

rule: String id->II

 

 

name

DV_TEXT [1]

 

name

TEXT [1]
/dt:CD>CV

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]
/rc:Sensitivity

 

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:
DV_DATE_TIME->TS

 

 

change_type

DV_CODED_TEXT [1]

 

reason_for_revision

CV [0..1]
/dt:CD.CV

rule: DV_CODED_TEXT->CV

 

 

description

DV_TEXT [0..1]

 

-

 

 

LOST INFORMATION
[low importance]

+VERSION

lifecycle_state

DV_CODED_TEXT [1]

 

version_status

CS [0..1]
/rc:VersionStatus

rule: DV_CODED_TEXT->CS

 

+VERSION

preceding_version_id

OBJECT_VERSION_ID[1]

 

previous_version

II [0..1]

rule:
OBJECT_VERSION_ID->II

 

+VERSION

owner_id

HIER_OBJECT_ID [1]

 

version_set_id

II [0..1]

rule:
HIER_OBJECT_ID->II

 

PARTY_PROXY

 

 

RELATED_PARTY

 

 

 

 

 

external_ref

PARTY_REF [0..1]

 

party

II [0..1]

rule:
OBJECT_REF->II

LOST INFORMATION: namespace, type?
[not important]

PARTY_IDENTIFIED

 

 

 

 

 

 

 

 

name

String [0..1]

Demographics_package
IDENTIFIED_HEALTHCARE
_PROFESSIONAL

name

ENTITY_NAME[*]

rule: String -> ENTITY_NAME synthesis

 

 

identifiers

List<DV_IDENTIFIER> [0..1]

Demographics_package
IDENTIFIED_HEALTHCARE
_PROFESSIONAL

role

HEALTHCARE_
PROFESSIONAL_
ROLE [*]

rule: for each identifier: DV_IDENTIFIER -> HEALTHCARE_
PROFESSIONAL_ ROLE

 

PARTY_RELATED

 

 

RELATED_PARTY

 

 

 

 

 

relationship

DV_CODED_TEXT [1]

 

relationship

TEXT
/dt:CD.CV

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
openEHR allows not only coded values; non-matches will be lost

 

performer

PARTY_PROXY [1]

 

performer

II [1]

use rule for: PARTY_PROXY.external_ref

LOST INFORMATION
some openEHR Party information will be lost; 13606 only permits single II identifier

 

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]