【发布时间】:2010-12-28 18:22:19
【问题描述】:
我将 Mirth 与接收 HL7v2 消息的 LLP 侦听器一起使用。
客户希望我们收到 ACK 消息,因此我们选中了“发送 ACK”单选按钮。唯一的问题是,在默认的 ACK 中,它将 MIRTH 放在 MSH-3.1 字段中。我需要将其更改为另一个值来说明它的来源。
这可能吗?
【问题讨论】:
我将 Mirth 与接收 HL7v2 消息的 LLP 侦听器一起使用。
客户希望我们收到 ACK 消息,因此我们选中了“发送 ACK”单选按钮。唯一的问题是,在默认的 ACK 中,它将 MIRTH 放在 MSH-3.1 字段中。我需要将其更改为另一个值来说明它的来源。
这可能吗?
【问题讨论】:
Mirth 有一个自定义 ack 的功能。我认为它没有记录在案,但他们的支持人员指示我们这样做。
在后处理器中:
var ackString = ""; //build a javascript string for your custom ack
var ackResponse = ResponseFactory.getSuccessReponse (ackString);
responseMap.put("Custom ACK", ackResponse);
Mirth 解析后处理器代码,并发现响应映射代码。在源选项卡上,您现在可以选择“Respond from”,“Custom ACK”将作为一个选项出现在那里。
构建我的自定义 ack 的完整代码大约 20 行。
【讨论】:
我认为解决此问题的唯一方法是使用“Send Ack”下的“Respond From”设置,并将“Destination”下的第一个 Destination 设置为“Ack Sender”,然后构建并发送 Ack from那里。
如果您遇到这样的情况,您也可以使用此机制,即只有在您能够成功传递消息时才应该确认,在这种情况下,您可以将“确认发件人”放置在您的实际目的地之后发送消息。然后,您的“Ack Sender”目的地必须根据成功交付构建 Ack 或 Nack。您可以通过以下方式检查上一个目的地的返回状态来检查:
var returnState = responseMap.get('DestinationName').toString();
if (returnState.substr(0,8) == 'SUCCESS:')
// Successful Delivery or Processing
else
// Failed Delivery or processing
如果您需要更多帮助,请告诉我...
弗兰斯
【讨论】: