首页 文章

BizTalk中的FHIR JSON到ORU HL7映射

提问于
浏览
0

我对FHIR JSON很新,我甚至不确定我是否提出了正确的问题 . 但这是我的情景 .

我有一个BizTalk解决方案,它接收FHIR ImagingStudy消息作为JSON . 使用这篇文章(http://soapfault.com/blog/2016/08/hl7-fhir-json-decoding-in-biztalk/)我成功地将FHIR JSON消息转换为我的接收位置中的XML消息 . 然后在我的发送端口中,此消息被映射到ORU HL7并通过pass-thru发送管道转储到文件夹中 . 除了我的 Map 由于某种原因没有被执行 .

如果我使用我的管道稍微玩一下,要通过XML接收管道接收FHIR XML消息,我会得到以下异常:

执行接收管道失败:“Microsoft.BizTalk.DefaultPipelines.XMLReceive,Microsoft.BizTalk.DefaultPipelines,Version = 3.0.1.0,Culture = neutral,PublicKeyToken = #########”来源:“ XML反汇编程序“接收端口:”RP_MyProject_Test_FILE“URI:”D:\ Projects \ MyProject \ In * .xml“原因:找不到文档规范,因为多个模式匹配了消息类型”http://hl7.org/fhir#ImagingStudy“ .

我是怎么得到这种情况的,我不知道 . 我从hl7.org下载了fhir-all-xsd.zip,并添加了所有可能在Visual Studio中投影的.xsd文件 . 我最终得到了100个模式,我尝试只添加了ImagingStudy特定的模式,但是在添加所有模式之前它没有用 . 部署到BizTalk后,我可以在BizTalk管理控制台中看到更多模式,其中几个具有上述消息类型 .

我究竟做错了什么?有没有办法在我的项目中只包含ImagingStudy FHIR模式?在我挂起的消息中,我看到MessageType没有被提升,我想 Map 不知道什么时候执行,但是后来我在BizTalk中有几个具有相同MessageType的消息 .

2 回答

  • 0

    要解决与您必须匹配的消息类型匹配的多个模式

    • 确保每个架构都具有唯一的命名空间根名称 . 这要么确保不要多次部署相同的模式,如果您需要多个项目中的模式,那么创建一个其他应用程序可以引用的公共应用程序 .

    • 如果无法实现上述目的,请确保使用XML分解器创建自定义接收管道,您可以在其中指定要使用的架构

    要解析未执行的映射,您必须查看映射之前消息的消息类型(通过BizTalk管理控制台),并将其与映射期望映射的消息类型进行比较 . 您会发现两者不匹配,这就是 Map 不执行的原因 .

  • 0

    你的根本问题是“ because multiple schemas matched the message type "http://hl7.org/fhir#ImagingStudy ” .

    解决此问题的最佳方法,以及我在几乎所有情况下的建议,都是使用 XmlDisassembler and XmlAssembler 组件中明确设置的 Document Spec 创建自定义管道 .

    本维基文章描述了过程和好处:BizTalk: Improve Deployment and Tracking by Always Creating Custom Pipelines

相关问题