Mirth -> HL7 в XML преобразование - PullRequest
0 голосов
/ 27 февраля 2020

Я новичок в Mirth Connect. Когда я пытался преобразовать HL7 в XML, я борюсь. Предположим, что мои сообщения HL7 содержат повторяющиеся сегменты, такие как OR C в сообщениях ORM, как это повторить. ниже мой код:

tmp['Messages']['orderList']['order'][count]['provider']=msg['ORC'][count]['ORC.10']['ORC.10.1'].toString();

, но выдает ошибку:

`TypeError: Cannot read property "provider"` from undefined.

, пожалуйста, помогите мне продолжить.

1 Ответ

1 голос
/ 28 февраля 2020

Сбой, потому что ваш count больше, чем количество элементов, возвращаемых tmp['Messages']['orderList']['order'], поэтому он возвращает неопределенное значение. Короткий ответ: вам нужно добавить еще один order узел к tmp['Messages']['orderList'], прежде чем вы сможете получить к нему доступ. Трудно сказать, как лучше всего это сделать, не видя больше вашего кода, требований, исходящего шаблона и т. Д. c ... Чаще всего я сначала строю узел, а затем добавляю его с помощью appendChild.

Вот простой пример:

var tmp = <xml>
    <Messages>
        <orderList />
    </Messages>
</xml>;

var prov = 12345;
var nextOrder = <order>
    <provider>{prov}</provider>
</order>;

tmp.Messages.orderList.appendChild(nextOrder);

После чего tmp будет выглядеть следующим образом:

<xml>
    <Messages>
        <orderList>
            <order>
                <provider>12345</provider>
            </order>
        </orderList>
    </Messages>
</xml>

Технология, которую вы используете для работы с xml, называется e4x, и он работает на двигателе Mozilla Rhino Javascript. Вот пара ресурсов, которые могут вам помочь.

https://web.archive.org/web/20181120184304/https: //wso2.com/project/mashup/0.2/docs/e4xquickstart.html

https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X

...