Преобразование XML в сообщения HL7 с помощью Mirth Connect - PullRequest
4 голосов
/ 14 марта 2011

Я работаю с Mirth Connect v2.0 и зацикливаюсь на одной задаче - преобразовании XML в HL7 v3.Я подключился к базе данных Ms-Access (больничная система находится в Access), настроил канал и установил тип соединителя на File Writer на вкладке назначения.При развертывании канала я вижу, что файл журнала заполняется записями в формате XML, и теперь я застрял в том, как преобразовать / преобразовать сообщение XML в HL7.Есть какие-нибудь указатели там?

Ответы [ 3 ]

9 голосов
/ 11 июня 2011

В канале Сводка * вкладка 1002 *

  1. Нажмите «Задать типы данных» и убедитесь, что для источника входного сигнала установлено значение XML, а для исходящего источника - HL7.v3, и для пункта назначения установлено значение HL7 v3.

  2. На вкладке Источник нажмите Изменить трансформатор на левой боковой панели

  3. В окне Edit Transformer слева выберите вкладку Шаблоны сообщений .

  4. Вы можете загрузить образецфайлы в Входящие и Исходящие шаблоны с помощью маленьких значков папок.

  5. Вы можете перетаскивать узлы между входящими и исходящими шаблонамичтобы создать ваше преобразование.

Это довольно стандартная вещь Мирта, поэтому я надеюсь, что я не упростил.Надеюсь, это заставит вас двигаться в правильном направлении.

1 голос
/ 18 марта 2015

Я конвертирую XML в hl7, используя образцы данных XML, вы можете использовать свои собственные. Вы можете вставить следующий код в Soure Transformer:

  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>
0 голосов
/ 14 марта 2011

Возможно, вы захотите использовать XSLT, но фактический требуемый код будет зависеть от вашей схемы базы данных и того, как она преобразуется в XML. Решение ВАШЕЙ конкретной проблемы конверсии выходит за рамки рекомендаций для вопросов StackOverflow, если вы не можете сделать вопрос НАМНОГО более конкретным (т. Е. «Я сделал X, ожидал Y и получил вместо Z).

Похоже, есть много продуктов, которые будут делать этот тип конверсии. Я нашел много хитов Googling для "xml to HL7". Я предлагаю вам начать там.

...