HL7 Notes (4)
So scenario is from SAP to HL7, using the BATHL assembler in the send side to serialize the HL7 stream to flat file format then relay via MLLP adapter.
Lesson leant,
- To help debugging, I took the BTAHL assembler pipeline component, reflected to be my custom pipeline component. This way, I have a debuggable component to get more insight…
- To convert from non-HL7 to HL7 message, besides the three part message, promoting the regular properties, the message type property (BTS.MessageType) also needs to be promoted, which is the message type for the HL7 message body part. The message type property is extensively used in the assembler component to discover and serialize the header and body part
- For some weird reason (imo), the assembler uses the body part document type to discover the header version, the way it try to do this is by searching the MSH version string, i.e. _25_ to 2.5. This value then get passed to the HL7XmlReader to parse the header content. This said, it may lead to weird error, in my case the MSH7.1 data type error. To accommodate this, the body part schema root node name has to include the MSH version number, i.e. for my case I changed the root from ‘HL7_Meditech_ORM’ to ‘HL7_25_Meditech_ORM’.
For the record, http://social.msdn.microsoft.com/Forums/eu/biztalkgeneral/thread/eac28acd-8978-4670-ba9c-b14d71916730 for a brief discussion