Inside of the Hl7 Configuration Explorer, the tab for Acknowledgments, most of the fields in there were foreign when I first started dealing with HL7, so below is a list of the values and what they mean.
Acknowedgment Type:
None
|
Select this if you do not want to configure any acknowledgements. This does not mean that it will turn off acknowledgments if the message comes in with MSH 15 with anything other than NE. In that case the pipeline will create an acknowledgment regardless. |
Original
|
Select this option to override
MSH1 – Field Separator
MSH2 – Encoding Characters
MSH3 – Sender Identifiers
MSH5 – Receiver Identifiers
MSH8 – Security options only |
Enhanced
|
Select this option to override all available acknowledgement options.
AL
|
Select this option if you always want to send acknowledgements.
|
NE
|
Select this option if you never want to send acknowledgements.
|
SU
|
Select this option if you want to send acknowledgements after a successful transmission of a message.
|
ER
|
Select this option if you want to send acknowledgements only in the event of an error.
|
MSH1 – Field Separator
MSH2 – Encoding Characters
MSH3 – Sender Identifiers
MSH5 – Receiver Identifiers
MSH8 – Security options only
|
Deferred
|
Select this option to override
MSH1 – Field Separator
MSH2 – Encoding Characters
MSH3 – Sender Identifiers
MSH5 – Receiver Identifiers
MSH8 – Security options only |
Static
|
Select this option to configure the On success and On failure acknowledgement options. |
All of these entries that can be made in the Original, Enhanced, and Defferred Mode, if you do not place data in MSH3 and MSH5, it will automatically reverse them on the acknowledgment.
There was two scenerios that I will discuss that I seem to find that are common.
-
The interface is always requiring one acknowledgment, but that one acknowledgment needs to be either a NAck because of structural problems, or if there are no structural issues, then the Ack (or NAck) needs to then comes from BizTalk.
-
It was set up in the Acknowedgment tab to be running in Enhanced Mode
-
I set the MSH15 to be ER, so that if the pipeline came across parsing errors, and automatic NAck will be produced and sent back to the sending interface
-
In the Orchestration that consumed the message, the recieve shape had a filter of BTAHL7.ParseError==false so that it would not consume a unparsed message and interpret it incorrectly
-
At the conclusion of the Orchestration, I had three different Construct Shapes that created either an Ack (MSA1 AA), Warning Ack (MSA1 AR), and NAck (MSA1 AE) and sent it back to the sending interface.
-
Another client had a system that required an acknowledgment with MSA1 as AA; any other code it would simply resend the message before sending the next message.
-
There was a flat file pipeline that consumed the original message, and sent it to an orchestration that created a multipart message that sent back a Positive Ack, then dropped the message for the 'real' parsing by the 2X pipeline dissassembler.
-
This second pass would then be consumed by the real work orchestration that would make a decision based on the BTAHL7.ParseError flag to send the original message and the subsequent NAck to a sharepoint site.
-
If there were no parse errors, then it would successfully process the messages.
posted @ Thursday, September 21, 2006 12:00 PM