Pergunta

A tarefa é enviar um objeto XML do canal-A para o canal-B

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

As etapas da comunicação do canal:

  • No transformador de origem do canal-B, extraia o conteúdo HL7V2
  • Substitua o objeto MSG atual no canal-b com o conteúdo extraído
  • Continue nos outros transformadores de fonte do canal-B e esperando fazer referência msg['PID']['PID.5'] como normal.

A boa notícia é que eu posso extrair a 'carga útil' HL7V2 em uma variável. O problema ou dificuldade é redefinir o msg Objeto, ou qualquer outro objeto para poder fazer referência às propriedades HL7 conforme o esperado.

Quando eu crio uma nova variável com o SerializerFactory.getHL7Serializer, envolve com as tags <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 Link para imagem em tamanho real

Pergunta: Você tem alguma sugestão sobre como substituir o objeto MSG?

Como posso começar a referenciar o MSG como tal:

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

Condições atuais

  • O tipo de entrada do canal de recebimento é xml
  • A necessidade é extrair todas as propriedades desse objeto XML; O ID é um banco de dados PK a ser usado posteriormente no destino.
Foi útil?

Solução

Sinto muito, minha resposta original foi atolada com as peculiaridades do meu próprio cenário. Reconheci e testei para garantir que isso funcione em seu cenário.

Enviar canal - envolve o HL7 bruto na sua estrutura XML e encaminhe para um canal chamado Receberxml. Eu codifiquei isso no transformador de origem, mas você deve codificá -lo onde ele funciona para você.

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

router.routeMessage("ReceiveXML", wrappedHL7);

Channel de recebimento - extrai o HL7 do XML, o converte para XML e atribui novamente ao objeto MSG. Eu codifiquei isso no filtro de origem - daí "Return true;"

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

Outras dicas

Tudo o que você precisa fazer é colocar sua mensagem XML de entrada na área do modelo de entrada em alegria e, em seguida, usar a árvore de mensagens para arrastar e soltar as informações do XML necessário para a seção JavaScript do conector.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top