HL7 Notes (1)

  • DASM can be utilized inside of any custom pipeline, so you are free to create pre- and post-processing on the message as desired. (so we can add custom pipeline component to a pipeline and include HL7DASM, one note on this, MLLP adapter is based on stream, so no seek in PLC designs)
  • If you need to customize MSH values, you must customize the original schema because only one namespace is allowed (this is really a potential problem, what if a solution need to share MSH but has to customize by different vendors)
  • You are free to customize the HL7 schema that define the rest of the message beyond the MSH segment, but the names of the schema must remain unchanged. To make the custom schema unique, you will change the namespaces so that only unique namespaces are deployed. (again, change everything except the MSH schema)
  • When using custom schema to validate data, a custom ACK will be generated. For this reason, the ACK schema’s namespace must match the message schema’s namespace.
  • All data passes through the DASM. ACKs and NACKs are generated by the DASM and placed along with the message in the message box. Good messages are parsed into XML and dropped to the message box along with an ACK. Bad messages are not parsed and are placed in the message box in their original format along with a NACK. (this is confusing part I am not quite understand, why BizTalk not simply fail the bad message? note to take, need to create distribution channel for garbages)
  • Once split off, you can control the values in the MSH segment through the HL7 Configuration Explorer. If you want to simply route a message through BizTalk Server but have the MSH in the outbound message reflect MSH values, you do not need a map. You simply configure the new values on the MSH tab in the Configuration Explorer. (do we have access to MSH value except configuration explore)
  • The HL7 ASM expects to receive messages that have been parsed by the HL7 DASM. Accordingly, it expects an HL7 three-part message and is coded to serialize the three parts into a single message. Because of the HL7 ASM coding, the three parts must follow a specific naming convention: MSHSegment, BodySegments, and ZSegments. (note these hard coded message part names)
  • Processing that relies on the HL7 three-part message requires an orchestration because multi-part messages can only be defined in an orchestration. Thus, if you are converting HL7 data into non-HL7 data, and this not using the HL7 ASM, you can call a map directly from a receive or send port.  (only body part is used in map, what about define an enveloped schema wrap everything so that we can map all parts)
  • The current release of the HL7 Accelerator does not contain predefined schema for versions higher than v2.5
  • If you do not configure BizTalk Server appropriately, the acknowledgements will sit unprocessed in the message box. Both the Original and Enhanced Mode acknowledgment types will return an Application Acknowledgement (App ACK). The difference is that the Original Mode will only return an App ACK while the Enhanced Mode will return both an App ACK and a System ACK. Regardless of your ACK settings, the value in the MSH.15 of the inbound message determines whether an ACK will be generated. If there is nothing in the MSH.15, then your settings in here will determine behavior.
  • What DASM do?- Disassemble message – Validate message on schema (can be turned off use BRE in turn) – Generate ACK (two messages? message and ACK published)
  • To configure a send port to receive your acknowledgments, use the HL7 Send Pipeline, and set a filter that looks for the original MSH.3 value in the MSH.5 position
  • I challenge the documentation view on must use orchestration to create HL7 message since pipeline component can perfectly do that
  • Customizing the MSH Segment,steps in creating a new schema type and triggering event,
    •  
      • Customize namespace
      • Change HL7 tables
        • Table 3 – event type
        • Table 76 – message type
      • Change MSH 9.1, MSH 9.2 and MSH9.3
      • Create custom schema with type following the naming convention, Body schema type = TargetNS + “#” + MSH9.1 + MSH9.2 + MSH12.1 (with dots removed) + MSH12.2 (or GLO if the value is blank) + MSH12.3 (or DEF if the value is blank)
  • The basic naming convention is:
    •  
      • Segments are identified with a three-letter code, then an underscore, then the name of the segment such as PID_PatientIdentificaitonSegment. To create a declared Z segment, your segment code should start with a Z.
      • Elements are identified with the segment’s three-letter code, then an underscore, then a number that identifies the element’s position within the segment, then an underscore and the name of the element. An example is PID_1_SetId for the first element in the PID segment and PID_2_PatientId for the second element in the PID Segment. The positional numbering always starts with 1.
      • Components are identified by their Data Type code from the HL7 specifications, then an underscore, then a number identifying the component’s position within the element, then an underscore and the component name. An example is CX_0_Id and CX_1_CheckDigit for the first and second components of the PID_2_PatientId element. The positional numbering always starts with 0
    • Questions,

  • What is application ACK and system ACK? Very confused on ACK used in HL7 accelerator