【问题标题】:Why my mirth code is not capturing code from each DG1 segment?为什么我的 mirth 代码没有从每个 DG1 段捕获代码?
【发布时间】:2018-10-14 20:35:43
【问题描述】:

我很高兴地编写了这段代码来从每个 DG1 段中捕获代码,但它捕获了“未定义”并插入到 DB 中

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);

谢谢

【问题讨论】:

  • 你的代码有很多不匹配的括号 - 真的是这样还​​是在复制和粘贴时丢失了什么?
  • 代替 var vSET_ID =msg['DG1']['DG1.1'].toString();使用 var vSET_ID = seg['DG1.1'].toString();

标签: javascript mirth hl7-v2 mirth-connect


【解决方案1】:

您的代码中有许多语法和逻辑错误。如果您打算在数据库编写器中使用它们,则必须将它们保存到 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 按顺序显示。

(本来是要发截图的,但是我的口碑不够高。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2019-07-26
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    相关资源
    最近更新 更多