While enhancing a custom ORU^R01 schema, there was a Z segment at the end (that I did not want to place in the ZSegments message part.

I went happily creating the schema, deployed it and ran it, and received the following errors:

Event Type:    Error
Event Source:    BizTalk Accelerator for HL7
Event Category:    None
Event ID:    4097
Description:
Fatal error encountered in 2XDasm. Exception information is Object reference not set to an instance of an object.

followed by

Event Type:    Error
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5719
Description:
There was a failure executing the receive pipeline: “BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ Source: “BTAHL7 2.X Disassembler” Receive Port: “One Way Receive Port” URI: “D:DataLabMedicityInput*” Reason: Object reference not set to an instance of an object.

and

Event Type:    Error
Event Source:    BizTalk Server 2009
Event Category:    (1)
Event ID:    5753
Description:
A message received by adapter “FILE” on receive location “Medicity Pickup” with URI “D:DataLabMedicityInput*” is suspended.
Error details: There was a failure executing the receive pipeline: “BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″ Source: “BTAHL7 2.X Disassembler” Receive Port: “One Way Receive Port” URI: “D:DataLabMedicityInput*” Reason: Object reference not set to an instance of an object. 
MessageId:  {E182624C-BD9A-422A-B13B-CD7E108B5B30}
InstanceID: {72120031-57DB-418B-AEE3-A4E3A039017F}

This is the schema that I had created:

ZSegment_Bad

If I look at the documentation on Z Segment creation I see this:

Type the name of the field, starting the name with the first three digits of the segment name, followed by a period and the number of the field, followed by an underscore and then a short description of the field. The description should be one or a series of words, without spaces, with the first letter of each word capitalized. Press Enter.

To create a field with components, create the field as a record, and then create a child element of that record for each component. To create a field with subcomponents, create the field and components as records, and the subcomponents as child elements. Note that subcomponents cannot be composite data types. For example, for the segment named ZPP_PatientPreferencesSegment, you might create a ZPP.1_Dietary field and a PD.1 Allergies component with a PD.1.1_FoodGroupAllergy subcomponent. The PD.1.1_FoodGroupAllergy subcomponent would have to be a simple data type.

So this is a special behavior for the Z Segments, where you MUST use the period instead of the underscore if the first character is a number, notice the difference between two segments:

ZSegment_Good

 

I know that there are many different reasons why you would be getting this error, but I wanted to document one way you can try to get the BTAHL7 DASM:

Error happened in body during parsing
Error # 1
Segment Id: GT1_Guarantor
Sequence Number: 1
Field Number: 51
Error Number: 102
Error Description: Data type error
Encoding System: HL7nnnn

 

The data looks like this:

|^NOT EMPLOYED|

The first sub element needs to be set to a max of 0 instead of blank (default 1)

As I discover other fixes I will update this entry…

© 2012 HL7 and BizTalk Blog Suffusion theme by Sayontan Sinha