2017-02-22 92 views
0

我對FHIR JSON很新,我甚至不確定我是否會問正確的問題。但這是我的場景。FHIR JSON到BizTalk的ORU HL7映射

我有一個BizTalk解決方案接收FHIR ImagingStudy消息爲JSON。使用這篇文章(http://soapfault.com/blog/2016/08/hl7-fhir-json-decoding-in-biztalk/),我成功地將FHIR JSON消息轉換爲我的接收位置中的XML消息。然後在我的發送端口中,這條消息被映射到一個ORU HL7,並通過一個pass-thru send管道轉儲到一個文件夾中。除了我的地圖由於某種原因沒有得到執行。

如果我打一點點我的管道周圍,通過一個XML接收FHIR XML消息接收管道,我得到以下異常:

沒有執行接收管道失敗:「微軟.BizTalk.DefaultPipelines.XMLReceive,Microsoft.BizTalk.DefaultPipelines,Version = 3.0.1.0,Culture = neutral,PublicKeyToken = #########「Source:」XML disassembler「Receive Port:」RP_MyProject_Test_FILE「URI:」 D:\ Projects \ MyProject \ In * .xml「原因:找不到文檔說明,因爲多個模式與消息類型」http://hl7.org/fhir#ImagingStudy「匹配。

我怎麼會遇到這種情況,以及我不知道。我從hl7.org下載了fhir-all-xsd.zip並添加了所有的.xsd文件,以便在Visual Studio中投影。我結束了100個模式,我試圖只添加ImagingStudy特定模式,但直到我添加了所有模式後才起作用。部署到BizTalk後,我可以在BizTalk管理控制檯中看到更多架構,並且有幾個具有上述消息類型。

我在做什麼錯?有沒有辦法在我的項目中只包含ImagingStudy FHIR模式?在我暫停的消息中,我看到MessageType沒有被提升,我猜地圖不知道什麼時候執行,但是隨後在BizTalk中有幾個消息具有相同的MessageType。

回答

0

要解決多個架構匹配消息類型你要麼必須

  1. 確保每個模式都有一個唯一的命名空間+根名稱。這要麼確保不要多次部署同一個模式,如果您需要多個項目中的模式,那麼需要創建一個其他應用程序可以引用的通用應用程序。
  2. 如果無法實現上述目標,要確保你創建一個自定義在您指定要使用

要解決未執行地圖上的哪個模式的XML僞君子接收管道,你必須看地圖前的消息類型(通過BizTalk管理控制檯),並將其與地圖預期映射的消息類型進行比較。你會發現兩者不匹配,這就是爲什麼地圖不能執行。