对Mirth来说不是新的引擎..。对于目标HL7v2转换来说,做一个基本的源有点困难。
我已经将我的通道设置为从文件中读取作为源,并将目标吐出到文件中。我的输出模板是${message.encodedData}。通道似乎正确地读取了源,并生成了输出。但我在挣扎的是这有多麻烦。
我正在处理一条HL7 SIU消息,我的源代码比目的地想要接收的字段多得多,只是需要一种简单的方法来映射所需的几个字段。
我将源系统消息模板插入到目的变压器入站消息模板中,然后执行以下工作:
//MSH Segment
if (msg['MSH'][0]){
var MSH1 = msg['MSH']['MSH.1'];
var MSH2 = msg['MSH']['MSH.2'];
var MSH7 = msg['MSH']['MSH.7'];
var MSH9 = msg['MSH']['MSH.9'];
msg['MSH'] = '';
msg['MSH']['MSH.1']=MSH1;
msg['MSH']['MSH.2']=MSH2;
msg['MSH']['MSH.7']=MSH7;
msg['MSH']['MSH.9']=MSH9;
}冲洗和重复的片段,我需要,似乎非常痛苦。
在第二个目的地上,我试图利用入站和出站消息模板。如上所述插入源系统模板,在出站消息模板中插入目标系统模板。我的Javascript看起来是这样的:
//MSH Segment
if (msg['MSH'][0]){
tmp['MSH'] = "";
tmp['MSH']['MSH.1'] = msg['MSH']['MSH.1'];
tmp['MSH']['MSH.2'] = msg['MSH']['MSH.2'];
tmp['MSH']['MSH.7'] = msg['MSH']['MSH.7'];
tmp['MSH']['MSH.9'] = msg['MSH']['MSH.9'];
}它更干净,但似乎不能正常工作,在某些消息中,我的源没有PV1段,但是输出在输出消息模板中包含了示例PV1段。我是否需要有一个初始语句tmp = "";
必须有一个更简单的方法来完成我在这里的尝试,任何建议都是值得赞赏的!
我
发布于 2022-05-29 23:24:49
最终找到了另一条路。完全删除出站模板并从头构建出站消息。这是一张它看起来的快照。
var output = <HL7Message/>;
//MSH Segment
createSegment('MSH',output);
output.MSH['MSH.1'] = msg['MSH']['MSH.1'];
output.MSH['MSH.2'] = msg['MSH']['MSH.2'];
output.MSH['MSH.7'] = msg['MSH']['MSH.7'];
output.MSH['MSH.9'] = msg['MSH']['MSH.9'];
//SCH Segment
if (msg['SCH'][0]){
createSegment('SCH',output);
output.SCH['SCH.1'] = msg['SCH']['SCH.1'];
output.SCH['SCH.2'] = msg['SCH']['SCH.2'];
output.SCH['SCH.6'] = msg['SCH']['SCH.6'];
output.SCH['SCH.7'] = msg['SCH']['SCH.7'];
output.SCH['SCH.8'] = msg['SCH']['SCH.8'];
output.SCH['SCH.11'] = msg['SCH']['SCH.11'];
output.SCH['SCH.12'] = msg['SCH']['SCH.12'];
output.SCH['SCH.16'] = msg['SCH']['SCH.16'];
output.SCH['SCH.25'] = msg['SCH']['SCH.25'];
}
var message = SerializerFactory.getSerializer('HL7V2').fromXML(output);
channelMap.put('outmsg',message);然后在我的目的地,我使用${outmsg}作为模板。
https://stackoverflow.com/questions/72294362
复制相似问题