共用方式為


在 FHIR 服務中使用 Patient-everything

Patient-everything 作業是用來提供患者所有相關資源的檢視。 這項作業有助於讓患者存取其整個記錄,或讓提供者或其他使用者執行與患者相關的大量數據下載。 根據快速醫療互操作性資源(FHIR®)規格,"Patient-everything" 操作會返回資源或內容中描述的與一位或多位患者有關的所有資訊。 在 Azure Health Data Services 的 FHIR 服務中,可以使用「Patient-everything」操作來獲取與特定患者相關的資料。

使用 Patient-everything

若要呼叫 Patient-everything,請使用下列命令:

GET {FHIRURL}/Patient/{ID}/$everything

備註

您必須指定特定病患的識別碼。 如果您需要所有患者的所有數據,請參閱 $export

FHIR 服務會驗證它是否可以找到符合所提供病患標識碼的病患。 如果找到結果,回應是類型的 searchset 套件組合,其中包含下列資訊:

  • 病患資源
  • 直接被患者資源引用的資源
  • 如果有其他患者的 seealso 連結參考,結果會包含針對列出 seealso 患者的 Patient-everything 作業。
  • 病患區間中的資源。
  • 參考患者資源的裝置資源

備註

最多會傳回連結至患者的前 100 個裝置。

Patient-everything 參數

FHIR 服務支援下列查詢參數。 所有這些參數都是選擇性的。

查詢參數 說明
類型 可讓您指定回應中將包含哪些類型的資源。 例如,_type=Encounter 只會傳 Encounter 回與患者相關聯的資源。
_因為 只會傳回自提供時間以來已修改的資源。
開始 指定開始日期後,將會選取其臨床日期晚於指定開始日期的資源。 如果未提供開始日期,則結束日期之前的所有記錄都在範圍內。
結束 指定結束日期將會提取其臨床日期在指定結束日期之前的資源。 如果未提供結束日期,則開始日期之後的所有記錄都在範圍內。

備註

此 Patient-everything 的系統實作不支援 _count 參數。

在病患資源中,有一個稱為連結的元素,可以將病患連結到其他病患或相關人員。 這些連結的患者有助於提供原始患者的整體檢視。 當患者取代另一名患者或兩個病患資源有互補資訊時,可以使用鏈接參考。 連結的其中一個使用案例是ADT 38或39 HL7v2訊息出現時。 其描述患者的更新。 此更新可以儲存為連結元素中兩名病患之間的參考。

FHIR 規格有不同類型的患者連結的詳細概觀,但在此我們提供高階摘要:

  • replaces - 患者資源會取代不同的患者。
  • refer - 患者有效,但不會視為主要的資訊來源。 指向另一個患者以擷取其他資訊。
  • seealso - 患者包含另一個同樣有效的患者連結。
  • replaced-by - 患者資源會取代不同的患者。

FHIR 服務中的病患全面操作功能會以不同的方式處理病患資料連結,讓您更全面地檢視病患資料。

備註

連結也可以指向 RelatedPerson。 現在,RelatedPerson 資源不會在 Patient-everything 中處理,也不會在套件組合中傳回。

目前,replacesrefer 連結已納入 Patient-everything 作業中,作為患者區間內已連結患者的一部分。

如所述,seealso 連結參考另一個與原始患者同樣有效的患者。 執行 Patient-everything 作業之後,如果患者有其他患者的 seealso 連結,則作業會在每個 seealso 連結上執行 Patient-everything。 這表示,如果患者透過 seealso 類型連結連結至其他五名患者,我們會對這五名患者都執行 Patient-everything。

備註

這設定為只追蹤一層深度的 seealso 連結。 它不會處理 seealso 連結中的 seealso 連結。

另請參閱流程圖。

最終連結類型為 replaced-by。 在此情況下,不會再使用原始病患資源,而且 replaced-by 連結會指向應使用的病患。 此 Patient-everything 實作依預設會在套件組合開始時包含作業結果,並顯示患者不再有效的警告。 這也是 Prefer 標頭設定為 handling=lenient 時的行為。

此外,您可以將 Prefer 標頭設定為 handling=strict 來改為擲回錯誤。 在此情況下,錯誤碼 301 MovedPermanently 的傳回表示目前病患資訊已過期,並傳回連結中提供的正確病患識別碼。 傳回錯誤的 ContentLocation 標頭會指向正確且最新的要求。

備註

replaced-by如果連結存在,Prefer: handling=lenient而且結果會以異步方式在多個套件組合中傳回,則只會在一個套件組合中傳回作業結果。

Patient-everything 回應順序

涉及病患的所有程序會分階段地返回結果:

  1. 階段 1 會傳回 Patient 資源本身,及其參考的任何 generalPractitionermanagingOrganization 資源。
  2. 階段 2 和階段 3 都會傳回患者區間中的資源。 start如果指定 或 end 查詢參數,第 2 階段會從可依臨床日期篩選的區間傳回資源,而階段 3 會從無法依臨床日期篩選的區間傳回資源。 如果未指定這兩個參數,則會略過階段 2,而階段 3 會傳回所有病患區間資源。
  3. 第 4 階段會傳回任何參考患者的裝置。

每個階段都會傳回一組結果。 如果結果跨越多個頁面,套件組合中的下一個連結會指向該階段結果的下一頁。 傳回階段的所有結果之後,套件組合中的下一個連結會指向呼叫以起始下一個階段。

如果原始患者有任何 seealso 連結,則這些患者中的每一位都會重複第1至第4階段。

Patient-everything 的範例

以下是使用 Patient-everything 作業的一些範例。 除了這些範例之外,我們還有一個範例 REST 檔案,說明 seealsoreplaced-by 行為的運作方式。

若要使用 Patient-everything 查詢 2010 年至 2020 年間病患的「所有資料」,請使用下列呼叫。

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

若要使用 Patient-everything 查詢患者的觀察和遭遇,請使用下列呼叫。

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

若要使用 Patient-everything 來查詢患者自 2021-05-27T05:00:00Z 之後的「一切資訊」,請使用下列呼叫。

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

如果其中有任何呼叫找到患者,您將會收到 200 回應,其中包含對應資源的 Bundle

後續步驟

既然您已了解如何使用 Patient-everything 作業,接著可以學習搜尋選項。 如需更多資訊,請參閱

備註

FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。