首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个重复PID-3复制到PID-4

将多个重复PID-3复制到PID-4
EN

Stack Overflow用户
提问于 2021-06-25 12:21:58
回答 3查看 69关注 0票数 2

我在Mirth中有一个ORU接口,它分为两个目的地。在发送到我管理的一个目的地之前,我需要对Mirth中的PID进行一些更改,除了我似乎不能将所有的PID3复制到PID 4中,只是第一次重复。

笑声连接: 3.7.1

转换器代码:

代码语言:javascript
复制
var i = msg['PID']['PID.3'].length();
var assigner = msg['PID']['PID.3'][0]['PID.3.4']['PID.3.4.1'].toString();




// PID tweaking for xxx
while(i--)




{
    //Copy all of PID-3 to PID-4
    msg['PID']['PID.4']['PID.4.1']=msg['PID']['PID.3'][i]['PID.3.1'].toString()
    msg['PID']['PID.4']['PID.4.4']['PID.4.4.1']=msg['PID']['PID.3'][i]['PID.3.4'] 
['PID.3.4.1'].toString()
    msg['PID']['PID.4']['PID.4.5']=msg['PID']['PID.3'][i]['PID.3.5'].toString()
    msg['PID']['PID.4']['PID.4.6']=msg['PID']['PID.3'][i]['PID.3.6'].toString()



  



if (msg['PID']['PID.3'][i]['PID.3.5'].toString() == '016') {



        // Copy MRN into PID-2
       msg['PID']['PID.2']['PID.2.1']=msg['PID']['PID.3'][i]['PID.3.1'].toString();
}
//Delete PID-3 and replace with DUMMY ID
if (i!=0){
    delete msg['PID']['PID.3'][i];
} else{
    msg['PID']['PID.3'][i]['PID.3.1']='DUMMY ID';
    delete msg['PID']['PID.3'][i]['PID.3.2'];
    delete msg['PID']['PID.3'][i]['PID.3.3'];
    delete msg['PID']['PID.3'][i]['PID.3.4'];
    delete msg['PID']['PID.3'][i]['PID.3.5'];
    delete msg['PID']['PID.3'][i]['PID.3.6'];        
    }
}

原始PID:

代码语言:javascript
复制
PID|||485286^^^MRN&&GUID^016^MRN~2858365^^^AUID&&GUID^004^AUID||

转换后的PID:

代码语言:javascript
复制
PID||485286|DUMMY ID|485286^^^MRN^016^MRN|

所需的转换PID:

代码语言:javascript
复制
PID||485286|DUMMY ID|485286^^^MRN^016^MRN~2858365^^^AUID&&GUID^004^AUID|
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-28 08:05:53

谢谢Gavin,我最初确实这样做了,但得到了错误: TypeError:无法将未定义的属性"PID.4.1“设置为"2858365”

经过进一步的研究,我意识到我需要在PID-4中创建重复的代码。因此,除了Gavin提到的内容之外,我还需要添加以下内容:

代码语言:javascript
复制
//Ensure a PID.4 exists for each PID.3 repetition
var i = msg['PID']['PID.3'].length()-1;
while(i--) {
msg['PID']['PID.4']=msg['PID']['PID.4']+<PID.4/>;
}
var i = msg['PID']['PID.3'].length();
票数 0
EN

Stack Overflow用户

发布于 2021-06-26 05:27:42

你需要索引你的左手边。例如,而不是

代码语言:javascript
复制
 msg['PID']['PID.4']['PID.4.5']=msg['PID']['PID.3'][i]['PID.3.5'].toString()

你需要

代码语言:javascript
复制
  msg['PID']['PID.4'][i]['PID.4.5']=msg['PID']['PID.3'][i]['PID.3.5'].toString()
票数 1
EN

Stack Overflow用户

发布于 2021-07-02 08:50:26

https://github.com/nextgenhealthcare/connect-examples上有一个官方的代码模板存储库

有一个很有用的代码模板,叫做renameField found here

使用该代码模板,您可以将所有代码减少到

代码语言:javascript
复制
// Copy all repetitions of PID-3 to PID-4
msg['PID']['PID.4'] = renameField(msg['PID']['PID.3'], 'PID.4');
// Iterate over PID-3 repetitions
for each (var pid3 in msg['PID']['PID.3']) {
    if (pid3['PID.3.5'].toString() == '016') {
        // Copy MRN into PID-2
        msg['PID']['PID.2']['PID.2.1'] = pid3['PID.3.1'].toString();
    }
}
// Replace all PID-3 with single repetition containing only DUMMY ID using xml literal
msg['PID']['PID.3'] = <PID.3><PID.3.1>DUMMY ID</PID.3.1></PID.3>;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68125405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档