HL7 ACK (Acknowledgement)

2 minute read

Published:

This content is based on my study of the topic by googling, and this is just to share some thoughts and views about the topic.

Just start with the question,

Why we need ACK Message ?

The main and most important purpose is to know whether a message is delivered or not to the receiving party. Regardless of the security issue, if we consider a basic scenario of successful transmission we will receive an ACK back once we send a message successfully to the receiver. That is the indication of a successful Message.

For HL7 also, ACK is important to notify the sender whether the message has reached successfully. In basic scenarios, the system that receives it may not have the capability to create a proper ACK, because it can accept the format, but cannot generate the ACK, or in other cases, systems cannot accept the format. For these scenarios, there is a Custom ACK to notify the sender regarding the issue from the receiver. Otherwise, it is hard to communicate with HL7 Messages.

Generally, ACK belongs to 3 types.

  1. Accept : the receiver accepts the type of message; this is based on the logic provided in different subsystems present in the medical organization, such as the laboratory, payment system, and doctors’ system. eg: a laboratory will accept ORU message if it is in the proper format, while the cashier may reject ORU related to the lab. in this case AR/CR type acknowledgment will come.
  2. Reject : By the name we can understand that the particular message is not accepted by the receiver since it is out of logic or not in the format provided.
  3. Error : this occurs due to an application error, generally caused by some issues in decoding the message due to the wrong format. Here, though they are able to accept the message, they cannot decode it; this may be because of a version or type issue, so they will raise an application error and return ACK with AE, CE type.

In addition,

These ACKs are either in normal mode or enhanced mode. Accordingly in normal mode ACKs can be AA, AR, AE, and in enhanced mode ACKs can be CA, CR, CE. In normal mode, the field 15 and 16 which contain the message and application acknowledgment type are nulled, whereas in enhanced mode one of these can be null but not both.

References

  1. https://www.hl7.org/documentcenter/public_temp_088CF1E1-1C23-BA17-0C4227727B2BEC42/wg/conf/HL7MSH.htm