我有源连接器类型为'文件阅读器'这是读取HL7文件和目标连接器类型为'数据库编写器'。 我的数据库表有两列
我想将一个HL7文件转换为两个XML文件,一个用于Participant_Information列,另一个用于SPR_Information列,需要将两个文件作为单个记录插入到数据库表中。
我能够一次插入一个XML,但却无法找到将XML作为单个记录插入数据库表的方法。
非常感谢任何帮助!
答案 0 :(得分:4)
我的答案基于这个问题,以及你在评论中对我的回应。
请注意,在我的结尾,我正在引用Mirth版本1.8.2。如果您使用的是更新的内容,虽然我确信此处描述的技术仍然有效,但用户界面可能会偏离我的指示。
我在这里介绍两种解决这个问题的技巧。虽然我个人倾向于技术1,但如果你对Javascript和E4X不那么舒服,那么技术2可能会优先。
使用Javascript转换器而不是消息生成器。 使用消息构建器的挑战在于它接收输入消息,并将其转换为单个输出消息。 Javascript为您提供更多权力,但前提是您知道语言。
使用单个Javascript转换器制作邮件的两个副本。使用Javascript E4X表示法根据需要转换每个变量,然后将它们存储在channelMap中。
// init local message variables
var messageParticipant= msg;
var messageSPR= msg.copy();
// messageParticipant transformations using E4X notation: example
messageParticipant['PID']['PID.5']['PID.5.1'][0] = 'Blah';
// messageSPR transformations using E4X notation: example
messageSPR['PID']['PID.5']['PID.5.1'][0] = 'Hey There';
// stick messages in channel map so they can be accessed in your SQL script
channelMap.put('messageParticipant', messageParticipant);
channelMap.put('messageSPR',messageSPR);
在SQL代码中引用两个channelMap变量。
INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})
如果您不太习惯使用Javascript进行转换,您可能会觉得这种技术更容易一些 - 但是,我觉得解释起来有点棘手。
基本上,您将有三个目的地,并且您将强制它们按顺序执行。第一个目标为PARTICIPANT_IDENTIFICATION构建XML,第二个目标为SPR_Information构建XML。前两个目的地实际上并不发送除channelMap之外的任何消息。第三个目标使用前两个的结果,并运行SQL代码。
在摘要标签上,确保选中“同步频道”。这将强制三个目的地按顺序执行。
在目标选项卡上,除了现有的数据库编写器之外,还要创建两个Javascript编写器。组织三个目的地按此顺序显示:
Destination Connector Type
---------------------------------------
Build Participant JavaScript Writer
Build SPR JavaScript Writer
SQL Database Writer
选择目标“构建参与者”,然后在Javascript文本区域中输入以下内容:
channelMap.put('messageParticipant', messageObject.getTransformedData());
选择目标“Build SPR”,然后在Javascript文本区域中输入以下内容:
channelMap.put('messageSPR', messageObject.getTransformedData());
在Sql目标中,使用与技术1中相同的SQL代码。
INSERT INTO report_queue (PARTICIPANT_IDENTIFICATION, SPR_Information)
VALUES (${'messageParticipant'}, ${'messageSPR'})
对于两个Javascript目标中的每一个: 一世。点击“编辑变形金刚” II。单击“消息模板”选项卡 III。在“出站消息模板”部分中,确保将数据类型设置为XML。 IV。添加所需的所有变换器步骤,并随意使用Message Builder类型。 (在目标Build Participant中,您将添加适用于Participant XML的转换器步骤。同样适用于目标Build SPR)。
SQL目标不应该包含任何变换器。如果是这样,它们将不会对输出产生任何影响。
祝你好运