如何在Mirth目标中将HL7 v2.x转换为XML

时间:2019-06-21 18:56:46

标签: mirth

我有一条源消息来自SQL数据库。格式如下:

<result>
    <rawmessage>A|Full Raw|HL7|Message|is here </rawmessage>
    <id>The-Messages-GUID-FromMSSQL</id>
</result>

我想从查询中获取信息,并将其分为多个表,每一行都绑定到与消息连接的GUID。我能够获取原始消息并将HL7字符串转换为XML,但无法获取数据。

我目前的理解是使通道中的源和目标类型为XML。我可以使用msg['id']访问该ID,并将其保存到频道地图中。我还可以将HL7字符串转换为XML并将其保存为变量(请参见下文)。例如,当我尝试使用msg2['OBR']['OBR.2']['OBR.2.1'].toString()访问段或字段时,我在错误标签中收到了消息Cannot read property "OBR" from undefined,在控制台中的信息中则得到了Undefined。如果删除['HL7Message'],我将得到Cannot read property "OBR.2" from undefined的错误信息和<?xml version="1.0" encoding="UTF-8"?><HL7Message><MSH>的信息。如果我将通道映射变量定义为msg1['OBR.2.1'],它将返回为undefined。

这是我的电流互感器步骤:

channelMap.put('Raw Message', msg['rawmessage'].toString());
channelMap.put('Raw GUID', msg['id'].toString());
channelMap.put('XML Message', SerializerFactory.getSerializer('HL7V2').toXML($('Raw Message')));

var msg2 = $('XML Message')['HL7Message'];
logger.info(msg2);

channelMap.put('OBR 2', msg2['OBR.2.1']);

我希望通过使用类似于msg['OBR']['OBR.2']['OBR.2.1'].toString()的表示法(“正常” Mirth表示法)来获得字段的值,方法是用msg替换变量名。

1 个答案:

答案 0 :(得分:0)

区别是xml字符串与xml对象。序列化器返回一个字符串。这会将您的字符串转换为对象。

ValueError: The truth value of a Series is ambiguous. Use a.empty, 
a.bool(), a.item(), a.any() or a.all().