Kyley,
You are correct in your thinking that passing acknowledgments from the receiving system(s) back to the sending system just does not make sense in a multi-point integration environment.
Typically one would hope that modern receiving systems have isolated their message handling layer from their application business rules such that the checking of the message is done after the message is received and acknowledged. So we would expect the receiving system to simply assure they have a properly structured message and acknowledge simply that a properly structured message was received or the message was not properly structured.
Given the above, once we get are finished thoroughly testing our integration, we should expect to only see positive acknowledgments. However, we still should provide handling for Negative acknowledgments.
What you do when you receive a negative acknowledgment is up to you and you can do almost anything you want.
Here, since a negative acknowledgment is not supposed to happen and must mean that a mal-formed message was sent, we send out page and email alerts to appropriate entities and stop the connection (if we have a mal-formed message most likely the next message will fail as well).
If you have a receiving system that is also going to check to see if there is a data content or receiving application issue and send a negative acknowledgment based on those conditions, then hopefully they will properly use the acknowledgment to fully identify the reason for the negative acknowledgment. In the case of HL/7 that would be the MSA segment.
I cannot recall any vendor that does application acknowledgments that properly uses the MSA segment for HL/7 – including 3M.
In any case, if you receive a properly populated application negative acknowledgement reflecting a receiving system application error just what would you be expected to do with it?
The most you can do is to alert the appropriate entities that you did receive the negative acknowledgment and what it contained. The correction would need to be done by someone else.
By the way this is not unique to HL/7 – any message type that has acknowledgments can participate in the same discussion.
There is more, but to sum up:
Try to make sure the receiving systems only check for proper structure not data content or applicability for acknowledgment purposes.
Then when you receive a negative acknowledgment you can alert the appropriate folks (probably the Integration Archtects/Engineers) and work on why you built an improperly structured message.
email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.