One problem an HL7 parser needs to solve is how to identify the message type being parsed. This is what an example HL7 message looks like:
Code Block |
---|
MSH|^~\&|EPIC|EPICADT|iFW|SMSADT|199912271408|CHARRIS|ADT^A04|1817457|D|2.5|
PID||0493575^^^2^ID 1|454721||DOE^JOHN^^^^|DOE^JOHN^^^^|19480203|M||B|254 MYSTREET AVE^^MYTOWN^OH^44123^USA||(216)123-4567|||M|NON|400003403~1129086|
NK1||ROE^MARIE^^^^|SPO||(216)123-4567||EC|||||||||||||||||||||||||||
PV1||O|168 ~219~C~PMA^^^^^^^^^||||277^ALLEN MYLASTNAME^BONNIE^^^^|||||||||| ||2688684|||||||||||||||||||||||||199912271408||||||002376853 |
See the “ADT^A04” in field 9 of the first MSH line of the message? This indicates the ‘type’ of the message. In this case an this is a patient registration message in the Admit Discharge Transfer category of messages.
So every HL7 parser needs a way to configure it so that rules can defined as to what message grammar should be used to parse the message. We call that a message matching system.
The HL7 parser in Iguana X has a greatly simplified message matching system compared to Chameleon.
...