Ehr Im
Ehr Im
EHR Extract
EHR Demographic Integration Template OM
Composition openEHR Archetype Profile
Security Common Archetype OM ADL
Data Structures
Data Types
Support
Copyright Notice
Date of Issue: 16 Aug 2008 Page 2 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Amendment Record
R E L E A S E 1.0.1
5.1.0 CR-000200. Correct Release 1.0 typographical errors. Correct S Heard 08 Apr 2007
INSTRUCTION_DETAILS.instruction_id type to LOCATABLE_REF. M Forss
Correct inheritance of CONTENT_ITEM to LOCATABLE. C Ma
CR-000201: Add archetype ids to Instruction ACTIVITY class. S Heard
CR-000203: Release 1.0 explanatory text improvements. T Beale
Minor changes to Entry section. Improved section on “time in
the EHR”.
CR-000210: Remove LOCATABLE inheritance from S Heard
ISM_TRANSITION and INSTRUCTION_DETAILS classes
CR-000130: Correct security details in LOCATABLE and ARCHE- T Beale
TYPED classes. Add EHR_ACCESS class.
CR-000218: Add language attribute to COMPOSITION. G Grieve
CR-000219: Use constants instead of literals to refer to termi- R Chen
nology in RM.
CR-000244: Separate LOCATABLE path functions into PATHA- T Beale
BLE class. H Frankel
CR-000246: Correct openEHR terminology rubrics. B Verhees
M Forss
R E L E A S E 1.0
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 3 of 85 Date of Issue: 16 Aug 2008
R E L E A S E 0.96
R E L E A S E 0.95
R E L E A S E 0.9
4.4.1 CR-000096. Allow 0..* SECTIONs as COMPOSITION content. DSTC 11 Mar 2004
Date of Issue: 16 Aug 2008 Page 4 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
4.3.10 CR-000044. Add reverse ref from VERSION_REPOSITORY<T> D Lloyd 25 Feb 2004
to owner object. Add invariants to DIRECTORY and
VERSIONED_COMPOSITION classes.
CR-000046. Rename COORDINATED_TERM and T Beale
DV_CODED_TEXT.definition.
4.3.6 CR-000041. Visually differentiate primitive types in openEHR D Lloyd 04 Oct 2003
documents.
4.3.5 CR-000013. Rename key classes, according to CEN ENV S Heard, 15 Sep 2003
13606. D Kalra, T
Beale
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 5 of 85 Date of Issue: 16 Aug 2008
4.1 Changes post CEN WG meeting Rome Feb 2003. Moved T Beale, 8 Feb 2003
TRANSACTION.version_id postcondition to an invariant. Moved S Heard,
feeder_audit back to TRANSACTION. Added ENTRY.act_id. D Kalra,
VERSION_AUDIT.attestations moved to new ATTESTATIONS class D Lloyd
attached to VERSIONED<T>.
4.0.2 Various corrections and DSTC change requests. Reverted T Beale 3 Feb 2003
OBSERVATION.items:LIST<HISTORY<T>> to data:HISTORY<T>
and EVALUATION.items:LIST<STRUCTURE<T>> to data:STRUC-
TURE<T>. Changed CLINICAL_CONTEXT.other_context to a
STRUCTURE. Added ENTRY.other_participations;
Added CLINICAL_CONTEXT.participations; removed
hcp_legally_responsible (to be archetyped). Replaced
EVENT_TRANSACTION and PERSISTENT_TRANSACTION with
TRANSACTION and a boolean attribute is_persistent.
4.0.1 Detailed corrections to diagrams and class text from DSTC. Z Tun 8 Jan 2003
4.0 Moved HISTORY classes to Data Structures RM. No semantic T Beale 18 Dec 2002
changes.
3.8.1 Removed SUB_FOLDER class. Now folder structure can be T Beale, 28 Oct 2002
nested separately archetyped folder structures, same as for D Kalra,
ORGANISERs. Removed AUTHORED_TA and ACQUISITION_TA D Lloyd
classes; simplified versioning. A Goodchild
3.6 Removed Common and Demographic packages to their own T Beale 28 Aug 2002
documents.
3.3.1 Simplified EHR_EXTRACT model, numerous small changes T Beale, 15 Aug 2002
from DSTC review. Z Tun
Date of Issue: 16 Aug 2008 Page 6 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
3.2 DSTC comments. Various minor errors/omissions. Changed T Beale, 25 Jun 2002
inheritance of SINGLE_EVENT and SINGLE_STATE. Z Tun
Included STRUCTURE subtype methods from GEHR. ehr_id
added to VT. Altered EHR/FOLDER attrs. Added
EXTERNAL_ID.version.
3.1 Reworking of Structure section, Action class, Instruction class. T Beale, 16 May 2002
S Heard
2.9 Additions from HL7v3 coded term model, alterations to quan- T Beale 5 May 2002
tity model, added explanation sections.
2.8.2a Interim version with various review modifications T Beale 28 Apr 2002
2.8.1 Further minor changes from UCL on v2.7. T Beale 24 Apr 2002
2.8 Dipak Kalra (UCL) comments on v2.6 incorporated. Added T Beale, 23 Apr 2002
External Package. Minor changes elsewhere. D Kalra
2.7 Final development of initial draft, including EHR_EXTRACT, T Beale 20 Apr 2002
related models
2.6 Further development of path syntax, incorporation of Dipak T Beale, 15 Apr 2002
Kalra’s comments D Kalra
2.5 Further development of clinical and record management clus- T Beale 10 Apr 2002
ters.
2.4 Included David Lloyd’s rev 2.3 comments. T Beale, 4 Apr 2002
D Lloyd
2.1 Minor organisational changes, some content additions. T Beale 18 Nov 2001
2.0 Rewrite of large sections post-Eurorec 2001 conference, Aix- T Beale 15 Nov 2001
en-Provence. Added folder, contribution concepts.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 7 of 85 Date of Issue: 16 Aug 2008
Acknowledgements
The work reported in this paper has been funded in by a number of organisations, including Univer-
sity College, London; The Cooperative Research Centres Program through the Department of the
Prime Minister and Cabinet of the Commonwealth Government of Australia; Ocean Informatics,
Australia.
Andrew Goodchild, senior research scientist at the Distributed Systems Technology Centre, Brisbane
provided valuable in-depth comments and insights on all aspects of the model during its early devel-
opment.
CORBA is a trademark of the Object Management Group
.Net is a trademark of Microsoft Corporation
Date of Issue: 16 Aug 2008 Page 8 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
1 Introduction............................................................................ 12
1.1 Purpose.................................................................................................12
1.2 Related Documents ..............................................................................12
1.3 Status....................................................................................................12
1.4 Peer review ..........................................................................................12
1.5 Conformance........................................................................................13
2 Background ............................................................................ 15
2.1 Requirements .......................................................................................15
2.1.1 Original GEHR Requirements.......................................................15
2.1.2 GEHR Australia Requirements......................................................15
2.1.3 European Synapses and SynEx Project Requirements ..................15
2.1.4 European EHCR Support Action Requirements............................16
2.1.5 ISO EHR Requirements.................................................................16
2.1.6 openEHR Requirements ................................................................16
2.2 Relationship to other Health Information Models ...............................16
2.2.1 CEN TC/251 prEN13606 ..............................................................16
2.2.2 HL7 Version 3................................................................................17
2.2.3 OMG HDTF...................................................................................17
3 The EHR Information Model ............................................... 18
3.1 Overview..............................................................................................18
4 EHR Package.......................................................................... 20
4.1 Overview..............................................................................................20
4.2 The Parts of the EHR ...........................................................................21
4.2.1 Root EHR Object...........................................................................21
4.2.2 EHR Access ...................................................................................21
4.2.3 EHR Status.....................................................................................22
4.2.4 Compositions .................................................................................22
4.2.5 Directory ........................................................................................24
4.3 Change Control in the EHR .................................................................25
4.3.1 Versioning of Compositions ..........................................................27
4.3.2 Versioning Scenarios .....................................................................27
4.4 EHR Creation Semantics .....................................................................28
4.4.1 EHR Identifier Allocation..............................................................28
4.4.2 Creation..........................................................................................28
4.5 Time in the EHR ..................................................................................29
4.6 Historical Views of the Record ............................................................30
4.7 Class Descriptions................................................................................31
4.7.1 EHR Class......................................................................................31
4.7.2 VERSIONED_EHR_ACCESS Class............................................32
4.7.3 EHR_ACCESS Class ....................................................................32
4.7.4 VERSIONED_EHR_STATUS Class.............................................33
4.7.5 EHR_STATUS Class .....................................................................33
4.7.6 VERSIONED_COMPOSITION Class..........................................34
5 Composition Package ............................................................ 35
5.1 Overview..............................................................................................35
5.2 Context Model of Recording ...............................................................35
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 9 of 85 Date of Issue: 16 Aug 2008
Date of Issue: 16 Aug 2008 Page 10 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 11 of 85 Date of Issue: 16 Aug 2008
1 Introduction
1.1 Purpose
This document describes the openEHR EHR Information Model, which is a model of an interoperable
EHR in the ISO RM/ODP information viewpoint. This model defines a logical EHR information
architecture rather than just an architecture for communication of EHR extracts or documents
between EHR systems. The openEHR definition of the EHR Extract is given in the openEHR
EHR_EXTRACT Information Model.
The intended audience includes:
• Standards bodies producing health informatics standards
• Software development groups using openEHR
• Academic groups using openEHR
• The open source healthcare community
1.3 Status
This document is under development, and is published as a proposal for input to standards processes
and implementation works.
This document is available at http://svn.openehr.org/specification/TAGS/Release-
1.0.1/publishing/architecture/rm/ehr_im.pdf.
The latest version of this document can be found at http://svn.openehr.org/specifica-
tion/TRUNK/publishing/architecture/rm/ehr_im.pdf.
Blue text indicates sections under active development.
Date of Issue: 16 Aug 2008 Page 12 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Reviewers are encouraged to comment on and/or advise on these paragraphs as well as the main con-
tent. Please send requests for information to [email protected]. Feedback should preferably be
provided on the mailing list [email protected], or by private email.
1.5 Conformance
Conformance of a data or software artifact to an openEHR Reference Model specification is deter-
mined 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, auto-
mated derivations from the Reference Model, ITS conformance indicates RM conformance.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 13 of 85 Date of Issue: 16 Aug 2008
Date of Issue: 16 Aug 2008 Page 14 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
2 Background
This section describes the inputs to the modelling process that created the openEHR Information
Model.
2.1 Requirements
There are broadly three sets of requirements which inform this model, as described in the following
subsections.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 15 of 85 Date of Issue: 16 Aug 2008
• the need to separate a generic and domain independent high-level model for the federated
health record from the (closely related) model of the meta-data which defines the domain
specific health record characteristics of any given clinical specialty and any given federation
of database schemata;
• a formalism to define and communicate (share) knowledge about the semantic hierarchical
organisation of an FHR, the permitted data values associated with each leaf node in a record
hierarchy and any constraints on values that leaf nodes may take (the Synapses Object Dic-
tionary) [28];
• the core technical requirements of and interfaces for a federation middleware service [26].
Date of Issue: 16 Aug 2008 Page 16 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
specifications, and has itself been a source of further insights and changes to the openEHR specifica-
tions. Particular areas of openEHR which have been changed due to this process include:
• change of major class names (TRANSACTION -> COMPOSITION etc; see CR-000013);
• improved model of ATTESTATION (see CR-000025);
• improved model of feeder audits (see CR-000027).
Implementation experience with Release 0.9 and 0.95 of openEHR has further improved these areas
significantly. Nevertheless, openEHR is not a copy of CEN, for two reasons. Firstly, its scope
includes systems, while EN13606 defines an EHR Extract; secondly, EN13606 suffers somewhat
from “design by committee”, and has no formal validation mechanism for its models.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 17 of 85 Date of Issue: 16 Aug 2008
3.1 Overview
FIGURE 1 illustrates the package structure of the openEHR EHR information model.
composition
content
ehr
navigation entry
Date of Issue: 16 Aug 2008 Page 18 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
PATHABLE
ehr composition
versions
ehr_access VERSIONED_ EHR_ACCESS
1..* content
EHR_ACCESS versions
0..* VERSIONED_ content
COMPOSITION CONTENT_ITEM
EHR compositions COMPOSITION 1..* *
items
audit context navigation entry
ehr_status ENTRY
AUDIT_DETAILS EVENT_CONTEXT
SECTION
versions
VERSIONED_ ADMIN_ENTRY CARE_ENTRY
EHR_STATUS EHR_STATUS
1..*
INSTRUCTION
directory
ACTION
directory versions 0..* folders EVALUATION
VERSIONED_
FOLDER 1..* FOLDER OBSERVATION
data_structure
data_type
DATA_STRUCTURE
DATA_VALUE
HISTORY ITEM_STRUCTURE
4 EHR Package
4.1 Overview
The openEHR EHR is structured according to a relatively simple model. A central EHR object identi-
fied by an EHR id specifies references to a number of types of structured, versioned information, plus
a list of Contribution objects that act as audits of change-sets made to the EHR. The high-level struc-
ture of the openEHR EHR is shown in FIGURE 3.
EHR Access
? EHR Status
EHR
Ehr_id Directory
Contributions
Compositions
Date of Issue: 16 Aug 2008 Page 20 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
VERSIONED_OBJECT<T> LOCATABLE
(rm.common.change_control) (rm.common.archetyped)
ehr
<<binding>>
<EHR_ACCESS> EHR_ACCESS
settings[1]:
VERSIONED_EHR_ ACCESS_CONTROL_
ACCESS SETTINGS
scheme[1]: String
EHR
system_id[1]: String
<<binding>>
<EHR_STATUS>
ehr_id[1]: HIER_OBJECT_ID EHR_STATUS
time_created[1]: DV_DATE_TIME
VERSIONED_EHR_ subject[1]: PARTY_SELF
ehr_access[1]: OBJECT_REF
STATUS is_queryable[1]: Boolean
ehr_status[1]: OBJECT_REF
is_modifiable[1]: Boolean
compositions[1]: List<OBJECT_REF>
other_details[0..1]:
directory[0..1]: OBJECT_REF
<<binding>> ITEM_STRUCTURE
contributions[1]: List<OBJECT_REF>
<COMPOSITION>
VERSIONED_COMPOSITION
is_persistent: Boolean
logical targets
of OBJECT_REFs
CONTRIBUTION VERSIONED_FOLDER
(rm.common.change_control) (rm.common.directory)
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 21 of 85 Date of Issue: 16 Aug 2008
Because security models for health information are still in their infancy, the openEHR model adopts a
completely flexible approach. Only two hard-wired attributes are defined in the EHR_ACCESS class.
The first is the name of the security scheme currently in use, while the second (settings attribute) is an
object containing the access settings for the EHR according to that particular scheme. Each scheme is
defined by an instance of a subclass of the abstract class ACCESS_CONTROL_SETTINGS, defined in
the Security Information Model.
4.2.4 Compositions
The main data of the EHR is found in its Compositions. The Composition concept in the openEHR
EHR originated from the Transaction concept of the GEHR project [22], [23], [24], [25], which was
based on the concept of a unit of information corresponding to the interaction of a healthcare agent
with the EHR. It was originally designed to satisfy the following needs (which include the well-
known ACID characteristics of transactions [8]):
• durability: the need for a persistent unit of information committal in the record;
• atomicity: the need for a minimal unit of integrity for clinical information, corresponding to
a minimal unit for committal, transmission and security;
• consistency: the need for contributions to the record to leave the record in a consistent state;
• isolation: the need for contributions to the record by simultaneous users not to interfere with
each other;
• indelibility: the requirement that information committed to the record be indelible in order to
support later investigations, for both medico-legal and process improvement purposes, and
the consequent requirement to be able to access previous states of the record;
• modification: the need for users to be able to modify EHR contents, in order to correct errors
or update previously recorded information (e.g. current medications, family history); and
• traceability: the need to record adequate auditing information at committal, in order to pro-
vide clinical and legal traceability.
Date of Issue: 16 Aug 2008 Page 22 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
The Transaction concept was later been renamed to “Composition”, which is the name of the equiva-
lent concept in the current CEN EN13606, and it has been expanded and more formally defined in
openEHR in two ways. Firstly, the idea of a unit of committal has been formalised by the openEHR
model of change control (see the openEHR Common Information Model); how this applies to the
EHR and compositions is described below. Secondly, the informational purpose of a Composition is
no longer just to contain data from a passing clinical event such as a patient contact, but also to cap-
ture particular categories of clinical data which have long-lived significance, such as problem and
medication lists.
Experience with health information systems, including the GEHR (Australia) project, SynEx, Syn-
apses, and inspection of common commercial systems, has shown that there are two general catego-
ries of information at the coarse level which are found in an EHR: event items, and longitudinal, or
persistent items, of which there are various kinds.
Event Compositions
Events record what happens during healthcare system events with or for the patient, such as patient
contacts, but also sessions in which the patient is not a participant (e.g. surgery) or not present (e.g.
pathology testing). FIGURE 5 illustrates a simple EHR comprising an accumulation of event Compo-
sitions.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 23 of 85 Date of Issue: 16 Aug 2008
in Sowa [12]). This is in contrast with event Compositions, which do not generally record continu-
ants, but instead record occurrents, i.e. things that were true or did happen but have no longevity.
Over time, the number of event Compositions is likely to far outstrip the number of persistent Com-
positions. FIGURE 6 illustrates an EHR containing persistent information as well as event informa-
tion.
In any clinical session, an event composition will be created, and in many cases, persistent composi-
tions will be modified. How this works is described below under Change Control in the EHR on page
25.
4.2.5 Directory
As Compositions accumulate over time in the EHR, they form a long-term patient history. An
optional directory structure can be used in the EHR to organise Compositions using a hierarchy of
Folders in much the same way files in a file system are visualised by the directory Explorer tool on
Windows and other platforms. In the openEHR model, Folders do not contain Compositions by value
but by reference. More than one Folder can refer to the same Composition. Folders might be used to
manage a simple classification of Compositions, e.g into event and persistent, or they might be used
to create numerous categories, based on episodes or other groupings of Compositions. Folder struc-
tures can be archetyped.
A simple structure showing Folders referencing Compositions is shown in FIGURE 7, in which the
following folders are used:
Subject: a composition containing clinically relevant demographic data of the patient;
Persistent: compositions containing information which is valid in the long term;
Event: compositions containing information whose currency is limited to the short term after the
time of committal;
Episode_xxx: rather than using a single ‘event’ folder, it may be convenient to group event
compositions into episodes (periods of treatment at a health care facility relating to one or
more identified problems) and/or other categories such as on the basis of type of healthcare
(orthodox, homeopathic, etc).
A justification for these particular categories is based on patterns of access. The persistent category
consists of a dozen or so compositions described above, and which are continually required by query-
ing (particularly lifestyle, current problems and medications). The event category consists of clinical
data whose relevancy fades fairly quickly, including most measurements made on the patients or in
pathology. Compositions in this category are thus potentially very numerous over the patient’s life-
time, but of decreasing relevance to the clinical care of the patient in time; it therefore makes sense to
separate them from the persistent compositions.
Regardless of the folder structure used, the folder concept in itself poses no restrictions, nor does it
add any clinical meaning to the record - it simply provides a logical navigational structure to the
Date of Issue: 16 Aug 2008 Page 24 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
(root)
subject
subject
details
persistent
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 25 of 85 Date of Issue: 16 Aug 2008
Composition for most updates, with acquisitions being the exception. Less often, updates will be
made to the EHR Access and EHR Status objects, according to the management and access control
needs of the patient and health care providers.
In general, the following requirements must always be met, regardless of the particular changes made
at any one time:
• the record should always be in a consistent informational state;
• all changes to the record be audit-trailed;
• all previous states of the record be available for the purposes of medico-legal investigation.
These requirements are satisfied in openEHR via the use of the change control and versioning facili-
ties defined in the Common Information Model. A key facet of the approach is the use of change-sets,
known as Contributions in openEHR. Applied to the EHR, they can be visualised as shown in FIG-
URE 8:
problem family care directory EHR sts
xxxx = COMPOSITION list history plan
U U
Contribution contact ’
(correction) 1/4/1999
U
• The first is due to a patient contact, and causes the creation of a new contact composition; it
also causes changes to the problem list, current medications and care plan compositions
(once again, in a differently designed record, all this information might have been contained
in a single event Composition; likewise, it might be been distributed into even more Compo-
sitions).
• The next Contribution is the acquisition of test results from a pathology laboratory.
• The third is another contact in which both family history and the folder structure are modi-
fied.
Date of Issue: 16 Aug 2008 Page 26 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
• This fourth is an error correction (e.g. a mispelled name, wrongly entered value), and shows
that there can be a Contribution even when there is no healthcare event.
• The last is an update to the EHR status information in the EHR, due to a software upgrade.
The list of Contributions made to a record is recorded along with changes to the data, so that not only
are changes to top-level objects (EHR Acces, Composition etc) captured, but the list of changes form-
ing a change set due to a user commit is always known as well.
Versioned
Compositions
VC VC
Care contact audit
Care audit contact
PlanCare audit 12/3/2001 audit
PlanCare audit 12/3/2001
Plan audit
update Plan correction
Compositions Composition
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 27 of 85 Date of Issue: 16 Aug 2008
4.4.2 Creation
When an EHR is created, the result should be a root EHR object, an EHR Status object, and an EHR
Access object, plus any other house-keeping information the versioning implementation requires. In a
normal implementation, the EHR Status and EHR Access objects would normally be created and
committed in a Contribution, just as any Composition would be. The EHR Status object has a special
status in the EHR, indicating whether the EHR should be included in querying, whether it is modifia-
ble, and by implication, whether it is active. Flags might be set to indicate that it is test record, or for
educational or training purposes. The initial creation operation has to supply sufficient parameters for
creation of these two objects, including:
Date of Issue: 16 Aug 2008 Page 28 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
• system id
• EHR id
• Subject id (optional; the use of PARTY_SELF allows completely anonymous EHRs)
• queryable flag
• modifiable flag
• any other flags required by the EHR Status object in the local implementation.
The EHR id will either be a new globally unique identifier, in the case of first time EHR creation for
this patient in the health system, or else the same identifier as an existing EHR for the same subject in
another system, in the case of an EHR move or copy. The effect of EHR copying / synchronising
between systems is that EHRs with the same identifier can be found within multiple systems. How-
ever if the same patient presented at multiple provider locations with no EHR sharing capability, a
new EHR with a unique identifier will be created at each place. If a later request for copying occurs
(e.g. due to a request for an EHR Extract) between two providers, the requesting institution will per-
form the merge of the received copy into the existing EHR for the same patient.
The main consequences in a distributed environment are as follows:
• multiple EHR ids for a given patient indicate a mobile patient, but lack of systematic EHR
sharing;
• one EHR id everywhere for the patient indicates a seamlessly integrated distributed environ-
ment, most likely with a global identification service.
Note that the first situation is not a problem, and is not the same as the situation in which two EHRs
are identified as being for different patients (i.e. subject id rather than EHR id is different) when in
fact they are for the same person.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 29 of 85 Date of Issue: 16 Aug 2008
generally
= instant event
sample/ measurement/
collection time reporting time
observation
Real-world healthcare event
commit
activities
data entry
Date of Issue: 16 Aug 2008 Page 30 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
a derivable view of the EHRs in all locations for the patient - what is sometimes called the virtual
EHR - at a given point in time, minus acquired Compositions, since these constitute (usually out-of-
date) copies of Compositions primarily available elsewhere.
It is previous informational states with which we are concerned for medico-legal purposes, since they
represent the information actually available to clinicians at a health-care facility, at a point in time.
But previous clinical views may be useful for reconstructing an actual sequence of events as experi-
enced by the patient.
CLASS EHR
The EHR object is the root object and access point of an EHR for a subject of
Purpose
care.
GEHR G1_EHR
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 31 of 85 Date of Issue: 16 Aug 2008
CLASS EHR
CLASS VERSIONED_EHR_ACCESS
Inherit VERSIONED_OBJECT<EHR_ACCESS>
Invariants
CLASS EHR_ACCESS
EHR-wide access contol object. All access decisions to data in the EHR must be
Purpose
made in accordance with the policies and rules in this object.
Inherit LOCATABLE
Date of Issue: 16 Aug 2008 Page 32 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
CLASS EHR_ACCESS
CLASS VERSIONED_EHR_STATUS
Inherit VERSIONED_OBJECT<EHR_STATUS>
Invariants
CLASS EHR_STATUS
Inherit LOCATABLE
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 33 of 85 Date of Issue: 16 Aug 2008
CLASS EHR_STATUS
Is_archetype_root: is_archetype_root
Invariants Subject_valid: subject /= Void
No_parent: parent = Void
CLASS VERSIONED_COMPOSITION
GEHR G1_VERSIONED_COMPOSITION
Inherit VERSIONED_OBJECT<COMPOSITION>
Date of Issue: 16 Aug 2008 Page 34 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
5 Composition Package
5.1 Overview
The Composition is the primary ‘data container’ in the openEHR EHR and is the root point of clinical
content. Instances of the Composition class can be considered as self-standing data aggregations, or
documents in a document-oriented system. The key information in a COMPOSITION is found in its
content, context, and composer attributes. FIGURE 11 illustrates the composition package.
PATHABLE
(rm.common.archetyped)
LOCATABLE
(rm.common.archetyped)
CONTENT_ITEM
0..1 context
EVENT_CONTEXT 0..1 PARTY_IDENTIFIED
start_time[1]: DV_DATE_TIME (rm.common.generic)
end_time[0..1]: DV_DATE_TIME health_care_facility
coded by openEHR
Terminology group location[0..1]: String
setting[1]: DV_CODED_TEXT
0..* PARTICIPATION
“setting” participations (rm.common.generic)
other_context[0..1]: ITEM_STRUCTURE
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 35 of 85 Date of Issue: 16 Aug 2008
data values
recorded in (1:1)
ENTRIES
spatial structure
recorded in (1:N)
temporal structure
organise by: SECTIONS
5.2.2 Composer
The composer is the person who was primarily responsible for the content of the Composition. This is
the identifier that should appear on the screen. It could be a junior doctor who did all the work, even if
not legally responsible, or it could be a nurse, even if later attested by a more senior clinician; it will
be the patient in the case of patient-entered data. It may or may not be the person who entered and
committed the data. it may also be a software agent. This attribute is mandatory, since all content
must be been created by some person or agent.
Since in many cases Compositions will be composed and committed by the same person, it might
seem that two identifiers COMPOSITION.composer and VERSION.audit.committer (which are both of
type PARTY_PROXY) will be identical. In fact, this will probably not be the case, because the kind of
identifier to represent the composer will be a demographic identifier, e.g. “RN Jane Williams”, “RN
12345678”, whereas the identifier in the audit details will usually be a computer system user identi-
fier, e.g. “[email protected]”. This difference highlights the different purposes of
these attributes: the first exists to identify the clinical agent who created the information, while the
second exists to identify the logged-in user who committed it to the system.
In the situation of patient-entered data, the special “self” PARTY_PROXY instance (see Common IM
generic package) is used for both COMPOSITION.composer and VERSION.audit.committer.
Date of Issue: 16 Aug 2008 Page 36 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
5.2.3.1 Overview
The optional event_context in the COMPOSITION class is used to document the healthcare event caus-
ing new or changed content in the record. Here, ‘healthcare event’ means ‘a (generally billable) busi-
ness activity of the healthcare system with, for or on behalf of the patient’. Generally this will an
encounter involving the subject of care and physician, but is variable in a hospital environment. In
this sense, a visit to a GP is a single care event, but so is an episode in a hospital, which may encom-
pass multiple encounters. The information recorded in Event context includes start and (optional) end
time of the event, health care facility, setting (e.g. primary care, aged care, hospital), participating
healthcare professionals, and optional further details defined by an archetype.
Healthcare events that require an Event_context instance in their recorded information include the
following.
• Scheduled or booked patient encounters leading to changes to the EHR, including with a GP,
hospital consultant, or other clinical professional such as mobile nurse. In this case, the
Event context documents the time and place of the encounter, and the identity of the clinical
professional.
• Case conferences about a patient, leading to modifications to the health record; here the
Event context documents the case conference time, place and participants.
• Pathology, imaging or other test process. In this case, the Event context documents the place
and period during which testing and analysis was carried out, and by whom.
• Data resulting from care in the home provided by health professional(s) (often allied health
care workers).
Situations in which Event context is optional include the following.
• Nurse interactions with patients in hospital, including checking vital signs, adjusting medi-
cation or other aspects of bed situation for the patient. Each instance of a nurse’s observa-
tions are generally not considered to be a separate ‘care event’, rather they are seen as the
continuation of the general activities of monitoring. In such situations, the overall context is
given by ADMIN_ENTRY instances in the record indicating date/time and place of admission
and discharge.
Situations in which Event context is not used include:
• Any modification to the EHR which corrects or updates existing content, including by
administrative staff, and by clinical professionals adding or changing evaluations, summa-
ries etc.
• Patient-entered data where no interaction with health professionals took place; typically
readings from devices in the home such as weighing scales, blood glucose measuring
devices, wearable monitors etc.
Ultimately, the use of Event context will be controlled by Composition-level archetypes.
5.2.3.2 Occurrence in Data
For situations requiring an EVENT_CONTEXT object to be recorded, it is worth clarifying which Com-
positions carry such objects. Consider the example shown in FIGURE 13. In this example, a Contri-
bution is made to the EHR, consisting of one or more Compositions that were each created or
modified due to some clinical activity. Within such a set, there will usually be one Composition relat-
ing directly to the event, such as the patient contact - this is the Composition containing the doctor’s
observations, nurses’ activities etc, during the visit, and is therefore the one which contains the
EVENT_CONTEXT instance. Other Compositions changed during the same event (e.g. updates to med-
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 37 of 85 Date of Issue: 16 Aug 2008
ication list, family history and so on) do not require an Event context, since they are part of the same
Contribution, and the event context of the primary Composition can always be retrieved if desired.
Contributions A, B and C in the figure illustrate this case.
problem family care folders EHR sts
xxxx = COMPOSITION
list history plan
U U
A EC
Contribution contact problem care
(event) 1/4/1999 list ’ plan ’
B EC
Contribution test results
(acquisition) 1/2/2000
U U U
C EC
contact family care folders
Contribution
(event) 12/3/2001 history ’ plan ’’
time
C
D
Contribution contact ’
(correction) 1/4/1999
U
E
env
Contribution
(s/w upgr.)
In cases where Contributions are made to the record with no event context, the Event context of any
Compositions from the original commit will remain intact and visible (unless the correction is to the
event context itself of course), and will correctly reflect the fact that no new clinical interaction
occurred. This is the case with Contribution D in the figure.
Persistent Compositions do not have an Event context.
5.2.3.3 Time
The times recorded in the Event context represent the time of an encounter or other activity under-
taken by a health provider to/for/on behalf of the patient. The time is represented as a mandatory start
time and optional end time. It is assumed that where there is a clinical session (i.e. an
EVENT_CONTEXT object does exist), the start time is known or can be reasonably approximated. It is
quite common that the end time of a consultation or encounter is not recorded, but rather inferred
from e.g. average consult times, or the start time of the next consult for the same physician.
Event context is used as described above even if the additions are made to the EHR long after the
event took place, such as happens when a doctor writes his/her notes into the record system at night,
after all patients have been seen. In such cases, the versioned Composition audit trail records the con-
text of when the data were entered, as distinct from the context of when the clinical interaction took
place.
Date of Issue: 16 Aug 2008 Page 38 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
5.2.3.4 Participations
As part of the Event context, the participations attribute can be used to describe who participated, and
how. Each participation object describes the “mode” of participation as well, such as direct presence,
video-conference and so on. In many cases such information is of no interest, since the subject of any
Entry is known (ENTRY.subject) and the clinician will be known (COMPOSITION.composer), and the
mode of communication is assumed to be a personal encounter. The participations attribute is there-
fore used when it is desired to record further details of how the patient and or physician interacted
(e.g. over the internet), and/or other participants, such as family, nurses, specialists etc.
There are no general rules about who is included as a participant. For example, while there will be a
patient participation during a GP visit, there will be no such participation recorded when the clinical
event is a tissue test in a laboratory. Conversely, a patient might record some observations and drug
self-administration in the record, in which case the composer will be the patient, and there will be no
clinician participation. Consequently, the use of participations will mostly be archetype-driven.
5.2.3.5 Healthcare Facility, Location and Setting
The health_care_facility (HCF) attribute is used to record the health care facility in whose care the
event took place. This is the most specific identifiable (i.e. having a provider id within the health sys-
tem) workgroup or care delivery unit within a care delivery enterprise which was involved in the care
event. The identification of the HCF can be used to ensure medico-legal accountability. Often, the
HCF is also where the encounter physically took place, but not in the case of patient home visits,
internet contacts or emergency care; the HCF should not be thought of as a physical place, but as a
care delivery management unit. The physical place of care can be separately recorded in
EVENT_CONTEXT.location. The health_care_facility attribute is optional to allow for cases where the
clinical event did not involve any care delivery enterprise, e.g. self-care at home by the patient, emer-
gency revival by a non-professional (e.g. CPR by lifeguard on a beach), care by a professional acting
in an unofficial capacity (doctor on a plane asked to aid a passenger in difficulty). In all other cases, it
is mandatory. Archetypes are used to control this.
Two other context attributes complete the predefined notion of event context in the model: location
and setting. The location attribute records: the physical location where the care delivery took place,
and should document a reasonably specific identifiable location. Examples include “bed 5, ward E”,
“home”. This attribute is optional, since the location is not always known, particularly in legacy data.
The setting attribute is used to document the “setting” of the care event. In clinical record keeping,
this has been found to be a useful coarse-grained classifier of information. The openEHR Terminol-
ogy “setting” group is used to code this attribute. It is mandatory, on the basis that making it optional
will reduce its utility for querying and classification.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 39 of 85 Date of Issue: 16 Aug 2008
information. This can be achieved using Compositions with event context, and no
further content.
• it may contain one or more SECTIONs which are defined in the archetype of the Composi-
tion;
• it may contain one or more SECTION trees, each of which is a separately archetyped struc-
ture;
• it may contain one or more ENTRYs directly, with no intermediate SECTIONs;
• it may be any combination of the previous three possibilities.
The actual structures used in a Composition at runtime are controlled by a template, which in turn
controls the particular combination of archetypes used.
CLASS COMPOSITION
CEN Composition
GEHR G1_COMPOSITION_VERSION
Inherit LOCATABLE
Date of Issue: 16 Aug 2008 Page 40 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
CLASS COMPOSITION
CLASS EVENT_CONTEXT
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 41 of 85 Date of Issue: 16 Aug 2008
CLASS EVENT_CONTEXT
HL7v3 TBD
Inherit PATHABLE
Date of Issue: 16 Aug 2008 Page 42 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
6 Content Package
6.1 Overview
The content package contains the CONTENT_ITEM class, ancestor class of all content types, and the
navigation and entry packages, which contain SECTION, ENTRY and related types. The content
package is illustrated in FIGURE 14.
LOCATABLE
(rm.common.archetyped)
content
CONTENT_ITEM
navigation entry
Inherit LOCATABLE
Invariants
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 43 of 85 Date of Issue: 16 Aug 2008
7 Navigation Package
7.1 Overview
The navigation Package defines a hierachical heading structure, in which all individual headings
are considered to belong to a “tree of headings”. Each heading is an instance of the class SECTION,
illustrated in FIGURE 15.
LOCATABLE
(rm.common.archetyped)
0..* items
COMPOSITION CONTENT_ITEM
(rm.ehr.composition) content (rm.ehr.composition.content) *
navigation
SECTION
Date of Issue: 16 Aug 2008 Page 44 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
ARCHETYPE_ COMPOSITION
DETAILS
ARCHETYPE_ SECTION
DETAILS
SECTION
SECTION SECTION
E E
E E
ARCHETYPE_ SECTION E
DETAILS
E
SECTION
SECTION
= extent of archetype E
CLASS SECTION
CEN Headed_section
GEHR G1_ORGANISER
Inherit CONTENT_ITEM
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 45 of 85 Date of Issue: 16 Aug 2008
CLASS SECTION
Date of Issue: 16 Aug 2008 Page 46 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
COMPOSITION
n = “patient contact”
m = at0000 (patient contact)
content
SECTION
n = “SOAP headings”
m = at0001 (SOAP headings)
items
SECTION
items
n = “diabetes”
m = at0000 (problem)
OBSERVATION
n = “weight”
items m = at0000 (weight)
SECTION
items
n = “back”
m = at0000 (problem)
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 47 of 85 Date of Issue: 16 Aug 2008
8 Entry Package
published 1 administrative
evidence observations
base 2 patient
opinions
- assessment actions 4
personal - goals
knowledge - plan
base instructions investigator
agents
investigator 3
FIGURE 18 Clinical Investigator Recording Process
This figure shows the cycle of information created by an iterative, problem solving process under-
taken by a “clinical investigator system”, which consists of health carers, and may include the patient
(at points in time when the patient performs observational or therapeutic activities).
Starting from the patient (right hand side of figure) observations are made, which lead to opinions on
the part of the investigator, including assessment of the current situation, goals for a future situation,
and plans for achieving the goals. Personal and published evidence and knowledge almost always
play an important part in this process. The latter lead to instructions designed to help the patient
achieve the goals. A complex or chronic problem may take numerous iterations - possibly a whole
lifetime’s worth - with each step being quite small, and future steps depending heavily on past
progress. The role of the investigator (and associated agents) is normally filled by health care profes-
sionals, but may also be filled by the patient, or a guardian or associate of the patient. Indeed, this is
what happens every time a person goes home from the pharmacy with prescribed medication to take
at home.
The process illustrated in FIGURE 18 is a synthesis of the “problem-oriented” approach of Weed [16]
and the “hypothetico-deductive model” of clinical reasoning described by Elstein et al [6]. However,
as pointed out in Elstein & Schwarz [7], hypothesis-making and testing is not the only successful
process used by clinical professionals - evidence shows that many (particularly those older and more
experienced) rely on pattern recognition and direct retrieval of plans used previously with similar
Date of Issue: 16 Aug 2008 Page 48 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
patients or prototype models. The investigator process is compatible with both cognitive approaches,
since it does not say how opinions are formed, nor imply any specific number or size of iterations to
bring the process to a conclusion. As such, the openEHR information model does not impose any
process model, only the types of information used.
On the basis of this process, a Clinical Investigator Recording ontology is developed [4], as shown in
FIGURE 19. From this ontology, the openEHR class model for Entries is derivde. The openEHR
Entry class names are annotated next to their originating ontological categories.
EVALUATION INSTRUCTION
cognitive/temporal
history opinion instruction
categories
OBSERVATION ACTION
observation/ action proposal investigation intervention
observation assessment
intervention request request
categories
The key top-level categories in the ontology are ‘care information’ and ‘administrative information’.
The former encompasses all statements that might be recorded at any point during the care process,
and consists of the major subcategories ‘history’, ‘opinion’ and ‘instruction’, which themselves corre-
spond to the past, present and future in time (ISO TC215 uses the terms ‘retrospective’, ‘current’ and
‘prospective’). The administrative information category covers information which is not generated by
the care process proper, but relates to organising it, such as appointments and admissions. This infor-
mation is not about care, but about the logistics of care being delivered. Categories that relate to the
patient system as observed and understood are shown as white bubbles, while categories that relate to
intervention into the patient system are shown as shaded. The opinion category has features of both
passive analysis and active intervention.
There are two key justifications for using the ontology of FIGURE 19 as a basis for class design.
Firstly, although for all categories in the ontology there is a meaning for ‘contextual’ attributes of
time, place, identity, reason and so on, each category has a different structure for these attributes. For
example, time in the Observation category has a linear historical structure, whereas in Instruction it
has a branching, potentially cyclic structure. The separation of types allows these contextual
attributes to be modelled according to the type. Secondly, the separation of types provides a system-
atic solution to the so-called problem of “status” or “meaning modification” of clinical statement val-
ues, as described below.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 49 of 85 Date of Issue: 16 Aug 2008
Date of Issue: 16 Aug 2008 Page 50 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Basic information (dob, sex, height, weight, pregnant etc): recorded as Observations and/or
Admin_entries;
Problem list: maintained as one or more Evaluations which themselves are generated by
clinicians as a rsult of observations made elsewhere in the record;
Medications list: derived from Instructions and Actions in the record. The status of Actions
allows medications to be displayed as past, current, suspended etc.
Therapeutic precautions (allergies and alerts): recorded as Evaluations of various kinds
(adverse reactions are essentially a kind of diagnosis);
Patient preferences: recorded as Evaluations (since they act like contra-indications for certain
drugs or treatments);
Patient consents: recorded as instances of Admin_entry;
Family history:
- actual events / conditions in family members are recorded as Observations (e.g. father
died of MI at 62)
- patient risks are expressed using Evaluations, often including family history reasons.
Social history/situation: current and previous social situation (e.g. in nursing care, details of
feeding, sleeping arrangments) are documented as Observations.
Lifestyle: there are various Observation archetypes for recording aspects of lifestyle, including
exercise, smoking/tobacco, alcohol, drug use and so on.
Vaccination record: vaccinations are a kind of Instruction; vaccinations that have actually been
given are available as Actions in the record.
Care plan: combinations of goals, targets (Evaluations), monitoring, education (Instructions),
etc orgnanised in a care plan Section hierarchy.
The remaining vast majority of remaining clinical information is recorded inside event Compositions,
and includes the following:
laboratory results including imaging: recorded as Observations;
physical examinations: recorded as Observations
appointment, admission and discharge: recorded as Admin_entry
prescriptions: one or more medication orders (each one is an Instruction) within a prescription
Section structure, within a prescription Composition.
referrals: recorded as Instructions (i.e. a request for care by another provider).
The above concepts are defined in terms of archetypes of Entry and other reference model types in
openEHR; their definition is therefore completely separate from the reference model.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 51 of 85 Date of Issue: 16 Aug 2008
• identifiers and/or names of health care provider individuals and organisations may be stored
directly in the EHR, regardless of whether there is also more detalied information about
such entities in the demographic system.
The model of all information intended for a separate openEHR demographic service (itself usually a
front-end to an existing hospital master patient index or similar) is defined in the openEHR Demo-
graphic Information Model.
Date of Issue: 16 Aug 2008 Page 52 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
LOCATABLE
(rm.common.archetyped)
CONTENT_ITEM
(rm.composition.content)
entry
coded by openEHR ENTRY
codeset “languages” language[1]: CODE_PHRASE
encoding[1]: CODE_PHRASE
coded by openEHR
codeset “character sets” subject[1]: PARTY_PROXY
provider[0..1]: PARTY_PROXY
other_participations[0..1]: List<PARTICIPATION>
workflow_id[0..1]: OBJECT_REF
subject_is_self: Boolean
ADMIN_ENTRY CARE_ENTRY
data[1]: ITEM_STRUCTURE protocol[0..1]: ITEM_STRUCTURE
guideline_id[0..1]: OBJECT_REF
Note that the term ‘provider’ as used here should not be confused with the more specific healthcare
term used in many english-speaking countries meaning ‘health care provider’, which is usually
understood to be a physician or healthcare delivery enterprise such as a hospital. In the model here, it
simply means ‘provider of information’ in the context of an Entry. The information provider is
optional, and in many cases will not be recorded, since it will be obvious from the composer and
other_participations of the enclosing Composition. In many cases, it is not sensible to record a pro-
vider, e.g. in the most mundane case where a GP asks “where does it hurt” and the patient says “here”
- in such cases, it can only be considered mutual. It is expected to be used only when the composer of
the Composition really needs to specify the origin of specific statements, such as in the following cir-
cumstances:
• the information provider is specifically accountable for the Entry data (it is their opinion,
their decision, they carried out the test etc) - they might also need to attest it;
• the information provider is an authoritative source, or has provided information from a
unique perspective (e.g. the view of a spouse/ carer on the patient's functional health status
or mental state);
• the information provider’s view might not reflect the consensus (e.g. a patient opinion not
held by the composer, a difference between father and mother on a description of a child's
sleeping pattern);
• the information provider is not one of the Composition-level participants (e.g. an outside
information provider such as someone telephoned during the encounter to provide a lab
result, or an automated measurement device, or a decision support software component).
Date of Issue: 16 Aug 2008 Page 54 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
8.2.3 Observation
Instances of the OBSERVATION class record the observation of any phenomenon or state of interest to
do with the patient, including pathology results, blood pressure readings, the family history and social
circumstances as told by the patient to the doctor, patient answers to physician questions during a
physical examination, and responses to a psychological assessment questionnaire. Observations are
distinguished from Actions in that Actions are interventions whereas Observations record only infor-
mation relating to the situation of the patient, not what is done to him/her.
The significant information of an Observation is expressed in terms of “data”, “state” and “protocol”.
The first of these is recorded in the data attribute, defined as follows:
data: the actual datum being recorded; expressed in the form of a History of Events, each of
which can be a complex data structure such as a List, Table, Single (value), or Tree, in its
own right. Examples include blood pressure, heartrate, ECG traces.
State information can be recorded in the state attribute of Observation, or within the state attribute of
each Event in the Observation data attribute (see below and also Data Structures IM for more detailed
explanations). The state attribute in Observation is defined as follows:
state: any particular information about the state of the subject of the Entry necessary to correctly
interpret the data, which is not already known in the health record (i.e. facts such as the
patient being female, pregnant, or currently undergoing chemotherapy). For example,
exersion level (resting, post-marathon...), position (lying, standing), post- glucose challenge,
and so on. The form of the state attribute is the same as that of the data attribute: a History
of Events of Item_structures.
The inherited protocol attribute is defined as follows:
protocol: details of how the observation was carried out, which might include a particular
clinical protocol (e.g. Bruce protocol for treadmill exercise ECG) and/or information about
instruments other other observational methods. This information can always be safely
omitted from the user interface, i.e. has no bearing on the interpretation of the data.
The detailed semantics of Observation data are described in the following subsections.
8.2.3.1 Timing in Observations
Many health information models express observation time as one or more attributes with names like
‘observation_time’, ‘activity_time’ and so on. The openEHR model departs from this by modelling
historical time inside a History/Event structure defined in the data_structures.history pack-
age1. In short, this package defines the HISTORY class with an origin attribute, and a series of EVENT
instances each containing a time attribute. Instantaneous and interval events are distinguished via the
EVENT subtypes POINT_EVENT and INTERVAL_EVENT; interval events have the width attribute is set
to the duration of the interval.
8.2.3.2 Valid Contents of a History
One of the aims of the model of Observation described here is to represent in the same way single
sample and multi-sample time-based data for which measurement protocol is invariant. It is not
intended for measurements in “coarse” time taken by different people, different instruments, or with
any other difference in data-gathering technique. In these cases, separate, usually single-sample histo-
ries are used, usually occurring in distinct container objects (e.g. distinct Compositions, in the EHR).
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 55 of 85 Date of Issue: 16 Aug 2008
Accordingly, in the general practice setting, the use of HISTORY will correspond to measurement
series which occur during the clinical session (i.e. during a patient contact). In a hospital setting,
nurses’ observations might occur in 4-hourly intervals, and there is no well-defined clinical session -
simply a series of ENTRYs during the time of the episode. Two approaches are possible here.
• If each Observation is to be committed to the EHR as soon as it is made, the result will be
distinct COMPOSITIONs in time, each with its event_context corresponding to the period of
the nurse’s presence. Each Composition will contain one or more Observations, each con-
taining in their data a History of one sample of the measured vital sign.
• If Observations are not committed to the EHR immediately, but are stored elsewhere and
only committed (say) at the end of each day, then the result will be a single Composition
whose event_context corresponds to the total data gathering period, and which contains
Observations whose data are multi-event Histories representing the multiple measurements
made over the day.
Whether time-based data remain outside the record until a series of desired length is gathered, or
entered as it occurs is up to the design of applications and systems; the approach taken should be
based on the desired availability of the data in the system in question. If for example, it must be visi-
ble in the EHR as soon as the appropriate Compositions are written, then it should be represented as
Histories in each relevant Composition; if it need only be available at some much later point in time
(e.g. because it is known that no-one but the treating clinician is interested in it), then it can be stored
in another system until sufficient items have been gathered for committal to the EHR.
8.2.3.3 Clinical Semantics of Event Time
In most cases, the times recorded in a History (HISTORY.origin and EVENT.time, width) can be
thought of as “the times when the observed phenomena were true”. For example, if a pulse of 88bpm
is recorded for 12/feb/2005 12:44:00, this is the time at which the heartrate (for which pulse is a sur-
rogate) existed. In such cases, the sample time, and the measuring time are one and the same.
However in cases where the time of sampling is different from that of measurement, the semantics are
more subtle. There are two cases. The first is where a sample is taken (e.g. a tissue sample in a needle
biopsy), and is tested later on, but from the point of view of the test, the time delay makes no differ-
ence. This might be because the sample was immediately preserved (e.g. freezing, placed in a sterile
anaerobic transport container), or because even if it decays in some way, it makes no difference to the
test (e.g. bacteria may die, but this makes no difference to a PCT analysis, as long as the biological
matter is not physically destroyed).
The second situation is when the sample does decay in some way, and the delay is relevant. Most such
cases are in pathology tests, where presence of live biological organisms (e.g. anaerobic bacteria) is
being measured. The sample time (or ‘collection’ time) must be recorded. Depending on when the
test is done, the results may be interpreted differently.
The key question is: what is the meaning of the HISTORY.origin and EVENT.time attributes in these
situations? It is tempting to say that their values are (as in other cases) just the times of the actual act
of observation, e.g. microscopy, chromatography etc. However, there are two problems with this.
Firstly, and most importantly, all physical samples must be understood as being indirect surrogates
for some aspect of the patient state at the time of sampling, which cannot be observed by direct,
instantaneous means in the way a pulse can be taken. This means that no matter when the laboratory
work is done, the time to which the result applies is the sample time. It is up to the laboratory to take
into account time delays and effects of decay of samples in order to provide a test result which cor-
rectly indicates the state of the patient at the time of sampling. The common sense of this is clear
when one considers the extreme case where the patient is in a coma or dead (possibly for reasons
Date of Issue: 16 Aug 2008 Page 56 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
completely unrelated to the problem being tested for) by the time laboratory testing actually occurs;
however, the test result indicates the situation at the point in time when the sample was taken, i.e.
when the patient was alive. The second reason is that some kinds of testing are themselves lengthy.
For example fungal specimens require 4-6 weeks to confirm a negative result; checks will be made on
a daily or weekly basis to find positive growth. However, the result data reported by the laboratory
(and therefore the structure of the Observation) is not related to the timing of the laboratory testing; it
is reported as being the result for the time of collection of the specimen from the patient.
The meaning therefore of the HISTORY.origin and EVENT.time attributes in openEHR is always the
time of sampling. Where delays between sample and measurement times exist and are significant,
they are noted in the protocol section of the Observation; such times are modelled in the appropriate
archetypes, and taken into account in results.
8.2.3.4 Two ways of Recording State
State information is optional, and is not needed if the data are meaningful on their own. If it is
recorded, it can either be as a History of its own (i.e. using the OBSERVATION.state atttribute
described above), or else as state values within the EVENT instances in the OBSERVATION.data His-
tory. Both methods are useful in different circumstances. A separate state history is more likely to be
used in a correlation study such as a sports medicine study on heartrate with respect to specific types
of exercise. In this method, the state information is a History of Events whose times and widths need
not match those of the History in the data attribute. The state data under this approach generally
express the condition of the subject in absolute terms, i.e. they are standalone statements about the
subject’s state at certain points in time, such as “walking on treadmill 10km/h, 10o incline”.
The other method will be used in most general medicine, e.g. for recording fasting and post glucose
challenge states of a patient undergoing a glucose tolerance test. (See the Data Structures Information
Model for more details). State values stored within the data History represent the situation in the sub-
ject at the time of the Event within the History and usually in relation to it, for example “post 8 hour
fast”. Recording the latter example in an independent state History would require an Event of 8 hours’
duration called ‘fast’. The latter would be technically still correct, but would be very unnatural to
most clinicians. FIGURE 21 illustrates the two methods of recording state.
8.2.4 Evaluation
According to the ontology described in [4], the Opinion category covers a number of concrete con-
cepts, as follows.
problem/diagnosis: the assignment of a known diagnosis or problem label to a set of observed
signs and symptoms in the patient, for the purpose of determining and managing treatment.
The physician will usually include a date of initial onset, date clinically recognised, date of
last occurrence, date of resolution of last occurrence and possibly other timing information.
risk assessment: an evaluation of the likelihood and timing of a certain event occurring or
condition appearing.
scenario: an opinion about the outcome if a certain intervention is proceeded with.
goal: statement of a target, and a time at which it should be reached.
recommendation: a description in general terms of a suggested care approach for the patient,
based on diagnosis; includes various times or time-periods for activities, such as monitoring,
taking of medications, and review.
The approach taken to modelling these concepts in openEHR is heavily based upon the development
of archetypes for assessments such as “diagnosis” (various kinds), “goal”, “adverse reactions”,
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 57 of 85 Date of Issue: 16 Aug 2008
state at time of each event state data state data state data
HISTORY
origin
EVENT EVENT
time time
independent state information
data data
Date of Issue: 16 Aug 2008 Page 58 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 59 of 85 Date of Issue: 16 Aug 2008
former specify an Instruction, while instances of the latter describe steps which have actually been
performed.
The second principle is the use of a standard instruction state machine (ISM) defining standardised
states and transitions for each Activity of an Instruction, no matter what its clinical meaning. The use
of standardised states means that the execution state of any given Activity can be characterised in
exactly the same way (e.g. ‘planned’, ‘active’, etc), and that it is therefore possible to query the EHR
and find out all interventions of any kind in a particular state. The ISM is formally modelled in
openEHR. The Instruction itself can also be considered to be in a state derived from the states of its
Activities. An informal description of this aggregate state machine is given below.
The third principle is to provide a way of mapping steps in any care pathway process (i.e. healthcare
business process) to states in the Instruction state machine. A care pathway process covers the
entirety of steps required to effect an Instruction, for example prescribing, booking, dispensing, refer-
ring, suspension etc. Any such step when performed leaves the relevant Instruction in one of the
states of the ISM.
The fourth principle is to support the expression of the formal workflow definition for an Instruction,
where full automation is required. It must be recognised that automation of most therapies and drug
admnistration, as well as other interventions like biopsies is minimal today, and is likely to remain so
for some time. This is for the simple reason that the cost of automating most tasks is prohibitive com-
pared to human execution, particularly when Instruction activities can often be executed by health-
care professionals already present for other reasons (e.g. ward nurses). It also has to be said that
serious research into the use of workflow automation in healthcare is only quite recent, and that so far,
there are no standard models for clinical workflow. In the openEHR approach to modelling workflow,
such uncertainty is dealt with in two ways. Firstly, formal workflow specification of an Instruction is
an optional addition to the base model of Instruction and Action classes, and is not required to obtain
a basic level of computability, including use of the ISM. Secondly, the formal expression of workflow
is in the form of parsable syntax rather than objects. This is a generally appropriate design choice,
since the safest and most convenient persistent form of of a complex formalism is the syntax form
rather than the parsed fine-grained object form; this both optimises storage and allows for changes in
the syntax over time.
8.2.5.3 Model Overview
Instruction definitions are modelled in terms of the INSTRUCTION and ACTIVITY classes, with
optional workflow attributes. These two classes carry the basic information relating to an Instruction,
with all formal workflow definition expressed in parsable syntax in the INSTRUCTION.wf_definition
attribute. An INSTRUCTION instance includes the narrative description of the Instruction, and a list of
ACTIVITY instances. It also includes all the attributes inherited from the CARE_ENTRY class, includ-
ing subject, participations and so on.
Many Instructions will have only one Activity, usually describing a medication to be administered
and its timing. Some will have more than one drug or therapy, such as the typical 3 drug Losec-HP
regime for treating ulcers, and multi-drug chemotherapy. The base Instruction model does not explic-
itly try to indicate the exact order, serial or parallel administration, or other dependencies, since the
knowledge of how to administer the drugs is known by the relevant clinicians, and/or contained in
published guidelines. However, the timing information in each Activity does indicate times, days and
the usual specifications of “with meals” etc. The timing information is also sufficient to specify a
three drug chemotherapy regime, by indicating which days each drug is administered on. It is only
when the Instruction is to be automated by a workflow engine that the full structure of the Activity
graph will be given. Activity instances may be completely absent from an Instruction, in which case
Date of Issue: 16 Aug 2008 Page 60 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
only the narrative will be present. This will typically occur with imported legacy data which itself has
no structured representation of medications.
There are three possible levels of representation of an Instruction, as shown in FIGURE 22. These are
the minimal narrative-only level, a level with formal representation of Instruction activities by
ACTIVITY instances, and a level where a formal workflow definition can also be used. It is expected
that the vast majority of openEHR systems for the forseeable future will support only the minimal and
basic levels.
(narrative basic (computable (computable
minimal full workflow)
only) activities)
wf definition
INSTRUCTION INSTRUCTION INSTRUCTION
narrative: xxxx narrative: xxxx narrative: xxxx
activities activities
ACTIVITY ACTIVITY
ACTIVITY ACTIVITY
ACTIVITY ACTIVITY
FIGURE 23 illustrates the correspondence between Instruction and Activity structures, and Action
objects that are created due to executing the instructions. Each Activity has a standard Instruction
State Machine logically associated with it, indicated in blue. When any step in an Instruction Activity
is executed within an ICT-supported environment, an ACTION instance describing what was done
should be created and committed to the EHR. In some cases, ad hoc Actions are created even when
there is no Instruction, such as by self-medicating patients and nurses reacting quickly to patient
changes. For such Actions, there is always a notional Activity understood by the health professional.
INSTRUCTION
ISM
ACTION ACTION
ACTIVITY 2aug2008 12::00 6aug2008 15::45
ISM ACTION
13sep2008 11:23
= state transition
All ACTIONs include the inherited CARE_ENTRY attributes, along with the time of being performed, a
description of what was performed, and an ISM_TRANSITION object indicating the state of the
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 61 of 85 Date of Issue: 16 Aug 2008
Activity (whether explicit in an Instruction or not). The current state of an Activity is thus found not
in the ACTIVITY instance but in the most recent ACTION instance for that Activity.
If the Action did correspond to an Instruction, it will also include an INSTRUCTION_DETAILS
instance, which indicates which Activity of which Instruction was executed, including workflow exe-
cution details if relevant.
Under this scheme, the state of each intervention happening to the patient can be ascertained by que-
rying, regardless of whether explicit Instructions exist..
Note particularly that Actions are often performed in a different provider location, or the home, rather
than the provider organisation responsible for the Instruction. Action objects for a given Instruction
can thus easily appear in multiple health record systems.
8.2.5.4 The Standard Instruction State Machine (ISM)
When an intervention defined by an Activity is unfolding in a clinical context, EHR users want to
know things such as the following:
• what is the current step in the Activity for the patient?
• for a given patient, what Activities are planned, active, suspended, completed?
• for the populations of patients, what is the state of a particular workflow, such as a recall, for
each one?
The approach chosen here to support such functionality is to define a standard instruction state
machine whose state transitions can be mapped to the steps of a specific care pathway, enabling it to
be used as a descriptive device for indicating the state of any Activity. The state machine is illustrated
in FIGURE 24. This state machine is the result of long term experience with clinical workflows and
act management systems. The states are as follows1.
INITIAL: initial state, prior to planning activity (default starting state for computable
representation of state machine).
PLANNED: the action has been described, but has not as yet been performed.
POSTPONED: the action has not been performed and will not without specific conditions being
met. Specifically, events and conditions that would normally ‘activate’ the instruction will
be ignored, until a restore event occurs.
SCHEDULED: the action will be performed at some designated future time, and has been booked
in a scheduling system.
CANCELLED: the action was defined, but was cancelled before being performed.
ACTIVE: the action is being performed according to its definition. The entire course of
medication or therapy corresponds to this state.
SUSPENDED: the action was begun, but has been stopped temporarily, and will not be restarted
until explicitly resumed.
ABORTED: the action began but was permanently terminated before normal completion.
COMPLETED: the action began and was completed normally.
EXPIRED: the time during which the action could have been relevant has expired; the action
may have completed, been cancelled, or never occurred.
1. The SCHEDULED state was inspired by Van de Velde & Degoulet , Fig 5.5 [15]
Date of Issue: 16 Aug 2008 Page 62 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
time_out
postponed_step suspended_step
time_out
POSTPONED SUSPENDED EXPIRED
scheduled_step
restore postpone
restore SCHEDULED resume time_out notify_
postpone suspend completed
start
schedule schedule
initiate start finish
INITIAL PLANNED ACTIVE COMPLETED
plan_step active_step
cancel cancel do
abort notify_aborted
start abort
Transition legend
blue: normal state changing event red: time-out event
dark blue: normal non-state changing event magenta: post time-out event
green: scheduling-related transitions
States CANCELLED, ABORTED and COMPLETED are all terminal states. The EXPIRED state is a pseudo-
terminal state, from which transitions are allowed to proceed to any of the true terminal states, due to
information being received after the fact (such as a patient reporting that they did indeed finish a
course of antibiotics). However it is likely in the EHR that Instructions for many simple medications
will finish in the EXPIRED state and remain there.
The transitions are self-explanatory for the most part, however a few deserve comment. The start and
finish events correspond to situations when the administration is not instantaneous, as is the situation
with most medications. The do event is equivalent to the finish event occurring immediately after the
start event, corresponding to an instantaneous administration, completion of which puts the Activity
in the completed state. A single shot vaccination or patient taking a single tablet are typical examples.
The states PLANNED, POSTPONED, ACTIVE, SUSPENDED, each have a xxx_step transition which
return the state machine to the same state. Workflow steps that cause no transition are mapped to
these events and thus leave the Instruction in the same state. An example is a medication review,
which will leave the medication in the ACTIVE state, if the physician chooses to continue.
In the future, if delegation of an Instruction to another Instruction is required, nesting of a new
Instruction state machine within the Active state of a previous one might need to be supported.
The state machine states and transition names are defined in the openEHR terminology groups
“Instruction states” and “Instruction transitions” respectively.
8.2.5.5 Instruction Aggregate State
Each Activity within an Instruction constitutes a clinically identifiable medication or therapy of some
kind, while the Instruction usually corresponds to a grouping or combination of therapies designed to
treat an overall problem. Accordingly, the Instruction can be seen as having an aggregate state derived
from the states of the Activities, as shown in FIGURE 25. The rules for entering each aggregate state
are indicated in terms of the states of the constituent Activities.
INACTIVE
This state machine is not formally modelled or coded in openEHR, although it may be useful to do so
within an application.
8.2.5.6 Careflow Process to State Machine Mapping
From a health professional’s point of view, a healthcare workflow, or ‘careflow’, consists of steps and
events designed to meet one or more goals. The steps are highly dependent on the particular kind of
workflow, and will usually be named in terms familiar to the relevant kinds of clinical professionals,
such as “prescribe”, “book”, “suspend” and so on (note that some of these names may be the same as
ISM transitions, but may or may not indicate the same thing). However, the need of users of health
information is to know what state the execution of an Instruction is in, regardless of which particular
careflow step might have just been executed. This is achieved by defining the mapping between the
Date of Issue: 16 Aug 2008 Page 64 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
steps of a particular careflow to the states of the ISM in an Action archetype. When each Action cor-
responding to a particular Instruction Activity is performed, it will be known both which careflow
step it corresponds to and which ISM state the Activity is now in. The following table provides an
example of the mapping for a UK GP medication order workflow.
UK GP
State machine transition
Workflow Step
Start initiate (initial -> planned)
Prescribe planned_step (planned -> planned)
Dispense start (planned -> active)
Administer active_step (active -> active)
Request Renewal active_step (active -> active)
Re-issue active_step (active -> active)
Review active_step (active -> active)
Finish finish (active -> completed)
Cancel abort (active -> aborted)
Mappings like this are specified in the archetypes for the Instruction. When an ACTION instance is
committed to the EHR, the ISM_TRANSITION object records the step performed and the ISM state
and transition. The careflow step must be one of the steps from the corresponding Instruction. See
Relationship to Archetypes on page 65 for details of how archetypes are used to represent such map-
pings.
8.2.5.7 Relationship to Archetypes
Much of the semantics of particular Instructions and Actions derive from archetypes. Currently,
archetypes are used to define two groups of Instruction semantics. The first is the descriptions of
activities that are defined in Instructions (ACTIVITY.description) and executed in Actions
(ACTION.description). These descriptions are always of the same form for any given Instruction, and
it is highly desirable to have the same archetype component for both. An example is where the
description is of a medication, commonly consisting of a tree or list of ten or more elements describ-
ing the drug, its name, form, dose, route and so on. The same information structure is needed in the
Instruction, where it defines what is to be administered, and in the Action, where it describes what has
been administered. In any particular instance, there may be small differences in what was adminis-
tered (e.g. dose or route are modified) even though the archetype model will be the same for both.
In terms of archetypes therefore, definition of say two ACTIVITIES in an INSTRUCTION (see exam-
ple illustrated in FIGURE 26) will actually create separate archetypes of the Activity structures, each
of which will be one of the subtypes of ITEM_STRUCTURE (since this is the type of ACTIV-
ITY.description and ACTION.description). The archetypes will then be used by both the INSTRUC-
TION archetype and the ACTION archetype, via the archetype slot mechanism (i.e. the standard way
of composing archetypes from other archetypes; see use_archetype statements in FIGURE 26).
The second category of archetypable semantics is the correspondence between steps in a healthcare
business process and the standard instruction state machine, as described above. This mapping is an
archetype of the ism_transition attribute of an ACTION attribute, and therefore defines part of the
ACTION archetype. FIGURE 26 shows how logical archetype elements in the archetyped editor envi-
ronment corresponds to the resulting archetypes.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 65 of 85 Date of Issue: 16 Aug 2008
openEHR-EHR-INSTRUCTION.xyz.v1
INSTRUCTION {
activities {
ACTIVITY {
description {
use_archetype ITEM_TREE {}}}
Archetype Editor ACTIVITY {
environment description {
use_archetype ITEM_LIST {}}}
GP Medication
Order
openEHR-EHR-ITEM_TREE.xxx.v1
Activity 1
description ISM mapping
123 step Tx openEHR-EHR-ACTION.xyz.v1
c
Q ACTION {
c Txt description {
Q use_archetype ITEM_TREE {}}
ism_transition {
Activity 2
ISM_TRANSITION {
description ISM mapping
careflow_step {}
123 step Tx current_state {}
c }
Q ...
c Txt
Q
openEHR-EHR-ACTION.abc.v1
ACTION {
description {
use_archetype ITEM_LIST {}}
ism_transition ...
openEHR-EHR-ITEM_LIST.yyy.v1 slot-filling
Date of Issue: 16 Aug 2008 Page 66 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
institution, or at home. The correspondence between workflows at these different levels and particu-
lar patients, rather than just categories of patients (e.g. all insulin-dependent diabetics), typically
increases at finer levels of granularity. Thus from the point of view of automation, it is likely to be
fine-grained workflows that have patient-specific definitions which would reasonably appear in the
EHR. Most typical medication administrations are in this category. How automated workflow defini-
tions at higher levels of organisational hierarchy are represented and coordinated with lower-level
automated workflows is known to be a difficult problem generally, and given that health computing is
generally more complex than most domains, implementation of distributed, coordinated (or “orches-
trated” or “choreographed”, to use the terms of the workflow community) clinical workflows is likely
to be some years off.
In this context, the possible scope for formal workflow definition in openEHR appears to be as fol-
lows.
• To enable the recording of links between openEHR Entries and workflow executions, e.g. a
particular guideline. This allows openEHR data to be integrated with coarse-grained non-
patient specific workflows.
• To support a standardised, interoperable representation of fine-grained formal workflow
definitions for activities like medication administration.
• To use formal workflow definitions only where automation is actually useful, and is likely
to be used. The kind of workflows that are likely to be worth automating are those which run
over several days, weeks or longer, i.e. where humans might easily forget to perform a step.
In these cases, the output of the workflow system will be reminders for humans to do certain
things at certain times, rather than direct machine automation of the task. Execution of such
workflow definitions will generate entries in “worklists” for staff or other agents to perform.
Examples include asthma drug management for a child and PAP recall management.
• To ensure that any workflow definition takes account of other existing clinical activities, i.e.
does not attempt to define all activities that might possibly be relevant. A simple example is
a workflow for asthma medication administration probably does not need to explicitly
model the taking of peak flow measurements, since this would normally be occurring any-
way.
There are various technical challenges with proposing a standard workflow formalism for clinical
use. Firstly, executable workflow definitions are essentially structured programs, similar to programs
in procedural languages, but with the addition of temporal logic operators, including alternative paths,
parallel paths, wait operations, and also references to outside data sources and services. Recent work
in clinical workflow modelling e.g. [9], [1], [5] appears to favour a structural (i.e. parse-tree)
approach to representation, due to the need to compute potential modifications to an executing work-
flow, including dropping, replacing and moving nodes. (Whether such “live” modification of execut-
ing workflows is realistic from the designer’s point of view might be questionable, since it means that
the design of each workflow has include every possible exceptional case at a detailed level.)
Secondly, the need to connect workflows to the outside world, i.e. data sources and services like noti-
fication and worklist management is crucial in making workflows and guidelines implementable.
This problem is probably the main weakness of all guideline and workflow languages to date, includ-
ing Arden, GLIF, and the various workflow languages such as those mentioned earlier.
The approach taken by the current release of openEHR in representing computable workflow is the
following.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 67 of 85 Date of Issue: 16 Aug 2008
• Where used at all, formal workflow definitions are expressed in terms of syntax, not struc-
tures, since syntax is always a more appropriate representation for persistence (just as object
structures, i.e. parse trees are more appropriate for computation).
• Access to patient data items are expressed within the syntax as symbolic queries.
• Actions, such as requests to the notification service are represented as symbolic commands.
The entire definition of a workflow is expressed as an optional parsable string, in the wf_definition:
DV_PARSABLE attribute of the INSTRUCTION class. Any syntax may currently be used. A workflow
syntax is under development by the openEHR Foundation, which is designed to incorporate the rele-
vant features of current workflow models and research, while integrating it into the openEHR type
system and archetype framework. In particular, early versions of this syntax will show how patient
data access and service commands can be expressed.
The abstract parent of all ENTRY subtypes. An ENTRY is the root of a logical item
of “hard” clinical information created in the “clinical statement” context, within a
clinical session. There can be numerous such contexts in a clinical session. Obser-
vations and other Entry types only ever document information captured/created in
Purpose the event documented by the enclosing Composition.
An ENTRY is also the minimal unit of information any query should return, since a
whole ENTRY (including sub-parts) records spatial structure, timing information,
and contextual information, as well as the subject and generator of the informa-
tion.
CEN Cluster OCC (ENV 13606:2000); Entry (prEN 13606:2006)
Synapses The Item class is the closest match for Entry as described here.
GEHR *_CONTENT
HL7v3 Act
Inherit CONTENT_ITEM
Date of Issue: 16 Aug 2008 Page 68 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 69 of 85 Date of Issue: 16 Aug 2008
CLASS ADMIN_ENTRY
Entry subtype for administrative information, i.e. information about setting up the
Purpose clinical process, but not itself clinically relevant. Archetypes will define con-
tained information.
Used for admistrative details of admission, episode, ward location, discharge,
Use
appointment (if not stored in a practice management or appointments system).
Inherit ENTRY
The abstract parent of all clinical ENTRY subtypes. A CARE_ENTRY defines proto-
Purpose
col and guideline attributes for all clinical Entry subtypes.
Inherit ENTRY
Invariants
Date of Issue: 16 Aug 2008 Page 70 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
CLASS OBSERVATION
Entry subtype for all clinical data in the past or present, i.e. which (by the time it
Purpose is recorded) has already occurred. OBSERVATION data is expressed using the class
HISTORY<T>, which guarantees that it is situated in time.
OBSERVATION is used for all notionally objective (i.e. measured in some way)
Use
observations of phenomena, and patient-reported phenomena, e.g. pain.
Not used for recording opinion or future statements of any kind, including instruc-
MisUse
tions, intentions, plans etc.
CEN Cluster
HL7v3 Observation
Inherit CARE_ENTRY
CLASS EVALUATION
Used for all kinds of statements which evaluate other information, such as inter-
Use pretations of obvservations, diagnoses, differential diagnoses, hypotheses, risk
assessments, goals and plans.
Should not be used for actionable statements such as medication orders - these are
MisUse
represented using the INSTRUCTION type.
GEHR G1_SUBJECTIVE_CONTENT
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 71 of 85 Date of Issue: 16 Aug 2008
CLASS EVALUATION
Inherit CARE_ENTRY
CLASS INSTRUCTION
Used to specify actions in the future. Enables simple and complex specifications
Purpose
to be expressed, including in a fully-computable workflow form.
Used for any actionable statement such as medication and therapeutic orders,
Use monitoring, recall and review. Enough details must be provided for the specifica-
tion to be directly executed by an actor, either human or machine.
Misuse Not to be used for plan items which are only specified in general terms.
GEHR G1_INSTRUCTION
Inherit CARE_ENTRY
Date of Issue: 16 Aug 2008 Page 72 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
CLASS ACTIVITY
Inherit LOCATABLE
CLASS ACTION
Used to record a clinical action that has been performed, which may have been ad
Purpose hoc, or due to the execution of an Activity in an Instruction workflow. Every
Action corresponds to a careflow step of some kind or another.
Inherit CARE_ENTRY
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 73 of 85 Date of Issue: 16 Aug 2008
CLASS ACTION
CLASS INSTRUCTION_DETAILS
Inherit PATHABLE
CLASS ISM_TRANSITION
Inherit PATHABLE
Date of Issue: 16 Aug 2008 Page 74 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
CLASS ISM_TRANSITION
8.4.1 OBSERVATION
Heartrate Measurement Series
FIGURE 27 illustrates three heartrate measurements over 10 minutes.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 75 of 85 Date of Issue: 16 Aug 2008
OBSERVATION HISTORY<ITEM_LIST>
m = at0000 (blood pressure) m = at0022 (history)
data n = “history”
n = “blood pressure (sitting)”
origin = 2001-03-01 08:00:00
subject = 284395; “self”
provider = 79798 item
protocol EVENT<ITEM_LIST>
m = at0022 (any event)
ITEM_LIST n = “sample 1”
m = at0100 (BP protocol) time = .... 08:00:00
n = “BP protocol”
m = at0101 (device) v = [???:xxx(sphyg- item
n = “device” momanometer)] ITEM_LIST
m = at0102 (cuff) v = [???:xxx(wide)] m = at0200 (BP value)
n = “cuff” n = “BP value”
m = at0103 (position) v = [???:xxx(seated)] m = at0004(systolic BP) v = 110 mm[Hg]
n = “position” n = [snomed:xxx(systolic BP)]
m = at0005(diastolic BP) v = 72 mm[Hg]
n = [snomed:xxx(diastolic BP)]
8.4.2 EVALUATION
Partial Asthma Management Plan
FIGURE 30 illustrates a partial asthma management plan in which monitoring (peak flow) with
dependent actions (review and admission to ER) and therapy (bronchodilator) are shown. In a com-
plete plan, symptom monitoring and other medications might be shown. The parts of the plan are
Date of Issue: 16 Aug 2008 Page 76 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
ITEM_LIST
m = at0003 (OGTT Protocol)
protocol
n = “OGTT Protocol”
m = at0005 (xxxx) v = xxxx
n = [snomed:xxx(xxxx)] ITEM_SINGLE
m = at0007 (BSL)
item n = “BSL”
EVENT v = 5 mmol/L
events <ITEM_SINGLE>
m = at0006 (event) ITEM_SINGLE
OBSERVATION n = “BSL fasting” state
m = at0010 (state)
m = at0000 (diagnostic test) time = .... 08:00:00 n = “post-challenge”
n = “GTT BSL” v = “post 8h fast”
subject = 284395; “self”
provider = 79798 ITEM_SINGLE
HISTORY m = at0007 (BSL)
item n = “BSL”
<ITEM_SINGLE> EVENT
v = 11 mmol/L
m = at0002 (history) <ITEM_SINGLE>
n = “BSL history” m = at0006 (event) ITEM_SINGLE
data origin = 2001-03-01 n = “BSL 1hr” state m = at0010 (state)
08:00:00 time = .... 09:00:00
period = 1h n = “post-challenge”
is_periodic = True v = “post 75g oral
glucose”
ITEM_SINGLE
m = at0007 (BSL)
item n = “BSL”
EVENT
v = 8 mmol/L
<ITEM_SINGLE>
m = at0006 (event) ITEM_SINGLE
n = “BSL 2hr” state
m = at0010 (state)
time = .... 10:00:00
n = “post-challenge”
v = “post 75g oral
glucose”
FIGURE 29 OGTT Instance Structure
linked to the root EVALUATION node via the links: Set<LINK> attribute inherited from the LOCATA-
BLE class.
source
LINK INSTRUCTION
m= target m = “xxxx”
“therapy” definition
n = “asthma medication”
EVALUATION
m = “plan” links
n = “asthma manage-
ment” ITEM_LIST
m = “monitoring details”
source n = “asthma monitoring”
LINK EVALUATION data m = “condition” v = “if pf < 40% see
m = “moni- m = “monitoring” n = “review” doctor”
target
toring” n = “monitoring” m = “drug attr” v = “if pf < 20%
n = “emergency” attend ER”
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 77 of 85 Date of Issue: 16 Aug 2008
8.4.3 INSTRUCTION
Chained Medication Order
Often, a medication order for one drug consists of segments in which one or more of the administra-
tion details of route, form, frequency, dose etc is changed. In hospitals, intravenous antibiotics and
pain relief drugs may be followed by a tablet form of the same drug to be taken orally. Other exam-
ples are common in general practice, such as the following order:
• trade name = Panafcortelone; generic name = Prednisolone; form = tablets; dose = 25mg;
route = oral; freq = bd x 3 days; od x 2 days.
FIGURE 31 illustrates the instance structure for this Instruction. Note that the timing attribute of the
ACTIVITY instance is shown in human-readable form; in reality it will be a GTS string or similar (see
Timing Specification section of openEHR Data Types IM).
ITEM_LIST
m = “medication description”
n = “medication description”
m = “generic name” v = “prednisolone”
INSTRUCTION ACTIVITY n = “generic name”
m = “medication order” activities m = “medication adminis- description m = “trade name” v = “panefcortelone”
n = “asthma medication” tration” n = “trade name”
narrative = “Take twice a...” n = “prednisolone bd” m = “route” v = “oral”
timing = “bd x 3d; od x 2d” n = “route”
m = “dose” v = “25mg”
n = “dose”
m = “...” v = “...”
n = “...”
Multi-drug Therapy
A common regime for treating duodenal ulcer and related complaints is using Losec with other drugs,
such as in the following combination:
• Losec 40 mg od x 4w or until no symptoms
• amoxicillin 500 mg 3td x 7d
• metronidizole 400 mg 3td x 7d
Date of Issue: 16 Aug 2008 Page 78 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
ITEM_LIST
m = “medication description”
n = “medication description”
m = “generic name” v = “xxx”
INSTRUCTION ACTIVITY n = “generic name”
m = “medication order” activities m = “medication adminis- description m = “trade name” v = “Losec”
n = “asthma medication” tration” n = “trade name”
narrative = “Take twice a...” n = “Losec-HP losec” m = “route” v = “oral”
timing = “od x 4w” n = “route”
m = “dose” v = “40mg”
n = “dose”
m = “...” v = “...”
n = “...”
ITEM_LIST
m = “medication description”
n = “medication description”
m = “generic name” v = “amoxicillin”
ACTIVITY n = “generic name”
m = “medication adminis- description m = “trade name” v = “xxx”
tration” n = “trade name”
n = “Losec-HP amoxicil- m = “route” v = “oral”
lin” n = “route”
timing = “3td x 7d” m = “dose” v = “500mg”
n = “dose”
m = “...” v = “...”
n = “...”
ITEM_LIST
m = “medication description”
n = “medication description”
m = “generic name” v = “metronidizole”
ACTIVITY n = “generic name”
m = “medication adminis- description m = “trade name” v = “xxx”
tration” n = “trade name”
n = “Losec-HP met- m = “route” v = “oral”
ronidizole” n = “route”
timing = “3td x 7d” m = “dose” v = “400mg”
n = “dose”
m = “...” v = “...”
n = “...”
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 79 of 85 Date of Issue: 16 Aug 2008
A Glossary
A.3 IT Terms
.NET
API Application programmer’s interface - the software interface to a library
or module.
COM Microsoft’s Component Object Model; designed to enable integration
of binary components obeying stated exported interfaces.
CORBA Common Object Request Broker Architecture - an object-oriented mid-
dleware architecture enabling the construction of 3-tier systems, in
which backend data providers (DBMSs etc) are known only by the
services they export to the network. CORBA is an open standard man-
aged by the Object Management Group (OMG).
DCOM Distributed version of Microsoft COM. Similar in its aim to CORBA.
J2EE
ODMG-93 A standard for object databases, which includes an object definition
language (ODL) for writing schemas, an object query language (OQL)
for querying, and several language bindings
Date of Issue: 16 Aug 2008 Page 80 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
B References
B.1 General
1 Barretto S A. Designing Guideline-based Workflow-Integrated Electronic Health Records.
2005. PhD dissertation, University of South Australia. Available at http://www.cis.uni-
sa.edu.au/~cissab/Barretto_PhD_Thesis_Revised_FINAL.pdf.
2 Berners-Lee T. "Universal Resource Identifiers in WWW". Available at
http://www.ietf.org/rfc/rfc2396.txt. This is a World-Wide Web RFC for global
identification of resources. In current use on the web, e.g. by Mosaic, Netscape and similar
tools. See http://www.w3.org/Addressing for a starting point on URIs.
3 Beale T. Archetypes: Constraint-based Domain Models for Future-proof Information Systems.
See http://www.deepthought.com.au/it/archetypes.html.
4 Beale T, Heard S. An Ontology-based Model of Clinical Information. 2007. pp760-764 Pro-
ceedings MedInfo 2007, K. Kuhn et al. (Eds), IOS Publishing 2007. See http://www.opene-
hr.org/publications/health_ict/MedInfo2007-BealeHeard.pdf.
5 Browne E D. Workflow Modelling of Coordinated Inter-Health-Provider Care Plans. 2005.
PhD dissertation, University of South Australia. Available at http://www.openehr.org/publica-
tions/workflow/t_browne_thesis_abstract.htm.
6 Elstein AS, Shulman LS, Sprafka SA. Medical problem solving: an analysis of clinical reason-
ing. Cambridge, MA: Harvard University Press 1987.
7 Elstein AS, Schwarz A. Evidence base of clinical diagnosis: Clinical problem solving and di-
agnostic decision making: selective review of the cognitive literature. BMJ 2002;324;729-732.
8 Gray J, Reuter A. Transaction Processing Concepts and Techniques. Morgan Kaufmann 1993.
9 Müller R. Event-oriented Dnamic Adaptation of Workflows: Model, Architecture, and Imple-
mentation. 2003. PhD dissertation, University of Leipzig. Available at http://www.opene-
hr.org/publications/workflow/t_mueller_thesis_abstract.htm.
10 Rector A L, Nowlan W A, Kay S. Foundations for an Electronic Medical Record. The IMIA
Yearbook of Medical Informatics 1992 (Eds. van Bemmel J, McRay A). Stuttgart Schattauer
1994.
11 Rossi-Mori A, Consorti F. Assembling clinical information. Note sent to HL7v3 discussion list,
2001-04-19.
12 Sowa J F. Knowledge Representation: Logical, philosophical and Computational Foundations.
2000, Brooks/Cole, California.
13 Schloeffel P. (Editor). Requirements for an Electronic Health Record Reference Architecture.
International Standards Organisation, Australia; Feb 2002; ISO TC 215/SC N; ISO/WD 18308.
14 Sottile P.A., Ferrara F.M., Grimson W., Kalra D., and Scherrer J.R. The holistic healthcare in-
formation system. Toward an Electronic Health Record Europe 1999. Nov 1999; 259-266.
15 Van de Velde R, Degoulet P. Clinical Information Systems: A Component-Based Approach.
2003. Springer-Verlag New York.
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 81 of 85 Date of Issue: 16 Aug 2008
16 Weed LL. Medical records, medical education and patient care. 6 ed. Chicago: Year Book Med-
ical Publishers Inc. 1969.
B.3 CEN
29 ENV 13606-1 - Electronic healthcare record communication - Part 1: Extended architecture.
CEN/ TC 251 Health Informatics Technical Committee.
30 ENV 13606-2 - Electronic healthcare record communication - Part 2: Domain term list. CEN/
TC 251 Health Informatics Technical Committee.
31 ENV 13606-3 - Electronic healthcare record communication - Part 3: Distribution rules. CEN/
TC 251 Health Informatics Technical Committee.
Date of Issue: 16 Aug 2008 Page 82 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
32 ENV 13606-4 - Electronic Healthcare Record Communication standard Part 4: Messages for
the exchange of information. CEN/ TC 251 Health Informatics Technical Committee.
B.5 HL7v3
35 Schadow G, McDonald C J. The Unified Code for Units of Measure, Version 1.4, April 27,
2000. Regenstrief Institute for Health Care, Indianapolis. See http://aurora.rg.iu-
pui.edu/UCUM
36 Schadow G, Russler D, Mead C, Case J, McDonald C. HL7 version 3 deliverable: The Unified
Service Action Model : Documentation for the clinical area of the HL7 Reference Information
Model. (Revision 2.4+).
37 Schadow G, Biron P. HL7 version 3 deliverable: Version 3 Data Types. (DRAFT Revision 1.0).
B.6 OMG
38 CORBAmed document: Person Identification Service. (March 1999).
(Authors?)
39 CORBAmed document: Clinical Observations Access Service. (Jan 2000)
3M, Care Data Systems, CareFlow/Net, HBO & C, LANL, and others.
40 CORBAmed document: Lexicon Query Service. (March 1999)
(Authors?)
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 83 of 85 Date of Issue: 16 Aug 2008
B.8 Resources
47 Arden Syntax. http://www.cpmc.columbia.edu/arden/
48 Asbru / The Asgaard Project. http://smi-web.stanford.edu/projects/asgaard/
49 Digital Imaging ad Communications in Medicine (DICOM). http://medical.nema.org/di-
com.html.
50 EON ref required
51 GLIF (Guideline Interchange Format). http://www.glif.org/.
52 IANA - http://www.iana.org/.
53 ProForma language for decision support. http://www.acl.icnet.uk/lab/proforma.html.
54 SynEx project, UCL. http://www.chime.ucl.ac.uk/HealthI/SynEx/.
Date of Issue: 16 Aug 2008 Page 84 of 85 Editors:{T Beale, S Heard}, {D Kalra, D Lloyd}
END OF DOCUMENT
Editors:{T Beale, S Heard}, {D Kalra, D Lloyd} Page 85 of 85 Date of Issue: 16 Aug 2008