Professional Documents
Culture Documents
02 Whole
02 Whole
DOCTOR OF PHILOSOPHY
from
UNIVERSITY OF WOLLONGONG
by
FACULTY OF INFORMATICS
2009
Certification
Amanda J. Ducrou
25th May, 2009
Acknowledgements
I would like to take this opportunity to thank Pen Computer Systems, and
chiefly managing director John Johnston for his guidance in the field of
Health Informatics and for supporting my work. I would also like to thank
Tarkhan Shahho for helping on the technical side of the ePOC project, and
Brett Esler for introducing me to HL7 Version 3 and being available for
endless discussions on how to represent clinical constructs.
Also in conjunction with the ePOC project, I would like to thank my col-
league Jason Sargent for all his hard work in that area, and also Damian
Ryan and the rest of the TACT staff for their support for the ePOC field trial
and for their consultations on clinical knowledge employed in that project.
My parents, Jeff and Janelle Ryan, have always believed in me beyond all
reason and I am just glad to make them proud. Thanks, Mum and Dad, for
always being supportive.
Last but not least, I thank my husband, Jon, for all his support, advice and
proof-reading which has helped me to finally complete this thesis. Thank
you for always having faith in me.
Contents
Abstract 17
1 Introduction 19
1.1 Facets of Health Informatics . . . . . . . . . . . . . . . 21
1.1.1 Electronic Patient Care Records . . . . . . . . . . . . . 22
1.1.2 Clinical Terminologies . . . . . . . . . . . . . . . . . . 26
1.1.3 Clinical Information Models . . . . . . . . . . . . . . . 29
1.1.4 Decision Support Systems . . . . . . . . . . . . . . . . 30
1.1.5 Medical Imaging . . . . . . . . . . . . . . . . . . . . . . 31
1.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3 Health Informatics Standards
Focused On in This Work . . . . . . . . . . . . . . . . . 34
1.4 Defining The Problem:
Integration and Interoperability . . . . . . . . . . . . 35
1.4.1 Defining Interoperability . . . . . . . . . . . . . . . . . 38
1.4.2 Messaging as a Technical Interoperability
Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.5 Enterprise Integration Background . . . . . . . . . . 42
1.5.1 Enterprise Service Bus . . . . . . . . . . . . . . . . . . 42
1.5.2 Advantages of XML . . . . . . . . . . . . . . . . . . . . 43
1.6 Previous Work . . . . . . . . . . . . . . . . . . . . . . . 44
1.6.1 Terminologies . . . . . . . . . . . . . . . . . . . . . . . 44
1.6.2 HL7 and Ontology Mapping . . . . . . . . . . . . . . . 46
1.6.3 Interoperability Frameworks . . . . . . . . . . . . . . 47
7
2.3 SNOMED CT . . . . . . . . . . . . . . . . . . . . . . . 77
2.3.1 SNOMED CT Concepts and Relationships . . . . . . . 78
2.3.2 SNOMED CT Example . . . . . . . . . . . . . . . . . . 79
2.3.3 Representation of Clinical Findings
with SNOMED CT . . . . . . . . . . . . . . . . . . . . 80
2.3.4 SNOMED CT Concepts
Represented in HL7 . . . . . . . . . . . . . . . . . . . . 83
2.4 SNOMED CT Concepts
Represented in openEHR . . . . . . . . . . . . . . . . . 83
2.4.1 Conclusions on SNOMED CT . . . . . . . . . . . . . . 85
9 Conclusion 207
Bibliography 235
List of Figures
11
4.12 XML Processing Algorithm . . . . . . . . . . . . . . . 116
4.13 ePOC Client Entry Form . . . . . . . . . . . . . . . . . 117
4.14 ePOC Control Panel . . . . . . . . . . . . . . . . . . . . 118
4.15 ePOC Client History Screen . . . . . . . . . . . . . . . 119
4.16 ePOC Messages Screen . . . . . . . . . . . . . . . . . . 120
4.17 ePOC PDA Application . . . . . . . . . . . . . . . . . . 121
14
List of Abbreviations
15
MSMQ . . . . . . . . . . . Microsoft Message Queue
NHS . . . . . . . . . . . . . National Health Service (UK)
NLM . . . . . . . . . . . . . National Library of Medicine (US)
OWL . . . . . . . . . . . . . Web Ontology Language
PACS . . . . . . . . . . . . Picture Archiving and Communication Systems
PAS . . . . . . . . . . . . . . Patient Administration System
PDA . . . . . . . . . . . . . . Personal Digital Assistant
RIM . . . . . . . . . . . . . . Reference Information Model
RMIM . . . . . . . . . . . . Refined Message Information Model
SCTID . . . . . . . . . . . SNOMED CT IDentifier
SDO . . . . . . . . . . . . . . Standards Development Organisation
SESIAHS . . . . . . . . South East Sydney and Illawarra Area Health Service
SNOMED . . . . . . . . Systemised Nomenclature of MEDicine
SNOMED CT . . . . SNOMED – Clinical Terms
SNOMED RT . . . . SNOMED – Reference Terminology
SOA . . . . . . . . . . . . . . Service-Oriented Architecture
SOAP . . . . . . . . . . . . Simple Object Access Protocol
SQL . . . . . . . . . . . . . . Structured Query Language
TACT . . . . . . . . . . . . The Ambulatory Care Team
UML . . . . . . . . . . . . . Unified Modelling Language
UMLS . . . . . . . . . . . . Unified Medical Language System
WHO . . . . . . . . . . . . . World Health Organisation
XML . . . . . . . . . . . . . eXtensible Markup Language
XPath . . . . . . . . . . . . XML Path Language
XQuery . . . . . . . . . . XML Query Language
XSLT . . . . . . . . . . . . . eXtensible Stylesheet Language Transformations
Abstract
and medical knowledge, and thus consistent patient care. This thesis fo-
formats are covered, which leads to three major Health Informatics stan-
dards being used throughout the remainder of this work – HL7 for mes-
17
18
Introduction
than they are fulfilled. The idea of a computerised patient record has ex-
isted since as early as 1966. However, over 40 years later, it is still not a re-
but is still far from effective in healthcare. The main challenge in Health
goal which has been achieved by many other industries such as banking.
of the domain. Many health and medical terminologies have been created
to solve the “standard terms” problem, but which one should be used? Even
when terminologies have been introduced, the terms are not always used
consistently.
many healthcare professionals have used and relied on paper records for so
long that they see them as an intrinsic part of the healthcare process [Agu05].
19
20 CHAPTER 1. INTRODUCTION
not” [Ben02a, Ben02b], Benson comments on the reasons for poor computer
An important point, and one relevant to this work, is the comment about
(HIEI). They found that moving to standardized HIEI would deliver $77.8
billion in annual savings in the United States [CiT04], but the problem still
of patient data.
information tools.
knowledge is required.
tion between entities is required to achieve the goals of effective use of pa-
tient data, creating medical knowledge and enabling access to that knowl-
these goals. This thesis presents design science research aimed at solving
interoperability in healthcare.
opment areas in which these challenges must be solved. Some of the re-
Many different areas and topics come under the umbrella of Health Infor-
matics. The main areas of research and development in the field are listed
below.
• Medical Imaging
tems.
nents of hospital computer systems, which records the patient’s name, home
address, date of birth and each contact with the outpatient department or
admission and discharge. These are the basic patient details required in
running a hospital.
One of the principle aims of Health Informatics has been the development
care, from their birth to their death. In reality, patients’ notes are often
stored on computers, but relatively few are stored in a way that allows
Electronic patient care records are called by various similar names such
Some examples of Electronic Health Records are GEHR, CEN 13606, Spec-
and Microsoft’s HealthVault [Mic08]. The aim of these health systems for
the general public is to place health records in the hands of the individual –
this is the best way to keep records up-to-date and correct. If the patient can
see their own medical record, they can make sure all personal information
is correct, and fill in such things as family history. If the fact that a patient
is allergic to a certain drug is somehow lost from their file, a fatal mistake
could be made. If the patient is keeping their own record up to date, these
GEHR
The Good European Health Record (GEHR) project was a large European
1992 and 1994 [Sch04]. It was the first international research project to de-
work still stands alone and was the major input into the first ISO1 EHR
[ISO04].
CEN 13606
CEN 13606 refers to the CEN2 standard reference model for the exchange
records [Gil05].
Specification 1000
cal Data Architecture for the Structure and Content of an Electronic Health
Record”. It is the only American national standard that defines the funda-
services [ANS08].
openEHR
Record which separates the domain model from the information model via
cal and patient record constructs (domain-specific concepts) are thus writ-
2 European Committee for Standardisation
3 American National Standards Institute
detailed in the next chapter. See also Section 1.3 later in this chapter.
Google Health
well as articles on health issues which may be browsed. Google Health also
allows the user the opportunity to import medical records, but currently
only four medical centers are participating with Google to offer this ability.
offer this service. Google Health includes a Decision Support System which
HealthVault
fers more sources to import medical records from (some of which overlap
with Google’s sources), as well as the functionality to upload any files from
the user’s computer, which can be shared. One HealthVault account can
store health records for a whole family, with the ability to share documents
or to mark items as ‘personal’ if the user would like to keep them private.
HealthVault also allows data to be uploaded directly from some digital de-
more sophisticated interface than Google Health and offers the ability for
ical terminology defines a standard set of terms for use in the health care
domain. Most clinical terminologies do not provide definitions for the terms,
or rules about how they should be used. As such, care must be taken that
different entities do not use the standard terms in different ways. Some
subsections.
ICD-10
dard diagnostic classification for all general epidemiological and other health
and came into use in WHO Member States from 1994, the latest in a series
MeSH
The Medical Subject Headings (MeSH) are a classification system for health
and biomedical research which are used to index publications in the United
via PubMed. PubMed is a service of the NLM that includes over 18 mil-
lion citations from Medline and other life science journals for health and
The Read Codes were first introduced in the early 1980s in the UK by Dr
John Read to record summary clinical and administrative data for General
ICD-10 [RSBP97].
Version 3 of the Read Codes, called Clinical Terms version 3 (CTv3) was
projects aimed to provide greater specialist detail to the Read Codes and to
SNOMED
For over 40 years the College of American Pathologists (CAP) has invested
SNOMED CT
ing most aspects of clinical medicine [Uni08b]. For this reason, SNOMED
LOINC
The purpose of LOINC is “to facilitate the exchange and pooling of clin-
ical results for clinical care, outcomes management, and research by pro-
viding a set of universal codes and names to identify laboratory and other
mentation.
Plus (NDDF Plus) contains drug descriptive information for the US, plus
First DataBank also provides drug databases for Canada and Europe in ad-
care network.
Some examples of clinical information models are GALEN and Health Level
they aim to best represent clinical constructs, and concentrate less on pa-
tient records and continuity of records (however, most EHRs can also be
GALEN
clinical information in a new way, with a goal to “put the clinical into the
tion that has been formed to enable the widest possible use of GALEN.
Health Level Seven (HL7) began in 1987 as a messaging standard for health,
and has grown to include other standards for interoperability, such as docu-
that improve care delivery. Currently HL7 Version 2 is the most widely im-
3 are used in this work, elaborated in Section 2.1 in the next chapter.
exchange model for clinical documents, including EHRs. The CDA thus
Decision Support Systems (DSS) have gone through various phases through-
unnecessary surgery rates, and yet the clinicians involved were hesitant to
The reason for this is that the designers of AAPHelp made decisions on
which diseases to include, and what data items to collect, without consult-
ing the clinicians who were the end-users of the system. Also, some of the
vailing view being that the clinician needs to speak to their patient in per-
4 http://www.aaphelp.leeds.ac.uk/aaphelp/
son to gain a full understanding of his or her symptoms. Given this, the
system, but the designers of AAPHelp did not take this into account.
The lesson from AAPHelp is that computer systems are more likely to be
rather than moving final diagnosis out of the clinician’s hands [Tay06].
Help – decision support for diagnostic decisions have all been unsuccessful,
for the reasons outlined above. One area where decision support has been
tions, and drug reactions and interactions. Highlighting possible drug in-
clinician. Both Google Health and Microsoft’s HealthVault have drug inter-
health sites.
Another area where DSSs are helpful is when clinical guidelines are in-
ing sure that an image is reproduced correctly at the receiving end. This
area of Health Informatics has had to be interoperable from the start for
DICOM
in 1983 when the American College of Radiology and the National Electric
1.2 Methodology
The research method employed here follows the paradigm of Design Sci-
nology research which seeks to extend the boundaries of human and organ-
cial phenomena can be both created and studied, leading to the dual na-
search concerned with the creation of artificial artifacts which fall into four
then moving onto artifacts developed throughout this work. The artifacts
First, the remainder of this chapter goes on to formally define the prob-
lem that the presented artifacts are designed to solve – that of achieving
in this domain.
openEHR and SNOMED CT. These three standards are seen as constructs
thesis, these constructs are combined into higher level models for sharing
Chapter 3.
After the setup of the XML Terminology Database is discussed, two frame-
The first solution is built on Jini technology and is called The Jini Health
Chapter 7. Some problems with HIF-J are discussed, which leads to the
Parts of the work presented in this treatise have been published previ-
ously under the author’s maiden name, Amanda Ryan – ontology mapping
[SER+ 06] and [REE07]; and Enterprise Service Bus for health in [RE08].
for its intended purpose in conjunction with the other two standards.
tent with the Semantic Web vision of providing a universal and computer-
interpretable medium for the exchange of data (specialised within the health
modelling clinical information in a robust and scalable way and uses de-
openEHR is chosen as the standard for patient records in this work be-
resources for health, thus making openEHR accessible. Also, the design
tion as a means for storing the information from individual HL7 messages
in one continuous patient care record. Like HL7, openEHR also includes a
tion 2.2.
set of terms for the purpose of semantic clarity, continued from observation
2.3.
Now that research areas in Health Informatics have been outlined, the spe-
cific problem which this work is aimed at solving is described. The focus of
are becoming far more recognised as the major reason why or-
low systems which use different platforms and data formats to com-
changes.
plications, services, programs, users) are. The principle behind loose cou-
pling is to reduce the assumptions that the two parties make about each
other when they exchange information, thus making them less interre-
nical Committee was formed in April 2005 to attempt to define the concept
of interoperability [HL707].
data, so that the information will be understood in precisely the same way
tors face similar difficulties, e.g. government [BFS06]. However, the many
varying types of data in healthcare can make the problem more difficult in
this domain. For example, patient administration data, clinical data, lab-
oratory data, and patient insurance information are just some of the types
ual and even group understandings of its meaning are presumed as self-
interoperability.
information and to use the information that has been exchanged.” [IEE05]
This definition was created in 1990, and is referred to as the IEEE-90 defi-
nition of interoperability.
When the HL7 Work Group began their investigation into the mean-
standard technical definitions such as the IEEE-90, and tended to view in-
cal definitions such as the IEEE-90 do not include the idea of the semantics
matter whether the recipient understands the content or the intent of the
message, or whether the original message retains its structure and mean-
ing [HL707]. The example that the HL7 Work Group uses is:
“if the transmitted message clearly shows that the patient needs
The HL7 Work Group found that there in fact exist three hierarchic
plicit user role specification, and that data presentation and flow support
follows:
Work Group,
by the two simple rules that process interoperability also requires semantic
technical interoperability.
field in 2005, deeming the IEEE-90 definition too vague. The IEEE-USA
“the ability ‘to use the information that has been exchanged’
nicate with one another, but also that they must employ shared
ity is also covered (as the hierarchy of interoperability requires), but is triv-
ing either a file or a database which they can all write to and read from.
format.
of its functionality so that other applications can access it remotely. RPI re-
from which other applications can read the messages at a later time. Com-
the receiver being up and running at the time of sending, and can also take
scalable architecture that was never planned. This is typically what hap-
pens when a corporate-wide strategy for integration does not exist [Cha04].
Enterprise Service Bus (ESB) is a term which was coined at Stanford Uni-
driven and provides foundational services for more complex software sys-
tems [Cha04]. ESBs are both operating system and programming lan-
forms; for example, between Java and .NET applications. ESBs are often
need to replace existing integration solutions all at once. The ESB architec-
ture can be put into place with the old system still fully operational. Legacy
systems can then be changed over to the ESB one at a time, again with all
In recent years, ESB has become the most promising solution to build
The Health Service Bus (HSB), the end result of this work, is an in-
teroperability solution based on ESB and using Web Services, putting into
for creating metadata and is intrinsic to the Semantic Web. Catley and
a richer data model than traditional database models and makes data self-
PRD|RPˆReferring ProviderˆHL70286|BloggsˆJoeˆˆˆDrˆMD
<provider>
<role>
<code>RP</code>
<text>Discharging/Referring Provider</text>
<table>HL70286</table>
</role>
<name>
<last>
<family>Bloggs</family>
<last>
<first>Joe</first>
<title>Dr</title>
<qual>MD</qual>
</name>
</provider>
some context of the data can even be gained just by reading the tag names.
HL7 Versions 2 and 3 and openEHR all have defined XML formats as
part of their standard. All data representation and messaging in this trea-
tioned in the previous subsection, ESBs typically use XML for communica-
tion.
1.6.1 Terminologies
Early work in the area of mapping clinical terminologies to each other was
done by Kannry et al.– in this case to examine the issues in mapping the
tional vocabulary at Yale [KWS+ 96]. Their outcomes revealed the impor-
edge base. Dolin et al. reviewed the three major terminologies and de-
scribed their weak points in the course of creating the CMT [DMC+ 04]. The
terminologies they employ are SNOMED CT, LOINC, and First DataBank.
Relevant to the work presented here, with respect to HL7 Version 3 they
use in HL7 messages would greatly enhance interoperability, but first some
research would have to be conducted into where the HL7 information model
In the area of timely access to SNOMED CT, Ryan et al. have reported
on a joint project between the Royal Prince Alfred Hospital, Sydney and
prises of the Ward Round Information System (WRIS) and a Clinical Data
with the ability to frame any question about their data and get the answer
almost immediately.
WRIS first computes an extract of the patient’s clinical record and then
presents this to the clinician. The clinician then enters any relevant progress
notes. WRIS than computes the SNOMED CT codes from these notes,
At this stage, CDAL is being run automatically every hour with just
(ARDS) candidates. Ryan et al. see one of the most significant achieve-
WRIS is not directly comparable to this work, but there is some small
and 8.
In the area of ontology mapping between HL7 and other health standards,
thodontics in 2007, and they predict three years until they have an outcome.
tered when six hospitals merged into one organisation, particularly with
on the HL7 Version 3 information model, as the new ADT had to comply
Closer to the aims of this work is the Artemis Message Exchange Frame-
As a part of AMEF, Bicer et al. have also created a tool called OWLmt
for ontology mapping, which they then used for mapping HL7 V2 and HL7
V3 [BLDK05b]. Bicer et al. have also used OWLmt along with archetypes to
13606 [BKDL05].
Also in the ontology mapping area, Kilic et al. have mapped openEHR’s
Ray and Jones discuss the same interoperability problem in the man-
discuss the benefits of XML and argue that current syntax-based interoper-
the same problem addressed here in the healthcare industry, in which the
each other using OWLmt. Existing applications are then wrapped as Web
Services and the messages they exchange are mediated through OWLmt.
tion infrastructure for integration of their clinical decision support tools [CF02].
Their aim is to enable their medical databases for XML, and then publish
will be possible, except to mention they hope to use the Semantic Web.
ance company has generated significant savings using an ESB, and a U.S.
video retail chain has implemented an ESB to configure and manage 1,800
cation on several ESB platforms, including Mule (also used in this work
in Chapter 8). They found that ESB supports the design of self-managing
Health department [SCD+ 07]. They use HL7 V3 XML as the message for-
mat in their system, which is based on Enterprise Service Bus. They report
to the problem.
vice Bus are carried out at the end of this work in Chapter 9.
Health Standards
Background
discussed in Section 1.3 of the previous chapter. This chapter goes into
greater detail of each standard, their purposes and their information mod-
els. First, HL7 is discussed – both the Version 2 and Version 3 methodolo-
gies and models are elaborated. Second, openEHR is explained, and finally
SNOMED CT.
quired. Finally, a standard set of terms is needed for use in both the com-
the process.
By using these three standards together, each for their intended pur-
49
50 CHAPTER 2. HEALTH STANDARDS BACKGROUND
most widely used being a messaging standard that enables disparate health-
Group, which is organized into Technical Committees (TCs) and Special In-
for the content of the standards, while Special Interest Groups serve as a
The name “Health Level Seven” comes from the ISO standard for Open
nication, the highest of which is level seven – the Application Level. The
Application Level deals with such issues as definition and structure of data
HL7’s organisational vision is “to create the best and most widely used
HL7 Version 2 will first be described – the original HL7 messaging stan-
dard which has been in use since the late 1980s. After going into detail of
the methodology of this data exchange standard, the newer version (Version
HL7 standard, in particular Version 2.3.1. However, this standard does not
cially between existing systems that have not been designed to communi-
cate from the beginning [BLDK05b]. Also, because HL7 was first devel-
(|) and “carets” (∧), where precision in the number of fields is a must, as
The HL7 organisation says this about the Version 2 messaging standard:
that data that HL7 moves nor that data’s relationship to other
data.” [HL708]
automatically.
defined message format, where the sending application structures the mes-
sage in an expected form (that is, the data elements appear in a defined way
within the message, but the meaning of the data is not specified) [HL707].
almost any site. However, this forces implementers to spend more time
analysing and planning their interfaces to ensure that both parties are
In HL7 Version 2, messages are sent as the result of an actual event oc-
referral is a trigger event, which has the code I12 in HL7. The I12 trig-
ger event results in the sending of a referral message (which has the code
REF, specifically REF I12, as it is sent due to the I12 trigger event occur-
RRI I12 message (the code RRI I12 means a response to a referral which
resulted from trigger event I12). This RRI response message is basically an
for a REF code referral. Note that this interaction only results after a trig-
ger event, such as I12, has occurred. The REF with RRI response is the
of a Version 2 message segment, taken from [Sta04]. An arrow over the top
in Figure 2.3. The MSH and RF1 segments are mandatory and must ap-
pear exactly once in the message, followed by the provider details seg-
ment (PRD), which can be repeated; the first instance may be the referring
provider and repeated instances of the segment could be for the referred-to
provider and then other responsible parties. Next, the extra patient de-
mographics (PD1) segment is optional, and finally the next of kin segment
strictly defined, and data types are also strictly defined. As an example,
the fields for the MSH segment are shown in Table 2.1. The ‘DT’ attribute
in Table 2.1 refers to ‘datatype’ and has such values as ST (string data), HD
etc.
tion Model (RIM) is the cornerstone of the HL7 Version 3 development pro-
cess. The RIM is an object model in the form of a large Unified Modelling
The RIM is the information model that encompasses the HL7 domain of
the data content of all HL7 messages and is intentionally abstract to al-
low the representation of the many information topics that must be shared
who performed it, for whom it was done, where it was done, etc.
tion event
Role would have the RoleLink ‘direct authority’ over the Employee
Role.
Three of these classes - Act, Entity and Role - are further repre-
Administration.
that occur, for example, patient admissions, discharges and referrals, clini-
Figure 2.4: The Core Classes of the HL7 Version 3 Reference Information
Model (RIM).
Figure 2.4 shows the Core classes in the HL7 Version 3 RIM, and how
they interact. The full RIM is shown in Appendix A. The typical way these
Just like the HL7 Version 2 segments are made up of data fields, the
fields are a serial list of data, the V3 classes are objects and are related to
other classes by certain relationships. The attributes of the Act class are
shown in Table 2.2 as an example. As can be seen in the Table, HL7 Version
3 has strict datatypes which are very similar to the Version 2 datatypes.
The second column contains the datatype, which includes such types as CS
Time Stamp).
Figure 2.5: A simple example of a HL7 Version 3 model based on the RIM.
One problem with the RIM is that it is so complex that there is some
used. However, Spahni et al. found this overhead to be worth the in-depth
Both Acts have the attributes classCode and moodCode, as these are
mandatory (see Table 2.2). They also have the attribute id which has been
necessary, the base class definition being a minimum strength). They also
have the attributes code and text, and the main Act has the attribute
playing a Role.
This simple example also shows the colouring conventions of the HL7
the same colour in a lighter shade, while Entities are shown in green,
Roles in yellow and Participations in blue. The other class not shown
Role-yellow.
The DMIM for Observations is shown in Figure 2.6. All HL7 models
(except the RIM) have an entry point, which can be seen in Figure 2.6 as the
white box at the top which says ‘Observations DMIM’. The entry point must
point to a central Act in the model, which is taken as the starting point for
reading the model. This is similar to the Version 2 trigger event. It can be
The content of an RMIM is drawn from the DMIM for the specific domain
Figure 2.7 shows an example RMIM for Clinical Observations. The en-
Observations Act has many component Acts which are called ‘BloodSug-
There are two participants in the Clinical Observations Act – the ‘sub-
playing the Role of ‘Patient’, and the performer is a Person playing the
Role of ‘CareGiver’.
that can be sent. An instance of a message is then rendered from the HMD
in XML. Figure 2.8 shows part of an HMD from the RMIM shown in Figure
2.7. The Element Names in the HMD (second column in the figure) are
indented to show the hierarchy over the elements in the message, making
it easy to represent in XML using the same hierarchy structure for the XML
tags.
(ITS), the HMD can be represented in XML and populated with attribute
The goal of the Semantic Web is “to create a universal medium for the ex-
change of data.” [W3C01]. The vision for the Semantic Web is a web of data.
The original Web concentrates on the interchange of documents, but the Se-
mantic Web is about common formats for integration and the combination
It can be seen that HL7 Version 3 is in line with the Semantic Web vision
previous versions [HL708]. However, HL7 does say that Version 3 will cover
Figure 2.8: Part of the HMD from the RMIM shown in Figure 2.7.
Figure 2.9: Part of an XML message instance from the HMD shown in
Figure 2.8.
the information content of the last version in the V2 series, although this
should not be construed to mean that all attributes and events will be in-
2 and Version 3 datatypes are very similar, which is a good starting point
Chapter 5.
tems in Health Informatics and in understanding where the field has come
computing and networks since it was first introduced, and can actually im-
elling standard which is in line with new standards in computing. Its so-
worth it in the long term for interoperability. The V3 standard was used in
the ePOC project (Chapter 4), the Jini Health Interoperability Framework
(Chapter 7), and also in the Health Service Bus (Chapter 8).
and an XML transform from HL7 Version 2 to Version 3, and vice versa, is
ters 7 and 8. This allows legacy systems to be connected to the new inter-
in the model, which is discussed in Section 2.3. Meanwhile, the next section
2.2 openEHR
tient’s care, from birth to death [Tay06]. openEHR is one initiative which is
model, and as such can handle many different healthcare concepts. How-
ever, the small number of generic concepts in the model is not enough to
model.
The next sections explain the openEHR information model and arche-
ceptual model of what a patient record is, rather than describing any clin-
Compositions. Compositions are the top-level ‘data container’ and are used
patient’s family history, vaccination history, etc) [Tay06]. Figure 2.10 shows
instruction.
can contain multiple Contents, which can contain multiple Navigations and
Entries. Figure 2.10 simply shows how each of these types of structures
ing methods, the domain concepts are not simply represented by another
With respect to the openEHR information model, this means that arche-
types exist for different Entries and structures (Navigations), and even at a
higher level for Compositions. The information model deals with high level
concepts of what an EHR is, while the domain concepts, such as clinical
like:
• weight measurement
• blood pressure
• microbiology results
• discharge referral
• prescription
• diagnosis
tions, and finally, ‘diagnosis’ is an evaluation Entry. These are just some
simple “glue” syntax, which uses three other syntaxes for expressing struc-
sion syntax) is used to express data which appears in the ‘language’, ‘de-
The current version of ADL is 1.4, but a newer version of ADL, version
2, has been developed and openEHR hopes to migrate their existing arch-
etypes over to this new version in the near future. ADL 2 archetypes use
Figure 2.11: ADL Archetype Structure. The sections not in bold are op-
tional. c Copyright openEHR Foundation 2001-2006. All rights reserved.
www.openEHR.org.
two of the same syntaxes as ADL 1.4 (cADL and dADL), and replaces FOPL
with aADL (an assertion expression syntax), along with other small differ-
ences [BH06]. All references to ADL and archetypes in this work are ADL
1.4.
tion’, for the concept ‘Height’ (the characters “−−” denote a comment). This
example has been simplified from the full openEHR archetype [Hea06] (the
archetype(adl version=1.4)
openEHR-EHR-OBSERVATION.height.v1
concept
[at0000]{ −− Height
language
original language = <[“en”]>
translations = <[“de”]>
description
details = <
purpose = <“Recording the total length of the body from crown of head to sole of foot.”>
keywords = <“height”, “length”>
lifecycle state = <“AuthorDraft”>
>
ontology section). The language section states that the archetype was writ-
ten in English (en) and has been translated into German (de) (however,
the German translations have been omitted from the example for simplic-
ity). Next, the description contains details on the purpose and use of the
archetype.
follows:
definition
OBSERVATION[at0000] matches { −− Height
data matches {
EVENT[at0001] matches { −− Any event
data matches {
ELEMENT[at0002] matches { −− Height
name matches {
DV CODED TEXT matches {
defining code matches {
[local::at0003, −− Height
at0004] −− Length
}
}
}
value matches {
C DV QUANTITY <
units = <“cm”>
magnitude = < |0..1000| >
>
}
}
}
}
}
}
ELEMENT, at0002;
“local::at0003” means that the term ‘at0003’ is defined locally in the on-
ence terminology such as SNOMED CT. In fact, all of the terms used in the
header and definition sections of the archetype (at0000, at0001, at0002) are
ontology
term definitions = <
items = <
[“at0000”] = <
text = <“Height”>
description = <“Height (or Length) of the body is measured from crown of
head to sole of foot. In general, length measurements are recommended for
children under 2 years of age and individuals who cannot stand;
height measurements for all others.”>
>
[“at0001”] = <
text = <“Any event”>
description = <“Any measurement of height”>
>
[“at0002”] = <
text = <“Height”>
description = <“The length of the body from crown of head to sole of foot.”>
>
[“at0003”] = <
text = <“Height”>
description = <“Length of body in standing position”>
>
[“at0004”] = <
text = <“Length”>
description = <“The length of the body supine”>
>
>
>
This section defines at0000 as “Height” and provides a definition for it,
actually meant is Height. Note that there are actually three codes with the
text “Height”, but the definitions are different, each more specific than the
2 years).
Although at0001 has the text “Any event”, we can see by the definition
that it actually refers to any height measuring event. The second Height
code, at0002 refers to the length of the body, and the third Height code,
at0003 refers specifically to the length of the body while standing, as op-
posed to the length of the body while supine, which is called Length. The
ontology section has clearly defined the three related height concepts into
Looking back at the definition section, it can be seen that a height ob-
magnitude in cm.
XML in an archetype instance. Like the HL7 HMD, the hierarchical struc-
</EVENT>
</data>
</OBSERVATION>
loss of height measures, and what device was used to take the height mea-
The biggest difference between HL7 and openEHR, which most other differ-
ences stem from, is the fact that they have different purposes. In particular,
HL7 does not generally address EHR requirements. HL7, at its core, is a
dard.
emphasis from the HL7 standards development process. One of the main
HL7 is act-centred and based on events, due to the fact that it started
models for existing HL7 specifications” [HL708]. This is the HL7 equiva-
was chosen for document storage purposes over the HL7 CDA in this work,
as the two-level modelling approach makes for flexible and robust EHRs,
and HL7 templates are not as far advanced as archetypes at this stage.
EHR into which the information from the HL7 messages can be fed and
and then transported between healthcare entities (see the XML example in
XML and HL7 XML is possible after mapping between the two, which is
discussed in Chapter 5.
cord which separates the domain model from the information model via
openEHR can interact with HL7 by storing information from HL7 mes-
sages in persistent EHRs, thus using both standards for the purpose they
mation system.
2.3 SNOMED CT
tion could cause problems to arise if consistent terms are not used between
multiple ways of describing a single concept. For example, one person may
write potassium as “pot” another may write potassium as “K” (the chem-
model with meaningful data can solve this problem. A standard code for
contains more than 344,000 active concepts: the most comprehensive clini-
medicine [Uni08b].
can Pathologists (CAP) and the National Health Service (NHS) in the UK,
and Clinical Terms version 3 (CTv3) (see also Section 1.1.2). SNOMED
CT’s intellectual property has been transferred by these bodies to the In-
shows how SNOMED CT can be used within the HL7 and openEHR models.
1 http://www.ihtsdo.org/
(SNOMED CT Identifier).
or finding.
health care.
which are required for attributes e.g. open, left, right, etc.
These “concept groups” are actually concepts themselves and are at the
that are the direct children of the root concept. The root concept is the sin-
138875005).
within the terminology with the same properties as all other concepts in
SNOMED CT.
An example concept of ‘blood pressure reading’ and its attributes (in the
tral concept is O/E - blood pressure reading (O/E stands for on examina-
tion) and belongs to the concept group Clinical Findings. This concept is
the Observable Entity ‘blood pressure’ and has various ‘finding’ attributes
(informer, method and site). Two of the subtypes of O/E - blood pressure
reading are systolic and diastolic blood pressure readings. The SNOMED
Figure 2.13: Blood pressure reading concept and its attributes in SNOMED
CT.
system. This is a very general concept for the site of a blood pressure read-
ing. However, this value is merely to restrict the possible values to any
cept is the supertype of entire brachial artery, which this attribute could
be specialised to if the blood pressure reading was taken from the patient’s
general, but by specialising down the hierarchy, taking patient vital signs
could be used, or the subtype of taking patient vital signs: blood pressure
As is seen in later chapters, much of the work in this thesis are artifacts
based on clinical observations and findings data, using the clinical find-
SNOMED CT and HL7, HL7 Versions 2 and 3, and HL7 and openEHR
Figure 2.14: Blood pressure reading concept with more specific attribute
values.
MED CT is required.
be divided into two categories: those in which there are two clearly distinct
facets (example 1 below) and those which are often captured as a single
Looking at (1), the two facets are separated by the equal sign (=); the
first being the property which was observed (Pulse rate) and the second the
Clinical findings in the second category (2) raise many issues in where,
CT. Some examples of where to split this type of finding are shown in ex-
amples 3 and 4:
In (3), the clinical finding has been split into two facets in an attempt
to model the simpler type of finding. In (4), the concepts represented in the
clinical finding have not been split at all. It can be seen where problems
one finding, hence causing many more forms of representation. For exam-
ple, “the patient has a family history of myocardial infarction” could have
ways, as there exists some very specific concepts in the terminology which
with the concept femur (SCTID 182046008), and there are many more com-
edge [Pat06, HSV06]. This is due to the fact that it has evolved over 40
years and was made from merging the two other terminologies, SNOMED
RT and CTv3, in the late 1990s [IHT08]. This means that in some cases it
HL7 objects, no matter what class they belong to, all have an attribute
MED CT concept’s code. There are also other code-type attributes in HL7
Careful thought has to be put into mapping these two ontologies, taking
Represented in openEHR
openEHR archetype, which then dictates which codes are allowed in EHR
instances of that archetype. The openEHR ontology section can also have a
term bindings part, which shows how the local codes (e.g. at0000, at0001,
iting the openEHR height archetype example in Section 2.2.4, the ontology
section with bindings to SNOMED CT could look something like the follow-
ing:
ontology
terminologies available = <“SNOMED-CT”>
term definitions = <
items = <
[“at0000”] = <
text = <“Height”>
description = <“Height (or Length) of the body is measured from crown of
head to sole of foot. In general, length measurements are recommended for
children under 2 years of age and individuals who cannot stand;
height measurements for all others.”>
>
[“at0001”] = <
Thus, the SNOMED CT concepts are bound to the local terms using their
concept ids, showing that the concept “at0000” in this archetype refers to
in this archetype refers to the SNOMED CT concept for body height mea-
sure, etc.
work going on in both openEHR and the UK’s NHS to integrate SNOMED
tion of open interoperable systems for shared electronic health records. The
IHTSDO will collaborate with Ocean Informatics to use this language to en-
2 http://oceaninformatics.com/
ensure all communicating parties are using consistent terms within the in-
formation models.
MED CT to HL7, methods which were started in the ePOC project, and are
tem was developed based on HL7 V2 and is discussed in the next chapter.
Referral Messaging
Prototype
detail in the next chapter (Chapter 4). One of the requirements of ePOC was
this prototype was also the first step on the way to that project.
in healthcare. For this reason, referral messages were chosen as the basis
87
88 CHAPTER 3. REFERRAL MESSAGING PROTOTYPE
of the prototype system. At the time the prototype system was developed,
referral messages were also an important part of the ePOC project, so it was
thought that this work may form a basis for that project. However, due to
circumstances beyond the project team’s control, referrals did not end up as
Section 4.3.
specialist were used as the basis for the message flow in the referral system.
The flow of patients between the two GPs and the Specialist is shown in
Figure 3.1. A patient’s flow is shown as arrows between the GP and Spe-
patient can then be referred back and forth between GPs and the Special-
ist, and also referred back to the same entity for a later visit (Referral). The
patient can be discharged at any point from any of the entities (Discharge).
HL7 Version 2.
Figure 3.2 (a) shows the referral messages required in the information
system to match this patient flow. Admission and discharge are events in
the prototype system, but referrals were the only messages concentrated
on.
To allow the GPs and Specialists to find each other, a central registry
was added to the referral messaging system. This allows any number of
GPs and Specialists to communicate with each other, as long as they are
registered with the central registry. Figure 3.2 (b) shows the final referral
Figure 3.1: The flow of patients between two hypothetical GPs and a Spe-
cialist
a. b.
Figure 3.2: a. The referral messages required for the patient workflow b.
The referral message flow including a central registry.
modelling and messaging, because of the complexity of the HL7 RIM it was
difficult to get started using this standard [SLM+ 07]. HL7 Version 3 is not
hard to find. The referral messaging prototype uses HL7 Version 2 for the
following reasons:
• Message types and formats are clearly defined, including local (Aus-
The REF I12 standard HL7 V2 referral message format was used, based
on the HL7 V2.3.1 Australian standard AS 4700.6 [Sta04] and NSW Health’s
tual patient visit being transmitted in this message. This was omitted for
this direction, the REF I12 message components shown in Figure 3.4 would
have been used. However, after this brief foray into HL7 V2, it was decided
that HL7 V3 was definitely the way forward and progress switched over to
Figure 3.3: Diagram showing the HL7 V2 REF I12 message components in
the messages used in the prototype application.
• DG1 – Diagnosis
• AL1 – Allergies
Clinical Observation
3.5. This is the old EDI format for Version 2 messages and it can easily
be seen that if one pipe (|) was missing, the message would quickly become
XML specification has been developed including XML schemas and DTD1 s
for representing this same information as XML. The XML specification was
1 Document Type Definition
Figure 3.4: The HL7 V2 REF I12 message for a more complete information
system.
Figure 3.5: An instance of an HL7 V2 REF I12 message with the segments
shown in Figure 3.3.
The message format was tested using the Australian Healthcare Mes-
saging Laboratory (AHML) online testing facility, and passed the HL7 Ver-
messages containing those details, and a central registry system. The ap-
This means that for the example workflow shown in Figure 3.2 (b), three
instances of the application were running, two as GPs and one as a Special-
ist. It can be seen that this setup could easily be expanded to allow any
GPs would not directly send and receive messages, this would be handled
Key features of the prototype system are outlined in the following sec-
tions.
system are being represented in HL7 XML, as shown in Figure 3.6. The
XML messages are then wrapped and sent using SOAP2 over TCP/IP. SOAP
is a widely accepted standard for XML transmission over TCP/IP. Figure 3.7
Screen shots of the prototype application are shown below. Figure 3.8 shows
the first screen in the application. The user can select to either send a
If the ‘Send Referral Message’ button is clicked, the form in Figure 3.9
is shown. The user (GP/Specialist) can then enter all the patient’s details
and send the message. There are three tabs of patient details, the main
one is selected in the screenshot shown. The other two tabs are for the
patient’s address details, and details of the patient’s next of kin. All these
list of received messages to choose from (Figure 3.10 [a]). Once a message
is selected, the same form used for sending referrals is shown, but with the
fields filled with the details of the message and unable to be edited (Figure
3.10 [b]).
tity, some settings for name and other healthcare provider details can be
entered into the system for identification of that entity for communication
provider details.
Figure 3.11 shows the form where persistent settings for the application
can be viewed and changed. Settings include the name of the facility, and
a. b.
the clinician’s name and qualifications. The ‘Message ID’ field refers to the
ID of the next message to be sent from this entity. If no messages have been
sent, it thus refers to the starting number for all messages from this entity.
eration for sending messages, and XML message reading and parsing for
when a message is received. The XML parsing module was one of the
The XML messages are stored at both ends (sending and receiving) for
the service can be looked up by another entity, which can then communicate
can be found. The Registry Service runs on an HTTP channel for commu-
window.
After the Registry Service starts up, it waits for registrations. When it
name of the entity and then returns a “Registered!” message. This can be
that form has come directly from the Registry Service. The Registry then
waits for further messages. The other type of messages sent between the
Registry Service and prototype application entities are requests for details
on other entities.
Creating this referral system was the first step toward putting Health In-
formatics standards into practice for interoperability. The most useful out-
ing system is very basic, but it was a starting step toward developing an
ability solution was part of a major project called ePOC, which is described
next.
sity of Wollongong, with industry partners Pen Computer Systems and the
Pen Computer Systems Pty Ltd was incorporated in 1993 to meet the
TACT Clinicians visit and treat patients in their homes, which takes them
away from all centralised information systems within the health service,
and thus everything is done on paper. As such, it can be seen that having a
in this setting by cutting down on data processing time, such as time spent
99
100 CHAPTER 4. THE EPOC PROJECT
Figure 4.1 shows the overall plan for the ePOC information system. A
ferral Form via a Referral Database. This central system can also connect
to other Health Systems in the area health service. The central system can
can be taken out into the field on patient visits and do not have to remain
providing mobile health information systems that can move beyond tradi-
one small device and the wide availability of wireless networks in recent
systems.
PDAs for ambulatory care offer benefits such as the ability for the collec-
tion, delivery and exchange of timely information (text, data and images)
advantages that PDAs offer is the ability to store many books worth of in-
reference materials out into the field at no extra cost. The connectivity of
HL7 V3 and SNOMED CT. The ePOC system modelled and developed to
systems used by TACT are paper-based and limited to what is easy for
the clinician to take out on patient visits. The key advantages of a PDA
system are its high mobility and flexibility in matching complex healthcare
• develop interface software for clinical use (for both PC and PDA plat-
forms);
ogy; and
tative, open approach with all project team members. In particular, project
ogy) and the intended end-users of the PDA application (TACT Doctors,
Consultation with the end-users of the system was held on an ongoing basis
Community based health services within the state of New South Wales cur-
rently deliver over 8 million occasions of service per annum. These are
carried out by more than 7,000 clinicians from more than 850 health ser-
vice locations across the state. The cost of this service is estimated to be
more than $450 Million dollars per annum [NSW05]. The Ambulatory Care
Team (TACT) in the Northern Illawarra region of the South East Sydney
ical officers, staff specialists and also peri operative clinics [TAC04]. TACT
is a small unit of 21 staff members which runs two shifts a day (morning
and evening), with two clinicians working each shift and a maximum ser-
The TACT clinicians were involved in a field trial of the ePOC system
in May, 2007, in which they took PDAs out into the field to collect clinical
observations data on both morning and evening shifts, each day for two
weeks.
involved on the part of SESIAHS meant that integration with current and
legacy hospital systems was not possible. These issues were not on the part
The final system involved one main module, Clinical Observations and
system and PDA system were developed for the clinical observations mod-
basis by TACT staff, so this module was chosen as the starting point for the
was based on the TACT workflow for clinical observations shown in Figure
4.2.
The workflow in Figure 4.2 was derived based on current paper forms
used by clinicians on patient visits. As such, the workflow shows every step
being done in order one after the other. After consultation with TACT staff,
it was ascertained that every clinical observation is not taken on every visit,
or possibly multiple times in one visit, and not necessarily in the order they
are written on the form. For example, some patients are visited twice in one
day, and during the evening visit usually only pulse and temperature are
taken. Keeping this in mind, the ePOC PDA system (the new equivalent of
the paper forms) was designed so that the observations can be taken any
clinician then logs into the PDA at the patient’s house. The “Get Date and
Time” step is done automatically by the system. Using a paper form the
clinician would have had to enter this detail, but now the PDA can auto-
matically timestamp the patient visit information. The steps after this are
all observations and can be taken in any order, multiple times, or not at all.
ingful way. A defined set of terms for disambiguation and meaningful ex-
port and storage, with SNOMED CT used within the information model
information model of HL7, the HL7 message models in ePOC are based on
in Chapter 5.
close collaboration with TACT clinical staff, making use of their health do-
The second module on the ePOC agenda was cannula insertion, although
the stage of integrating this module into the system was never reached.
cannula insertion is that certain veins in certain patients do not take well
to the insertion, or may have become infected in the past. A major goal for
this module was to make this sort of patient history readily available at the
based process replication on the PDA and integrate graphics into the mobile
system. An image map showing a right and left arm was under develop-
ment on which the user could click which ‘spot’ on which arm the cannula
message model was developed. Unfortunately, the image map and message
models were not integrated into the prototype PDA system in time for the
field trial.
All of the clinical observations in the set of eight for ePOC are of the two-
tions (urinalysis measures several types of values from one urine sample).
With this in mind, it was decided not to use SNOMED CT concepts from
the Clinical Finding hierarchy as the description codes for the property
observed value. This is in line with the two-faceted model, the first facet be-
ing the Observable Entity and the second facet its observed value. This also
finding” [IHT08].
Figure 4.3 shows a subset of the SNOMED CT terms used for clinical
observations data. These are such concepts as core body temperature, pulse
rate, blood pressure, etc, in accordance with the clinical observations taken
by TACT. The top level concept in this diagram is vital signs. Only four of
cepts which are subconcepts of the vital signs concept, the other concepts
ysis) are at the same level in the hierarchy as vital signs, and are all sub-
here for simplicity and readability. The circles in the diagram represent
the concepts and the arrows depict the SNOMED CT ‘is a’ relationship,
e.g. “pulse rate is a vital sign”, meaning Pulse Rate is a subconcept of Vital
Signs.
relationships. Figure 4.4 shows some of the Procedure concepts used in the
4.3. These are such concepts as temperature taking, pulse taking, etc.
See Appendix C for the full SNOMED CT subset used in the final ePOC
system.
used for clinical observations. This is due to the fact that Observable Enti-
ties usually only have one relationship type – ‘is a’. The Procedures subset
subset, so only the ‘is a’ relationships were noted for that module.
The cannula insertion SNOMED CT subset takes into account all rela-
tionship types, and is shown in Figure 4.5. The Procedure peripheral venous
cannula insertion - forearm has direct device venous cannula and method
ing to the veins in the three spots on the arm where the cannula can be
Figure 4.5: The SNOMED CT subset used for cannula insertion in ePOC.
The HL7 message models in ePOC are based on the structure of the SNO-
were first developed here as part of the ePOC project, and were then ex-
cussed in Section 2.3.3. However, in the case of the two-faceted clinical find-
code field contains the SNOMED CT code for the observation (from the
measured value of the observation. The Procedures shown in Figure 4.4 are
Procedure) within the one HL7 Act hierarchy. Figures 4.6 and 4.7 show the
ssure is a subtype of vital signs and can be said to have the relationship ‘is
Figure 4.4, blood pressure taking is a subtype of taking patient vital signs
and has an ‘is a’ relationship with taking patient vital signs. Thus, the HL7
summarised in Table 4.1 for easy reference. Figure 4.8 shows the mapping
Figure 4.6: The ePOC RMIM for clinical observations patient care provision
event (part 1).
Table 4.1: Mappings of concepts and relationships between HL7 and SNO-
MED CT for clinical observations.
Concepts
HL7 Observation Field SNOMED CT Subset
code Observable Entities
methodCode Procedures
Relationships
HL7 SNOMED CT
componentOf ‘is a’
component Subtype
next to an excerpt of the HL7 model based on these subsets, with arrows
showing where the codes for these concepts fit into the HL7 model. This
message model was implemented in the ePOC project for use in communi-
Figure 4.8: Mapping SNOMED CT to HL7 for use in ePOC clinical obser-
vations.
The HL7 message model for cannula insertion was based on the SNOMED
CT subset for cannula insertion in Figure 4.5 and is shown in Figure 4.9.
fields in the one Act. Only the has direct device SNOMED CT relationship
nous cannula device itself is modelled as an HL7 Entity. Table 4.2 shows
Figure 4.10 shows the final ePOC system structure. On the left is shown the
ePOC PC system, and on the right the ePOC PDA application. The ePOC
system consists of the ePOC Control Panel software, which uses the TACT
Client Entry Form, both of which communicate with two database tables –
Table 4.2: Mappings of concepts and relationships between HL7 and SNO-
MED CT for cannula insertion.
Concepts
HL7 Act Field SNOMED CT Subset
code Procedure (cannula insertion)
methodCode Action (insertion)
targetSiteCode Body Structures
HL7 Entity Field SNOMED CT Subset
code Physical object (venous can-
nula)
Relationships
HL7 SNOMED CT
participation (device) has direct device
code fields in a single Act Procedure Site, Method
the Client table and the Observations table (the client ID is a foreign key
The PDA system on the right consists of the ePOC PDA application, and
the TACT reference materials which are also stored on the PDA. The TACT
embedded browser.
The PDA downloads client details from the ePOC system, and then up-
loads observations data in HL7 Version 3 format on return from the field.
A HL7 software package directly modelling the HL7 classes was devel-
oped and implemented in C#. This is a useful and reusable outcome of the
ePOC project. A part of the HL7 package class design is shown in Figure
4.11. The classes “Temperature”, “Pulse” and “Respiration” are all sub-
The entire ePOC system, including the PDA application was developed
in C#.NET. The ePOC Control Panel makes use of Dundas Chart1 to show
reads HL7 V3 messages and retrieves core information from them, based on
Figure 4.12 shows the steps involved in reading XML messages to re-
trieve observations to be stored in the database on the ePOC PC. The Client
ID is read from the patient information, and then the observations are read
Figure 4.12: Decision tree showing the XML processing algorithm used for
reading messages in ePOC.
of an Observable Entity concept and a value are easily retrieved from the
The Online Referral Form shown in the ePOC overall plan (Figure 4.1) is an
local GPs via an online form. The methodology of the Client Entry Form in
the final ePOC system, referenced in Figure 4.10, was to model the existing
Online Referral Form process. Including this form in the prototype was
the final ePOC system. Unfortunately, The final ePOC system was never
realised. Figure 4.13 shows a screen shot of the ePOC Client Entry Form.
TACT office which interacts with the Client Entry Form and two database
The first step in using the ePOC system is to add clients on the central
PC using the Control Panel. Once all appropriate clients have been added,
they can be downloaded to the PDA by synchronising the PDA with the
4.14.
Clicking on the ‘Add New Clients’ button launches the Client Entry
Form in which patients can be added and are saved to a database. Pa-
tients can be entered sequentially before going back to the control panel.
Before venturing into the field, the clinician connects the PDA to the PC
and connects the ePOC application by clicking the ‘Connect’ button. The
clients will be downloaded to the PDA when the ‘Sync with PDA’ button is
clicked.
When the clinician returns from the field at the end of their shift, the
messages are sent to the Control Panel from the PDA on re-synchronising.
The patient’s history can be viewed as a graph in the Control Panel – click-
an example graph is shown in Figure 4.15. The client’s name and address
are obscured in Figure 4.15 as this is de-identified data from the field trial
discussed in Section 4.7. The observation graphs are one of the advantages
the ePOC system has over the paper-based system – automatically plotting
Figure 4.15: The ePOC Control Panel – Client History screen showing a
graph for patient temperature over a one week period.
The ‘Messages’ tab in the ePOC Control Panel is for research purposes only
– the clinician end-users do not need to look at this tab. This tab shows
each individual message received from the PDA, which can then be viewed
in a tree form – the HL7 XML is displayed in a tree, with each XML node
expandable and collapsible. This is a useful tool for the health informati-
system. The software design for displaying the messages is a recursive algo-
rithm which can display any HL7 V3 XML. Figure 4.16 shows the Messages
tab.
The mobile ePOC system resides on a PDA, along with TACT reference
materials. The TACT reference materials are in HTML format and can be
After logging into the ePOC PDA application, the clinician is presented
with a list of patients. From here, the patients’ observation history can be
figure shows the list of Clinical Observations available for TACT clinicians
to enter for the selected client. The observations may be performed in any
keypad appears. The clinician enters the value for the observation and
progresses through to all other applicable observations for the client during
the ambulatory care visit. Once all the observations have been entered for
in Appendix D.
equates to file sharing. This is due to the tight security restrictions imposed
the only level focused on for this project, but HIF-J demonstrates a better
technical interoperability solution (Chapter 7), and the HSB addresses all
The field trial of the ePOC system involved eight clinical staff collecting
observations data for 17 clients over two weeks in May, 2007, using ePOC
on PDAs and the ePOC Control Panel on a central PC, as described in the
previous section.
Before the field trial, TACT staff attended a training session and were
given instructional user manuals on both the ePOC Control Panel and PDA
were held to attain the TACT staff ’s opinion of the ePOC system. The size
of the field trial does not allow for definitive results, but the comments
from the focus group were all positive. This focus group was mainly for the
user-acceptance track of the project, which was the domain of other team
members.
A total of 64 HL7 messages resulted from the trial, which have since
been de-identified and stored in an XML database for querying. The data
contained in the messages shows that the TACT clinicians all entered the
with comments given in the focus group that the PDA application was easy
to use and understand, and that it was easy to navigate through the ePOC
were not entered for any of the patients. The data fields on the ePOC Client
Entry Form were based on the TACT Online Referral Form; however, the
TACT staff did not use any of the next-of-kin data fields. At first it appeared
that the current TACT form does not match up with their actual work pro-
cess. However, when staff were questioned about this, they remarked that
they did need next-of-kin data, but the fields were not mandatory, so none
of them bothered to enter them. This raises design concerns that all fields
in the data entry interface should be made mandatory, as the TACT staff
Technically, the ePOC system has shown that by basing HL7 message struc-
and terminology can be created. The application of this model for clinical
sues, several reusable software components came out of the project which
Ontology Mapping
chapters. This chapter will show how mapping between different infor-
ability. By using each standard for its purpose, an enriched model can be
ing to find a one-size-fits-all solution which does not exist. The first part of
the chapter will discuss the definitions of ontology and ontology mapping,
and then mapping between SNOMED CT and HL7, HL7 Versions 2 and 3,
The word Ontology has been “borrowed” by Computer Science and in this
125
126 CHAPTER 5. ONTOLOGY MAPPING
ontology
noun
ES04b]:
O := (C, HC , RC , HR , I, RI , A)
subsumption hierarchy HC .
sponding hierarchy HR .
stances RI .
dence between the two [BLDK05b, RB01], or to put it another way the two
ontologies are mapped to each other so that the source ontology instances
pleting the inverse mapping. That is, to use the earlier definition, the target
instances can also be transformed back into the source instances. In most of
the ontology mapping work during this research the inverse mapping was
required to map both ways between two ontologies (i.e. map O1 to O2 and
then map O2 to O1 ).
1. The first conflict occurs when ontologies for the same domain knowl-
2. The second conflict occurs when either the same concept has differ-
SNOMED CT and HL7, but has different meanings in both, which is dis-
ate harmony between the structure of the two models to move toward the
HL7 Acts, Entities and Roles all have a code attribute. This at-
and is the subject of much debate. The solution outlined here is normalisa-
of a set of classes with subsumption hierarchies, i.e. Act has the sub-
The classes are related to each other through relationships which are also
ciated with is a concept model attribute and has the subconcepts after, and
due to.
SNOMED CT, a corresponding entity, which has the same intended mean-
ing, was found in HL7. The reverse mapping is not required in this in-
stance.
Both of the conflict situations listed in Section 5.2 occur between the
model clinical constructs. This is the key difference between the two which
The second conflict regarding naming also occurs between the two on-
Fall, Flood and Motor Vehicle Accident. HL7 also contains an Event, but
this time it refers to ‘an Act which has occurred’, i.e. it is the past tense of
Act. This could be that a patient’s blood pressure was taken, or that a pa-
matters, HL7 has some vocabulary tables of its own, used in fields such as
One of the findings from Dolin et al. [DMC+ 04] in the CMT project (see
side, they argue, is that different implementations of HL7 could use differ-
One suggestion that has been made in trying to draw the terminology
and the message structure together is the inclusion of the HL7 vocabu-
not necessary as mapping between the two may be achieved by using the
does not require the UMLS Metathesaurus. The approach taken in this
work is to do away with the HL7 tables and use SNOMED CT subsets ex-
clusively for all code-type fields, thus setting a standard coding scheme for
use throughout the model, so the concerns of Dolin et al. do not pose a prob-
lem.
and mood7Code), but these fields have strict non-extensible values, so us-
ing only these two HL7 tables and SNOMED CT for every other code field
is the solution used here. Other HL7 tables such as code, priorityCode,
reasonCode and languageCode are much less restricted and allow free-
hand entry of concepts, and these are the cases where restriction is required
example.
Systolic Blood Pressure Reading and Diastolic Blood Pressure Reading are
HL7 is shown in Table 5.1. The first five rows show a relatively straight-
forward mapping between the two, e.g., the SNOMED CT attribute finding
Code), and the SNOMED CT concept structure of brachial artery will be the
ple mapping of SNOMED CT concepts to the one Act class instance, into
The last four rows in the table refer to attributes in SNOMED CT which
Figure 5.2: Blood Pressure Concept and its attributes from SNOMED CT
represented in HL7
Table 5.1: Mapping from SNOMED CT to HL7 in Figures 5.1 and 5.2.
SNOMED CT HL7
Concept Attribute Class Attribute
o/e - blood pressure reading n/a Observation code
structure of brachial artery finding Observation targetSiteCode
site
blood pressure taking finding Observation methodCode
method
blood pressure interprets manifestationOf Observation::code
performer of method finding informant Role::code
informer
o/e - Systolic BP reading is a componentOf Observation::code
o/e - Diastolic BP reading is a componentOf Observation::code
ample, the systolic blood pressure concept populates the code field of an
blood pressure. Figure 5.4 shows this type of mapping from SNOMED CT to
HL7. As can be seen in the figure, the SNOMED CT concepts map to HL7
ships then map to HL7 Relationship class instances. This mapping shows
the ePOC project. Following on from that project, the mapping techniques
The work described in the ePOC project (Chapter 4), while being sufficient
a complete framework for health communication and has formed the basis
for the messaging models and use of terminology in this framework. To this
end, the messaging focus was expanded more generally to include all types
new strategy, HL7 models and messages are automatically generated based
mappings used in the ePOC project shown in Table 4.1, SNOMED CT Body
Structures have been mapped to the HL7 targetSiteCode field, and Clin-
ter field is automatically populated based on the code combined with the
normal blood pressure concept has the relationship interprets with blood
pressure, and the blood pressure value is in a healthy range. The target-
SiteCode field is then restricted to systemic arterial structure and its sub-
concepts, based on the fact that the normal blood pressure concept has the
This decision support system meets the criteria in Section 1.1.4 in that
based and makes using the messaging system easier. In the actual imple-
turn the decision support off is included, in case the clinician really does
these fields so that all code values in the one instance of a HL7 Observat-
such as Finding Site, are mapped by the two concepts belonging to the same
shown in Table 5.2. The new mappings (not previously described in the
Table 5.2: Mappings of concepts and relationships between HL7 and SNO-
MED CT.
Concepts
HL7 Observation Field SNOMED CT Subset
code Observable Entities
methodCode Procedures
targetSiteCode Body Structures
interpretationCode Clinical Findings
Relationships
HL7 SNOMED CT
componentOf ‘is a’
component Subtype
manifestationOf Interprets
informant Finding Informer
code fields in a single Act Finding Site, Finding Method
tainable, as the two versions cover the same semantic content in different
structures and syntax (see Section 2.1.3). Mapping in both directions is re-
quired in this case (HL7 V2 ↔ HL7 V3). I.e., for each entity in HL7 V2, a
corresponding entity was found in HL7 V3, and then for each entity in HL7
Bicer et al. have achieved this transform using Web Ontology Language
As part of their work, they have used the HL7 Application Programming
The EDI-format messages are first converted to XML, which then allows
the OWL mapping between HL7 V2 XML and HL7 V3 XML. To achieve
the XML mapping, Bicer et al. make use of various tools, including XPath,
The system that Bicer et al. have created for translation is an excellent
solution to general mappings between the two HL7 versions. However, such
a heavy-weight solution was not required for this work, as one type of data
two models. The HL7 Versions 2 and 3 datatypes were mapped first, as they
Strings’), which maps to two different ID (code) fields in Version 2 (the first
the type ‘Date Time’ (DTM). A general rule that anything which is of GTS
2 http://www.w3.org/TR/owl-features/
3 http://ksl.stanford.edu/projects/owl-ql
Table 5.3: Mapping between HL7 Version 3 datatype “Postal Address (AD)”
and HL7 Version 2 datatype “Extended Address (XAD)”.
2, and vice versa, can be taken from this, as well as other general rules
in Section 5.3.2, the HL7 V3 model has been extended from the ePOC def-
sages, so the V2 ORU R30 message structure was researched and employed
the trigger event R30 refers to “place an order”, meaning an order was
servations message.
message segments.
patient data, as an example. The table shows the V2 fields for the Pa-
in Figure 5.6 (abridged from openEHR4 ). As can be seen in the Figure, key
the term binding field of the ontology section. This dictates the use of ter-
existing openEHR archetypes, and that mapping the HL7 models based on
and openEHR was done in same way as the mapping between the two ver-
sions of HL7 – using XSLT. Bi-directional mapping was also needed in this
case, to ensure that meaning was preserved during translation in both di-
Mapping between HL7 and openEHR was first employed so that systems
using different health standards could communicate with each other using
lution (HSB – Chapter 8), an EHR XML database containing openEHR in-
dev/adl/openehr/ehr/entry/observation/openEHR-EHR-OBSERVATION.blood\
_pressure.v1.adl
to the openEHR archetype for clinical findings5 (see the next subsection –
The SNOMED CT code and the value of the observation are represented
forms were created for translating between HL7 V3 and openEHR Obser-
Table 5.5 shows the openEHR archetypes used for clinical observations.
This was preliminary work done for the ePOC project, which is why the ar-
chetypes listed are for the eight observations recorded in ePOC, but open-
EHR was not used in that project. The work was continued for messaging
in HIF-J.
5 openEHR-EHR-SECTION.findings.v1.adl
a. openEHR XML
b. HL7 XML
The openEHR archetypes in Table 5.5 were grouped together using the
(the archetypes in the table). This maps to the HL7 Observations RMIM by
to blood pressure, pulse, etc. This is shown in Figure 5.9. The structure
6 http://www.openehr.org/svn/knowledge/archetypes/dev/adl/openehr/ehr/section/openEHR-
EHR-SECTION.findings.v1.adl
on the left in the figure shows the HL7 message structure taken from the
RMIM for patient observations. The structure on the left shows the Clini-
cal Findings SECTION of an EHR. It can be seen that the structure of the
Patient Observations part of the HL7 message is the same as the openEHR
Clinical Findings section. This means that the HL7 XML for this section
pings between the fields and then stored permanently as part of a patient’s
EHR.
ing standards. Second, by exploiting the strong points of each standard and
Figure 5.9: Mapping HL7 message structure to openEHR structure for Ob-
servations.
elled in HL7).
the different ontologies to each other can avoid vendor lock-in and enable a
XML Database
vice was set up. The core part of the SNOMED CT Terminology Service is a
forming the standard SNOMED CT distribution into XML and the theory
behind it.
for querying. Two front-ends which connect to the XML database were cre-
ated, one to expose it as a Jini service for use in HIF-J described in the
next chapter, and a standard Web Service for connecting the XML DB to
147
148 CHAPTER 6. SNOMED CT VITAL SIGNS XML DATABASE
the Health Service Bus (Chapter 8), both written in Java. The communica-
tions front-ends, combined with the XML database form the SNOMED CT
Terminology Services.
The first step in creating the XML database was to take a subset of
veloped and used to create the SNOMED CT XML subset is shown. The
work.
coming under the heading of Vital Signs was taken. Vital Signs was cho-
sen in keeping with the theme of taking observations, started in the ePOC
Figure 6.1 shows part of the Vital Signs subset. Observable Entities,
Clinical Findings, Procedures and Body Structures are shown, along with
the ‘is a’ relationships between them (black arrows) and other relationships
(red arrows). When it is mapped out as in the figure, it can be seen that the
in rows with the first row being the column headings. Table 6.1 shows a
small section of the SNOMED CT Concepts file from the July 2007 release
Table 6.1: Part of the SNOMED CT Concepts file (July 2007 Release). All
rights reserved IHTSDO.
in general (see also Section 1.5.2). Parsing these SNOMED CT text files
in an XML database, which allows for faster and more intelligent querying
power.
Figure 6.2 shows the XML version of the concepts in Table 6.1. The
table rows have been turned into XML elements with the name ‘concept’,
with each data field as a child element of ‘concept’, with the same names
original fields have been retained so no information has been lost, and just
by looking at a single concept the field names are apparent. This is one of
see what each item of data is, without having to refer to a column headings
The other two files that make up SNOMED CT are the Descriptions
file and the Relationships file. Concepts in SNOMED CT can have many
As can be seen in the Table, the CONCEPT ID field is a foreign key re-
Table 6.2: Part of the SNOMED CT Descriptions file (July 2007 Release).
All rights reserved IHTSDO.
This query would return the results shown in Table 6.2. If the Concept
WHERE CONCEPT ID =
Figure 6.3 shows the XML version of the descriptions in Table 6.2. The
descriptions XML is in the same format as the concepts XML – each row has
XQuery can be used to query the XML, just like SQL could be used for
the text files. The XQuery corresponding to the two SQL queries mentioned
for $x in /SNOMED-CT/description
return $x
for $x in /SNOMED-CT/description
where $x/conceptId =
2 FLWOR is an acronym for “For, Let, Where, Order by, Return”.
(for $y in /SNOMED-CT/concept
return data($y/conceptId))
return $x
Concept Status: 0
Ctv3Id: XU48G
Table 6.3: Part of the SNOMED CT Relationships file (July 2007 Release).
All rights reserved IHTSDO.
Is Primitive: 1
the ‘is a’ relationship is needed (116680003). An SQL query to find the IDs
The concepts file can then be queried based on the returned Concept IDs
Figure 6.4 shows the XML version of the concepts in Table 6.3. Once
again, each row from the delimited file has been converted to an XML el-
this node.
for $x in /SNOMED-CT/relationship
return $x
Converting the delimited text files to XML allows for greater flexibility
able to run the SQL queries shown as examples, the text files would first
comes in.
stricted to the Vital Signs subset (the subset has 11,000 relationships), so
to solve this problem a small utility application was developed which takes
are related to the input SCTID into XML. The output is three XML files
corresponding to the three delimited text files, for the subset based on the
input SCTID. Note that unlike the text files, due to the nature of native
XML databases, the XML files could be combined to the same file with-
out any programmatic difference, or could even be split up into more than
three files, but they were kept in the same file structure as the input files
for ease of human understanding. Figure 6.5 shows the complete process
Figure 6.5: The process for creating the SNOMED CT Vital Signs subset
XML Database.
The converter utility tool was developed in C#.NET and was originally a
simple command-line based application. After using the converter and re-
alising that this was a valuable, reusable tool, a simple graphical interface
was added for ease-of-use. Figure 6.6 shows a screen shot of the main form
write the output XML. The first step in the conversion is to build a ‘to do’
list of concepts which are related to the input concept, by finding all the
concepts which have relationships with that concept from the relationships
file.
The tool recursively continues to do this for each concept until the ‘to
do’ list is complete, and compiles the list of relationships at the same time
(the list is complete when all relationships pertaining to each concept are
relationships for the remaining concepts already exist in the list). Finally,
The last step is to then go through the lists and output each concept,
subsets.
with the converter tool for this purpose. The CliniClue browser for SNO-
At the end of the conversion process, the XML files were stored in an
eXist native XML database, which can then be queried using XQuery, as
A native XML database is a database that treats XML documents and ele-
big advantage of a native XML database is that it can run queries that com-
Section 6.2, XQuery is to native XML databases in the same way that SQL
is to relational databases. However, XQuery does not have the same func-
documents from the database, or modify existing documents. This does not
ily a static knowledge source. The ability to query multiple documents also
means that new concepts can be added as a new XML file, which will then
XUpdate support, XQuery update extensions and tight integration with ex-
isting XML development tools [eXi08]. eXist provides functionality for cre-
XML documents to those collections. Figure 6.7 shows the database admin-
Java applications using the XML:DB API. The XML:DB API uses a spe-
cific URI scheme to locate a collection of XML resources on the server. eX-
As discussed in the next two chapters, a Jini service front-end was de-
veloped which connects to the eXist database server using the XML:DB API
and used within HIF-J (Chapter 7), as well as being adapted as a general
Web Service which was connected to the Health Service Bus (Chapter 8).
ability and accessibility than delimited text files. Storing the XML subset
in an eXist native XML database allows for fast and easy querying of the
XML data, and can be connected to Java applications using the XML:DB
API, which is exactly what is done in HIF-J and the HSB, described in the
Interoperability
Framework (HIF-J)
out it.
solution for healthcare, and to this end a framework built on Jini technol-
be used. HIF-J also makes use of JavaSpaces (an optional part of Jini).
161
CHAPTER 7. THE JINI HEALTH INTEROPERABILITY FRAMEWORK
162 (HIF-J)
The first step in implementing HIF-J was to create a Jini service front-
end for the SNOMED CT XML Database (Chapter 6). Next, translation ser-
vices – both for translating between HL7 Versions 2 and 3, and for translat-
ing between HL7 and openEHR – were created using the message models,
This chapter will provide some background on the Jini architecture and
work should be all or almost all you need to do to make the service
network and are available, they can be discovered and used by clients
service available on a network, the more services you will find on the
network.
• Simplicity – simple systems are easier to learn and use, and sys-
systems.
The methodology and aims of the Jini technology make it an ideal plat-
good news for the healthcare industry, where application and information
silos are one of the main communication problems. The Jini Architecture is
an example of an SOA.
The base functions available within Jini can be broken into five areas:
• Discovery
• Lookup
• Leasing
• Events
• Transactions
how JavaSpaces relate to Jini. The Entry class, which is part of the Jini
Technically, a JavaSpace is a Jini service that makes use of the Jini in-
frastructure and provides its capabilities to other Jini clients and services.
object repository. As such, one the most common uses of JavaSpaces is for
Every Jini system is built around one or more lookup services – multiple
lookup services may exist in a network. Other services use the lookup
service to advertise their availability so that clients may find them. The
Each lookup service provides a list of available services, the proxy ob-
Figure 7.1 shows the process for the SNOMED CT Service to register
with a lookup service. When the service starts, it uses discovery to find the
lookup service. The service then registers its proxy with the lookup service.
that type of service and download the proxy (Figure 7.2). The client can
then invoke methods on the proxy object to use the service (Figure 7.3).
7.1.3 Leasing
When a service registers with a lookup service, it receives a lease from the
lookup service. Leases are a programming model within the Jini architec-
renew its lease. If the service crashes, its lease will expire, which allows the
Figure 7.1: Jini process for registration with a lookup service (based on
figure in [AOS+ 99]).
Figure 7.2: Jini process for finding a service (based on figure in [AOS+ 99]).
Figure 7.3: Jini process for using a service (based on figure in [AOS+ 99]).
7.1.4 Events
sponding to some change in the abstract state of the object [AOS+ 99]. The
Jini architecture has infrastructure in place called the Jini Event Specifi-
kind occurs [Sun05]. The Jini Event Specification takes into account the
7.1.5 Transactions
grouped in such a way as to guarantee them to all succeed or all fail [AOS+ 99].
tion can easily be exchanged in the form of Entry objects [Hal02]. The Java
class Entry is a core part of the Jini specification and is crucial to JavaS-
paces in particular. The only type of objects which can be written to and
read from a JavaSpace are Entry objects. This class is explained in more
in Section 7.4.
- Jini
The Jini services shown are the SNOMED CT Terminology Server and the
Translation Services. More Jini services can be added as they are required
or implemented.
The Translation Services rely on the XSLT transforms which were part of
application can plug into HIF-J and communicate with other observation
All of the components of HIF-J are written in Java and are detailed in
A front end Jini service was built for the SNOMED CT Vital Signs XML
The first function returns the full details of a SNOMED CT concept from
its SCTID. For the other five functions, either the SCTID or the complete
concept can be passed to the Terminology Server to retrieve the list of par-
Figure 7.5 shows the Java class structure of the SNOMED CT Terminol-
and uses the proxy class SnomedProxy (which also implements the Snom-
edCt interface). The details of how these classes interact was shown in
7.4 HealthSpace
There are only seven methods in the JavaSpace interface, but these
seven methods provide the basis for more complex distributed systems [Hal02].
ing it. This allows a JavaSpace to be searched. The Read method will
stead of waiting.
• Take – Take also has the same functionality as Read, except that if a
• TakeIfExists – the same as Take, but does not wait for a matching
large objects are continually being read from a JavaSpace, the details
– Read, Take and Write (Notify is fundamentally the same as Read, but
Entry objects are read from a JavaSpace by passing a template of the ob-
to HealthSpace with the To field filled in with the client’s name, and wild-
cards for the From and Body fields. Figure 7.6 shows an example of writing
a Message object to the space and using a Message template to read from
the space.
The To attribute is used for basic routing – a client can receive its mes-
in the To field, as shown in Figure 7.6. The Body attribute contains the
the name of a group. Then clients belonging to that group can perform a
Read operation on the message, thus leaving the message for other group
members rather than removing it from the space with a Take operation.
will persist even if the JavaSpace is restarted. Messages will stay in Health
Space until they are retrieved by the receiver. The receiver does not have to
be available when the message is written to the space by the sender. This
HL7 Version 3 is the messaging standard chosen for HIF-J, using the ob-
for a specific purpose are called artifacts and are shown next.
The HL7 RMIM used for observation messages in HIF-J is shown in Fig-
ure 7.7. The ‘dotted’ box around the component ActRelationship and
ObservationEvent Act in the figure means that this section may be re-
peated many times, once for each observation taken (cardinality 1..*). This
5.4.1. The serialised HMD from the RMIM is shown in full in Table 7.1
(continued in 7.2).
The XSLT stylesheets derived from mappings between HL7 V3 and HL7
Table 7.1: HL7 HMD taken from RMIM in Figure 7.7 for Observation mes-
sages in HIF-J.
Table 7.2: HL7 HMD taken from RMIM in Figure 7.7 for Observation mes-
sages in HIF-J (cont.)
V3 and openEHR was also implemented in the same service, by using the
format the message is in, the format to be converted to, and the message
itself. The service then uses XML processing libraries to load the appropri-
ate XSLT transform and convert the message before returning it in the new
tion messages from EDI (“pipes and carets”) format to XML if necessary.
Figure 7.8 shows the Java class structure of the Jini Translation service.
Server, with an interface and a proxy, and then the main Translation-
Service class.
The Translation service only has two functions, as most of the conver-
operability framework.
A small client to collect patients’ observations was created for testing HIF-
J. The Observation Application has a simple form for entering patient ob-
in the Jini Framework, via HealthSpace. A screen shot of the main form
In the main form, a clinician can log in and set the name of the client
details can then be entered, with a drop-down select box for ‘code’, which is
Once a code has been selected, the ‘procedure’ and ‘site’ drop-down boxes
After the ‘value’ has been entered, the decision support system discussed
in Section 5.3.2 will populate the interpretation code field (this field appears
in the message, and is not shown on the form). As noted in that section, the
option to turn the decision support off is included in the ‘options’ menu. In
that case, the interpretation code field is omitted from the message. The
Once the client’s name has been set, messages can be read from Health-
Space by searching for Messages with the client’s name in the to field. Mes-
The Messaging Form also allows translation of the Message before send-
functions, which will be executed on a code entered into the ‘SCTID’ field
once clicked, the output of which is then displayed in the text area on the
Figure 7.9: A screen shot of the main form of the Observation Application.
Figure 7.10: A screen shot of the Messaging Form of the Observation Ap-
plication.
main form of the application, the browser is for further demonstration and
testing purposes.
4). The class structure is shown in Figure 7.12. The lines with hollow
These classes are highly reusable for any HL7 implementation and were
used in both HIF-J and the HSB (see next chapter). The class structure is
Section 4.6.
the JavaSpace messaging paradigm fell short, in that the only communica-
publish messages to the space and receivers subscribe to the space. The per-
dreds of users – having to check every single Message in the space to see if
Mule Enterprise Service Bus software [Mul08a] into HIF-J was investi-
search it became apparent that the interface between Mule and JavaSpaces
and a simpler solution is to use the one messaging system for all types of
core.
HIF-J as services on that ESB. This solution is called the Health Service
The Jini Technology offers an easy to use plug-and-play paradigm for con-
cation and it would offer more flexibility to include other message channel
formats in a real solution. Due to this, and also due to the fact that JavaS-
framework.
is a complete solution.
messaging solution is not scalable and allows for only one messaging para-
Bus (ESB) for health, called the Health Service Bus (HSB). Just like HIF-J,
the HSB provides the technical interoperability solution within which the
levels defined in Section 1.4.1 (technical and semantic), the third level of
solution, and so is a good solution for solving the information silo problem,
181
182 CHAPTER 8. HEALTH SERVICE BUS (HSB)
regardless of the type of software or hardware used. The HSB also provides
such as Gartner Inc have been writing about the ESB trend since early
2002, when it was first introduced. In a Gartner report from 2002, Schulte
– End-to-end reliability
• Web Services
• Intelligent routing
• XML transformation
and orchestration, which are part of the HL7 Interoperability Work Group’s
tion, in this context, refers to the ability to layer constraints and workflows
tegration solution. Services that can work together are actually separated
due to loose coupling principles and can be scaled independently from one
another.
In an ESB, all applications and services that are connected to the bus are
endpoints can be very diverse, but the abstraction of treating them all the
provides the service interface to the ESB. The traits of service containers
Figure 8.2 shows a generic endpoint connected to an ESB with its ser-
vice container. The dashed line in the figure represents a virtual or phys-
this work use glyphs based on Gregor Hohpe’s diagrams of Enterprise In-
container.
Mule is the world’s most widely used open-source ESB [Mul08a]. Mule-
port formats including HTTP, FTP, SMTP, SOAP, and JMS (Java Message
Service). .
JMS, but any other message server implementation could be used, such as
consistent with the standard for ESB service containers and endpoints.
pare their ESB to Mule [Per08]. However, in the course of their tests
they had not configured their Mule implementation correctly, leading Mule-
Source to conduct their own tests in response. This time, with the correct
configuration, the results were that Mule came out favourably in terms of
A prototype HSB system was built for proof-of-concept purposes using Mule.
also used to demonstrate the HSB, with some slight modifications for the
new framework, and is now referred to as “HSB Client”. In HIF-J, the front
end to the SNOMED CT Vital Signs database is a Jini Service, but in the
HSB the database was attached to a Web Services front-end using Apache
CXF (an open-source services framework), to fit in with the ESB architec-
ture. Likewise, the Translation Services from HIF-J were also configured
tation. From left to right, the components are a Translation Service and
and sends an email with a given subject and message to a defined address.
The other services on the HSB are then configured to automatically use this
This HSB forms the base for expansion with the other artifacts de-
scribed in this thesis – the referral application from Chapter 3 and the
ePOC system, both PC and PDA – which are also connected. Even though
these applications were developed in C# using .NET and the HSB Client
a small adapter to each application and then connecting it to the HSB. Fig-
should connect to the bus. This means that changing transport protocols
interoperability.
HL7 V3 is chosen as the message format in the HSB. The HL7 modelling
methodology complements the Health Service Bus, and uses XML as the
HL7 Version 2 and openEHR were used, in keeping with the XML-centred
cation’s format and every other application’s format, if all applications are
required to communicate with each other. With respect to the Mule demon-
needed per pair of applications (to translate both ways), so for six dif-
ferent applications with different formats, this would mean thirty XSLT
every application may not need to communicate with every other applica-
tion, so this is a worst-case scenario, but it shows that the number of trans-
Hohpe and Wolfe define a Canonical Data Model as a data model which
Figure 8.5.
the system now has to be translated twice, once into the canonical format
at the sending end, and once from the canonical format when received. This
new applications which are developed can use the canonical message model
internally and thus not require any translations. This includes new appli-
the system. If the internal format of an application changes, only the trans-
lation between that application and the canonical message model needs to
els based on SNOMED CT are used as the canonical message model. Figure
The HSB Translation Service reuses the core functionality of the HIF-J
Translation Service. That is, the XSLT stylesheets developed during ontol-
ogy mapping were again used within the Java TranslationService class,
proxy classes are not needed in the HSB, as it has a different communica-
an endpoint to the Translation Service, in the HSB. Figure 8.7 shows part
endpoint has configured the service to run on port 8778 on the computer
named ‘Flexo’.
sages are routed based on who the messages are addressed to. HSB clients
register their names with the Router when they first connect to the bus.
Messages between HSB clients are then sent through the Router, which
reads the “to” field in the HL7 message header and sends the message to
the addressee.
the HL7 XML message being wrapped in a Java Object as the payload of
the message. Extra attributes are then included in the Object for address-
ing information (see Section 7.4.1). In the HSB, no extra wrappers need to
be added to the HL7 messages, as all messages between clients are sent to
the Router, and the Router then reads the HL7 XML directly. This com-
from the HL7 message is repeated in the Java Object in HIF-J, making the
addressing redundant.
arrow being split into many arrows, inside a service container connected to
and many outgoing message channels from the router to the messages’ final
asynchronous and can be used for testing with a low configuration over-
are stored. An XML database (again using eXist, Section 6.4) was cre-
ated to store XML instances of openEHR patient records. This means that
openEHR was used more to its full purpose in the HSB as compared to HIF-
(see Figure 5.9 in Chapter 5) make this process a matter of XML transfor-
record, after translation from HL7, is shown in Figure 8.11. The XML
will group the observations of interest into an openEHR Section, and then
Figure 8.11: Patient Records stored in an XML Database in the HSB. Ob-
servation Entries are stored in a patient’s EHR.
Just as in HIF-J, a front-end service was used with the SNOMED CT Vi-
the HSB, the service is a Web Services front-end, as opposed to a Jini ser-
vice. This is the same configuration as the Translation Service, with the
CXF front-end configured in the Mule build file, a business logic step which
allows all other entities on the bus access to the SNOMED CT terminol-
ogy. Figure 8.12 shows part of the Mule configuration file setting up the
Figure 8.12: Part of the Mule Configuration file setting up a CXF endpoint
to the SNOMED CT server.
Figure 8.13 shows an end-to-end messaging example from the Mule HSB
the HSB to another HSB Client. Step 1 is to duplicate the message and send
into openEHR and passes it on to the EHR database (Step 5), where it is
achieved in the HSB making it a better solution than HIF-J, which does not
Technical Interoperability
ture, specifically the messaging bus core. In Section 1.4.2 at the start of
and loose coupling of entities due to asynchrony. All of this is achieved with
no extra setup, except to plug the clients and services into the bus.
Semantic Interoperability
Process Interoperability
The small HSB Mule implementation is useful for demonstrating how ESB
a large scale health information system is more complicated than this. This
section will step through an industry-level example to show how the HSB
• GP Clinic
• Hospital
• Pathologist
• Radiologist
• Pharmacy
• Aged Care
• Community Care
• Registration Board
8.11.1 GP Clinic
tions management console on the HSB. Figure 8.14 shows the GP computer
system.
The C# client is shown as slightly detached from the endpoint and the
Java, and the C# application is hooked into it via a network layer. This
8.11.2 Hospital
Information System (CIS) (see Section 1.1). Both of these systems are con-
nected to databases. The hospital has many messages coming in and out,
so it also has a message store database to allow storage and access to mes-
sages. The hospital system also employs logging, into an XML file. Figure
department for the care network, also hooked into the HSB. There is no
8.11.3 Pathologist
The job of the Pathologist is to analyse specimens from the GPs and Hospi-
tals in the pathology’s laboratory. The pathology lab has its own scientific
analysis software, which does not need to communicate on the HSB. The
only information other parties on the HSB are interested in are results of
analyses. The final results from the Pathologist’s analysis will be added to
HSB using a JCA adapter. JCA was designed to provide a Java solution to
compliant can plug into the container, which is the approach taken in the
pathology system. Figure 8.16 shows the Pathologist’s system setup. The
on the bus, but feeds results into the “Records” database shown.
8.11.4 Radiologist
The Radiologist provides medical imaging services to the GPs and Hospi-
tals. The Radiologist’s HSB setup includes a file access service which con-
records management application hooked into the HSB. Figure 8.17 shows
connected to the HSB, but a HSB file access service can retrieve image
files from the database through the application and send them on the HSB.
the images along the HSB, for example to the GP, immediately after the
8.11.5 Pharmacy
The Pharmacy fills prescriptions for patients of the GPs and Hospitals in
Aged Care in this sense refers to an Aged Care Home, with residents who
need a high level of care. The Aged Care facility needs to be able to commu-
The Aged Care facility has several desktop computers with a packaged
quires an adapter, similar to the Pathologist’s setup. Figure 8.19 shows the
Home and Community Care (HACC) program, and other departments in-
ment initiative, including such services as nursing care, allied health care,
meals and other food services, home modification, and transport among
The HSB setup for HACC therefore includes a content-based router for com-
the HACC and Home Nursing applications connect to the HSB using Web
Services over HTTP. This allows portable and hand-held computers in the
in this database and accessed via the HSB. Figure 8.20 shows the Commu-
boards, including boards for different states, the Registration Board HSB
boards, as in the HSB prototype system (Section 8.6). The other facilities in
the HSB communicate with the Registration Boards to query and update
setup.
Figure 8.22 shows the complete HSB setup between all the facilities de-
scribed. The complete picture shows how the HSB can be used to connect
– either within a single department or over the entire HSB. The HSB is a
continue running. If one section goes down, other sections are not affected
due to the asynchronous and componentised nature of the HSB. When com-
munication is restored, the messages sent during the outage are delivered.
simply by plugging a management console into the bus. For an ESB imple-
mented in Java, this can mean using Java Management eXtensions (JMX)
business workflows. Process flow can also be defined per individual depart-
ment, or for the larger network. The process flow capabilities of ESB can
health.
solve the information silo problem in the healthcare industry, and the in-
A small proof-of-concept HSB has been setup using Mule ESB software,
which connects all the artifacts described within this thesis. The ease of
setup in connecting these disparate systems (.NET and Java, HL7 Versions
2 and 3) shows that the solution has potential to be adapted to a larger sys-
been presented which shows how the HSB solution could be implemented
in an actual setting.
Conclusion
depth, which led to the ability for simple data exchange. Delving deeper
into the standards and applying them to a practical project including the
message semantics preserved from the sender to the receiver. The message
formats developed during the project were for a specific use-case, so follow-
ing on from there the message formats were expanded to a more general
case and the use of terminology within these formats also expanded.
translations between this format and a previous version, and an EHR stan-
All steps to this point had led to the building blocks for semantic in-
207
208 CHAPTER 9. CONCLUSION
tions, terminology and health record storage is presented as the final out-
come.
tions data were developed and tested in a field trial by ambulatory care
workers.
the central system and several PDAs used by clinicians collecting obser-
vations data in the field. HL7 Version 3 was employed as the messaging
format in conjunction with SNOMED CT for this purpose. The HL7 mes-
eight specific observations required for that project. The messages were
two HL7 fields – code and method code. Other code fields were thus in-
cluded in the more general observation message format which also incorpo-
with entities using the canonical message format, translation between the
tions messages was achieved. Following on from this work, the HL7 V3
canonical message format was also mapped to and from a defined openEHR
ditional database format, a tool to convert the required subset to XML was
nology server and the HL7 V3 canonical message format, as well as the
translations between this format and HL7 V2 and openEHR in the form of
tunately, JavaSpaces were deemed not scalable enough for a full health
subscribe.
The HSB meets these four pillars of ESB in its implementation based on
services in the HSB are exposed via Web Services, and intelligent routing
tion is a key service on the HSB, allowing systems using differing health
standards to interact.
The HSB provides the same features as HIF-J but is scalable and of-
fers multiple messaging channel types. This provides the technical inter-
achieved.
this framework to other research in the area. The HSB is different to Bicer
The main focus of their work is the ontology mapping aspect, covering se-
mantic interoperability. This work falls into the category of only briefly
erability.
they focus on the HL7 models and semantic interoperability without go-
ing into detail about actual message exchange, except to mention Semantic
Web [SH05]. Again, Shabo and Hughes’s work concentrates on the message
lution.
different Web Services as an SOA [CF02, CF03]. They discuss the benefits
of their XML representations. In this way, they have covered technical in-
into depth. ESB is a better SOA than Catley and Frize’s in terms of dis-
The ontology mapping work carried out in [BLDK05a], [SH05] and [CF02]
using XML. The HSB takes this work on semantic interoperability and
is similar to the HSB and was published around the time the HSB was de-
into detail such as describing the specific software for process modelling
and data storage. As opposed to the previous papers, Shakir et al. have
only touched on semantic interoperability. They are using HL7 V3 and are
The HSB is different to the other work in the field in that it addresses all
ity Work Group in their definitive white paper “Coming to Terms” [HL707]
ment work for this thesis was completed, propose the use of an ESB com-
bined with Semantic Web technology with the aim of building an “intelli-
tion [RVAM08]. This is what the Health Service Bus achieves, particularly
in the healthcare domain and addressing specific issues with health infor-
Acknowledgements
ePOC
In addition to the ARC the authors acknowledge the support of Pen Com-
puter Systems, TACT and the South Eastern Sydney & Illawarra Area
SNOMED CT
ESB-style Diagrams
The Sonic ESB Icon and Diagram Library for Microsoft Visio was used for
drawing Figures 8.2, 8.3, 8.4, 8.14, 8.15, 8.16, 8.17, 8.18, 8.19, 8.20, 8.21,
213
214 CHAPTER 9. CONCLUSION
Tooling
Knowledge-Management/Ocean-Archetype-WorkBench.html
Clinical-Modelling/ocean-archetype-editor.html
Information Model
215
216 APPENDIX A. THE HL7 REFERENCE INFORMATION MODEL
Complete OpenEHR
Height Archetype
217
218 APPENDIX B. COMPLETE OPENEHR HEIGHT ARCHETYPE
[“en”] = <
language = <[ISO 639-1::en]>
purpose = <“Recording the total length of the body from crown of head to sole of foot.”>
use = <“For recording the height or length of a person at any point in time, and in addition
tracking growth and loss of height over time.”>
keywords = <“shrinkage”, “increase”, “decrease”, “height loss”, “height”, “length”, “growth”>
misuse = <“Not to be used for recording length of an object - see OBSERVATION.dimensions.
Not to be used for recording length at birth - see OBSERVATION.height-birth.
Not to be used for recording estimated or adjusted length or height, for example,
for individuals with bialteral amputation.
Not to be used for recording growth velocity.”>
copyright = <“copyright (c) 2009 openEHR Foundation”>
>
>
lifecycle state = <“AuthorDraft”>
other contributors = <“Jeroen Meintjen, Medisch Centrum Alkmaar, Netherlands”, “Sebastian
Garde, Ocean Informatics, Germany”, “Ian McNicoll, Ocean Informatics, Scotland”, “Heather
Leslie, Ocean Informatics, Australia”, “Omer Hotomaroglu, Turkey”, “Paul Donaldson, Queensland
Health, Australia”, “Heather Grain, Australia”, “Andrew James, University of Toronto, Canada”,
“Anne Harbison, Australia”, “Thilo Schuler, Germany”, “Anneke Goossen, Results 4 Care,
Netherlands”>
other details = <
[“references”] =
<“http://www.ich.ucl.ac.uk/clinical information/clinical guidelines/cpg guideline 00060”>
>
definition
OBSERVATION[at0000] matches { −− Height
data matches {
HISTORY[at0001] matches { −− history
events cardinality matches {1..*; unordered} matches {
EVENT[at0002] occurrences matches {1..*} matches { −− Any event
data matches {
ITEM TREE[at0003] matches { −− Simple
items cardinality matches {1; unordered} matches {
ELEMENT[at0004] matches { −− Height
name matches {
DV CODED TEXT matches {
defining code matches {
[local::
at0005, −− Height
at0006] −− Length
}
}
}
value matches {
C DV QUANTITY <
property = <[openehr::122]>
list = <
[“1”] = <
units = <“cm”>
magnitude = < |0.0..1000.0| >
>
[“2”] = <
units = <“in”>
magnitude = < |0.0..250.0| >
>
>
>
}
}
}
}
}
state matches {
ITEM TREE[at0013] matches { −− Tree
items cardinality matches {0..*; unordered} matches {
ELEMENT[at0014] occurrences matches 0..1 matches { −− Position
value matches {
DV CODED TEXT matches {
defining code matches {
[local::
at0015, −− Lying
at0016; −− Standing
at0016] −− assumed value
}
}
}
}
}
}
}
}
INTERVAL EVENT[at0009] occurrences matches {0..1} matches { −− Growth
math function matches {
DV CODED TEXT matches {
defining code matches {[openehr::147]}
}
}
data matches {
use node ITEM TREE /data[at0001]/events[at0002]/data[at0003] −−
/data[history]/events[Any event]/data[Simple]
}
state matches {
use node ITEM TREE /data[at0001]/events[at0002]/state[at0013] −−
/data[history]/events[Any event]/state[Tree]
}
}
INTERVAL EVENT[at0012] occurrences matches {0..1} matches { −− Loss of height
math function matches {
DV CODED TEXT matches {
defining code matches {[openehr::147]}
}
}
data matches {
use node ITEM TREE /data[at0001]/events[at0002]/data[at0003] −−
/data[history]/events[Any event]/data[Simple]
}
state matches {
use node ITEM TREE /data[at0001]/events[at0002]/state[at0013] −−
/data[history]/events[Any event]/state[Tree]
}
}
}
}
}
protocol matches {
ITEM TREE[at0007] matches { −− List
items cardinality matches {0..*; ordered} matches {
allow archetype CLUSTER[at0011] occurrences matches {0..1} matches { −− Device
include
archetype id/value matches {/openEHR-EHR-CLUSTER\.device\.v1/}
}
ELEMENT[at0017] occurrences matches 0..1 matches { −− Comment
value matches {
>
[“at0015”] = <
text = <“*Supine(en)”>
description = <“*Infants and children should be measured lying face upward -
can be up to two years of age.(en)”>
>
[“at0016”] = <
text = <“*Standing(en)”>
description = <“*Height is measured standing erect, feet flat on the ground and
against a backboard(en)”>
>
[“at0017”] = <
text = <“*New element(en)”>
description = <“**(en)”>
>
>
>
[“en”] = <
items = <
[“at0000”] = <
text = <“Height”>
description = <“Height (or Length) of the body is measured from crown of head to sole of foot,
and based on either standing height or recumbent length. In general, length measurements are
recommended for children under 2 years of age and individuals who cannotstand;
height measurements for all others. Ideally, height is measured standing on both feet with weight
distributed evenly, heels together and both buttocks and heels in contact with a vertical back board;
length is measured in a fully extended, supine position with the pelvis flat, legs extended and feet flexed. ”>
>
[“at0001”] = <
text = <“history”>
description = <“@ internal @”>
>
[“at0002”] = <
text = <“Any event”>
description = <“Any timed measurement of height”>
>
[“at0003”] = <
text = <“Simple”>
description = <“@ internal @”>
>
[“at0004”] = <
text = <“Height”>
description = <“The length of the body from crown of head to sole of foot.”>
>
[“at0005”] = <
text = <“Height”>
description = <“Length of body in standing position”>
>
[“at0006”] = <
text = <“Length”>
description = <“The length of the body supine”>
>
[“at0007”] = <
text = <“List”>
description = <“@ internal @”>
>
[“at0009”] = <
text = <“Growth”>
description = <“Increase in height over time”>
>
[“at0011”] = <
text = <“Device”>
in ePOC
223
224 APPENDIX C. SNOMED CT SUBSET USED IN EPOC
Flowchart of User
227
APPENDIX D. FLOWCHART OF USER INTERFACE SCREENS IN
228 THE EPOC PDA APPLICATION
Figure D.1: Complete flowchart of user interface screens in ePOC PDA ap-
plication.
229
230 APPENDIX E. MAPPING HL7 V2 AND V3
Table E.1: Mapping of HL7 Version 2 fields to HL7 Version 3 for observa-
tions messages (* - mapping through code table required).
Table E.2: Mapping of HL7 Version 3 attributes to HL7 Version 2 for obser-
vations messages (* - mapping through code table required).
HL7 V3 HL7 V2
class attribute segment field::attribute
PatientObservations classCode MSH MSH-9 message type *
PatientObservations moodCode MSH MSH-9 message type *
PatientObservations id MSH MSH-10 message control id
PatientObservations code OBR OBR-4 universal service id
PatientObservations text OBR OBR-13 relevant clinical info
PatientObservations effectiveTime OBR OBR-7 observation date/time
PatientObservations methodCode OBR OBR-44 procedure code
subject typecode n/a -
patient classCode n/a -
patient id PID PID-3 patient identifier list
patient code PV1 PV1-2 patient class *
patient addr PID PID-11 patient address
patient telecom PID PID-13 phone - home
PID-14 phone - business
patientPerson classCode n/a -
patientPerson determinerCode n/a -
patientPerson name PID PID-5 patient name
patientPerson aGenderCode PID PID-8 admin sex *
patientPerson birthTime PID PID-7 date/time of birth
patientPerson disabilityCode PD1 PD1-6 handicap *
patientPerson raceCode PID PID-10 race
performer typecode n/a -
careGiver classCode n/a -
careGiver id PV1 & ROL PV1-7 attending doctor
ROL-4 role person
careGiver code ROL ROL-3 role
careGiver addr ROL ROL-11 office/home address
careGiver telecom ROL ROL-12 phone
class attribute segment field::attribute
careGiverPerson classCode n/a -
careGiverPerson determinerCode n/a -
careGiverPerson name PV1 & ROL PV1-7 attending doctor
ROL-4 role person
component typecode n/a -
component contextContCode n/a -
observationEvent classCode n/a -
observationEvent moodCode n/a -
observationEvent code OBX OBX-3 observation id
observationEvent text NTE NTE-3 comment
observationEvent effectiveTime OBX OBX-14 date/time of obs
observationEvent value OBX OBX-5 observation value
OBX-6 units
observationEvent interpretCode OBX OBX-8 abnormal flags *
observationEvent methodCode OBX OBX-17 obs method
observationEvent targetSiteCode OBX OBX-20 observation site
openEHR
233
234 APPENDIX F. MAPPING HL7 V3 AND OPENEHR
HL7 V3 openEHR
observationEvent (code::278844005) SECTION (name::Findings)
code$displayName name
n/a hyperlink
n/a archetype details - findings
n/a items
n/a OBSERVATION
subject subject
patient ext ref
id$id id
id$root namespace
n/a type - patient
performer provider
CareGiver ext ref
id$id id
id$root namespace
n/a type - caregiver
n/a data
n/a HISTORY
n/a events
n/a EVENT
component/observationEvent/effecTime time
n/a data
component/observationEvent ELEMENT
value value
n/a protocol
n/a ITEM LIST
methodCode ELEMENT
targetSiteCode ELEMENT (location)
interpretationCode n/a
2008.
gov.au/internet/main/Publishing.nsf/Content/hacc-
235
236 BIBLIOGRAPHY
2006.
tion, 2006.
2008.
683–697, 2004.
plus. http://www.firstdatabank.com/products/nddf/,
September, 2008.
ers, 1993.
[HBCH98] S.M. Huff, W.D. Bidgood, J.J. Cimino, and W.E. Hammond.
.org/svn/knowledge/archetypes/dev/html/en/
openEHR-EHR-OBSERVATION.height.v1.html, 2006.
http://www.hln.com/assets/pdf/Coming-to-Terms-
2006.
usa.org/policy/positions/NHINinteroperability.html,
ary, 2008.
[KBD05] Ozgur Kilic, Veli Bicer, and Asuman Dogac. Mapping ar-
2005.
[LBG08] Yan Liu, Muhammad Ali Babar, and Ian Gorton. Mid-
July 2007.
www.healthvault.com/personal/websites-overview.html,
2008.
cember 2001.
2006.
350, 2001.
[REE07] Amanda Ryan, Peter Eklund, and Brett Esler. Toward the
Press, 2007.
Records, 2001.
2002.
Nov/Dec 1997.
2008.
.enigma.co.nz/website/index.cfm?fuseaction=articledisplay
May, 2008.
2005.
190–194, 2007.
tions. http://java.sun.com/products/jini/2.1/doc/specs
2008.
[TLL05] J. Tang, B.Y. Liang, and J.Z. Li. Toward detecting mapping
May 2005.
2008.
2004.
tions/icd/en/, 2008.
2003.