Google Cloud CLI で医療データを保存する

このページでは、Google Cloud CLI で Cloud Healthcare API を使用して次のタスクを実行する方法について説明します。

  1. Cloud Healthcare API データセットを作成します。
  2. データセット内に次のいずれかのデータストアを作成します。
    • Digital Imaging and Communications in Medicine(DICOM)ストア
    • Fast Healthcare Interoperability Resources(FHIR)ストア
    • Health Level Seven International Version 2(HL7v2)ストア
  3. DICOM、FHIR、HL7v2 データを保存し、DICOM メタデータを表示します。

1 種類のデータストアのみを使用する場合は、はじめにデータセットを作成するのステップが完了後に、クイックスタートのセクションに直接スキップすることができます。

準備

  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. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. 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.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  7. 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.
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. 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.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Cloud Healthcare API:

    gcloud services enable healthcare.googleapis.com
  13. 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 を使用するには、少なくとも 1 つのデータセットを作成する必要があります。

次のサンプルは、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].

このクイックスタートを行うには、次のセクションから 1 つ選択します。

DICOM インスタンスの保存と表示

このセクションでは、次のタスクを行う方法を示しています。

  1. DICOM ストアを作成します。
  2. 一般公開された Cloud Storage バケットから 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 インスタンスをインポートする

サンプルの DICOM データは、gs://gcs-public-data--healthcare-nih-chest-xray Cloud Storage バケットにあります。

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 によって指定される長時間実行オペレーションの識別子。長時間実行オペレーションは、メソッド呼び出しが完了するまでに時間がかかる場合に返されます。通常、1 つの 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 トランザクションをサポートしていません。代わりに、Python を使用して実行する、Google の DICOMweb コマンドライン ツールを使用できます。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 は、始める前にで作成または選択した Google Cloud プロジェクトの ID に置き換えます。

    次のとおり出力されます。出力のフィールドについては、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 バケットから FHIR ストアに FHIR リソースをインポートします。

FHIR ストアの作成

FHIR ストアはデータセット内に存在し、FHIR データを含みます。次のサンプルは、FHIR バージョン R4 を使用する my-fhir-store という名前の FHIR ストアを作成する方法を示しています。

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 リソースをインポートする

サンプルの FHIR データは、gs://gcp-public-data--synthea-fhir-data-10-patients Cloud Storage バケットにあります。

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 によって指定される長時間実行オペレーションの識別子。長時間実行オペレーションは、メソッド呼び出しが完了するまでに時間がかかる場合に返されます。FHIR リソースのインポートには 1~2 分ほどかかります。
  • 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 バケットから 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 によって指定される長時間実行オペレーションの識別子。長時間実行オペレーションは、メソッド呼び出しが完了するまでに時間がかかる場合に返されます。通常、1 つの 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