使用 Google Cloud CLI 儲存健康資料

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

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

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

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

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

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

    gcloud init
  5. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  6. 確認專案已啟用計費功能 Google Cloud

  7. 啟用 Cloud Healthcare API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable healthcare.googleapis.com
  8. 將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令: 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

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。
  9. 安裝 Google Cloud CLI。

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

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

    gcloud init
  12. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  13. 確認專案已啟用計費功能 Google Cloud

  14. 啟用 Cloud Healthcare API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable healthcare.googleapis.com
  15. 將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令: 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

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。

建立資料集

「資料集」包含資料儲存庫,以及含有醫療照護資料的資料儲存庫。 如要使用 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 Common Module 的屬性」。

    [
      {
        "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 專案。

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

選用:從 gcloud CLI 撤銷憑證。

gcloud auth revoke

刪除專案

    刪除 Google Cloud 專案:

    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