我在Mirth中有一个ORU接口,它分为两个目的地。在发送到我管理的一个目的地之前,我需要对Mirth中的PID进行一些更改,除了我似乎不能将所有的PID3复制到PID 4中,只是第一次重复。
笑声连接: 3.7.1
转换器代码:
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:
PID|||485286^^^MRN&&GUID^016^MRN~2858365^^^AUID&&GUID^004^AUID||转换后的PID:
PID||485286|DUMMY ID|485286^^^MRN^016^MRN|所需的转换PID:
PID||485286|DUMMY ID|485286^^^MRN^016^MRN~2858365^^^AUID&&GUID^004^AUID|发布于 2021-06-28 08:05:53
谢谢Gavin,我最初确实这样做了,但得到了错误: TypeError:无法将未定义的属性"PID.4.1“设置为"2858365”
经过进一步的研究,我意识到我需要在PID-4中创建重复的代码。因此,除了Gavin提到的内容之外,我还需要添加以下内容:
//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();发布于 2021-06-26 05:27:42
你需要索引你的左手边。例如,而不是
msg['PID']['PID.4']['PID.4.5']=msg['PID']['PID.3'][i]['PID.3.5'].toString()你需要
msg['PID']['PID.4'][i]['PID.4.5']=msg['PID']['PID.3'][i]['PID.3.5'].toString()发布于 2021-07-02 08:50:26
在https://github.com/nextgenhealthcare/connect-examples上有一个官方的代码模板存储库
有一个很有用的代码模板,叫做renameField found here。
使用该代码模板,您可以将所有代码减少到
// 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>;https://stackoverflow.com/questions/68125405
复制相似问题