This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Difference between revisions of "Examples section of the v3Guide"

From HL7Wiki
Jump to navigation Jump to search
Line 166: Line 166:
 
==The Complete Version 3 Interaction Example==
 
==The Complete Version 3 Interaction Example==
 
   
 
   
 
+
Putting all the pieces together:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    
 
    
 
   <POLB_IN224200 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3"
 
   <POLB_IN224200 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3"

Revision as of 19:18, 24 August 2006

This page contains the new draft content of section 2.8 of the v3Guide. The example has been updated to reflect the use of the normative XML ITS v1.0. The schema is that of a non-normative interaction as present in the May 2006 ballot.

The sections intent has been changed from “translating a V2 message to a v3 interaction” to “1 use-case expressed in V2 as well as in v3”.

2.8 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>