Question

La tâche consiste à envoyer un objet XML de Channel-A à Channel-B

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

Les étapes de la communication du canal:

  • Dans le transformateur source du canal B, extraire le contenu HL7V2
  • Écraser l'objet MSG actuel dans Channel-B avec le contenu extrait
  • Continuez dans les autres transformateurs de source Channel-B et espérant faire référence msg['PID']['PID.5'] comme d'habitude.

La bonne nouvelle est que je peux extraire la «charge utile» HL7v2 dans une variable. Le problème ou la difficulté consiste à réinitialiser le msg objet, ou tout autre objet pour pouvoir référencer les propriétés HL7 comme prévu.

Lorsque je crée une nouvelle variable avec le SerializerFactory.getHL7Serializer, il s'enroule avec les balises <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 Lien vers l'image en taille réelle

Question: Avez-vous des suggestions sur la façon d'écraser l'objet MSG?

Comment puis-je commencer à faire référence au MSG comme tel:

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

Conditions actuelles

  • Le type d'entrée du canal de réception est XML
  • Le besoin consiste à extraire toutes les propriétés de cet objet XML; ID est une base de données PK à utiliser plus tard dans la destination.
Était-ce utile?

La solution

Je suis désolé que ma réponse originale ait été embourbée avec les particularités de mon propre scénario. J'ai retravaillé et testé pour m'assurer que cela fonctionne dans votre scénario.

Envoi du canal - Enveloppe le HL7 brut dans votre structure XML et transmet à un canal appelé Receaxml. J'ai codé ceci dans le transformateur source, mais vous devez le coder là où cela fonctionne pour vous.

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

router.routeMessage("ReceiveXML", wrappedHL7);

Réception du canal - extrait le HL7 du XML, le convertit en XML et attribue à l'objet MSG. J'ai codé ceci dans le filtre source - d'où "return true;"

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

Autres conseils

Tout ce que vous avez à faire est de mettre votre message XML entrant dans la zone de modèle entrante dans la gaieté, puis d'utiliser l'arborescence de messages pour faire glisser et déposer les informations du XML dont vous avez besoin à la section JavaScript du connecteur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top