Data Types 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.

  • Silje Ljosland Bakke, RN, Nasjonal IKT HF, Norway

  • Pieter Bos, Senior Software Engineer, Nedap, Netherlands

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

  • Matthew Darlinson, PhD, CHIME, UCL, UK

  • Heath Frankel, CTO Ocean Informatics, Australia

  • Peter Gummer, senior developer, Ocean Informatics, Australia

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

  • Grahame Grieve, Kestral Systems, Australia

  • Sam Heard MD, Ocean Informatics, Australia

  • Sebastian Iancu, Architect, Code24, Netherlands

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

  • Bostjan Lah, Architect, Marand, Slovenia

  • Heather Leslie MD, FRACGP, FACHI, GAICD, Atomica Informatics, Australia

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

  • Kristoffer Lundberg, chief architect, Cambio, Sweden

  • Chunlan Ma PhD, MD, Ocean Informatics, Australia

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

  • Bjørn Næss, DIPS, Norway

  • Pablo Pazos Gutierrez, CaboLabs, Uruguay

  • Peter Schloeffel MD, Ocean Informatics, Australia

  • Erik Sundvall PhD, Linkoping University, Sweden

  • Bert Verhees, Senior developer, Netherlands

  • Zar zar Tun, DSTC, Australia

Support

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

  • 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).

Purpose

This document defines the openEHR Data Types Information Model, used throughout the openEHR Reference Model.

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:

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/data_types.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, Implementer Completed

SPECRM-101: Correct error in less_than() description in various DV_ORDERED descendants: DV_QUANTIFIED, DV_COUNT, DV_QUANTITY, and the DV date/time types to indicate that the result is 'this object < other'.

B Verhees,
T Beale

26 Dec 2020

RM Release 1.1.0

2.2.0

SPECRM-96: Consistently support negative durations. Improve documentation of negated form of DV_DURATION.

H Leslie,
S Garde

30 Apr 2020

SPECRM-94: Correct arithmetic and comparison functions in Data Types.

T Beale

27 Apr 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-64: Add CODE_PHRASE.term optional field to carry rubric (preferred term) text. (Addresses SPECPR-132, SPECPR-165)

H Frankel,
I McNicoll,
SEC

08 Oct 2019

SPECRM-19: Add support for Real 'ordinal' values with DV_SCALE data type (addresses SPECPR-44);
Remove limits() function in passing.

I McNicoll,
SEC

19 Oct 2019

SPECRM-65: Add units_system and units_display_name attributes to DV_QUANTITY. (Addresses SPECPR-251)

H Frankel,
I McNicoll,
S Ljosland Bakke,
S Garde,
D Bosca,
B Lah,
B Naess

01 Oct 2019

RM Release 1.0.4

2.1.3

SPECRM-39: Support newlines and formatting in DV_TEXT. (Addresses SPECPR-117)

H Frankel

21 Dec 2018

SPECRM-78: Improve documentation on 'plain text' EHR URIs.

H Frankel

SPECRM-72: Add guidance on date/time formatting, recommending extended ISO8601 format.

B Lah

SPECPUB-3: Correct UML conversion error: DV_MULTIMEDIA.integrity_check corrected to multiple bytes. (fixes SPECPR-295).

P Bos

SPECPUB-3: Correct UML coversion errors: revert DV_MULTIMEDIA.data to Array<Byte>; revert integrity_check_algorithm multiplicity to [0..1].

K Lundberg

SPECRM-67: Improve description of DV_ENCAPSULATED encoding variations (see SPECPR-258).

P Pazos

23 Apr 2018

SPECPUB-3: Remove invariants except for id field, as per SPECRM-23 (see SPECPR-202).

S Iancu,
P Pazos

18 Apr 2018

RM Release 1.0.3

2.1.2

SPECRM-32: Add invariant to DV_PROPORTION preventing 0 denominator. (SPECPR-112)

P Pazos

15 Nov 2015

SPECRM-33: Clarify specification of EHR URI scheme. Slight adjustments to DV_EHR_URI text.

H Frankel,
E Sundvall,
B Lah,
S Iancu

SPECRM-23: Make some DV_IDENTIFIER features optional. (SPECPR-33).

S Heard

SPECRM-44: Remove DV_ENCAPSULATED.size abstract property. (SPECPR-98).

H Frankel

SPECRM-20: Correct wrong DV_DATE.magnitude origin to '0001-01-01' (SPECPR-64).

P Gummer

Release 1.0.2

2.1.1

SPEC-257: Correct minor typos and clarify text. Replace DV_EHR_URI with DV_URI in inheritance of class definition of DV_EHR_URI.
Clarify the description of the type attribute in DV_PROPORTION to indicate how it is controlled by PROPORTION_KIND. Add as_string() function to DV_ENCAPSULATED class in UML diagram of encapsulated package.

T Cook
C Ma,
R Chen

20 Nov 2008

SPEC-261: Indicate how accuracy is treated over add/subtract operations in DV_QUANTIFIED types. Indicate special values for unknown accuracy.

G Geurts,
R Chen

Release 1.0.1

2.1.0

SPEC-144: Add new type: DV_PROPORTION.

S Heard

12 Apr 2007

SPEC-198: Change DV_Date/Time/Duration to have value as attribute.

S Heard

SPEC-199: Add normal_range attribute to DV_ORDERED.

S Heard

SPEC-200. Correct Release 1.0 typographical errors. Correct DV_ENCAPSULATED.size to abstract in definition table. Correct DV_STATE.value in UML of basic package to be DV_CODED_TEXT. Correct DV_ORDINAL.symbol type to DV_CODED_TEXT in UML diagram for QUANTITY package.

H Frankel
S Heard
G Grieve
D Lloyd
R Chen

Add missing inheritance of Ordered to DV_ORDERED.

G Grieve

SPEC-205: Convert Date/time constants to a class.

D Lloyd

SPEC-211: Add magnitude_status to DV_QUANTIFIED.

S Heard

SPEC-215: Merge DV_PARTIAL_XX date/time classes and move ISO 8601 semantics to Support IM. Remove DV_WORLD_TIME class.

T Beale

SPEC-216: Allow mixture of W, D etc in ISO8601 Duration (deviation from standard).

S Heard

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

R Chen

SPEC-221. Add normal_status to DV_ORDERED. Adjusted invariants.

H Frankel

SPEC-227: Remove DV_QUANTITY_RATIO.

S Heard

SPEC-230: Change DV_DATE_TIME.to_quantity to seconds

C Ma

SPEC-236: Change use of Character to Octet in DV_MULTIMEDIA.

G Grieve

SPEC-237: Correct semantics of Quantity and Date/Time types.

T Beale
G Grieve

SPEC-240: Allow DV_ORDINAL values to be negative.

R Chen

SPEC-247: Add DV_TEMPORAL class to quantity package.

H Frankel

Release 1.0

2.0.0

SPEC-176. Make DV_QUANTIFIED.accuracy optional.

S Heard

01 Feb 2006

SPEC-163. Add identifiers to FEEDER_AUDIT for originating and gateway systems. Added assigner attribute to DV_IDENTIFIER.

H Frankel

SPEC-121. Improve DV_EHR_URI model to support Xpath style paths.

T Beale

SPEC-161. Support distributed versioning. Remove functions from DV_EHR_URI.

T Beale
H Frankel

Release 0.96

Release 0.95

1.9.1

Improve implementation guidance. DV_ORDINAL.limits type corrected to REFERENCE_RANGE<DV_ORDINAL>.

D Lloyd

22 Feb 2005

1.9

SPEC-126. Correct details of partial date/time classes.

T Beale

09 Dec 2004

SPEC-112. Add DV_PARTIAL_DATE_TIME class

DSTC

SPEC-113. Add DATA_VALUE subtype for identifying realworld entities

DSTC

SPEC-118. Make package names lower case.

T Beale

SPEC-119. Improve Data types documentation.

T Beale

SPEC-102. Make DV_TEXT.language and charset optional.

DSTC

Release 0.9

1.8

SPEC-23. TERM_MAPPING.match should be coded/enumerated.

G Grieve

09 Mar 2004

SPEC-69. Correct date/time types statistical descriptions.

A Goodchild

SPEC-46. Rename COORDINATED_TERM to CODE_PHRASE and DV_CODED_TEXT.definition to defining_code.

T Beale

SPEC-84. Rename DV_COUNTABLE to DV_COUNT.

DSTC

SPEC-90. Make TERM_MAPPING.purpose optional.

DSTC

SPEC-91. Correct anomalies in use of CODE_PHRASE and DV_CODED_TEXT.

T Beale

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

DSTC

SPEC-95. Remove property attribute from quantity package.

DSTC,
S Heard

Formally validated using ISE Eiffel 5.4.

T Beale

1.7.9

SPEC-66. Make DV_ORDERED.normal_range a function.
Correct UML for DV_QUANTITY.

Z Tun

10 Nov 2003

1.7.8

SPEC-53. Make DV_ORDINAL.limits a function.
SPEC-54. Move DV_QUANTIFIED.is_normal to DV_ORDERED
SPEC-55. Redefine DV_ORDERED.less_than as infix function '<'.

T Beale

02 Nov 2003

1.7.7

SPEC-41. Visually differentiate primitive types in openEHR documents.
SPEC-34. State representation of date/time classes to be ISO8601.
SPEC-52. Change DV_DURATION.sign to prefix "-" operation.
SPEC-42. Make DV_ORDINAL.rubric a DV_CODED_TEXT; type attribute not needed.

D Lloyd,
DSTC,
T Beale

26 Oct 2003

1.7.6

SPEC-13. Rename key classes, according to CEN ENV 13606.
SPEC-26. Rename DV_QUANTITY.value to magnitude.
SPEC-31. Change abstract NUMERIC to DOUBLE in DV_QUANTITY.value.

S Heard,
D Kalra,
T Beale,
A Goodchild,
Z Tun

01 Oct 2003

1.7.5

SPEC-22. Code TERM_MAPPING.purpose.

G Grieve

20 Jun 2003

1.7.4

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

A Goodchild

10 Jun 2003

1.7.3

DV_INTERVAL now inherits from INTERVAL to avoid duplicating semantics. (Formally validated).

T Beale

25 Mar 2003

1.7.2

Minor corrections to diagrams in Text package. Improved heading structure, package naming. Corrected error in text package diagram. Replaced TEXT_FORMAT_PROPERTY class with string attribute of same form. Made MULTIMEDIA.media_type mandatory. (Formally validated).

T Beale,
Z Tun

21 Mar 2003

1.7.1

Moved definitions and assumed types to Support Reference Model. No semantic changes.

T Beale

25 Feb 2003

1.7

Formally validated using ISE Eiffel 5.2.
SPEC-1. Review of Data Types specification. Made pluralities of Terminology name definitions (sect 3.2.1) consistent.
Corrected types of DV_ENCAPSULATED.language, charset, DV_MULTIMEDIA.integrity_check_algorithm, compression_algorithm, media_type.
Corrected pluralities of Terminology name definitions (sect 3.2.1).
Corrected invariants of DV_ENCAPSULATED, DV_MULTI_MEDIA, DV_QUANTITY, DV_CODED_TEXT, DV_TEXT, DV_INTERVAL, TERM_MAPPING.
Corrected DV_TEXT.formatting; added TERM_MAPPING validity function. Made DV_ORDINAL.limits an attribute. Removed TERM_MAPPING.source; moved COORDINATED_TERM.language to DV_TEXT; changed type to COOORDINATED_TERM.
Corrected time specification classes.

Z Tun,
T Beale

17 Feb 2003

1.6.1

Rome CEN TC 251 meeting. Updates to HL7 comparison text. DV_DATE now inherits from DV_CUSTOMARY_QUANTITY.

S Heard,
T Beale

27 Jan 2003

1.6

Sam Heard complete review. Changed constant terminology defs to runtime-evaluated set; removed DV_PHYSICAL_DATA. Added new chapter for generic implementation guidelines, and new section for assumed types. Post-conditions moved to invariants: DV_TEXT.value, DV_ORDERED.is_simple, DV_PARTIAL_DATE.probable_date, possible_dates, DV_PARTIAL_TIME.probable_time, possible_times. Minor updates to HL7 comparison text. Added explanation to HL7 section.

S Heard,
T Beale

13 Dec 2002

1.5.9

Minor corrections: DV_ENCAPSULATED; DV_QUANTITY.units defined to be String; changed COORDINATED_TERM class (but semantically equivalent).

T Beale

10 Nov 2002

1.5.8

Changed name of LINK package to URI. Major update to Text cluster classes and explanation. Updated HL7 data type comparison.

T Beale,
D Kalra,
D Lloyd,
M Darlison

1 Nov 2002

1.5.7

DV_TEXT_LIST reverted to TEXT_LIST. DV_LINK no longer a data types; renamed to LINK and moved to Common RM. link package renamed to uri.

S Heard,
Z Tun,
T Beale,
D Kalra,
M Darlison

18 Oct 2002

1.5.6

Rewrite of TIME_SPECIFICATION parse specs. Adjustments to DV_ORDINAL.

T Beale

16 Sep 2002

1.5.5

Timezone not allowed on pure DV_DATE in ISO8601.

T Beale,
S Heard

2 Sep 2002

1.5.4

Moved DV_QUANTIFIED.units and property attributes to DV_QUANTITY. Introduced DV_WORLD_TIME.to_quantity. Added fractional_second to DV_TIME, DV_DATE_TIME, DV_DURATION.

T Beale,
S Heard

29 Aug 2002

1.5.3

Further corrections - removed derived ‘/’ markers; renamed TERM_MAPPING.granularity to match. Improved explanation of DV_ORDINAL. DV_QUANTIFIED.units is now a DV_PARSABLE. REFERENCE_RANGE.meaning is now a DV_TEXT. DV_ENCAPSULATED.uri is now a DV_URI. DV_LINK.type is now a DV_TEXT. Detailed review by Zar Zar Tun (DSTC).

T Beale,
S Heard,
P Schloeffel,
D Lloyd,
Z Tun

20 Aug 2002

1.5.2

Further corrections - removed derived ‘/’ markers; renamed TERM_MAPPING.granularity to match.

T Beale,
D Lloyd,
S Heard

15 Aug 2002

1.5.1

Minor corrections.

T Beale,
S Heard

15 Aug 2002

1.5

Rewrite of section describing text types; addition of new attribute DV_CODED_TEXT.mappings. Removal of TERM_REFERENCE.concept_code.

T Beale,
S Heard

1 Aug 2002

1.4.3

Minor changes to text. Corrections to DV_CODED_TEXT relationships. Made DV_INTERVAL.lower_unbounded and DV_INTERVAL.upper_unbounded functions.

T Beale,
Z Tun

16 Jul 2002

1.4.2

DV_LINK.meaning changed to DV_TEXT (typo in table). Added abstract class DV_WORLD_TIME.

T Beale,
D Lloyd

14 Jul 2002

1.4.1

Changes to DV_ENCAPSULATED, DV_PARSABLE invariants.

T Beale
Z Tun

10 Jul 2002

1.4

DV_ENCAPSULATED. text_equivalent renamed to DV_ENCAPSULATED.alternate_text. Added invariant for QUANTITY.precision.

T Beale,
D Lloyd

01 Jul 2002

1.3

Added timezone to DV_TIME and DV_DATE_TIME and sign to DV_DURATION; added linguistic_order to TERM_RELATION; added as_display_string and as_canonical_string to all types. Added DV_STATE.is_terminal. Renamed TERM_TEXT as CODED_TEXT.

T Beale,
D Lloyd

30 Jun 2002

1.2

Minor corrections to Text package.

T Beale

15 May 2002

1.1

Numerous small changes, including: term equivalents, relationships and quantity reference ranges.

T Beale,
D Lloyd,
D Kalra,
S Heard

10 May 2002

1.0

Separated from the openEHR Reference Model.

T Beale

5 May 2002