none
Custom values in HL7 Tables for BTAHL7 RRS feed

  • Question

  • We have a requirement to create HL7 messages that use custom values in HL7 tables.

    For example, creating a custom Universal ID Type so that an MSH.5 would look like this

    <MSH.5_ReceivingApplication>

    <HD.0_NamespaceId></HD.0_NamespaceId>

    <HD.1_UniversalId>Unique Identifier</HD.1_UniversalId>

    <HD.2_UniversalIdType>MyCustomUniversalIDType</HD.2_UniversalIdType>

    </MSH.5_ReceivingApplication>

    In reviewing tablevalues_22.xsd the table for Universal ID (301) is not present.

    I added an entry and the 1 value I need to see if it was cumulative, but it was not.

    Is it possible to add custom values? or do I need to rely on having a Part and also selecting "Validate Body Segements" de-selected in the Pipeline?


    Tuesday, August 20, 2013 5:31 PM

Answers

  • OK, it appears to be a "My Bad"

    In the Multi-Part Message creation we use an XMLDocument to build the MSH segment.

    That XML document specified MSH_25_GLO_DEF.xsd for validation.

    Unlike the ADT_ or ORU_ schemas the MSH_25 does *NOT* reference tablevalues_??.xsd, it keeps all it's type definitions and table values in the MSH schema itself.

    Once I add the values there the MSH validates properly.   However, next I will try using a custom schema that appropriately references the schema types and tablevalues shared by the rest of the schemas.

    MSHHeader.LoadXml("<ns0:MSH_25_GLO_DEF xmlns:ns0=\"http://microsoft.com/HealthCare/HL7/2X\"> [..]

    • Marked as answer by Paul Saker Wednesday, August 21, 2013 2:02 PM
    Wednesday, August 21, 2013 2:01 PM

All replies

  • Let me add some context.

    We are creating the outbound HL7 as a multi-part message type in an Orchestration.

    the MSH segment (though this UniversalDType can appear in any segment) is being created as an XMLDocument and assembled along with the Body and the Z Segments.

    When we use any standard UniversalIdType ( DNS, HL7, UUID etc) the messages flow fine.

    When we use any non-standard UniversalIdType we get 

    There was a failure executing the send pipeline: "BTAHL72XPipelines.BTAHL72XSendPipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Assembler" Send Port: "OutboundMsgSend" URI: "127.0.0.1:19000" Reason: Serialization errors: 
    Error # 1
    Segment Id: MSH
    Sequence Number: 1
    Field Number: 5
    Error Number: 103
    Error Description: Table value not found
    Encoding System: HL7nnnn

     

    Tuesday, August 20, 2013 5:42 PM
  • OK, it appears to be a "My Bad"

    In the Multi-Part Message creation we use an XMLDocument to build the MSH segment.

    That XML document specified MSH_25_GLO_DEF.xsd for validation.

    Unlike the ADT_ or ORU_ schemas the MSH_25 does *NOT* reference tablevalues_??.xsd, it keeps all it's type definitions and table values in the MSH schema itself.

    Once I add the values there the MSH validates properly.   However, next I will try using a custom schema that appropriately references the schema types and tablevalues shared by the rest of the schemas.

    MSHHeader.LoadXml("<ns0:MSH_25_GLO_DEF xmlns:ns0=\"http://microsoft.com/HealthCare/HL7/2X\"> [..]

    • Marked as answer by Paul Saker Wednesday, August 21, 2013 2:02 PM
    Wednesday, August 21, 2013 2:01 PM
  • Hi,

    We are happy that your issue has been resolved. And thanks for sharing solution with us.


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED> Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue.It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    Monday, August 26, 2013 2:07 AM