使用 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • 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:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • 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:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    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