如何使用POST将消息hl7发送到Mirth HTTP连接器

时间:2014-01-03 15:51:12

标签: asp.net-web-api hl7

我有一个mirth实例(版本3.0.1)使用POST方法发送到web api restfull服务。

[POST("MessagesHl7/OML_O21")]   public HttpResponseMessage
 PostOmlo21([FromBody] sting receivedmessage)   {..}

问题是发送给服务的消息hl7  在出站消息中切出第一个字符。例如,在消息中:

MSH | ^〜\& | CPSI ^ 1.3.6.1.4.1.27248.1.17 ^ ISO | CGH | ...

在receivedmessage变量中,仅接收文本MSH | ^〜\。 我该怎么办才能不删除邮件?

在http频道中,配置为:POST,不是查询参数, 在

标题内容类型application/x-www-form-urlencoded

内容类型值application/xml

,发送的值为=${message.encodedData}

2 个答案:

答案 0 :(得分:2)

将您的操作方法更改为不使用绑定,只需将请求主体读为字符串。

[POST("MessagesHl7/OML_O21")]
public Task<HttpResponseMessage> PostOmlo21()
{
    string receivedMessage = await Request.Content.ReadAsStringAsync();
}

答案 1 :(得分:1)

我建议使用Base64编码用于HL7管道消息 消息中有许多可以解释的特殊字符 在解析过程中以错误的方式。特别是在解析xml时。

当然,您必须在服务器端解码HL7消息。 但我觉得Mirth为你提供了所有的功能。

我不知道在Java适当的类和框架中使用哪个类在C#/ ASP中 编码解码Base64存在。我相信C#和ASP也是如此。