We use a modified form of the hl7_ack.tcl for generating HL7 acknowledgements back to systems. There is a statement that is failing on us..
if {[catch {set ghd [grmcreate -msg $ibid hl7 2.3 $variant {}]} cerr]} {
set ar_err 1
set ack_msg “|Invalid HL7 message: $cerr”
set in_loop 0
break ;# exit loop
}
The variant we are using for $variant contains a message definition of “ADT”. It is a direct copy of the message definition for “ADT_A08” which had some slight modifications from standard.
The sending system had only been sending ADT^A08 messages. A recent update to the sending system changed the messages to ADT instead of ADT^A08. So, we copied the definition from ADT_A08 to ADT. This puts a green entry in the GUI for the variant (indicating it is a new definition, not a modified standard defintion, which is blue).
There are a few other “new” definitions defined in that variant. I modified an inbound message, changing the MSH-9 from ADT to each of the other “green” message types, and ran it through the testing tool. I also modified MSH-9 to be ADT^A08 (blue modification in the tool). Each and every message that contained a non-standard message definition failed in the same way. The message containing the modified standard definition (ADT^A08) worked fine.
The failure in the process log indicates:
ERROR. Invalid message type ‘ADT’.
Is that normal behavior for grmcreate to fail if the message is not a standard message definition, even if the message has been defined in the variant, and the variant is in use for the grmcreate?
Thanks
Todd