Reply action code to ignore HL7 Nack as error
We are trying to mark a hl7 nack as "completed" to ignore an error and not generate the alert.
We can remove from adding a managed alert or add another router in
When Nack of CR of
Date of birth in PID.7 must not be empty
We tried via this but i think it's only for an actual IRIS alert errror not the HL7 error code/description
E*Date of birth in PID.7 must not be empty=C,:?CR=C,:?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=C
Comments
To mark an HL7 NACK as "completed," ignoring an error without generating an alert, you can utilize the Reply Code Actions settings of the HL7 operation in the InterSystems platform. This involves customizing the Reply Code Actions string based on the specific NACK codes or conditions you want to handle differently.
Here are some relevant details for handling NACKs:
Default Reply Code Actions: The default Reply Code Actions is:
':?R=RF,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=C'It specifies actions for the different response codes received (e.g., AR, AE, CR, etc.) [1].
Customizing Reply Code Actions: To suspend messages with the specified error or mark them "Completed," you should update the Reply Code Actions string. For instance:
AR=S,:?R=S,:?E=S,:~=S,:?A=C,:*=S,:I?=W,:T?=CIn this example, NACKs with the "AR" in the MSA:1 segment would be matched and the message would be suspended, and other error conditions would follow the default behavior [1].
Use Conditional Matching: If you want to mark a message completed based on specific criteria in an error within the NACK, you can use text matching conditions. For example:
E*Date of birth in PID.7 must not be empty=S,:?R=S,:?E=S,:I?=W,:T?=CThis indicates that when a NACK contains the specified text in the error description, the message will be marked as "Suspended" or "Completed" with the action code
S[2].
Make sure no extra spaces or unnecessary quotation marks are added around the action code string, as it could lead to errors during execution.
These updates to the Reply Code Actions string should achieve the desired functionality. If further customization is needed, extending the operation and overriding specific methods like OnReplyDocument() or OnGetReplyAction() may be required [3][4][2].
Sources:
You are correct in that ReplyCodeAction E* does not evaluate the contents of the ACK message MSA segment; it only looks at the IRIS error code and text.
For your specific example, though, I'm wondering why you're not simply setting a condition to exclude invalid messages in the Routing Rule?
.png)
Yeah it is probably the way too do it; just it transforms it as part of that send so it's a loop it in same router job or pass it on to another router to go to the operation so was wondering if there was another way without this but doubt there is