共用方式為


匯出 FHIR 數據

藉由在 FHIR 服務中使用大量$export作業,您可以匯出數據,如 HL7 FHIR 大量資料存取規格中所述

嘗試使用 $export之前,請確定您的 FHIR 服務已設定為與 Azure Data Lake 儲存體 Gen2 帳戶連線。 若要設定導出設定並建立 Data Lake 儲存體 Gen2 帳戶,請參閱設定匯出的設定。

$export呼叫端點

設定 FHIR 服務以與 Data Lake 儲存體 Gen2 帳戶連線之後,您可以呼叫$export端點,而 FHIR 服務會將數據匯出至記憶體帳戶內的 Azure Blob 儲存體 容器。 下列範例要求會將所有資源匯出至以名稱 ({{containerName}}) 指定的容器。 請注意,如果您想要在要求中指定 {{containerName}} ,則必須事先在 Data Lake 儲存體 Gen2 帳戶中建立容器。

GET {{fhirurl}}/$export?_container={{containerName}}

如果您未在要求中指定容器名稱(例如呼叫 GET {{fhirurl}}/$export),則會為匯出的數據建立具有自動產生名稱的新容器。

如需 FHIR $export API 規格的一般資訊,請參閱 HL7 FHIR 匯出要求流程 檔。

FHIR 服務支援 $export 下列層級:

  • 系統GET {{fhirurl}}/$export
  • 病患GET {{fhirurl}}/Patient/$export
  • 患者群組*: GET {{fhirurl}}/Group/[ID]/$export
    *FHIR 服務會匯出所有參考的資源,但不會匯出群組資源本身的特性。

數據會在多個檔案中匯出。 每個檔案只包含一種類型的資源。 個別檔案中的資源數目將會受到限制。 資源數目上限是以系統效能為基礎。 它目前設定為 5,000,但可以變更。 結果是您可能會取得資源類型的多個檔案。 檔名會遵循 格式 <resourceName>-<number>-<number>.ndjson。 不保證檔案的順序會對應至資料庫中資源的任何順序。

注意

Patient/$export 如果資源位於多個群組或多個資源的區間中,則和 Group/[ID]/$export 可以匯出重複的資源。

除了檢查記憶體帳戶中導出的檔案是否存在之外,您還可以透過 FHIR 服務回應中傳回標頭中的 Content-Location URL 來檢查$export作業狀態。 如需詳細資訊,請參閱 HL7 中的 大量數據狀態要求 檔。

將您的 FHIR 數據匯出至 Data Lake 儲存體 Gen2

目前,FHIR 服務支援 $export Data Lake 儲存體 Gen2 帳戶,但有下列限制:

  • Data Lake 儲存體 Gen2 提供階層式命名空間,但無法將作業的目標$export設為容器內的特定子目錄。 FHIR 服務只能指定導出的目的地容器,其中會建立每個 $export 作業的新資料夾。
  • $export作業完成且所有數據都已寫入資料夾內之後,FHIR 服務不會再次將任何專案匯出至該資料夾,因為後續匯出至相同的容器將會位於新建立的資料夾內。

若要將數據匯出至防火牆後方的記憶體帳戶,請參閱 設定匯出的設定。

設定和參數

標頭

必須為 $export 作業設定兩個必要的標頭參數。 這些值是根據目前的 HL7 $export規格來設定。

  • 接受application/fhir+json
  • 偏好respond-async

查詢參數

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

查詢參數 由 FHIR 規格定義? 描述
_outputFormat Yes 目前支援三個值來對齊 FHIR 規格: application/fhir+ndjsonapplication/ndjson或只是 ndjson。 所有導出作業都會傳回 .ndjson 檔案,而傳遞的值不會影響程式代碼行為。
_since Yes 可讓您只匯出自指定時間以來已修改的資源。
_type Yes 可讓您指定將包含哪些類型的資源。 例如, _type=Patient 只會傳回病患資源。
_typeFilter Yes 若要要求更精細的篩選,您可以搭配 參數使用_typeFilter_type。 參數的值 _typeFilter 是以逗號分隔的 FHIR 查詢清單,可進一步限制結果。
_container No 指定設定的記憶體帳戶中應匯出數據的容器名稱。 如果指定了容器,數據將會匯出至該容器中的資料夾。 如果未指定容器,數據將會匯出至具有自動產生名稱的新容器。
_till No 可讓您匯出已修改到指定時間的資源。 此參數僅適用於系統層級匯出。 在此情況下,如果歷程記錄版本尚未停用或清除,匯出會保證真正的快照集檢視,或者換句話說,啟用時間移動。
includeAssociatedData No 可讓您匯出歷程記錄和虛刪除的資源。 此篩選不適用於 『_typeFilter』 查詢參數。 將值包含為 『_history』,以導出歷程記錄/非最新版本的資源。 將值包含為 『_deleted』,以匯出虛刪除的資源。

注意

只有與 FHIR 服務位於相同訂用帳戶中的記憶體帳戶,才能註冊為作業的 $export 目的地。

疑難排解

下列資訊可協助您解決匯出 FHIR 數據的問題。

作業停滯在不良狀態

在某些情況下,當 FHIR 服務嘗試匯出數據時,工作可能會卡在不良狀態。 特別是當 Data Lake 儲存體 Gen2 帳戶許可權尚未正確設定時,就會發生此情況。

檢查作業狀態的 $export 其中一種方式是移至記憶體帳戶的 記憶體瀏覽器 ,並查看匯出容器中是否有任何 .ndjson 檔案。 如果檔案不存在且沒有其他 $export 作業正在執行,則目前的作業可能停滯在不良狀態。 在此情況下,您可以使用要求呼叫 FHIR 服務 API DELETE 來取消$export作業。 稍後,您可以重新排入佇列工作 $export ,然後再試一次。

如需取消 $export 作業的詳細資訊,請參閱 HL7 中的 大量數據刪除要求 檔。

注意

在 FHIR 服務中,在服務停止作業並移至新作業之前,作業處於不良狀態的默認時間 $export 是 10 分鐘。

下一步

在本文中,您已瞭解如何使用 $export 作業匯出 FHIR 資源。 如需如何設定和使用其他匯出選項的詳細資訊,請參閱:

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