为什么我的欢乐代码没有从每个DG1段中捕获代码?

时间:2018-10-14 20:35:43

标签: javascript mirth hl7-v2 mirth-connect

我已经很高兴地编写了此代码,以捕获每个DG1段中的代码,但它捕获了“未定义”并插入到数据库中

for each (seg in msg.children()){ 
    if(seg.name().toString()=="DG1"){
      var vSET_ID =msg['DG1']['DG1.1'].toString();
    if(vSET_ID==1){
      var vPriCode = msg['DG1']['DG1.3']['DG1.3.1'].toString(),50);
    if(vSET_ID==2){
      var vSecCode1 = msg['DG1']['DG1.3']['DG1.3.1'].toString(),50);

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码中有许多语法和逻辑错误。如果打算在数据库编写器中使用它们,则必须将它们保存到Map变量中(在这里有意义的是channelMap或connectorMap。)如果要从DG1段的第一次和第二次捕获中捕获DG1.3.1, ,您可能要避免在转换器中使用Javascript步骤,并尝试使用两个Mapper步骤替换您的代码,其中:

  1. 第一步
    • 变量:= vPriCode
    • 映射:= msg ['DG1'] [0] ['DG1.3'] ['DG1.3.1']。toString()
  2. 第二步
    • 变量:= vSecCode
    • 映射:= msg ['DG1'] [1] ['DG1.3'] ['DG1.3.1']。toString()

这些变量现在应该在数据库编写器的“目标映射”拖放部分中可用。这确实假设SetID按顺序出现。

(我打算发布屏幕截图,但是我的声誉不够高。)