2016-01-20 78 views
0

我們有一個場景,我們正在評估使用FHIR將計劃遇到的信息從EHR應用程序(源應用程序)傳輸到Internet門戶應用程序(目標應用程序)。觸發此消息傳輸的事件是計劃遇到,或計劃的相遇被取消。用於計劃遇到的FHIR消息

引用https://www.hl7.org/fhir/messaging.html

在FHIR消息中,「請求信息」從源 程序時,該事件發生發送到目標應用程序。

一些疑問/問題:

  • 首先:適用於這種情況下使用FHIR消息的?
  • 如果我正確理解FHIR網站,源應用程序應該向目標應用程序發送一個「Bundle」。正確?
  • 目標應用程序需要計劃遇到的各種信息,例如位置和推薦請求。我是否正確地認爲這些「額外」信息元素也應該包含在該包中,並且「主」元素應該以某種方式引用這些元素?
  • 主元素應該如何引用額外的元素?是否有一個顯示「捆綁內」引用的XML示例?
  • 如果我正確讀取規格,目標應用程序應該發回一個響應消息。這個響應包應該包含什麼信息來表明消息已經收到OK?

更新

澄清:

  • 源應用程序不具有FHIR REST端點。
  • 我們已經決定何時從源應用到目標應用程序將信息推(拉不)

回答

1

消息是最合適的機制:

  • 你想通過一些資源,如一個包
  • 您不需要文檔的開銷(目錄,對渲染的嚴格規則)
  • 有可能需要異步通信和/或路由通信
  • 你想要做更復雜的東西比簡單的CRUD操作
  • 你想用傳送HTTP以外

但是,您可以選擇使用短信的任何通知。即即使另一個範例可能更「典型」,沒有人會稱你爲不符合要求的消息來選擇使用消息傳遞。

消息是第一個條目是MessageHeader的Bundle資源。MessageHeader使用'data'元素指向焦點資源。在這種情況下,重點將是Encounter。額外的資源也可以傳達。通常情況下,您使用一個配置文件來提供有關捆綁包中應包含的內容與不包含的指導。 (element.type.aggregation標識是否需要在包中顯示某些內容)。唯一的規則是當你追蹤包中資源之間的所有關係時,它們形成一個完全連接的網絡。但是,協會可以在任何方向。即可以包含指向Encounter的東西,而不僅僅是Encounter指向的東西。

內捆綁,引用可以是完整的URL,相對URL(基於引用資源的URL)或的UUID。您可以看到一個示例消息here

對於通知型消息交互,您的響應消息將典型地只含有一個的MessageHeader其.response將指向原始消息手的識別符具有的「OK」代碼。在其他情況下,消息響應可能包含數據。例如。結果的創建或合併,以查詢,決策支持信息等的響應

+0

如何在父/所有者對象中直接包含引用對象? FHIR支持嗎? – codeape

1

對不起,這不是一個是或不是的答案。

我用用REST + FHIR資源API的兩個門戶網站系統 - 這是獲得從源系統的數據。 我們也有類似的情況,我們需要將數據傳遞到門戶網站,我們使用的消息傳遞存在HL7v2提要,或者我們使用REST + FHIR資源API,而不是。勞埃德指出什麼是適當的是正確的。

我一般用200的響應,如果一切正常。當我上次查看規範時,沒有指定響應,並且提示OperationOutcome或其他資源。 我遵循了「REST in Practice」(O'Reilly)一書中的做法,因此我會修改發送給我的資源(如新標識符或額外數據)並將其返回給發件人。

+0

在我們的例子中,使用拉式不是一種選擇,我更新了這個問題。 – codeape

1

我們爲客戶門戶界面做類似的事情。 本質上,我們有一個發佈/訂閱服務,監視我們的內部系統的相關變化,然後使FHIR休息調用門戶進行更新。 (我們的門戶界面是一個FHIR服務器)

不是很消息傳遞,但不完全是REST /訂閱。 就我們的門戶而言,這只是CRUD。

對我來說它歸結到你想要的選擇需要發送,當(你可有什麼工具)是什麼邏輯。