5

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

4

3 回答 3

11

在频道摘要选项卡中

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

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

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

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

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

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

于 2011-06-10T22:46:40.850 回答
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>
于 2015-03-18T08:41:20.613 回答
0

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

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

于 2011-03-14T19:54:40.057 回答