HL7 ACK or NAK configuration
A recent post was asking how to set up a two-way port with an orchestration to create acknowledgements.
- What we did is in the configuration tool, we set the properties for the MSH 3.1 to the following:
so that the pipeline component will only auto generate a NAK in case of a bad message. - We did not want a CA generated stated that we got the message (with or without data errors), we just wanted to know if it was valid or not, hence MSH15=NE.
- The MSH 16=ER, we only wanted it to create an NAK if there were errors.
- Then in the orchestration we have a filter only looking for BTAHL7Schemas.ParseError==false (so only good HL7 messages trigger the orchestration).
- Then in the orchestration we create our positive ACK (setting MSA 2 to AA) and send it back; completing our two-way port in the orchestration.
- We also have a Dump send port that is filtered on BTAHL7Schemas.ParseError==true and the pipeline is set to DefaultPipelines.PassThruTransmit (since the HL7 DASM could not successfully parse it, it still resides in its text blob form), where the original HL7 message could be looked at futher for troubleshooting purposes and not have a suspended message in the message box.
- We also promoted the MSA 2 and created a filter where we could capture the autogenerated NAK (MSA_2!=”AA”). This allowed us to look at both the bad message and a copy of the NAK that was sent back to the originating system.
This fulfills our requirements to send back an ack, but then the ack gets generated either by the pipeline component (NAK) or by our orchestration (ACK).
I want to thank my friends in Portugal for encouraging me to clarify this blog entry.
Comments Off