【问题标题】:Convert XML to HL7 messages using Mirth Connect使用 Mirth Connect 将 XML 转换为 HL7 消息
【发布时间】:2011-07-15 06:54:45
【问题描述】:

我正在使用 Mirth Connect v2.0 并陷入一项任务,将 XML 转换为 HL7 v3。我已连接到 Ms-Access 数据库(医院系统在 Access 中),我已设置通道并将连接器类型设置为目标选项卡中的文件写入器。当我部署通道时,我可以看到日志文件中填充了 XML 格式的记录,现在我陷入了如何将 XML 消息转换/转换为 HL7 的问题。那里有任何指示吗?

【问题讨论】:

标签: xml hl7 mirth


【解决方案1】:

我正在使用示例 xml 数据将 XML 转换为 hl7,您可以使用自己的。 您可以将以下代码粘贴到原始转换器中:

  var length = msg['orderList']['order'].length();
   var rcount = 0;
   for(var i=0;i<length;i++)
   {
    var SEG = new XML("<OBR/>");
    SEG['OBR.1']['OBR.1.1']=i+1;
    SEG['OBR.16']['OBR.16.1']=msg['orderList']['order'][i]['provider'].toString();
    tmp['OBR'][i]=SEG;
    var reslen = msg['orderList']['order'][i]['result'].length();
    logger.info(reslen);
    for(var j=0;j<reslen;j++)
    {
        var RSEG = new XML("<OBX/>");
        RSEG['OBX.1']['OBX.1.1'] = rcount;
        RSEG['OBX.3']['OBX.3.1'] = msg['orderList']['order'][i]['result'][j]['resultcode'].toString();
        RSEG['OBX.3']['OBX.3.2']=msg['orderList']['order'][i]['result'][j]['text'].toString();
        RSEG['OBX.7'] = msg['orderList']['order'][i]['result'][j]['range'].toString();
        RSEG['OBX.6']['OBX.6.2'] = msg['orderList']['order'][i]['result'][j]['unit'].toString();
        tmp['OBX'][rcount]=RSEG;
        rcount++;
    }
}
logger.info(**SerializerFactory.getSerializer('HL7V2').fromXML(tmp)**);

别忘了在源出站中创建一个 HL& 模板

**MSH|^~\&|||||||||
PID|||||||||||||||||||||||||||
ORC|||||||||||||||||||**

示例 XML

<PatientOrder>
<patient>
<name><fullname>XXXXXXXXXXX, XXXX.</fullname><firstname>XXXXX</firstname><lastname>XXXXX</lastname></name>
<address>
<address1>XXXXXX XXXX XXXX Med XXXX</address1><address2>Information XXXXX Fl</address2><address3>XXXX XXXX St  </address3><address4>XXXXXX XXXXXX, XX XXXXX</address4><telephone>XXX/XXXX-XXXX</telephone><fax>XXX/XXX-XXX</fax><latitude>X2.XXXXX</latitude><longitude>-X1.XXXXX</longitude></address>
</patient>
<orderList>
 <order>
    <provider>57423</provider>
    <result>result
            <resultcode>7685-1</resultcode>
            <text>Hemoglobin test2</text>
            <resultdate></resultdate>
            <range>3to52</range>
            <unit>mg</unit>
        </result>
        <result>result
            <resultcode>7685-1</resultcode>
            <text>Hemoglobin test2</text>
            <resultdate></resultdate>
            <range>3to52</range>
            <unit>mg</unit>
        </result>
    </order>
<order>
    <provider>57423</provider>
    <result>result
            <resultcode>7685-1</resultcode>
            <text>Hemoglobin test2</text>
            <resultdate></resultdate>
            <range>3to52</range>
            <unit>mg</unit>
        </result>
    </order>
</orderList>
</PatientOrder>

【讨论】:

  • 问题是关于将 XML 转换为 HL7v3
【解决方案2】:

在频道摘要标签中

  1. 单击“设置数据类型”并确保源入站设置为 XML,源出站设置为 HL7 v3,目标出站设置为 HL7 v3。

  2. Source 选项卡上,单击左侧边栏上的 Edit Transformer

  3. 在左侧的 Edit Transformer 窗口中,选择 Message Templates 选项卡。

  4. 您可以使用小文件夹图标将示例文件加载到 InboundOutbound 模板中。

  5. 您可以在入站和出站模板之间拖放节点来创建转换。

这是相当标准的 Mirth 东西,所以我希望我没有过度简化。希望这能让你朝着正确的方向前进。

【讨论】:

    【解决方案3】:

    您可能希望使用 XSLT,但所需的实际代码将取决于您的数据库架构以及它如何转换为 XML。解决您的特定转换问题超出了 StackOverflow 问题的指导方针,除非您可以使问题更加具体(即“我做了 X,期望 Y 并得到 Z)。

    似乎有很多产品会进行这种类型的转换。我在谷歌上搜索了很多“xml to HL7”。我建议你从那里开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多