HL7 Notes (4)

Editorial architecture visual showing BizTalk SAP adapter connectivity, RFC gateway, load-balanced SAP servers, and retry paths

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,

  1. 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…
  2. 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
  3. 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

Next step

Need this reviewed in a real system?

Use the article as a starting point, then bring the actual decision, constraints, and failure paths into an architecture review.

Join the discussion

Sign in to comment. Signed-in comments appear immediately.

Join the discussion