1

我们正在尝试合并两个 Mirth 服务器。一台服务器(我们称之为服务器 1)保存所有记录,另一台服务器(服务器 2)从第一个服务器获取 HL7 消息并将消息写入数据库。

到目前为止一切都很完美。但是服务器 1 在发送每个 HL7 消息后,等待 ACK 认为此事务已完成并从列表中发送另一条消息。

来自服务器 2(写入数据库)的成功状态包含 MySQL 响应,例如“成功:数据库写入成功。更新了 1 行。 ”。这不是服务器 1 所期望的。

因此,Server 1 认为此 ACK 无效,产生错误“ Message Read Error - Will Retry ”并不断尝试再次发送相同的消息,导致 Server 2 在数据库中重复消息。

我们正在使用 Mirth Connect HTTP 侦听器,我们找不到任何解决方案将 ACK msg 发送到我们的第一台服务器,即同屏 HTTP 侦听器。

有没有办法做到这一点?有什么建议吗?

真的需要帮助。

4

1 回答 1

1

问题是您没有正确设置来自服务器 2 的响应,因此它只返回目标的响应。您可以通过目标转换器上的代码创建 ACK:

var ackMessage = ACKGenerator.generateAckResponse(connectorMessage.getRawData(), "AA", "Message Successfully Received");
responseMap.put("ackresp", ResponseFactory.getSentResponse(ackMessage));

在您的源连接器上选择“ackresp”作为响应。您的服务器 1 将收到该 ACK 而不是数据库写入的日志。

于 2017-06-23T04:53:21.923 回答