我有一条来自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()访问一个段或字段时,在我的errors选项卡中得到消息Cannot read property "OBR" from undefined,在控制台的info中得到Undefined。如果我删除['HL7Message'],我在错误中得到Cannot read property "OBR.2" from undefined,在info中得到<?xml version="1.0" encoding="UTF-8"?><HL7Message><MSH>。如果我将通道映射变量定义为msg1['OBR.2.1'],它将返回为未定义。
下面是我的电流互感器步骤:
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。
发布于 2019-06-25 01:03:23
不同之处在于xml字符串和xml对象。序列化程序返回一个字符串。这将把你的字符串转换成一个对象。
var msg2 = new XML($('XML Message'));https://stackoverflow.com/questions/56709039
复制相似问题