MERTH: перезаписать объект MSG с содержимым в объекте XML

StackOverflow https://stackoverflow.com/questions/1916798

  •  20-09-2019
  •  | 
  •  

Вопрос

Задача состоит в том, чтобы отправить объект XML из канала-A на канал B

<MyMessage>
<ID>42</ID>
<hl7v2>
    MSH|^~\&|LAB|....
    PID|1|....
</hl7v2>
</MyMessage>

Шаги связи канала:

  • В исходном трансформаторе канала B извлеките содержимое HL7V2
  • Перезаписать текущий объект MSG в канале B с извлеченным содержанием
  • Продолжить в других трансформаторах источника канала и ожидания ссылаться на msg['PID']['PID.5'] как обычно.

Хорошей новостью является то, что я могу извлечь полезную нагрузку HL7V2 в переменную. Проблема или сложность заключается в сбросе msg объект или любой другой объект, чтобы иметь возможность ссылаться на свойства HL7, как и ожидалось.

Когда я создаю новую переменную с SerializerFactory.getHL7Serializer, это завершается тегами <HL7Message>.

channelMap.put('MessageID', msg['ID']); //successful
channelMap.put('v2payload',msg['HL7v2']); //also looks good

var v2Msg = SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['HL7v2']);

channelMap.put('v2Msg', v2Msg );

alt text Ссылка на полноразмерное изображение

Вопрос: У вас есть какие -либо предложения о том, как перезаписать объект MSG?

Как я могу начать ссылаться на MSG как таковое:

msg['PID']['PID.5']

Текущие условия

  • Тип ввода приемного канала - XML
  • Необходимость состоит в том, чтобы извлечь все свойства из этого объекта XML; ID - это база данных PK, которая будет использоваться позже в пункте назначения.
Это было полезно?

Решение

Мне жаль, что мой первоначальный ответ был увязен от особенностей моего собственного сценария. Я переработал и протестировал, чтобы убедиться, что это работает в вашем сценарии.

Отправка канала - завершает необработанный HL7 в вашу XML -структуру, и перемещается на канал, который называется CETEXML. Я закодировал это в исходном трансформаторе, но вы должны кодировать его там, где он работает для вас.

var wrappedHL7 = <MyMessage><ID>123</ID>
                      <hl7v2>{messageObject.getRawData()}</hl7v2>
                 </MyMessage>;

router.routeMessage("ReceiveXML", wrappedHL7);

Прием канал - извлекает HL7 из XML, преобразует его в XML и назначает обратно в объект MSG. Я закодировал это в исходном фильтре - следовательно, «вернуть истин»;

msg = new XML(SerializerFactory.getHL7Serializer(false,false,true).toXML(msg['hl7v2'].toString()));
return true;

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top