使用 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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    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. Make sure 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 PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  9. Install the Google Cloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    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. Make sure 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 PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.

建立資料集

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