Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Of all of the available primitive types defined in the openEHR Support IM specification, only a few are relevant to archetyping.

Other than for date/time types, openEHR does not define primitive types as such, since it assumes the existence of primitive types from implementation technologies. But since such types are mentioned ubiquitously in specifications, it provides a set of partial class definitions expressing what is assumed. For example, there is a String type, and in the specifications, some kind of 'empty' function is often needed e.g. for assertions like 'not code_string.is_empty'. So the openEHR Support IM assumed_types package defines String and a few functions, including is_empty() on it.

The date/time types are more fully defined since these are typically less standardised. In openEHR a collection of types based on ISO 8601 were therefore added.

openEHR data types

No. times
constrained
in CKM *

FHIR data types

Archetype Requirements

Information Representation Requirements

Feedback to FHIR

Octet

0

-

 

 

 

Character

0

-

 

 

 

-

-

base64binary

 

 

 

Boolean

62

boolean

-

 

 

Integer

50

integer (32 bit)
decimal (integer values >32 bit)

Integer appears in the DV_COUNT openEHR type. Currently there is no way (and as far as we know, no demand) to constrain an integer field to be of a certain size such as 64 bit or 32 bit.

The current assumption as to the size of 'Integer' in an openEHR system is that a) the size is decided by the implementation and that b) normal conversion rules would apply to enable typical integer values (i.e. relatively small numbers) stored in 64-bit words to be correctly converted to 32-bit or smaller integers.

 

Real

57

-

Real is used in DV_QUANTITY and is the type of most lab and many other quantities.

 

 

String

7

string

Strings are rarely directly constrained other than for force them to be non-empty, since any particular constraint might be language specific.

In FHIR, all atomic identifiers (Oids, UUIDs etc) are considered subtypes of String, with special constraints on the string pattern.

 

ISO8601_DATE

3

-

Used in DV_DATE type.

 

 

ISO8601_DATE_TIME

5

-

Used in DV_DATE_TIME type.

 

 

ISO8601_TIME

0

-

Used in DV_TIME type.

 

 

ISO8601_DURATION

13

-


 

 

Array<T>

-

-

 

 

 

List<T>

-

-

 

 

 

Set<T>

-

-

 

 

 

Hash<T,U>

-

-

 

 

 

Interval<T>

-

-

 

 

 

...