Examples section of the v3Guide
This page is part of the v3 Guide | Next Page / All v3Guide pages | Index of the v3Guide |
Contents
Examples
This chapter contains an example business use case related to a laboratory results message, as well as a V2.4 and a v3 representation. The v3 message is based upon the normative XML ITS 1.0 and schema from the May 2006 Informative Edition of HL7 v3. This chapter will be updated from time to time to reflect changes in HL7 v3 Editions.
The use case is the completion of a serum glucose laboratory result of 182 mg/dL authored by Howard H. Hippocrates. The laboratory test was ordered by Patricia Primary for patient Eve E. Everywoman. The use case takes place in the US Realm.
The V2.4 Message
The V2.4 representation of the use-case is a ORU^R01 message.
MSH|^~\&|GHH LAB|ELAB-3|GHH OE|BLDG4|200202150930||ORU^R01|CNTRL-3456|P|2.4<cr> PID|||555-44-4444||EVERYWOMAN^EVE^E^^^^L|JONES|196203520|F|||153 FERNWOOD DR.^ ^STATESVILLE^OH^35292||(206)3345232|(206)752-121|||| AC555444444||67-A4335^OH^20030520<cr> OBR|1|845439^GHH OE|1045813^GHH LAB|15545^GLUCOSE|||200202150730||||||||| 555-55-5555^PRIMARY^PATRICIA P^^^^MD^^|||||||||F||||||444-44-4444^HIPPOCRATES^HOWARD H^^^^MD<cr> OBX|1|SN|1554-5^GLUCOSE^POST 12H CFST:MCNC:PT:SER/PLAS:QN||^182|mg/dl|70_105|H|||F<cr>
The v3 Message - Transmission Wrapper
The v3 representation of the use case is a POLB_IN224200 interaction. The root element of the XML instance contains information necessary for its proper validation. The root element is POLB_IN224200. The XML ITS version 1.0 uses a single v3 namespace for all instances.
The element interactionId of the root defines the sender and receiver in terms of applications, and also in terms of the organizations that are exchanging data. All IDs use OIDs as the method of ensuring global uniqueness.
The following object identifiers (OIDs, not present in the HL7 V2 message) are used within the Good Health Hospital (GHH):
- GHH Application IDs: 2.16.840.1.113883.19.1122.1
- GHH Lab Interaction IDs: 2.16.840.1.113883.19.1122.7
- GHH Location IDs: 2.16.840.1.113883.19.1122.2
- GHH Provider (Person) IDs: 2.16.840.1.113883.19.1122.3
- GHH Patient IDs: 2.16.840.1.113883.19.1122.5
- GHH Placer Order IDs: 2.16.840.1.113883.19.1122.14
- GHH Lab Filler Order IDs: 2.16.840.1.113883.19.1122.4
- The code system for the observation within the GHH is LOINC, with OID 2.16.840.1.113883.6.1
Note that the root element uniquely identifies the message’s interaction identifier, in this case, POLB_IN224200, which identifies the message type, the trigger event, and the receiver responsibilities.
The receiving application is described in the receiver/device element, the sender/device element and sender/asLocatedEntity/location identify the sending application and facility. The receiver is the GHH_OE system in Bldg4. The sender is GHH_LAB at location E-LAB3.
The root element wraps the payload, which is the Control Act wrapper for this message.
<POLB_IN224200 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id root="2.16.840.1.113883.19.1122.7" extension="CNTRL-3456"/> <creationTime value="200202150930-0400"/> <versionCode code="2006-05"/> <interactionId root="2.16.840.1.113883.1.6" extension="POLB_IN224200"/> <processingCode code="P"/> <processingModeCode nullFlavor="OTH"/> <acceptAckCode code="ER"/> <receiver typeCode="RCV"> <device classCode="DEV" determinerCode="INSTANCE"> <id extension="GHH LAB" root="2.16.840.1.113883.19.1122.1"/> <asLocatedEntity classCode="LOCE"> <location classCode="PLC" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.2" extension="ELAB-3"/> </location> </asLocatedEntity> </device> </receiver> <sender typeCode="SND"> <device classCode="DEV" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.1" extension="GHH OE"/> <asLocatedEntity classCode="LOCE"> <location classCode="PLC" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.2" extension="BLDG24"/> </location> </asLocatedEntity> </device> </sender> <! –- Trigger Event Control Act & Domain Content -- > </POLB_IN224200>
The v3 Message - Trigger Event Control Act wrapper
The message control act is yet another wrapper around the actual message. It represents the trigger event POLB_TE224200. Information about the date and time the trigger event occurred, as well as the responsible parties for the trigger event is not present in this example, even though it could be conveyed as part of the wrapper. Note that the date and time of the laboratory observation as well as the author of the observation are contained in the Domain Content and not in the Control Act wrapper.
<controlActProcess classCode="CACT" moodCode="EVN"> <code code="POLB_TE224200" codeSystem="2.16.840.1.113883.1.8"/> <subject typeCode="SUBJ" contextConductionInd="false"> </subject> </controlActProcess>
The v3 Message - Domain Content
The "Domain Content" starts with its own root element – observationEvent. The elements within specify the type of observation, the ID, the time of the observation, statusCode, and the results. The value for the actual result is shown in the value element. The interpretationCode element shows that the value has been interpreted as high (H), while referenceRange provides the normal values for this particular observation.
<observationEvent> <id root="2.16.840.1.113883.19.1122.4" extension="1045813" assigningAuthorityName="GHH LAB Filler Orders"/> <code code="1554-5" codeSystemName="LN" codeSystem="2.16.840.1.113883.6.1" displayName="GLUCOSE^POST 12H CFST:MCNC:PT:SER/PLAS:QN"/> <statusCode code="completed"/> <effectiveTime value="200202150730"/> <priorityCode code="R"/> <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> <value xsi:type="PQ" value="182" unit="mg/dL"/> <interpretationCode code="H"/> <referenceRange> <interpretationRange> <value xsi:type="IVL_PQ"> <low value="70" unit="mg/dL"/> <high value="105" unit="mg/dL"/> </value> <interpretationCode code="N"/> </interpretationRange> </referenceRange>
The performing provider, Mr. Harold H Hippocrates, is included with his ID and name. There are two levels of information present, the practitioner level and the person level. The ID is on the practitioner level, while the name is on the person level.
<author> <modeCode code="WRITTEN"/> <signatureCode code="S"/> <assignedEntity> <id root="2.16.840.1.113883.19.1122.3" extension="444-444-4444"/> <assignedPerson> <name> <given>Harold</given> <given>H</given> <family>Hippocrates</family> <suffix qualifier="AC">MD</suffix> </name> </assignedPerson> </assignedEntity> </author>
The patient, Eve E. Everywoman, is also represented with two levels - the patient and the person. The available elements within the patient element are few since this is part of a closely-coupled message (e.g. the address isn’t sent). On the other hand, the id is available as well as the name, thus providing for at least some form of error checking.
<recordTarget> <patientClinical> <id root="2.16.840.1.113883.19.1122.5" extension="444-22-2222" assigningAuthorityName="GHH Lab Patient IDs"/> <statusCode code="active"/> <patientPerson> <name use="L"> <given>Eve</given> <given>E</given> <family>Everywoman</family> </name> <asOtherIDs> <id extension="AC555444444" assigningAuthorityName="SSN" root="2.16.840.1.113883.4.1"/> </asOtherIDs> </patientPerson> </patientClinical> </recordTarget>
The original order for the laboratory observation is referenced by the FLFS act relationship named inFulfillmentOf, which identifies the order by placer number. This number should be used by the receiver to match the results to the order. The available elements within the placerOrder element are few since this is part of a closely-coupled message (e.g. the details of the ordering provider aren’t sent).
<inFulfillmentOf> <placerOrder> <id root="2.16.840.1.113883.19.1122.14" extension="845439" assigningAuthorityName="GHH OE Placer orders"/> </placerOrder> </inFulfillmentOf> </observationEvent>
The Complete Version 3 Interaction Example
Putting all the pieces together:
<POLB_IN224200 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <id root="2.16.840.1.113883.19.1122.7" extension="CNTRL-3456"/> <creationTime value="200202150930-0400"/> <versionCode code="2006-05"/> <interactionId root="2.16.840.1.113883.1.6" extension="POLB_IN224200"/> <processingCode code="P"/> <processingModeCode nullFlavor="OTH"/> <acceptAckCode code="ER"/> <receiver typeCode="RCV"> <device classCode="DEV" determinerCode="INSTANCE"> <id extension="GHH LAB" root="2.16.840.1.113883.19.1122.1"/> <asLocatedEntity classCode="LOCE"> <location classCode="PLC" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.2" extension="ELAB-3"/> </location> </asLocatedEntity> </device> </receiver> <sender typeCode="SND"> <device classCode="DEV" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.1" extension="GHH OE"/> <asLocatedEntity classCode="LOCE"> <location classCode="PLC" determinerCode="INSTANCE"> <id root="2.16.840.1.113883.19.1122.2" extension="BLDG24"/> </location> </asLocatedEntity> </device> </sender> <controlActProcess classCode="CACT" moodCode="EVN"><subject typeCode="SUBJ" contextConductionInd="false"> </subject> </controlActProcess> <observationEvent> <id root="2.16.840.1.113883.19.1122.4" extension="1045813" assigningAuthorityName="GHH LAB Filler Orders"/>
<statusCode code="completed"/> <effectiveTime value="200202150730"/> <priorityCode code="R"/> <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/> <value xsi:type="PQ" value="182" unit="mg/dL"/> <interpretationCode code="H"/> <referenceRange> <interpretationRange> <value xsi:type="IVL_PQ"> <low value="70" unit="mg/dL"/> <high value="105" unit="mg/dL"/> </value> <interpretationCode code="N"/> </interpretationRange> </referenceRange> <author> <modeCode code="WRITTEN"/> <signatureCode code="S"/> <assignedEntity> <id root="2.16.840.1.113883.19.1122.3" extension="444-444-4444"/> <assignedPerson> <name> <given>Harold</given> <given>H</given> <family>Hippocrates</family> <suffix qualifier="AC">MD</suffix> </name> </assignedPerson> </assignedEntity> </author> <recordTarget> <patientClinical> <id root="2.16.840.1.113883.19.1122.5" extension="444-22-2222" assigningAuthorityName="GHH Lab Patient IDs"/> <statusCode code="active"/> <patientPerson> <name use="L"> <given>Eve</given> <given>E</given> <family>Everywoman</family> </name> <asOtherIDs> <id extension="AC555444444" assigningAuthorityName="SSN" root="2.16.840.1.113883.4.1"/> </asOtherIDs> </patientPerson> </patientClinical> </recordTarget> <inFulfillmentOf> <placerOrder> <id root="2.16.840.1.113883.19.1122.14" extension="845439" assigningAuthorityName="GHH OE Placer orders"/> </placerOrder> </inFulfillmentOf> </observationEvent> </POLB_IN224200>