3

尝试将 HL7v3 转换为 HL7v2 时出现以下错误

传入的消息是:

<?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>

我得到的错误是:

ERROR-300:变压器错误错误消息:评估变压器时出错 com.webreach.mirth.server.MirthJavascriptTransformerException:通道:v3v2ConversionResponseMessage 连接器:sourceConnector 脚本源:行
号:5 详细信息: TypeError:元素“S:信封”的前缀“S” " 不受约束。 在 com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.evaluateScript(JavaScriptTransformer.java:460) 在 com.webreach.mirth.server.mule.transformers.JavaScriptTransformer.transform(JavaScriptTransformer.java:356) 在 org.mule .transformers.AbstractEventAwareTransformer.doTransform(AbstractEventAwareTransformer.java:48) 在 org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:197) 在 org.mule.transformers.AbstractTransformer.transform(AbstractTransformer.java:200) 在 org. mule.impl.MuleEvent.getTransformedMessage(MuleEvent.java:251) 在 org.mule.routing.inbound.SelectiveConsumer.isMatch(SelectiveConsumer.java:61) 在 org.mule.routing.inbound.InboundMessageRouter.route(InboundMessageRouter.java: 83) 在 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) 在 org.mule.providers.TransactedPollingMessageReceiver.poll(TransactedPollingMessageReceiver.java:108) 在 org.mule.providers.PollingMessageReceiver.run(PollingMessageReceiver.java:90 ) 在 edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) 在 edu.mule.impl.work.WorkerContext.run(WorkerContext.java:290)。 emory.mathcs.backport.java.util.concurrent。ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) at java.lang.Thread.run(Unknown Source)

当我删除信封和正文前面的 S: 标签并将命名空间重新定义为默认值时,它给了我一个新错误

TypeError:与元素类型“targetMessage”关联的属性“xsi:nil”的前缀“xsi”未绑定。”

这是指

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

好像 Mirth 无法处理与该元素的第一次使用在同一行上定义的名称空间。

任何建议都会很有用

4

2 回答 2

2

我不得不取消选中传入变压器上的“Strip Namespace”属性。

于 2010-03-15T14:00:55.033 回答
2

要添加到解决方案中,您必须确保从以下位置剥离命名空间:

  • 源转换器的入站和出站消息模板
  • 目标转换器的入站消息模板

入境:

Mirth 入站消息模板带命名空间

于 2011-03-09T19:25:35.930 回答