...
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 | FHIR data types | Archetype Requirements | Information Representation Requirements | Feedback to FHIR |
---|---|---|---|---|---|
Octet | 0 | - |
|
|
|
Character | 0 | - |
|
|
|
- | - | base64binary |
|
|
|
Boolean | 62 | boolean | - |
|
|
Integer | 50 | integer (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> | - | - |
|
|
|
...