Common Information Model

Acknowledgements

Editor

  • Thomas Beale, Ars Semantica (UK); openEHR Foundation Management Board.

Contributors

This specification benefited from wide formal and informal input from the openEHR and wider health informatics community. The openEHR Foundation would like to recognise the following people for their contributions.

  • Koray Atalag PhD, University of Auckland, NZ

  • Diego Boscá, IBIME, Technical University Valencia, VeraTech for Health, Spain

  • Rong Chen MD, PhD, Cambio Healthcare Systems, Sweden

  • Tim Cook, Director, Data Insights

  • Matthew Darlinson, PhD, CHIME, UCL, UK

  • Heath Frankel, CTO Ocean Informatics, Australia

  • Matias Forss, Aalborg University, Denmark

  • Andrew Goodchild, PhD, senior research scientist DSTC, Australia

  • Birger Haarbrandt, MSc, Peter L. Reichertz Institut for Medical Informatics (PLRI)

  • Sam Heard MD, Ocean Informatics, Australia

  • Joost Holslag MD, Netherlands

  • Sebastian Iancu, Architect, Code24, Netherlands

  • Bas Janssen, Nedap, Netherlands

  • Dipak Kalra MD, PhD, Professor Health Informatics, CHIME, UCL, UK

  • Bostjan Lah, Architect, Marand, Slovenia

  • David Lloyd (ret), CHIME, UCL, UK

  • Chunlan Ma PhD, MD, Ocean Informatics, Australia

  • Jan Mewes, KS-plus.org, India/Germany

  • Andrew Patterson PhD, LLM, Federation Health Software, Australia

  • Pablo Pazos Gutierrez, CaboLabs, Uruguay

  • Matija Polajnar PhD, Senior developer, Marand, Slovenia

  • Erik Sundvall PhD, Linkoping University, Sweden

  • Zar zar Tun, DSTC, Australia

  • Bert Verhees, ROSA Software, The Netherlands.

  • Jelte Zeilstra, Nedap, Netherlands

Support

The work reported in this paper has been funded in part by the following organisations:

  • Marand d.o.o., Slovenia;

  • DIPS ASA, Norway;

  • University College London - Centre for Health Informatics and Multi-professional Education (CHIME);

  • Ocean Informatics;

  • Distributed Systems Technology Centre (DSTC), under the Cooperative Research Centres Program through the Department of the Prime Minister and Cabinet of the Commonwealth Government of Australia.

Special thanks to David Ingram, Emeritus Professor of Health Informatics at UCL, who provided a vision and collegial working environment ever since the days of GEHR (1992).

Trademarks

  • 'openEHR' is a trademark of the openEHR Foundation

  • 'Java' is a registered trademark of Oracle Corporation

  • 'Microsoft' is a trademark of the Microsoft Corporation

Purpose

This document describes the architecture of the openEHR Common Reference Model, which contains patterns used by other openEHR reference models.

The intended audience includes:

  • Standards bodies producing health informatics standards;

  • Academic groups using openEHR;

  • The open source healthcare community;

  • Solution vendors;

  • Medical informaticians and clinicians interested in health information.

  • Health data managers.

Prerequisite documents for reading this document include:

Related documents include:

Status

This specification is in the STABLE state. The development version of this document can be found at https://specifications.openehr.org/releases/RM/latest/common.html.

Known omissions or questions are indicated in the text with a 'to be determined' paragraph, as follows:

TBD: (example To Be Determined paragraph)

Feedback

Feedback may be provided on the openEHR RM specifications forum.

Issues may be raised on the specifications Problem Report tracker.

To see changes made due to previously reported issues, see the RM component Change Request tracker.

Conformance

Conformance of a data or software artifact to an openEHR specification is determined by a formal test of that artifact against the relevant openEHR Implementation Technology Specification(s) (ITSs), such as an IDL interface or an XML-schema. Since ITSs are formal derivations from underlying models, ITS conformance indicates model conformance.

Amendment Record

Issue Details Raiser Completed

2.1.5

SPECRM-87: Support tags: added Tags Package (Addresses SPECPR-265).

S Iancu,
B Næss,
M Polajnar

17 Nov 2022

SPECRM-107: Add inactive and abandoned states to Version lifecycle (fixes SPECPR-383).

J Holslag,
Jelte Zeilstra,
Bas Janssen

06 Oct 2022

SPECRM-103: Documentation fixes and typos:
Fix PARTY_RELATED typo (fixes SPECPR-385).

P Bos

28 Feb 2022

RM Release 1.1.0

2.1.4

SPECRM-97: Define data validity rules for Versions with lifecycle_state = incomplete.

M Polajnar,
S Iancu,
P Bos

23 Sep 2020

SPECRM-93: Adjust advice on merging persistent compositions in section 6.4.2. (Addresses SPECPR-355).

I McNicoll

23 Mar 2020

SPECPUB-7: Convert citations to bibtex form.

T Beale

15 Dec 2019

SPECRM-92. Correct numerous minor typographical and formatting errors.

J Mewes

09 Nov 2019

SPECRM-74. Add other_details meta-data field to FEEDER_AUDIT_DETAILS (addresses SPECPR-271).

B Haarbrandt

10 Oct 2019

SPECRM-88. Improve documentation relating to use of uid in versioning and LOCATABLE descendants in change_control package (addresses SPECPR-322).

P Pazos,
M Polajnar,
T Beale

29 Sep 2019

SPECRM-56. Add archetypable details meta-data to FOLDER (addresses SPECPR-85).

B Næss,
S Iancu,
P Pazos,
I McNicoll,
T Beale

16 Mar 2019

SPECRM-85. Correct typographical errors in Version classes; correct param in VERSIONED_OBJECT.has_version_at_time() back to a_time: DV_DATE_TIME (fixes SPECPR-311).

P Pazos,
T Beale

16 Mar 2019

RM Release 1.0.4

2.1.3

SPECRM-79. Correct UML diagram of VERSIONED_OBJECT.owner_id type.

S Iancu

26 Nov 2018

SPECRM-80. Improve description of system_id field in EHR, AUDIT_DETAILS and FEEDER_AUDIT_DETAILS.

H Frankel,
T Beale

SPECRM-70. Update text in Common IM to latest openPGP specification (fixes SPECPR-216);
SPECRM-60. Add Version lifecycle state machine to RM;
SPECRM-66. Improve description in specification of AUDIT_DETAILS.change_type and description fields. Add informative text in Section 6.2.5 Contributions.

P Pazos

SPECPUB-3. Re-instate inheritance from VERSIONED_FOLDER to VERSIONED_OBJECT<T> from Release 1.0.2 (lost in original UML conversion).

T Beale

25 May 2016

SPECRM-50: Change order of type parameters in Hash<V,K> type to Hash<K,V>; affects classes in resource package.

D Boscá

13 Apr 2016

SPECRM-48: Correct guidance on signing in Common IM - remove statement about server-side signing. (SPECPR-131).

B Lah

23 Feb 2016

SPECRM-46: Fix RM Release 1.0.3 typos and minor documentary errors. (SPECPR-159, SPECPR-155, SPECPR-156).

K Atalag,
S Iancu

RM Release 1.0.3

2.1.2

SPECRM-21: Make PARTICIPATION.mode optional. Section 4.3.5 updated.

S Heard

12 Oct 2015

SPECRM-28: Improve documentation of VERSION.uid to make clear that the first part of the id is the owning VERSIONED_OBJECT.uid (SPECPR-90).

P Pazos

SPECRM-34: Add constraint to VERSIONED_OBJECT.uid to prevent extension. (SPECPR-1).

A Patterson,
H Frankel

Release 1.0.2

2.1.1

SPECRM-249: Paths and locators minor errors in Architecture Overview and Common IM. Correct ordering of elements in identifier tuple. Sections 6.3.3, 6.4.1, and 6.4.2.

C Ma,
T Beale,
R Chen

20 Dec 2008

SPECRM-257: Correct minor typos and clarify text. Complete ATTESTATION class purpose. Correct UML of resource_description package - make RESOURCE_DESCRIPTION 1.*, AUTHORED_RESOURCE abstract.

C Ma,
R Chen,
T Cook

Release 1.0.1

2.1.0

SPEC-209: Minor changes to correctly define AUTHORED_RESOURCE.current_revision. Functions added to REVISION_HISTORY; AUTHORED_RESOURCE.current_revision postcondition added.

Y S Lim

08 Apr 2007

SPEC-206: Change LOCATABLE.item_at_path to return ANY.

H Frankel

SPEC-200: Correct Release 1.0 typographical errors. Add missed invariant in VERSION to restrict contribution.type to "CONTRIBUTION". Fix pre- and post-conditions in LOCATABLE functions.

T Beale

Fix errors in timezone max/min values and invariants.

T Cook

SPEC-203: Release 1.0 explanatory text improvements. Move Explanatory material on configuration management and versioning to Architecture Overview.

T Beale
E Sundvall

SPEC-202: Correct minor errors in VERSION.preceding_version_id. Rename preceding_version_id to preceding_version_uid. Add preceding_version_uid invariant to VERSION<T>.

T Beale

SPEC-197: Change LOCATABLE.uid to HIER_OBJECT_ID.

H Frankel

SPEC-214: Changes to VERSION preparatory to EHR Extract upgrade. Added lifecycle_state to VERSION<T>, extra functions on VERSIONED_OBJECT<T>. Corrected and added commit functions to VERSIONED_OBJECT. Added ATTESTATION.attested_view (conforms to CEN EN13606-1).

H Frankel
S Heard
T Beale

SPEC-212: Allow VERSION.data to be optional to enable logical deletion.

T Beale

SPEC-130: Correct security details in LOCATABLE and ARCHETYPED classes. Remove ARCHETYPED.access_control.

T Beale

SPEC-219: Use constants instead of literals to refer to terminology in RM.

R Chen

SPEC-231: Change RESOURCE_DESCRIPTION.details from List to Hash.

R Chen

SPEC-235: Make attestation-only commit require a Contribution.

A Patterson

SPEC-239: Add common parent type of OBJECT_VERSION_ID and HIER_OBJECT_ID.

H Frankel

SPEC-243: Add template_id to ARCHETYPED class.

T Beale

SPEC-244: Separate LOCATABLE path functions into PATHABLE class.

T Beale
H Frankel

SPEC-166: Add viewable form of document to COMPOSITION.

S Heard

SPEC-246: Correct openEHR terminology rubrics.

B Verhees
M Forss

Release 1.0

2.0

SPEC-147: Make DIRECTORY re-usable. Add new directory package.

R Chen

02 Feb 2006

SPEC-162. Allow party identifiers when no demographic data.

S Heard
H Frankel

SPEC-167. Add AUTHORED_RESOURCE class.

T Beale

SPEC-179. Move AUDIT_DETAILS to generic package; add REVISION_HISTORY.

T Beale

SPEC-182: Rationalise VERSION.lifecycle_state and ATTESTATION.status.

C Ma
D Kalra

SPEC-65. Add REVISION_HISTORY to change_control package.

T Beale

SPEC-187: Correct modelling errors in DIRECTORY class and rename.

T Beale

SPEC-163: Add identifiers to FEEDER_AUDIT for originating and gateway systems.

H Frankel

SPEC-165. Clarify use of system_id in FEEDER_AUDIT and AUDIT_DETAILS.

H Frankel

SPEC-190. Rename VERSION_REPOSITORY to VERSIONED_OBJECT.

T Beale

SPEC-161. Support distributed versioning. Additions to change_control package. Rename REVISION_HISTORY_ITEM.revision to version_id, and change type to OBJECT_VERSION_ID.

H Frankel,
T Beale

Release 0.96

1.6.2

SPEC-159. Improve explanation of use of ATTESTATION in change_control package.

T Beale

10 Jun 2005

Release 0.95

1.6.1

SPEC-48. Pre-release review of documents. Fixed UML in Fig 8 informal model of version control.

D Lloyd

22 Feb 2005

1.6

SPEC-108. Minor changes to change_control package.

T Beale

10 Dec 2004

SPEC-24. Revert meaning to STRING and rename as archetype_node_id.

S Heard
T Beale

SPEC-97. Correct errors in version diagrams in Common model.

Ken Thompson

SPEC-99. PARTICIPATION.function type in diagram not in sync with spec.

R Shackel (DSTC)

SPEC-116. Add PARTICIPATION.function vocabulary and invariant.

T Beale

SPEC-118. Make package names lower case. Improve presentation of identification section; move some text to Data Types IM document, basic package.

T Beale

SPEC-111. Move identification Package to support.

DSTC

Release 0.9

1.5

SPEC-80. Remove ARCHETYPED.concept - not needed in data
SPEC-81. LINK should be unidirectional.
SPEC-83. PARTY_RELATED.party should be optional.
SPEC-85. LOCATABLE.synthesised not needed. Add vocabulary for FEEDER_AUDIT.change_type.
SPEC-86. LOCATABLE.presentation not needed.

DSTC

09 Mar 2004

SPEC-91. Correct anomalies in use of CODE_PHRASE and DV_CODED_TEXT.
Changed PARTICIPATION.mode, changed ATTESTATION.status, PARTY_RELATED.relationship, VERSION_AUDIT.change_type, FEEDER_AUDIT.change_type to to DV_CODED_TEXT.

T Beale,
S Heard

SPEC-94. Add lifecycle state attribute to VERSION; correct DV_STATE.

DSTC

Formally validated using ISE Eiffel 5.4.

1.4.12

SPEC-71. Allow version ids to be optional in TERMINOLOGY_ID.

T Beale

25 Feb 2004

SPEC-44. Add reverse ref from VERSION_REPOSITORY<T> to owner object.

D Lloyd

SPEC-63. ATTESTATION should have a status attribute.

D Kalra

SPEC-46. Rename COORDINATED_TERM and DV_CODED_TEXT.definition.

T Beale

1.4.11

SPEC-56. References in common.VERSION classes should be OBJECT_REFs.

T Beale

02 Nov 2003

1.4.10

SPEC-45. Remove VERSION_REPOSITORY.status.

D Lloyd, T Beale

21 Oct 2003

1.4.9

SPEC-25. Allow ATTESTATIONs to attest parts of COMPOSITIONs. Change made due to CEN TC/251 joint WGM, Rome, Feb 2003.
SPEC-43. Move External package to Common RM and rename to Identification (incorporates SPEC-36 - Add HIER_OBJECT_ID class, make OBJECT_ID class abstract.)

D Kalra,
D Lloyd,
T Beale

09 Oct 2003

1.4.8

SPEC-41. Visually differentiate primitive types in openEHR documents.

D Lloyd

04 Oct 2003

1.4.7

SPEC-13. Rename key classes according to CEN ENV13606.

S Heard,
D Kalra,
T Beale

15 Sep 2003

1.4.6

SPEC-12. Add presentation attribute to LOCATABLE.
SPEC-27. Move feeder_audit to LOCATABLE to be compatible with CEN 13606 revision. Add new class FEEDER_AUDIT.

D Kalra

20 Jun 2003

1.4.5

SPEC-20. Move VERSION.charset to DV_TEXT, territory to TRANSACTION. Remove VERSION.language.

A Goodchild

10 Jun 2003

1.4.4

SPEC-7. Add PARTY_RELATED class to generic package.
SPEC-17. Renamed VERSION.parent_version_id to preceding_version_id.

S Heard,
D Kalra

11 Apr 2003

1.4.3

Major alterations due to SPEC-3, SPEC-4. ARCHETYPED class no longer inherits from LOCATABLE, now related by association. Redesign of Change Control package. Document structure improved. (Formally validated)

T Beale,
Z Tun

18 Mar 2003

1.4.2

Moved External package to Support RM. Corrected CONTRIBUTION. description to DV_TEXT. Made PARTICIPATION.time optional. (Formally validated).

T Beale

25 Feb 2003

1.4.1

Formally validated using ISE Eiffel 5.2. Corrected types of VERSIONABLE.language, charset, territory. Added ARCHETYPED.uid: OBJECT_ID. Renamed ARCHETYPE_ID.rm_source to rm_originator, and rm_level to rm_concept; added archetype_originator. Rewrote archetype id section. Changed PARTICIPATION.mode` to `COORDINATED_TERM & fixed invariant.

T Beale,
D Kalra

18 Feb 2003

1.4

Changes post CEN WG meeting Rome Feb 2003. Changed ARCHETYPED.meaning from STRING to DV_TEXT. Added CONTRIBUTION. name invariant. Removed AUTHORED_VA and ACQUIRED_VA audit types, moved feeder audit to the EHR RM. VERSIONABLE.code_set renamed to charset. Fixed pre/post condition of OBJECT_ID.context_id, added OBJECT_ID.has_context_id. Changed TERMINOLOGY_ID string syntax.

T Beale,
D Kalra,
D Lloyd

8 Feb 2003

1.3.5

Removed segment from archetype_id; corrected inconsistencies in diagrams and class texts.

Z Tun,
T Beale

3 Jan 2003

1.3.4

Removed inheritance from VERSIONABLE to ARCHETYPED.

T Beale

3 Jan 2003

1.3.3

Minor corrections: OBJECT_ID; changed syntax of TERMINOLOGY_ID. Corrected Fig 6.

T Beale

17 Nov 2002

1.3.2

Added Generic Package; added PARTICIPATION and changed and moved ATTESTATION class.

T Beale

8 Nov 2002

1.3.1

Removed EXTERNAL_ID.iso_oid. Remodelled EXTERNAL_ID into new classes - OBJECT_REF and OBJECT_ID. Remodelled all change control classes.

T Beale,
D Lloyd,
M Darlison,
A Goodchild

22 Oct 2002

1.3

Moved ARCHETYPE_ID.iso_oid to EXTERNAL_ID. DV_LINK no longer a data type; renamed to LINK.

T Beale

22 Oct 2002

1.2

Removed Structure package to own document. Improved CM diagrams.

T Beale

11 Oct 2002

1.1

Removed HCA_ID. Included Spatial package from EHR RM. Renamed SPATIAL to STRUCTURE.

T Beale

16 Sep 2002

1.0

Taken from EHR RM.

T Beale

26 Aug 2002