Accept Acknowledgement

From Wiki for HL7 Norge
Jump to: navigation, search

Introduction

An Accept Acknowledgement (the MCCI_IN000002 interaction) is sent in response to the receipt of an interaction to communicate the fact that the interaction has been received; that its contents successfully passed an initial validation step (see below), and that its contents were safely stored for further processing. The Accept Acknowledgement doesn't make a statement about the ability of the receiver to process the contents of the message.

The initial validation process is a fully automated process executed by the receiving software (mostly: the software component responsible for message processing) to validate the syntax of the interaction that was received. This may be limited to checking the interaction type; it may also include validation against a XML schema, and it could extend to validation of codes used.

Structure of the Interaction

In terms of structure the Accept Acknowledgement interaction is defined as a Transmission Wrapper. The interaction doesn’t contain a ControlAct wrapper nor a payload.

Given the purpose of the Accept Acknowledgement interaction the following attributes have a key role in the interaction:

  • Sender/device.id: should be equal to the Receiver/device.id of the interaction that this Accept Acknowledgement is in response of.
  • Receiver/device.id: should be equal to the Sender/device.id of the interaction that this Accept Acknowledgement is in response of.
  • AcceptAckCode: fixed to NE (Never) - Accept Acknowledgement interactions themselves are never to be responded to.
  • Acknowledgement.typeCode (mandatory): should be either CA (accept) or CE (error).
  • TargetMessage.id (mandatory): contains the ID of the interaction that this Accept Acknowledgement is in response of.
  • The AcknowledgementDetail class may occur zero or more times:
    • AcknowledgementDetail.typeCode: contains either E (Error), W (Warning), or I (Informational). See Error Handling for additional details.
    • AcknowledgementDetail.code: contains a code that uniquely identifies the error/warning/information item. See Error Handling for additional details.

When should an Accept Acknowledgement be sent?

A receiver should sent an Accept Acknowledgement interaction if the sender requested one to be sent in the Message.acceptAckCode of the initial interaction. If the value of that attribute is unequal to NE (Never) an Accept Acknowledegement may have to be sent. Other values for Message.acceptAckCode are: AL (Always), and ER (only in case of errors).

In the context of the Norwegian infrastructure the value of Message.acceptAckCode will always be either AL (Always) or NE (Never), and the value will be implied by the WSDL used for the service. Therefore, the receiving application will always be aware if an Accept Acknowledgement has to be sent simply because of the WSDL definition.

Examples

1. Accept Acknowledgement - interaction 0806071541103 is accepted (CA) without errors or warnings

<MCCI_IN000002UV01 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3">
    <id extension="34236" root="2.16.578.1.34.1.871.3"/>
    <creationTime value="20080607154128"/>
    <versionCode code="NE2008"/>
    <interactionId extension="MCCI_IN000002UV01" root="2.16.840.1.113883.1.6"/>
    <processingCode code="P"/>
    <processingModeCode code="T"/>
    <acceptAckCode code="NE"/>
       <receiver typeCode="RCV">
          <device classCode="DEV" determinercode="INSTANCE">
              <id extension="408" root="2.16.578.1.34.1"/>
          </device>
       </receiver>
       <sender typeCode="SND">
           <device classCode="DEV" determinerCode="INSTANCE">
               <id extension="871" root="2.16.578.1.34.1"/>
           </device>
       </sender>
       <acknowledgement>
           <typeCode code="CA"/>
           <targetMessage>
               <id extension="0806071541103" root="2.16.578.1.34.1.408.7"/>
           </targetMessage>
   </acknowledgement>
</MCCI_IN000002UV01>

2. Accept Acknowledgement - interaction 0806071541103 is rejected (CE) with errors (NS200 code)

<MCCI_IN000002UV01 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3">
    <id extension="34236" root="2.16.578.1.34.1.871.3"/>
    <creationTime value="20080607154128"/>
    <versionCode code="NE2008"/>
    <interactionId extension="MCCI_IN000002UV01" root="2.16.840.1.113883.1.6"/>
    <processingCode code="P"/>
    <processingModeCode code="T"/>
    <acceptAckCode code="NE"/>
       <receiver typeCode="RCV">
          <device classCode="DEV" determinercode="INSTANCE">
              <id extension="408" root="2.16.578.1.34.1"/>
          </device>
       </receiver>
       <sender typeCode="SND">
           <device classCode="DEV" determinerCode="INSTANCE">
               <id extension="871" root="2.16.578.1.34.1"/>
           </device>
       </sender>
       <acknowledgement>
           <typeCode code="CE"/>
           <acknowledgementDetail typeCode="E">
               <code code="NS200" displayName="Unsupported InteractionID" 
                     codeSystem="2.16.840.1.113883.5.1100"/>
           </acknowledgementDetail>
           <targetMessage>
               <id extension="0806071541103" root="2.16.578.1.34.1.408.7"/>
           </targetMessage>
   </acknowledgement>
</MCCI_IN000002UV01>