我对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发送管道转储到文件夹中。除了我的地图由于某种原因没有被执行。
如果我使用我的管道稍微玩一下,要通过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没有被提升,我想地图不知道什么时候执行,但是后来我在BizTalk中有几个具有相同MessageType的消息。
答案 0 :(得分:0)
要解决匹配消息类型的多个模式,您必须
要解决未执行的地图,您必须在地图之前(通过BizTalk管理控制台)查看消息上的消息类型,并将其与地图期望映射的消息类型进行比较。您会发现两者不匹配,这就是地图不执行的原因。
答案 1 :(得分:0)
您的基本问题是“,因为多个架构与消息类型匹配”http://hl7.org/fhir#ImagingStudy “。
解决此问题的最佳方法,以及我在几乎所有情况下的建议,都是使用 XmlDisassembler和XmlAssembler 组件中明确设置的文档规范创建自定义管道。
本维基文章描述了流程和好处:BizTalk: Improve Deployment and Tracking by Always Creating Custom Pipelines