HL7 Dual Acknowledgment Sequences
HL7 Dual Acknowledgment Sequences
Some systems require a dual acknowledgment sequence from Ensemble: an immediate 1-byte ACK, followed later by the full ACK message. One such system is the dual-channel iSoft iCM application. If your configuration includes a client system such as iCM that requires a dual acknowledgment sequence, you must set up a paired business service and business operation to enable Ensemble to provide the expected ACKs.
Ensemble provides specialized business host classes that you can use to define a dual acknowledgment sequence over TCP and HTTP.
-
EnsLib.HL7.Service.TCPAckInServiceOpens in a new tab is a specialized HL7 business service that receives ACKs on behalf of a paired HL7 TCP business operation. It also depends on this partner to send ACKs on its behalf.
-
EnsLib.HL7.Operation.TCPAckOutOperationOpens in a new tab is a specialized HL7 TCP business operation that sends out ACKs on behalf of a paired HL7 TCP business service. It also depends on this partner to collect ACKs on its behalf. Each of these configuration items plays its usual role in addition to the work it does for its partner item.
-
An EnsLib.HL7.Service.HTTPAckInServiceOpens in a new tab and EnsLib.HL7.Operation.HTTPAckOutOperationOpens in a new tab are also available.
Dual ACK Sequence for Incoming Messages
For messages entering Ensemble, the dual acknowledgment sequence works as shown in the following figure:

-
The client application sends a message into Ensemble.
-
The inbound ACK business service sends an immediate 1-byte ACK to the client application.
-
The inbound ACK business service sends the message to its routing process.
-
The routing process routes the message to its target via a business operation.
-
The target application returns an ACK message to the business operation.
-
Ensemble relays the ACK to the inbound ACK business service.
-
The business service relays the ACK to its paired business operation.
-
The business operation relays the ACK to the client application.
-
The client application acknowledges the ACK message by returning a 1-byte ACK.
Dual ACK Sequence for Outgoing Messages
For messages leaving Ensemble, the dual acknowledgment sequence works as shown in the following figure:

-
A business service sends a message to its routing process.
-
The routing process routes the message to the outbound ACK business operation.
-
The outbound ACK business operation relays the message to the target application.
-
The target application acknowledges the message by returning a 1–byte ACK.
-
The target application returns an ACK message to the inbound ACK business service.
-
The business service sends an immediate 1–byte ACK to the target application.
-
The business service relays the ACK to its paired business operation.
-
The business operation relays the ACK message back to the business service.
-
The business service receives the ACK to its original message.
Configuring a Dual ACK Sequence
To configure an Ensemble routing production to use the dual acknowledgment feature:
-
Add a business service to the production.
Choose EnsLib.HL7.Service.TCPAckInServiceOpens in a new tab or EnsLib.HL7.Service.HTTPAckInServiceOpens in a new tab as the business service class. It is not one of the standard HL7 Input options available from the Business Service Wizard, but you can choose it by selecting the Other option and identifying the class.
-
Add a business operation to the production.
Choose EnsLib.HL7.Operation.TCPAckOutOperationOpens in a new tab or EnsLib.HL7.Service.HTTPAckOutOperation as the business operation class. It is not one of the standard HL7 Output options available from the Business Operation Wizard, but you can choose it by selecting the Other option and identifying the class.
-
Configure the following settings for the business service:
-
Set Immediate Byte ACK to True. Then, in addition to forwarding a full ACK message according to the Ack Mode setting, the business service also returns an immediate 1-byte ACK on its TCP or HTTP connection.
-
For a Partner Operation, choose the business operation that you added in Step 2. Whenever you specify a Partner Operation value, the business service ignores any inbound ACK messages that it receives directly, to avoid creating an ACK feedback loop.
The business operation must exist and have the underlying class EnsLib.HL7.Operation.TCPAckOutOperationOpens in a new tab or EnsLib.HL7.Operation.HTTPAckOutOperationOpens in a new tab, respectively.
-
-
Configure the following setting for the business operation:
-
Set the Partner ACK Timeout to the number of seconds for the business operation to wait for its partner business service to supply an ACK that corresponds to the normal outbound message that the business operation sent. The default is 600 seconds (10 minutes).
-