2

我尝试向 BizTalk 发送 HL7 消息,并收到错误代码 0xC0C01B4e(路由失败报告)和消息:

<名称不可用> 的路由失败报告

我已经在最后一天工作了,现在收到这条消息,完全难以置信。

我的场景:

1 Request/Response Recieve Port named HL7Test.In
1 Receive Location for the Receive Port called HL7Test.In.MLLP
   Type is MLLP
   Receive pipeline is BTAHL72XRecievePipeline
   Send pipeline is BTAHL72XSendPipeline
1 Send Port
   Type is file
   Send pipeline is Passthrough
   Filter is BTS.ReceivePortName == HL7Test.In
1 Party configuration called "REG", with the following BTAHL7 configuration:
   Acknowledgemnt type: OriginalMode
   Validate body segments: Enabled
   Validate custom datat types: Enabled
   Alow trailing delimiters: Enabled
   Schema namespace: http://microsoft.com/HealthCare/HL7/2X
I've deployed the BTAHL7V2XCommon, BTAHL7V21Common and ADT message schemas

我使用来自第 3 方应用程序的 MLLP 发送 HL7 消息 未返回 ack 文件未写入 1 生成不可恢复错误,如上所述。

我发送的消息是:

MSH|^~\&|REG|FAC|||201207271419||ADT^A04|504111|D|2.1|||AL|AL|
EVN|A04|201207271419||02 PID|1||M11||REGRIHSOT^xyz^2^3^5^6
NK1|1|Regrihsot^妻子^3^4^5^6|W|1^2^city ^BC^V1S 0A7^6^7^8|
PV1|1|E|KAMRIHED|||||MITD4||||||HO||||ED||BC|||||||||||||||||FAC||注册|||201207271417|
ZAD|邮件^1^^城市^BC^V1S 0A7|PHYS^1^^坎卢普斯^BC^V1S 0A7| ZTZ|PT|
中关村|^^|

这一切都在一小时前运行良好。

4

2 回答 2

3

看来我还需要一个消耗 ACK 的发送端口。我之前确实有这个,所以我使用过滤器添加了它:

BTS.MessageType == http://microsoft.com/HealthCare/HL7/2X#ACK_24_GLO_DEF

我不明白为什么我需要使用此消息。

于 2012-08-02T22:10:12.967 回答
1

我对 MLLP 适配器没有太多经验,但通常任何发布到 BizTalk 环境的消息都必须有订阅者。如果没有人在等待消息,则 BizTalk 将其视为错误并抛出异常路由失败。这是有道理的,因为如果 BizTalk 不将未经请求的消息视为异常,那么随着时间的推移,您的环境将因所有这些未经请求的消息而变得臃肿。

我本来希望您的 MLLP 请求/响应适配器应该接收到 ACK 并关闭循环。不知道为什么需要创建一个单独的发送端口来接收 ACK。在这个方向上可能值得研究。

于 2012-08-26T15:30:38.337 回答