Part 1 of this series can be found here.
There are two types of acknowledgment messages (ACKs) used in healthcare data exchange communications: HL7 ACKs (including original mode acknowledgments and enhanced mode acknowledgments) and non-HL7 ACKs (also known as static string acknowledgments).
An HL7 ACK is built using information from the HL7 message and is in HL7 format.
- Original Mode Acknowledgement – a “Receive” ACK, and 95% of the ACKs used in HL7 communications; indicates that a message has been received but not necessarily processed yet.
- Enhanced Mode Acknowledgement – an “Application” ACK that is a resultant status return rather than a communication response (i.e. query results, order response, etc.).
- A Non-HL7/Static String ACK is a custom acknowledgment and is simply a text string (rather than an HL7-formatted ACK). These types of ACKs are used when a system is not receiving HL7 messages, and therefore cannot use the HL7 message information to automatically populate an HL7-formatted ACK.
Why Use ACKs?
The HL7 messaging standard includes an ACK message to be sent back to the sending interface after receiving a message to indicate the message was received. In a typical HL7 environment, a sender will assume the message was not received until it receives an ACK message. So if the receiver connection does not return an ACK message, the sender may assume there is a problem and stop sending messages.
ACKs also can affect the pace at which messages are sent along a connection. Because HL7 is generally configured to send a message and then wait for an ACK before sending the next message in the queue, the sooner the acknowledgment is returned the sooner the next message is sent. Many connections use the ACK as a means for controlling the pace of the connection.
A receiver connection should send an ACK message unless the sending application is unable or unwilling to receive ACK messages. Usually, this is only the case with legacy systems or systems that are not sending HL7 messages.
Steps to build HL7 acknowledgment from Inbound Message:
1. Pull the HL7 MLLP node in the source area and HL7 ACK Node in process area along with logger:
2. Configure the HL7 MLLP node as shown below. In the Advanced tab, the exchange pattern has been selected as request-response:
3. In HL7 ACK Code, set acknowledgment as AA:
4. Start the project in debugger mode:
5. Send the HL7 message from any HL7 client and wait for acknowledgment:
6. HL7 acknowledgment AA has been received on HL7 interface client:
Similarly, we can test for negative acknowledgments. For more details; refer to this link.
This tutorial will be continued in Part 3.