2010-03-12 3 views
2

Je reçois l'erreur suivante en essayant de convertir HL7v3 à HL7v2Mirth Transformer Erreur: préfixe pour l'élément n'est pas lié

Le message transmis est:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <PRPA_IN201306UV02 xmlns="urn:hl7-org:v3" xmlns:ns2="urn:gov:hhs:fha:nhinc:common:nhinccommon" xmlns:ns3="urn:gov:hhs:fha:nhinc:common:patientcorrelationfacade" xmlns:ns4="http://schemas.xmlsoap.org/ws/2004/08/addressing" ITSVersion="XML_1.0"> 
      <id extension="4ae5403:12752e71a17:-7b52" root="1.1.1"/> 
... 
     </PRPA_IN201306UV02> 
    </S:Body> 
</S:Envelope> 

L'erreur que je reçois est:

ERROR-300: Transformer error ERROR MESSAGE: Error evaluating transformer com.webreach.mirth.server.MirthJavascriptTransformerException: CHANNEL: v3v2ConversionResponseMessage CONNECTOR: sourceConnector SCRIPT SOURCE:
LINE NUMBER: 5 DETAILS: TypeError: The prefix "S" for element "S:Envelope" is not bound. at com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.evaluateScript(JavaScriptTransformer.java:460) at com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.transform(JavaScriptTransformer.java:356) at org.mule.transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:48) at org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:197) at org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:200) at org.mule.impl.MuleEvent.getTransformedMessage(MuleEvent.java:251) at org.mule.routing.inbound.SelectiveConsumer.isMatch(SelectiveConsumer.java:61) at org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java:83) at org.mule.providers.AbstractMessageReceiver$DefaultInternalMessageListener.onMessage(AbstractMessageReceiver.java:493) at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:272) at org.mule.providers.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:231) at com.webreach.mirth.connectors.vm.VMMessageReceiver.getMessages(VMMessageReceiver.java:207) at org.mule.providers.TransactedPollingMessageReceiver.poll(TransactedPollingMessageReceiver.java:108) at org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:90) at org.mule.impl.work.WorkerContext.run(WorkerContext.java:290) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Unknown Source)

Lorsque je retire le S: tag devant de l'enveloppe et du corps et redéfinissent l'espace de noms par défaut, il me donne une nouvelle erreur

TypeError: The prefix "xsi" for attribute "xsi:nil" associated with an element type "targetMessage" is not bound."

Cela fait référence à

<targetMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:nil="true"/> 

Comme si Mirth ne peut pas gérer les espaces de noms étant défini sur la même ligne que la première utilisation de cet élément.

Toute suggestion serait utile

Répondre

1

je devais décocher la propriété « Strip namespace » sur mon transformateur entrant.

2

Pour ajouter à la solution, vous devrez vous assurer que vous Strip Namespace de:

  • l'entrée et de sortie de source Transformer modèle de message
  • Destination entrant Message modèle de transformateur

Le Inbound:

Mirth Inbound Message Template Strip Namespace

Questions connexes