FHIR 中的病患一切

病患一切作業可用來提供與病患相關的所有資源檢視。 這項作業有助於讓患者存取其整個記錄,或讓提供者或其他使用者執行與病患相關的大量資料下載。 根據 FHIR 規格,病患一切都會傳回與叫用此作業的資源或內容中所述之一或多個病患相關的所有資訊。 在 Azure API for FHIR 中,病患一切皆可供提取與特定病患相關的資料。

使用病患一切

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

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

注意

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

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

  • 病患資源
  • 病患資源直接參考的資源,但 連結 參考不是 seealso ,或 seealso 連結參考參考 RelatedPerson
  • seealso如果有連結參考 () 給其他病患 () ,則結果會針對列出的病患 () 包含病患一切作業 seealso
  • 病患區間中的資源
  • 參考病患資源的裝置資源

注意

如果病患已連結超過 100 部裝置,則只會傳回 100 個裝置。

病患一切參數

Azure API for FHIR 支援下列查詢參數。 這些參數全都是選擇性的:

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

注意

此病患一切實作不支援_count參數。

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

FHIR 規格有不同類型的 病患連結詳細概觀,但以下是高階摘要:

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

Azure API for FHIR 中的病患一切作業會以不同的方式處理病患連結,以為您提供最全面性的病患檢視。

注意

連結也可以參考 RelatedPerson 。 現在, RelatedPerson 不會在病患一切中處理資源,也不會在套件組合中傳回。

現在,病患一切作業會忽略 取代參照 連結,且連結的病患不會在套件組合中傳回。

如所述, seealso 連結會參考另一位被視為對原始有效病患。 執行病患一切作業之後,如果病患有 seealso 其他病患的連結,作業就會在每個連結上執行病患一切 seealso 。 這表示,如果病患連結到具有類型 seealso 連結的其他五名病患,我們會在這五名病患的每一個上執行病患一切。

注意

這會設定為只遵循 seealso 一層深度的連結。 它不會處理 seealso 連結 seealso 的連結。

另請參閱流程圖。

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

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

注意

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

病患一切回應順序

病患一切作業會以階段傳回結果:

  1. 階段 1 除了任何 generalPractitionermanagingOrganization 資源 ir 參考之外, Patient 還會傳回資源本身。
  2. 第 2 階段和第 3 階段都會傳回病患區間中的資源。 如果指定了開始或結束查詢參數,階段 2 會從可依其臨床日期篩選的區間傳回資源,而第 3 階段會從無法依其臨床日期篩選的區間傳回資源。 如果未指定這些參數,則會略過階段 2,而階段 3 會傳回所有病患區間資源。
  3. 階段 4 會傳回任何參考病患的裝置。

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

如果原始患者有任何 seealso 連結,則每個病患都會重複階段 1 到 4。

病患一切的範例

以下是使用病患一切作業的一些範例。 除了範例之外,還有一個範例 REST 檔案,說明 和 replaced-by 行為的運作方式 seealso

若要使用病患一切來查詢 2010 和 2020 之間,請使用下列通話:

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

若要使用$patient一切來查詢病患的觀察和遇到,請使用下列呼叫:

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

若要使用$patient一切來查詢病患自 2021-05-27T05:00:00Z 以來的「所有專案」,請使用下列呼叫:

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

如果找到每個這些通話的病患,您會收到 200 個回應,其中包含 Bundle 對應資源的 。

下一步

既然您已瞭解如何使用病患一切作業,您可以瞭解搜尋選項。

FHIR® 是 HL7 的注冊商標,可與 HL7 的許可權搭配使用。