【问题标题】:Mirth processing multiple segments欢乐处理多个片段
【发布时间】:2012-03-30 11:51:06
【问题描述】:

在这里,我正在为 Next of Kin $('Nok') (see mapping table) 做一些映射。

然后处理这个我有下面的Javascript。我尝试这样做的原因是,有时我们会通过多个近亲细分市场。如果是这种情况,mirth 会抛出错误为“DETAILS: TypeError: Assignment to lists with more item is not supported”

var i = 0;
msg['NK1'][i]['NK1.3']['NK1.3.1'] = $('NoK')

for each ( nk1 in msg.NK1) {
   nk1 = $('NoK').toString();
   i++;
}

但不幸的是,我的脚本不起作用。 基本上,它不会抛出任何错误,但它并没有做它应该为多个段做的事情。它确实适用于单个细分市场

这是我的出站消息:

NK1|1|BENNY^BEN^^^MR^^L|22627^^RELTN|漂亮 绿色^伦敦^""^""^GH15 3KW^^^Q36|||^^RELT|20030321|||||||9 NK1|2|^^^^^^L|SP^^RELTN|41 风笛绿色^伦敦^""^""^NW9 8UH^^^Q36|||^^RELT|20010923|||||||9

【问题讨论】:

  • 看起来您正在尝试做两件事中的一件,但我不确定是哪一件。 1. 从 NK1 字段的第一个实例的 NK1.3.1 组件中提取值,对其进行映射,并将该值写入所有 NK1 字段的 NK1.3.1。 2. 从每个单独的 NK1 字段的 NK1.3.1 组件中提取和映射值

标签: mirth


【解决方案1】:

我没有关注你的所有代码,但这是一个开始。

  1. 要遍历所有段,请尝试 tis 格式:

    for each (seg in msg.children()) {
        if (seg.name().toString() == "NK1") {
            foo = bar;
        }
    }
    
  2. 您的循环遍历段从 0 开始。不过,多个段从 1 开始编号。

如果您查看输入消息,它会是这样的:

NK1|1| ...
NK1|2| ...
NK1|3| ...

即使 javascript 数组从零开始。是的,这很混乱。

我不认识:

$('NoK')

...所以我不确定你在做什么。但我可能只是度过了一个缓慢的早晨。

【讨论】:

  • 除了name()还有什么seg函数,请给我们一些关于它的文档链接,谢谢
【解决方案2】:

我发现了几个问题。

  1. 您在第一个转换器步骤中分配给$('Nok') 的目的是 仅第一个 HL7 段;它不会影响任何后续步骤。
  2. 您的 Javascript 函数正在混合/匹配两种不同的方法 循环——一方面试图为每个人做一个,另一方面 使用i 作为循环控制变量,它被分配和 递增但从未真正使用过。

如果您只修复 #2,我希望您最终将第一段重复 n 次。

我建议将所有这些工作转移到一个 Javascript 转换器步骤中。

您可以首先查看由您的 RegEx 映射步骤生成的 javascript,并将其转换为 JS 转换器中的一个函数 - 一个将 i 作为变量的函数。然后,您可以将循环修复为调用您的函数的简单 for 循环。大致如下:

for(var i = 0; i< msg['NK1'].length; i++) {
    msg['NK1'][i]['NK1.3']['NK1.3.1'] 
        = YourTransformerFunction(msg['NK1'][i]['NK1.3']['NK1.3.1'].toString());
}

您可以通过将转换器导出为 XML 并打开该文件来查看映射器函数生成的 JavaScript。您需要对 HTML 编码值进行一些替换,但核心将在那里。

【讨论】:

    【解决方案3】:
    for(var i = 0; i< msg['NK1'].length(); i++) {
        msg['NK1'][i]['NK1.3']['NK1.3.1'] = YourTransformerFunction(msg['NK1'][i]['NK1.3']['NK1.3.1'].toString());
    }
    

    () 工作所需的长度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多