Professional Documents
Culture Documents
& HL7-2
v2 uses pipe and hat messaging, while v3 uses the Reference Information Model(RIM) and XML for
messaging
HL7 V3 Standards
A family of standards based on V3 information models and development methodology
Components
HL7 V3 Reference Information Model (RIM)
HL7 V3 Messaging
HL7 Development Framework (HDF)
Chapter-
Chapter-
Chapter-
Chapters Common Specific
Specific Chapters
Specific
Specs Specs
Specs 3, 4, 6, ...
2 and 8 Specs
Trigger
Segment Event
s and and
Fields Message
s
HL7
Referenc
e Model Chapter
-
Commo Specific
n Specs Specs
*Future
Consideratio
n
9
2015 IBM Corporation Innovation Centre for Education
Benefits of V3 to Vendors
The RIM:
Is the fundamental model from which all v3 messages are
derived
Is a generic, abstract model that expresses the information
content of all the areas of healthcare
Forms a shared view of the healthcare domain, and is used
across all HL7 messages independent of message structure
Act
record of that action. Acts definitions (master
files), orders, plans, and performance records
(events)
are all represented by an
instance of Act.
Entity Act
classCode : CS classCode : CS
determinerCode: CS 0..* 0..* moodCode: CS
code: CE code: CD
statusCode : CS statusCode : CS
id : II effectiveTime : GTS
id : II
Act Relationship
1 1
1 1 1 1
Act a discernible action of interest in the healthcare domain. An instance of Act is a record of
that action. Acts definitions (master files), orders, plans, and performance records (events) are all
represented by an instance of Act.
Act relationship an association between two Acts. This includes Act to Act associations such
as collector/component, predecessor/successor, and cause/outcome. The semantics of the
association is captured by the Act Relationship attributes.
Entity - a physical thing or an organization/group of physical things capable of participating
in Acts. This includes living subjects, organizations, material, and places.
Participation an association between a Role and an Act representing the function assumed
by the Role within the context of the Act. A single Role may participate in multiple Acts and a single
Act may have multiple participating Roles. A single Participation is always an association between a
particular Role and a particular Act.
Role a classification/specialization of an Entity defined by the relationship of the playing
Entity to a scoping Entity. An example of Role is Employee. An employee is a classification
attributed to a person which has an employment relationship with an organization (Employer).
Role Link An association between two Roles. It is used to capture relationships that exists
between Entities other than the scoping relationships. A single Role may have a Role Link
with multiple other Roles. A single Role Link is always between two distinct instances of Role.
typeCode : CS
effectiveTime : IVL<TS> typeCode : CS
1 1 1 1
Observation
Supply
Patient Encounter
Procedure
Financial Contract
Account
Working List
2015 IBM Corporation Innovation Centre for Education
Control Act
HL7 RIM Class Diagram
Patient
Definition
Provider
Entity Kind Role Intent
Act
Employee
Instance Order
Determiner Class Code Specimen Mood Code
Quantified Event
Code Group Certified
Criterion
2015 IBM Corporation
Practitioner Innovation Centre for Education
...
Example Component and Process
RIM coded attributes with a data type of Coded Simple (CS) are referred to
as structural
A CS data type is assigned to an attribute when the only allowable code
values for the attribute are determined by HL7
There are 18 such attributes in the RIM. Each of them is bound to a
vocabulary value set defined by HL7.
These attributes are referred to as structural because their presence in the
model eliminates the need to include other structural model components such
as classes, generalizations, and associations.
Vocabulary value sets bound to coded structural attributes are
normative.
Act.classCode Entity.classCode
Act.moodCode Entity.determinerCode
Act.statusCode Entity.statusCode
ActRelationship.checkpointCode ManagedParticipation.statusCode
ActRelationship.conjunctionCode Participation.contextControlCode
ActRelationship.joinCode Participation.typeCode
ActRelationship.splitCode Role.classCode
ActRelationship.Type Role.statusCode
ActRelationship.contextControlCode RoleLink.typeCode
Artifact Code
Application Role AR
D-MIM (Domain Information Model) DM
HMD (Hierarchical Message
HD
Descriptor)
Interaction IN
Message Type MT
R-MIM (Refined Message
RM
Information Model)
Storyboard ST
Storyboard Narrative SN
Trigger Event TE
HL7 data types define the structure and constrain the allowable values
of attributes in the RIM.
The HL7 v3 abstract data type specification declares the set of data
types, identifies components of complex types, and defines
relationships between data types.
The HL7 data type implementation technology specification defines
constraints and operations for data types and describes how data
types are to be represented in XML.
Data types are reusable atomic building blocks used to create all HL7
V3 information structures.
Each RIM attribute is assigned one data type; each data type is
assigned to zero, one, or more RIM attribute.
AnyDataType
+ DataValue : ANY
QuantityDataTypes
+ BinaryDat a : BIN
+ Boolean : BL
+ IntegerNumber : INT
ConceptDescriptorDataTypes IdentifierDataTypes + MonetaryAmount : MO
+ CodedSimpleValue : CS + ISOObjectIdentifier : OID + PhysicalQuantity : PQ
+ CodedValue : CV + InstanceIdentifier : II + Quantity : QTY
+ CodedWithEquivalents : CE + Ratio : RTO
+ Conc eptDescriptor : CD + RealNumber : REAL
+ ConceptRole : CR
EntityNameDataTypes
Address DataTypes ParameterizedDataTypes TimingExpressionDat atypes
+ EntityName : EN
+ AddressPart : ADXP + Bag : BAG + GeneralTimingSpecification : GTS
+ EntityNamePart : ENXP
+ PostalAndResidentialAddress : AD + Interval : IVL + GeneralTimingSpecificationTerm
+ OrganizationName : ON
+ TelecommunicationAddress : TEL + Sequence : LIST + PointInTime : TS
+ PersonNameType : PN
+ UniversalResourceLocator : URL + Set : SET
+ TrivialName : TN
CharacterStringDatatypes
+ CharacterString : ST
+ EncapsulatedData : ED
+ StringWithCode : SC
Boolean BL The Boolean type stands for the values of two-valued logic. A Boolean value can be either
true or false.
Encapsulated Data ED Data that is primarily intended for human interpretation or for further machine processing
outside the scope of this specification. This includes unformatted or formatted written
language, multimedia data, or structured information in as defined by a different standard
(e.g., XML-signatures.) Instead of the data itself, an ED may contain only a reference (see
TEL.) Note that the ST data type is a specialization of the ED data type when the ED
media type is text/plain.
Character String ST Text data, primarily intended for machine processing (e.g., sorting, querying, indexing,
etc.) Used for names, symbols, and formal expressions.) Note that the ST data type is a
specialization of the ED data type when the ED media type is text/plain.
Coded Simple Value CS Coded data, consists of a code and display name. The code system and code system
version is fixed by the context in which the CS value occurs. CS is used for coded
attributes that have a single HL7-defined value set.
Coded Value CV Coded data, consists of a code, display name, code system, and original text. Used when
a single code value must be sent.
Coded With Equivalents CE Coded data, consists of a coded value (CV) and, optionally, coded value(s) from other
coding systems that identify the same concept. Used when alternative codes may exist.
Concept Descriptor CD Coded data, is like a CE with the extension of modifiers. Modifiers for codes have an
optional role name and a value. Modifiers allow one to express, e.g., "FOOT, LEFT" as a
postcoordinated term built from the primary code "FOOT" and the modifier "LEFT".
Postal Address AD For example, a mailing address. Typically includes street or post office Box, city,
postal code, country, etc.
Entity Name EN A name of a person, organization, place, or thing. Can be a simple character string or
may consist of several name parts that can be classified as given name, family name,
nickname, suffix, etc.
Person Name PN A name of a person. Person names usually consist of several name parts that can be
classified as given, family, nickname etc. PN is a restriction of EN.
Organization Name ON A name of an organization. ON name parts are typically not distinguished, but may
distinguish the suffix for the legal standing of an organization (e.g. "Inc.", "Co.", "B.V.",
"GmbH", etc.) from the name itself. ON is a restriction of EN.
Trivial Name TN A restriction of EN that is equivalent with a plain character string (ST). Typically used
for the names of things, where name parts are not distinguished.
Integer Number INT Positive and negative whole numbers typically the results of counting and
enumerating. The standard imposes no bounds on the size of integer numbers.
Physical Quantity PQ A dimensioned quantity expressing the result of measurement. It consists of a real
number value and a physical unit. Physical quantities are often constrained to a certain
dimension by specifying a unit representing the dimension (e.g. m, kg, s, kcal/d, etc.)
However, physical quantities should not be constrained to any particular unit (e.g.,
should not be constrained to centimeter instead of meter or inch.)
Monetary Amount MO The amount of money in some currency. Consists of a value and a currency
denomination (e.g., U.S.$, Pound sterling, Euro, Indian Rupee.)
Ratio RTO A quantity explicitly including both a numerator and a denominator (e.g. 1:128.) Only in
the rare cases when the numerator and denominator must stand separate should the
Ratio data type should be used. Normally, the REAL, PQ, or MO data types are more
appropriate.
Name Description
code A string containing the value of the code (e.g., "F150")
displayName A string containing a short, human-readable description of the code. ("Ford F150 Full-size Pickup Truck")
codeSystem An Object Identifier (OID) that uniquely identifies the code system to which the code belongs (e.g.,
"106.75.314.67.89.24," where this uniquely identifies Ford Motor Company's set of model numbers).
codeSystemName A string containing a short, human-readable description of the code system (e.g., "Ford Car and Truck Models ").
codeSystemVersion A string qualifying the version of the code system (e.g., "Model Year 2001").
originalText This is the text, phrase, etc., that is the basis for the coding. (e.g., "The new truck purchased for hospital facility
maintenance was a Ford model F150 ...").
modifier Some code systems permit modifiers, additional codes that refine the meaning represented by the primary code.
HL7 Version 3 accommodates a list of modifiers. Continuing with our truck example, the list of modifiers "Body-
ECAB, Eng-V8, EM-CE" modify "F150" to designate that the truck has an extended cab, V8 engine, and California
Emissions package. "Body-," "Eng-," and "EM" designate the roles (body, engine, emissions) represented by the
codes "ECAB," "V8," and "CE."
translation Quite often in an interfaced environment, codes need to be translated into one or more other coding systems. In our
example, the California DMV may have their own code
code ST mandatory
displayName ST optional
code ST mandatory
displayName ST optional
codeSystemVersion ST optional
originalText ST optional
displayName ST optional
codeSystem OID mandatory
codeSystemName ST optional
codeSystemVersion ST optional
originalText ST optional
translation SET<CV> optional
root OID mandatory A unique identifier that guarantees the global uniqueness of the instance identifier.
The root alone may be the entire instance identifier, an extension value is not
needed.
assigningAuthorityName ST optional A human readable name or mnemonic for the assigning authority. This name is
provided solely for the convenience of unaided humans interpreting an II value.
Note: no automated processing must depend on the assigning authority name to be
present in any form.
validTime IVL<TS> optional If applicable, specifies during what time the identifier is valid. By default, the
identifier is valid indefinitely. Any specific interval may be undefined on either side
indicating unknown effective or expiry time.
Note: identifiers for information objects in computer systems should not have
restricted valid times, but should be globally unique at all times. The identifier valid
time is provided mainly for real-world identifiers, whose maintenance policy may
include expiry (e.g., credit card numbers.)
Identifies the periods of time during which the address can be used. Typically
validTime GTS optional used to refer to different addresses for different times of the year or to refer to
historical addresses.
RMIM - VSD
Repository - MDB
Schemas - XSD
Receiver
Sender
Payload
In this example we discuss on V2.4 ORU^R01 for serum glucose and an equivalent V3
message instance
Root Element
... <id root="2.16.840.1.113883.1122" extension="CNTRL-3456"/> <!-- message ID, [msh.10] --> <creation_time value="2002-08-16T14:30:35.16-
06:00"/> <!-- [msh.7] --> <version_id>3.0</version_id> <interaction_id root="2.16.840.1.113883" extension="POLB_IN004410"/> <!-- interaction id=
Observation Event Complete, Notification (POLB_IN004410) source=ORU^R01--> Notification (POLB_IN004410) source=ORU^R01--> <!-- [msh.9] --
> <processingCode code="P"/> <!-- processing code, [msh.11] --> <processingModeCode code="I"/> <!-- processing ID, [msh.11] -->
<acceptAckCode code="ER"/> <!-- [msh.15] --> <!-- errors only --> <applicationAckCode code="ER"/> <!-- [msh.16] -->
<communicationFunctionRsp> <!-- presume "respond_to" is a sending contact --> <type_cd code="RSP"/> <telecom use="WP" url="555-555-5555"/>
<servedBy> <nm xsi:type="dt:PN"> <dt:family>Hippocrates</dt:family> <dt:given>Harold</dt:given> <dt:given>H</dt:given> <dt:suffix
qualifier="AC">MD</dt:suffix> </nm> <telecom use="WP" url="555-555-5555"/> </servedBy> </executedByRespondToOrg> <executedBySendApp>
<type_cd code="SND"/> <telecom value="127.127.127.255"/> <servedBy> <!-- sending application, [msh.3] --> <id extension="GHH LAB"
root="2.16.840.1.113883.1122"/> <nm use="L"> <given>An Entity Name</given> </nm> <telecom value="555-555-2005" use="H"/> <agencyFor> <!--
sending facility [msh.4] --> <representedOrganization> <id nullFlavor="OTH"/> </representedOrganization> </agencyFor> <presence> <location> <id
root="2.16.840.1.113883.1122" extension="ELAB-3"/> <nm xsi:type="dt:TN">GHH Lab</nm> </location> </presence> </servedBy>
</executedBySendApp> <executedByRcvApp> <type_cd code="RCV"/> <telecom value="127.127.127.0"/> <servedBy> <!-- Receiving application,
[msh.5] --> <id root="2.16.840.1.113883.1122" extension="GHH OE"/> <nm use="L"> <given>An Entity Name</given> </nm> <telecom value="555-
555-2005" use="H"/> <agencyFor> <representedOrganization> <id root="2.16.840.1.113883.19.3.1001"/> <nm xsi:type="TN">GHH Outpatient
Clinic</nm> </representedOrganization> </agencyFor> <presence> <location> <id root="2.16.840.1.113883.1122" extension="BLDG4"/> <nm
xsi:type="TN">GHH Outpatient Clinic</nm> </location> </presence> </servedBy> </executedByRcvApp> <has_payload_ControlActEvent
xsi:type="MCAI_HD700200"> ... </has_payload_ControlActEvent> </Message>
Message Body
The Patient
Historically, all clinical documents used in Healthcare industry are human readable and they
contain a mix of discrete data and free-flowing physicians narrative.
Discharge
Summary
Clinical
Diagnostic Summary
Reports
(DI, lab) Report,
Referrals
Clinical
Document
Medication
Prescription
Rx
Not limited to above it can be any other document having valid signatures from different
players in healthcare provider industry
Header
Document Type
Sender
Receiver
Patient
Body
T Section(s)
E Admission Details
Primary/Secondary
X Diagnosis
T Observations
Medications
Follow-up
C Entries
O Admission Details
D Primary/Secondary
E Diagnosis
D Observations
Medications
HL7 CDA
A document markup standard that specifies
structure & semantics of clinical documents
for the purpose of exchange
Persistence
Human Stewardshi
Readability p
CDA
Characteristics
Wholeness Authentication
Context
Context A clinical document establishes the default context for its contents
Non-XML
or
Structured
Body
Observatio Linked
n Artifacts
Procedure
Medicatio
n
Record
Target Encounter
Custodian Nested Sections
with Narrative
Ext.
CDA Header CDA Body CDA Entries
Ref.
<ClinicalDocument>
Header
...
<StructuredBody>
<Section>
<text>...</text> Narrative Block
<Observation>
...
</Observation> S D
E
<Observation> E O
N
C B C
<reference> T
T O U
<ExternalObservation>External R
I D M
References I
... O Y E
E
</ExternalObservation> N N
S
S T
</reference>
</Observation>
</Section>
<Section>
<Section>...</Section>
</Section>
</StructuredBody>
</ClinicalDocument>
<Section>
<code code="10153-2" codeSystem="LOINC">Anamnese</code>
<text>
<list>
<item><content>Asthma</content></item>
<item><content>High Bloodpressure</content></item>
<item><content ID="a3">Osteoarthritis, right knee</content></item>
</list>
</text>
<entry>
<contextConductionInd value="TRUE"/>
<Observation classCode="COND">
<code code="G-1001" codeSystem="SNOMED" displayName="prior diagnosis"/>
<value code="D1-201A8" codeSystem="SNOMED" displayName="Osteoarthritis">
<originalText><reference value="#a3"/></originalText>
</value>
<targetSiteCode code="T-15720" codeSystem="SNOMED" displayName="Knee">
<qualifier>
<name code="G-C220" codeSystem="SNOMED" displayName="Laterality"/>
<value code="G-A100" codeSystem="SNOMED" displayName="right"/>
</qualifier>
</targetSiteCode>
</Observation>
</entry>
</Section>
Different recipients may use different style sheets to render the same CDA document, and
thus may display it differently (but the same content is presented)
This can help facilitate display of CDA documents with specific preferences or local
requirements
Body
Example
Result
<section>
<caption>
<captionCode V="114967" S=LOINC"/>
Narrative
Allergies and Adverse Reactions
</caption>
<list>
<item><content ID=A1>Penicillin Hives</content></item>
<item><content>Aspirin Wheezing</content></item> REQUIRED
<item>
<content>Codeine Itching and nausea</content>
</item>
</list>
<coded_entry>
Computable
<coded_entry.value ORIGTXT=A1 V="DF10074" S=SNOMED DN=Allergy to Penicillin/>
</coded_entry>
</section>
<text>
Narrative
<list>
<item><content ID="A1">Penicillin Hives
</list>
</text>
<entry>
<observation classCode="OBS" moodCode="EVN">
<code code="84100007" codeSystem="2.16.840.1.113883.6.96
codeSystemName="SNOMED CT" displayName="History taking"/>
<value xsi:type="CD" code="247472004"
Computable
codeSystem="2.16.840.1.113883.6.96" displayName="Hives">
<originalText><reference value="#A1"/></originalText>
</value>
OPTIONAL
<entryRelationship typeCode="MFST">
<observation classCode="OBS" moodCode="EVN">
<code code="84100007" codeSystem="2.16.840.1.113883.6.96"
displayName="History taking"/>
<value xsi:type="CD" code="91936005 CodeSystem="2.16.84"
displayName=PCN Allergy"/>
Intra-institutional
Exchange of parts of medical records (scanned or structured electronic health records)
Lab/Imaging requests & reports
Prescriptions/order forms
Admission notes
Progress notes
Operative notes
Discharge summaries
Payment receipts
Other forms/documents (clinical or administrative)
Inter-institutional
Exchange of parts of medical records (scanned or structured electronic health records)
Referral letters
Claims requests or reimbursement documents
External lab/imaging reports
Visit summary documents
Insurance eligibility & coverage documents
Identification documents
Disease reporting
Other administrative reports