首页 > 解决方案 > 当通过 TCP 连接时,Mirth Connect 确实回复/回复

问题描述

我需要Mirth/Rosetta (NextGen)通过连接进行TCP连接,以便发送HL7消息接收回响应。由于这是我第一次与 mirth 互动,所以我从测试开始,以了解它是否有效。

问题:当我尝试向 mirth 发送随机文本时,甚至MLLP HL7 message,它根本没有响应。我正在使用非常基本的TCP连接代码(如下所示)来测试连接。我期待愉快地发送带有错误的 ACK,或者至少是一些错误。但是在stream.Read执行 line 时它​​保持空白。

TcpClient client = new TcpClient("x.x.x.x", 1234);
var message = "HELLO MIRTH";
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: {0}", message);
data = new Byte[256];
while (true)
{
    bytes = stream.Read(data, 0, data.Length);
    if (bytes > 0)
        break;
}
var responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine(DateTime.Now.ToString());
Console.WriteLine("Received: {0}", responseData);

令人惊讶的是,当我从某些HAPI TestPanel (通过 TCP 连接/发送消息的测试工具)发送相同的消息时,它工作正常并且我收到响应(如下面的屏幕截图所示)。这让我觉得好像有什么我错过了。即使上面显示的测试代码与我自己的 TCP 侦听器连接起来效果很好。但是当它试图与 Mirth 连接时,它没有得到任何响应。

通过测试工具发送的消息

问题:为了与 Mirth 的 TCP 服务器(或任何 HL7 标准 TCP 服务器)通信,我需要在我的 TCP 发送器中添加什么特别的东西吗?如果没有,请在这方面指导我。我需要连接并获得回复。

我试过的消息:

标签: c#tcphl7mirthmllp

解决方案


在收到消息的 Mirth Connect 服务器上试试这个。使用所需的输出/响应格式在目标连接器上定义一个转换器步骤。如果所需的响应是原始数据,那么只需一个 Javascript 转换器,然后调用内置函数 connectorMessage.getRawData()。最后,在 TCP 侦听器上,在响应下的项目列表中选择转换器名称(在目标连接器处创建)(就在源队列下方)。


推荐阅读