我有一条源消息来自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替换变量名。
答案 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().