javascript split功能在欢笑中有特殊意义吗?

时间:2012-07-03 19:21:47

标签: mirth

我正在维持传统的欢乐系统。我们得到一些带有重复ZP1.36段的传入HL7消息。据我所知,欢乐通过分裂函数将这些重复段分成重复段的数组。

var repeat36 = msg['ZP1']['ZP1.36'].toString().split("</ZP1.36>"); //I think returns an array of ZP1.36 segments

但在原始数据中,我没有看到字符串ZP1.36 ......

我习惯在VB / Java / C#中使用split函数,将字符串分成特定字符周围的标记,如下所示:

var myTokens = "hello^world".toString().Split("^"); //returns a 2 item array {"hello", "world"}

Mirth的分裂功能似乎没有这种方式。它似乎是基于HL7消息的假定结构来解析消息。

这是怎么回事?我错过了什么吗?分裂功能在欢笑中的规则是什么?

交叉发布在欢乐社区http://www.mirthcorp.com/community/forums/showthread.php?p=26203#post26203

2 个答案:

答案 0 :(得分:4)

我知道您已经找到并接受了对您的问题的充分答复(转自Mirth论坛),但我认为在单独的答案中提供更多信息可能会有所帮助。

Mirth的核心是利用一些预先存在的技术来处理HL7数据。

  1. HAPI(发音为“Happy”):这是一个Java代码库,用于将管道分隔的V2.x HL7重新解释为XML。 V2.XML format本身也是官方HL7规范(不要与V3 HL7混淆,后者本身就是XML)。产品名称“Mirth”显然被选为“happy。”的同义词。
  2. E4X:这是使用XML的JavaScript标准。它作为一种标准的网络技术未能获得显着的吸引力,但由于其在Rhino JavaScript 引擎中的可用性,它被Mirth利用。
  3. 来自Dans在Mirth论坛上为您提供的示例:

    此代码段采用HL7 v.2x的标准XML格式:

    <ZP1.36>
        <ZP1.36.1>Hello</ZP1.36.1>
        <ZP1.36.2>World</ZP1.36.2>
    <ZP1.36>
    

    此JavaScript代码使用E4X表示法来解析和访问已重新解释为E4X XML和XMLList数据类型的HL7数据:

    var zp1361 = msg['ZP1']['ZP1.36']['ZP1.36.1'].toString();
    var zp1362 = msg['ZP1']['ZP1.36']['ZP1.36.2'].toString();
    
    • msg是保存HL7数据的E4X XML对象
    • msg['ZP1']生成一个E4X XMLList对象,其中包含ZP1段列表。

答案 1 :(得分:1)

Dans,一位Mirth员工on the Mirth message boards解释说,拆分功能适用于传入消息的xml转换。

所以基本上,你正在使用xml,而ZP1.36已经拆分了:

<ZP1.36>
   <ZP1.36.1>Hello</ZP1.36.1>
   <ZP1.36.2>World</ZP1.36.2>
<ZP1.36>

如果你想获得各种子元素,你可以这样做:

var zp1361 = msg['ZP1']['ZP1.36']['ZP1.36.1'].toString();
var zp1362 = msg['ZP1']['ZP1.36']['ZP1.36.2'].toString();