使用 Google Cloud CLI 儲存醫療照護資料

本頁說明如何使用 Cloud Healthcare API 和 Google Cloud CLI 完成下列工作:

  1. 建立 Cloud Healthcare API 資料集。
  2. 在資料集中建立下列任一資料儲存庫:
    • 數位醫學影像和通訊 (DICOM) 儲存庫
    • 快速醫療照護互通資源 (FHIR) 儲存庫
    • 健康狀態層級七 (國際版本 2) (HL7v2) 儲存庫
  3. 儲存 DICOM、FHIR 和 HL7v2 資料,並查看 DICOM 中繼資料。

如果您只想使用一種資料儲存庫,完成「事前準備」和「建立資料集」中的步驟後,可以直接跳到快速入門指南的相關章節。

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  4. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  8. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  11. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  12. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  15. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/healthcare.datasetAdmin, roles/healthcare.fhirStoreAdmin, roles/healthcare.dicomStoreAdmin, roles/healthcare.hl7V2StoreAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  16. 建立資料集

    「資料集」包含資料儲存庫,以及含有醫療照護資料的資料儲存庫。 如要使用 Cloud Healthcare API,您至少須建立一個資料集。

    以下範例顯示如何在 us-central1 區域中建立名為 my-dataset 的資料集。在本快速入門導覽課程中,您會使用資料集建立 DICOM 存放區、FHIR 存放區和 HL7v2 存放區。

    gcloud

    使用 gcloud healthcare datasets create 指令建立資料集。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare datasets create my-dataset \
      --project=PROJECT_ID \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare datasets create my-dataset `
      --project=PROJECT_ID `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare datasets create my-dataset ^
      --project=PROJECT_ID ^
      --location=us-central1

    您應該會收到類似以下的回應:

    回應

    Create request issued for: [my-dataset]
    Created dataset [my-dataset].
    

    如要完成這項快速入門導覽課程,請選擇下列其中一個部分:

    儲存及查看 DICOM 執行個體

    本節說明如何完成下列工作:

    1. 建立 DICOM 儲存庫。
    2. 將公開 Cloud Storage bucket 中的 DICOM 執行個體匯入 DICOM 儲存庫。
    3. 查看 DICOM 執行個體的中繼資料。

    Cloud Healthcare API 會導入 DICOMweb 標準,用於儲存及存取醫療影像資料。

    建立 DICOM 儲存庫

    DICOM 儲存庫位於資料集內,並含有 DICOM 執行個體。下列範例說明如何建立名為 my-dicom-store 的 DICOM 儲存庫。

    gcloud

    使用 gcloud healthcare dicom-stores create 指令建立 DICOM 儲存庫。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare dicom-stores create my-dicom-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare dicom-stores create my-dicom-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare dicom-stores create my-dicom-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1

    您應該會收到類似以下的回應:

    回應

    Created dicomStore [my-dicom-store].

    匯入 DICOM 執行個體

    您可以在 Cloud Storage 值區「gs://gcs-public-data--healthcare-nih-chest-xray」中找到範例 DICOM 資料。

    gcloud

    使用 gcloud healthcare dicom-stores import 指令匯入 gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm 執行個體。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare dicom-stores import gcs my-dicom-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    Windows (PowerShell)

    gcloud healthcare dicom-stores import gcs my-dicom-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    Windows (cmd.exe)

    gcloud healthcare dicom-stores import gcs my-dicom-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://gcs-public-data--healthcare-nih-chest-xray/dicom/00000001_000.dcm

    輸出內容如下:

    • PROJECT_IDus-central1my-datasetmy-dicom-store:執行指令時提供的值
    • OPERATION_ID:匯入 DICOM 執行個體時,Cloud Healthcare API 提供的長時間執行作業 ID。如果方法呼叫可能需要很長時間才能完成,系統就會傳回長時間執行的作業。匯入一個 DICOM 執行個體通常很快,因此輸出內容幾乎會立即傳回。

    回應

    Request issued for: [my-dicom-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store
    

    查看 DICOM 執行個體中繼資料

    gcloud CLI 不支援 DICOMweb 交易,例如查看或擷取執行個體。您可以改用 Google 的 DICOMweb 指令列工具,該工具使用 Python 執行。如要瞭解如何在 Google Cloud上設定 Python,請參閱「設定 Python 開發環境」。

    請完成下列步驟,使用 DICOMweb 指令列工具查看 DICOM 執行個體中繼資料:

    1. 使用 Pip 安裝 DICOMweb 指令列工具:

      pip install https://github.com/GoogleCloudPlatform/healthcare-api-dicomweb-cli/archive/v1.0.zip
      
    2. 更新 PATH 變數,加入 dcmweb 安裝位置:

      export PATH="$HOME/bin:$PATH"
      
    3. 查看 DICOM 執行個體的中繼資料:

      dcmweb \
        https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/dicomStores/my-dicom-store/dicomWeb \
        search instances

      PROJECT_ID 替換為您在「事前準備」中建立或選取的專案 ID。 Google Cloud

      輸出內容如下所示。如要瞭解輸出內容中的欄位,請參閱「SOP 通用模組的屬性」。

      [
        {
          "00080016": {
            "Value": [
              "1.2.840.10008.5.1.4.1.1.7"
            ],
            "vr": "UI"
          },
          "00080018": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.153751009835107614666834563294684339746480"
            ],
            "vr": "UI"
          },
          "00080060": {
            "Value": [
              "DX"
            ],
            "vr": "CS"
          },
          "00100020": {
            "Value": [
              "1"
            ],
            "vr": "LO"
          },
          "00100040": {
            "Value": [
              "M"
            ],
            "vr": "CS"
          },
          "0020000D": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.111396399361969898205364400549799252857604"
            ],
            "vr": "UI"
          },
          "0020000E": {
            "Value": [
              "1.3.6.1.4.1.11129.5.5.195628213694300498946760767481291263511724"
            ],
            "vr": "UI"
          },
          "00280010": {
            "Value": [
              1024
            ],
            "vr": "US"
          },
          "00280011": {
            "Value": [
              1024
            ],
            "vr": "US"
          },
          "00280100": {
            "Value": [
              8
            ],
            "vr": "US"
          }
        }
      ]
      

    將 DICOM 執行個體匯入 Cloud Healthcare API 並查看中繼資料後,請繼續進行清除作業,以免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用。

    如要瞭解後續步驟,例如如何在 Cloud Healthcare API 中使用 DICOMweb 標準搜尋或擷取 DICOM 影像,請參閱「後續步驟」。

    儲存 FHIR 資源

    本節說明如何完成下列工作:

    1. 建立 FHIR 儲存庫。
    2. 將公開 Cloud Storage bucket 中的 FHIR 資源匯入 FHIR 儲存庫。

    建立 FHIR 儲存庫

    FHIR 儲存庫位於資料集內,並含有 FHIR 資源。下列範例說明如何建立名為 my-fhir-store 的 FHIR 儲存庫,並使用 FHIR R4 版

    gcloud

    使用 gcloud healthcare fhir-stores create 指令建立 FHIR 儲存庫。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare fhir-stores create my-fhir-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --version=R4

    Windows (PowerShell)

    gcloud healthcare fhir-stores create my-fhir-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --version=R4

    Windows (cmd.exe)

    gcloud healthcare fhir-stores create my-fhir-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --version=R4

    您應該會收到類似以下的回應:

    回應

    Created fhirStore [my-fhir-store].

    匯入 FHIR 資源

    您可以在 Cloud Storage bucket「gs://gcp-public-data--synthea-fhir-data-10-patients」中找到範例 FHIR 資料。

    gcloud

    使用 gcloud healthcare fhir-stores import 指令,匯入 gs://gcp-public-data--synthea-fhir-data-10-patients 中的 FHIR 資源。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare fhir-stores import gcs my-fhir-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson \
      --content-structure=RESOURCE

    Windows (PowerShell)

    gcloud healthcare fhir-stores import gcs my-fhir-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson `
      --content-structure=RESOURCE

    Windows (cmd.exe)

    gcloud healthcare fhir-stores import gcs my-fhir-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/*.ndjson ^
      --content-structure=RESOURCE

    輸出內容如下:

    • PROJECT_IDus-central1my-datasetmy-fhir-store:執行指令時提供的值
    • OPERATION_ID:匯入 FHIR 資源時,Cloud Healthcare API 提供的長時間執行的作業 ID。如果方法呼叫可能需要很長時間才能完成,系統就會傳回長時間執行的作業。匯入 FHIR 資源大約需要一到兩分鐘。
    • R4:FHIR 存放區版本

    回應

    Request issued for: [my-fhir-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/fhirStores/my-fhir-store
    version: R4
    

    將 FHIR 資源匯入 Cloud Healthcare API 後,請繼續清除資源,以免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用。

    如要瞭解後續步驟 (例如如何查看及搜尋 FHIR 資源),請參閱「後續步驟」。

    儲存 HL7v2 訊息

    本節說明如何完成下列工作:

    1. 建立 HL7v2 儲存庫。
    2. 將公開 Cloud Storage bucket 中的 HL7v2 訊息匯入 HL7v2 儲存庫。

    Cloud Healthcare API 中的 HL7v2 實作符合 HL7v2 標準

    建立 HL7v2 儲存庫

    HL7v2 存放區位於資料集內,並含有 HL7v2 訊息。下列範例說明如何建立名為 my-hl7v2-store 的 HL7v2 儲存庫。

    gcloud

    使用 gcloud healthcare hl7v2-stores create 指令建立 HL7v2 儲存庫。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare hl7v2-stores create my-hl7v2-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare hl7v2-stores create my-hl7v2-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare hl7v2-stores create my-hl7v2-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1

    您應該會收到類似以下的回應:

    回應

    Created hl7v2Store [my-hl7v2-store].

    匯入 HL7v2 訊息

    gcloud

    使用 gcloud healthcare hl7v2-stores import 指令匯入 gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson HL7v2 訊息。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store \
      --project=PROJECT_ID \
      --dataset=my-dataset \
      --location=us-central1 \
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    Windows (PowerShell)

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store `
      --project=PROJECT_ID `
      --dataset=my-dataset `
      --location=us-central1 `
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    Windows (cmd.exe)

    gcloud healthcare hl7v2-stores import gcs my-hl7v2-store ^
      --project=PROJECT_ID ^
      --dataset=my-dataset ^
      --location=us-central1 ^
      --gcs-uri=gs://cloud-samples-data/healthcare/hl7v2/messages.ndjson

    輸出內容如下:

    • PROJECT_IDus-central1my-datasetmy-hl7v2-store:執行指令時提供的值
    • OPERATION_ID:匯入 HL7v2 訊息時,Cloud Healthcare API 提供的長期作業 ID。如果方法呼叫可能需要很長時間才能完成,系統就會傳回長時間執行的作業。匯入一則 HL7v2 訊息通常很快,因此輸出內容幾乎會立即傳回。

    回應

    Request issued for: [my-hl7v2-store]
    Waiting for operation [projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/operations/OPERATION_ID] to complete...done.
    name: projects/PROJECT_ID/locations/us-central1/datasets/my-dataset/hl7V2Stores/my-hl7v2-store
    

    將 HL7v2 訊息匯入 Cloud Healthcare API 後,請繼續清除資源,以免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用。

    如要瞭解後續步驟 (例如如何查看 HL7v2 訊息內容),請參閱「後續步驟」一節。

    清除所用資源

    如要避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

    如果您是為本快速入門導覽課程建立新專案,請按照「刪除專案」一節的步驟操作。如果沒有,請按照「刪除資料集」一節的步驟操作。

    Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

    刪除專案

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    刪除資料集

    如果不再需要這個快速入門導覽課程中建立的資料集,您可以刪除該資料集。如果刪除資料集,該資料集以及其中包含的所有 FHIR、HL7v2 或 DICOM 儲存庫都會永久刪除。

    gcloud

    使用 gcloud healthcare datasets delete 指令刪除資料集。

    使用下列任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您在「事前準備」中建立或選取的 Google Cloud 專案 ID

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud healthcare datasets delete my-dataset \
      --project=PROJECT_ID \
      --location=us-central1

    Windows (PowerShell)

    gcloud healthcare datasets delete my-dataset `
      --project=PROJECT_ID `
      --location=us-central1

    Windows (cmd.exe)

    gcloud healthcare datasets delete my-dataset ^
      --project=PROJECT_ID ^
      --location=us-central1
    如要確認,請輸入 Y。您應該會收到類似以下的回覆。

    回應

    You are about to delete dataset [my-dataset]
    
    Do you want to continue (Y/n)?  Y
    
    Deleted dataset [my-dataset].
    

    還順利嗎?

    後續步驟

    如要瞭解 Cloud Healthcare API 的一般資訊,以及如何使用其他介面執行本快速入門導覽課程中的工作,請參閱下列章節:

    DICOM

    如要瞭解 Cloud Healthcare API 如何導入 DICOMweb 標準,請參閱 DICOM 符合聲明

    FHIR

    要瞭解 Cloud Healthcare API 如何導入 FHIR 標準,請參閱 FHIR 符合聲明

    HL7v2