0

我正在构建一个 BizTalk 2010 解决方案,我们通过 MLLP 请求/响应接收端口接收 HL7v2 QRY 消息。编排直接绑定到接收端口,使用自定义 ACK 进行 Web 服务调用和响应。

编排正在执行并进行 Web 服务调用并正确构建 ACK。当发送形状将自定义 ACK 返回到接收端口响应时,我看到一条挂起(不可恢复)的消息,其中显示以下错误:

执行响应(发送)管道失败:“BTAHL72XPipelines.BTAHL72XSendPipeline,BTAHL72XPipelines,版本=1.3.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35”来源:“BTAHL7 2.X 汇编程序”接收端口:“RP.MyPort” URI:“0.0.0.0:1235” 原因:消息不包含名称为 MSHSegment 的部分

如果我查看服务详细信息对话框中的消息选项卡,我会看到两条消息,均类型为 ACK_24_GLO_DEF。

第一条消息包含一个称为“部分”的部分:

<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP:Body><SOAP:Fault><faultcode>Microsoft BizTalk Server Negative Acknowledgment </faultcode><faultstring>An error occurred while processing the message, refer to the details section for more information </faultstring><faultactor>0.0.0.0:1235</faultactor><detail><ns0:NACK Type="NACK" xmlns:ns0="http://schema.microsoft.com/BizTalk/2003/NACKMessage.xsd"><NAckID>{4C09DEDB-4317-4BD7-AB98-399D5C612626}</NAckID><ErrorCode>0xc0c016aa</ErrorCode><ErrorCategory>0</ErrorCategory><ErrorDescription>There was a failure executing the response(send) pipeline: "BTAHL72XPipelines.BTAHL72XSendPipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Assembler" Receive Port: "RP.Meditech.EMPI.GetDemo" URI: "0.0.0.0:1235" Reason: Serialization errors: 
Error # 1
Segment Id: QRD_QueryDefinition
Sequence Number: 1
Field Number: 10
Error Number: 207
Error Description: Application internal error
Encoding System: HL7nnnn
Alternate Error Number: Z100
Alternate Error Description: Trailing delimiter found
Alternate Encoding System: HL7-BTA


Error # 2
Segment Id: QRF_QueryFilter
Sequence Number: 1
Field Number: 6
Error Number: 207
Error Description: Application internal error
Encoding System: HL7nnnn
Alternate Error Number: Z100
Alternate Error Description: Trailing delimiter found
Alternate Encoding System: HL7-BTA

 </ErrorDescription></ns0:NACK></detail></SOAP:Fault></SOAP:Body></SOAP:Envelope>

第二条消息有 3 个部分(MSHSegment、BodySegments 和 ZSegments):

<ns0:MSH_25_GLO_DEF xmlns:ns0="http://microsoft.com/HealthCare/HL7/2X"><MSH><MSH.2_EncodingCharacters>^~\&amp;</MSH.2_EncodingCharacters><MSH.3_SendingApplication><HD.0_NamespaceId>ADM</HD.0_NamespaceId></MSH.3_SendingApplication><MSH.4_SendingFacility><HD.0_NamespaceId>IHSLH</HD.0_NamespaceId></MSH.4_SendingFacility><MSH.5_ReceivingApplication><HD.0_NamespaceId></HD.0_NamespaceId></MSH.5_ReceivingApplication><MSH.6_ReceivingFacility><HD.0_NamespaceId></HD.0_NamespaceId></MSH.6_ReceivingFacility><MSH.7_DateTimeOfMessage><TS.1>20130521000513</TS.1></MSH.7_DateTimeOfMessage><MSH.8_Security></MSH.8_Security><MSH.9_MessageType><CM_MSG.0_MessageType>QRY</CM_MSG.0_MessageType></MSH.9_MessageType><MSH.10_MessageControlId>VJHREGC7.20135210513272</MSH.10_MessageControlId><MSH.11_ProcessingId><PT.0_ProcessingId>P</PT.0_ProcessingId></MSH.11_ProcessingId><MSH.12_VersionId><VID_0_VersionId>2.1</VID_0_VersionId></MSH.12_VersionId><MSH.13_SequenceNumber></MSH.13_SequenceNumber></MSH></ns0:MSH_25_GLO_DEF>

<ns0:ACK_24_GLO_DEF xmlns:ns1="http://mycompay.com/myapp/HL7/2X/2.1/interface/v1/Segments" xmlns:ns2="http://mycompay.com/myapp/HL7/2X/2.1/interface/v1/Tables" xmlns:ns3="http://mycompay.com/myapp/HL7/2X/2.1/interface/v1/DataTypes" xmlns:ns0="http://mycompay.com/myapp/HL7/2X/2.1/interface/v1"><MSA_MessageAcknowledgment><MSA.1_AcknowledgmentCode>AE</MSA.1_AcknowledgmentCode><MSA.2_MessageControlId>VJHREGC7.20135210513272</MSA.2_MessageControlId><MSA.3_TextMessage>Error calling EMPI web service</MSA.3_TextMessage></MSA_MessageAcknowledgment><QRD_QueryDefinition><QRD_1_QueryDateTime><TS_0_TimeOfAnEvent>20130521000513</TS_0_TimeOfAnEvent></QRD_1_QueryDateTime><QRD_2_QueryFormatCode>R</QRD_2_QueryFormatCode><QRD_3_QueryPriority>I</QRD_3_QueryPriority><QRD_4_QueryId>KORL3</QRD_4_QueryId><QRD_5_DeferredResponseType></QRD_5_DeferredResponseType><QRD_6_DeferredResponseDateTime><TS_0_TimeOfAnEvent></TS_0_TimeOfAnEvent></QRD_6_DeferredResponseDateTime><QRD_7_QuantityLimitedRequest><Quantity>99</Quantity><Code>RD</Code></QRD_7_QuantityLimitedRequest><QRD_8_WhoSubjectFilter><HCISInternalID>A1-.VJ10341</HCISInternalID><PHN>9089478173</PHN></QRD_8_WhoSubjectFilter><QRD_9_WhatSubjectFilter>MPI</QRD_9_WhatSubjectFilter><QRD_10_WhatDepartmentDataCode></QRD_10_WhatDepartmentDataCode></QRD_QueryDefinition><QRF_QueryFilter><QRF_1_WhereSubjectFilter>UPI</QRF_1_WhereSubjectFilter><QRF_2_WhenDataStartDateTime><TS_0_TimeOfAnEvent></TS_0_TimeOfAnEvent></QRF_2_WhenDataStartDateTime><QRF_3_WhenDataEndDateTime><TS_0_TimeOfAnEvent></TS_0_TimeOfAnEvent></QRF_3_WhenDataEndDateTime><QRF_4_WhatUserQualifier></QRF_4_WhatUserQualifier><QRF_5_OtherQrySubjectFilter><PHN>9089478173</PHN><LastName>Herd</LastName><FirstName>David</FirstName><MiddleName></MiddleName><Gender>M</Gender><DateOfBirth>19400419</DateOfBirth><AddressLine1>6A 1059 Shuswap Ave</AddressLine1><AddressLine2></AddressLine2><City>Sicamous</City><Province>BC</Province><Postal>V0E 2V1</Postal><HomePhone>250-804-8287</HomePhone><EMPI_OtherQrySubjectFilter_13></EMPI_OtherQrySubjectFilter_13><EMPI_OtherQrySubjectFilter_14></EMPI_OtherQrySubjectFilter_14><EMPI_OtherQrySubjectFilter_15>S</EMPI_OtherQrySubjectFilter_15></QRF_5_OtherQrySubjectFilter><QRF_6></QRF_6></QRF_QueryFilter></ns0:ACK_24_GLO_DEF>

<string />

因为我可以看到 ACK 中的 3 个部分,所以我怀疑该错误实际上是次要错误,它与第一条消息中的“发现尾随分隔符”有关。我在想 MLLP 管道正在尝试使用第一条消息......如果是这种情况,我该如何允许尾随分隔符?通常我会在一个聚会中设置它并将其与发送端口相关联,但我在这里不处理发送端口。我的接收端口的一方确实允许尾随分隔符。

BTAHL7 配置浏览器验证选项卡 BTAHL7 配置浏览器确认选项卡 服务详情错误 服务详情消息

4

1 回答 1

0

好的,所以我终于发现我的请求/响应接收端口的发送管道有一个属性,我需要将 TrailingDelimiterAllowed 属性设置为 true!

于 2013-12-03T18:36:26.580 回答