You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Mirth Connect发送HL7 HTTP请求后,获取原始数据异常求助

Mirth Connect HTTP监听器接收HL7时getRawData()返回XML的问题分析

问题说明

  • 请求:Postman发送Content-Type: application/hl7-v2+er7的HTTP请求,请求体为原始HL7文本:
    MSH|^~\&|APP|FAC^12345|YOU|YOU|20130114081000||ORU^R01|20130114081000|T|2.5.1|
    
  • 通道配置:源连接器为HTTP监听器,预期由“destination 1”返回响应
  • 异常:目标连接器调用connectorMessage.getRawData()时,得到的是XML内容而非原始HL7文本

原因分析

1. HTTP监听器解析格式配置错误

Mirth的HTTP监听器默认可能将消息按XML解析,而非保留原始HL7格式。需检查:

  • 源连接器的Message Format是否设为HL7 v2.x(而非XML)
  • 是否开启了自动解析转换:若开启,Mirth会把原始HL7转为内部XML结构存储,getRawData()返回的就是转换后的XML

2. 通道转换规则干扰

如果源连接器的Transformer中配置了HL7转XML的规则,或全局设置了自动转换,connectorMessage存储的就是XML数据,调用getRawData()自然返回XML。

3. Content-Type未被正确识别

即使请求设置了application/hl7-v2+er7,Mirth可能未匹配该类型,导致默认按XML解析:

  • 检查HTTP监听器的Inbound Properties,确认是否将application/hl7-v2+er7添加为可识别的媒体类型
  • 若开启了“Accept Any Content Type”但未指定解析格式,也会导致解析异常

4. getRawData()的理解偏差

connectorMessage.getRawData()返回的是Mirth内部处理后的原始数据,而非HTTP请求的原始体。如果Mirth已将HL7转为XML,该方法就返回XML。要获取HTTP原始请求体,可使用:

var rawHttpBody = connectorMessage.getChannel().getConnectorMessageService().getRawData(connectorMessage.getId());

或在源Transformer中将原始请求体存入通道变量,再在目标连接器读取。

解决建议

  1. 配置HTTP源连接器:将Message Format设为HL7 v2.x,并设置Raw Data Handling为保留原始数据
  2. 检查源Transformer,移除不必要的HL7转XML规则
  3. 在HTTP监听器的Content Types中添加application/hl7-v2+er7,确保Mirth正确识别请求类型
  4. 使用上述替代代码或通道变量获取HTTP原始请求体

内容的提问来源于stack exchange,提问作者user1902346

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:35:13