Skip to main content

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.

Dual ACK Sequence for Incoming Messages

For messages entering Ensemble, the dual acknowledgment sequence works as shown in the following figure:

generated description: ack dual

  1. The client application sends a message into Ensemble.

  2. The inbound ACK business service sends an immediate 1-byte ACK to the client application.

  3. The inbound ACK business service sends the message to its routing process.

  4. The routing process routes the message to its target via a business operation.

  5. The target application returns an ACK message to the business operation.

  6. Ensemble relays the ACK to the inbound ACK business service.

  7. The business service relays the ACK to its paired business operation.

  8. The business operation relays the ACK to the client application.

  9. 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:

generated description: ack dual reversed

  1. A business service sends a message to its routing process.

  2. The routing process routes the message to the outbound ACK business operation.

  3. The outbound ACK business operation relays the message to the target application.

  4. The target application acknowledges the message by returning a 1–byte ACK.

  5. The target application returns an ACK message to the inbound ACK business service.

  6. The business service sends an immediate 1–byte ACK to the target application.

  7. The business service relays the ACK to its paired business operation.

  8. The business operation relays the ACK message back to the business service.

  9. 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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).

FeedbackOpens in a new tab