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. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して 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. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して 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 を使用するには、少なくとも 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