The HL7 protocol specifies that the system that receives an HL7 message will acknowledge the message by sending an acknowledgement to the message sender. HL7 protocol supports two types of message acknowledgement, Original Mode and Enhanced Mode.
Original Acknowledgement Mode: Original mode acknowledges message delivery to a receiving system by requiring an Application Acknowledgement. This is an acknowledgement from the system's application layer, sent after the application has successfully processed the message.
Application Acknowledgement: The receiving system sends an acknowledgement to the message sender, acknowledging that the application has successfully processed the message.
Enhanced Acknowledgement Mode:In case of Enhanced mode, the HL7 external system processes two acknowledgments, the Accept Acknowledgment and the Application Acknowledgment described above.
Accept Acknowledgement: The receiving system sends an acknowledgement to the message sender, acknowledging that the message has been committed to safe storage and that there is no need to resend the message. The binding component can also be set to check the payload (MSH.15) of incoming HL7 messages to see if an acknowledgment needs to be generated.
Valid Acknowledgment condition values for MSH-15 and MSH-16 files in an HL7 messages are:
ALWAYS_CONDITION (AL) – Always sends the ACK whether it is a success or not.
NEVER_CONDITION (NE) – The sender does not require an ACK, so the receiver should not send any ACKs back to the sender.
ERROR_CONDITION (ER) – If any errors occur during processing, the receiver sends an ACK; otherwise, the ACK is not sent.
SUCCESS_CONDITION – The receiver sends an ACK only for a success.