DICOM ストレージ クラスを変更する

このページでは、Cloud Healthcare API で DICOM データのストレージ クラスを変更する方法について説明します。

概要

Cloud Healthcare API は次のストレージ クラスを提供します。

  • スタンダード
  • Nearline
  • Coldline
  • Archive

これらのストレージ クラスは、Cloud Storage のストレージ クラスに似ています。

次のようなシナリオでは、コスト削減の手段として DICOM オブジェクトのストレージ クラスを変更できます。

  • アクセス頻度の低い一連の DICOM 画像を標準ストレージから Nearline Storage または Coldline Storage に移動する。これにより、Standard Storage バケットが解放され、よりアクセス頻度の高い画像を保存できます。
  • 患者データを Standard Storage から Archive Storage に移行し、法的理由によって残しておく必要があるデータをアーカイブする。Archive Storage は、耐久性に優れた最低コストのストレージ クラスです。

DICOM ストレージ クラスを変更するメソッド

デフォルトでは、DICOM インスタンスに Standard Storage クラスがあります。ストレージ クラスは、次の方法で変更できます。

  • import メソッド: blobStorageSettings フィールドを使用して Cloud Storage バケットから DICOM インスタンスをインポートするときにストレージ クラスを設定します。
  • storeInstances メソッド: ローカルパスから DICOM インスタンスを保存するときにストレージ クラスを設定します
  • setBlobStorageSettings メソッド: インスタンス、シリーズ、またはスタディレベルの DICOM ストアでの DICOM インスタンスのストレージ クラスを変更します

準備

Cloud Healthcare API で DICOM インスタンスのストレージ クラスを変更する前に、次の料金の詳細を確認してください。

DICOM インスタンスのストレージ クラスを変更する

以下のサンプルは、インスタンスシリーズ、またはスタディレベルで DICOM インスタンスのストレージ クラスを変更する方法を示しています。

インスタンス レベル

インスタンス レベルで DICOM インスタンスのストレージ クラスを変更するには、次の手順を行います。

REST

projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings メソッドを使用します。

  1. インスタンス レベルで DICOM インスタンスのストレージ クラスを変更します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • STUDY_INSTANCE_UID: スタディ インスタンスの一意の ID
    • SERIES_INSTANCE_UID: シリーズ インスタンスの一意の識別子
    • INSTANCE_UID: インスタンスの一意の識別子
    • STORAGE_CLASS: STANDARDNEARLINECOLDLINEARCHIVE の DICOM ストア内の DICOM オブジェクトのストレージ クラス

    JSON 本文のリクエスト:

    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    cat > request.json << 'EOF'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    EOF

    その後、次のコマンドを実行して REST リクエストを送信します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instance/INSTANCE_UID:setBlobStorageSettings"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    @'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    その後、次のコマンドを実行して REST リクエストを送信します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instance/INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。
  2. 長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
    長時間実行オペレーションがまだ実行中の場合、サーバーは、ストレージ クラスの変更が保留中の DICOM インスタンスの数をレスポンスに含めて返します。LRO が正常に終了すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。

シリーズ レベル

シリーズレベルで DICOM インスタンスのストレージ クラスを変更するには、次の手順を行います。

REST

projects.locations.datasets.dicomStores.studies.series.setBlobStorageSettings メソッドを使用します。

  1. シリーズレベルで DICOM インスタンスのストレージ クラスを変更します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • STUDY_INSTANCE_UID: スタディ インスタンスの一意の ID
    • SERIES_INSTANCE_UID: シリーズ インスタンスの一意の識別子
    • STORAGE_CLASS: STANDARDNEARLINECOLDLINEARCHIVE の DICOM ストア内の DICOM オブジェクトのストレージ クラス

    JSON 本文のリクエスト:

    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    cat > request.json << 'EOF'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    EOF

    その後、次のコマンドを実行して REST リクエストを送信します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID:setBlobStorageSettings"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    @'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    その後、次のコマンドを実行して REST リクエストを送信します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。
  2. 長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
    長時間実行オペレーションがまだ実行中の場合、サーバーは、ストレージ クラスの変更が保留中の DICOM インスタンスの数をレスポンスに含めて返します。LRO が正常に終了すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。

スタディレベル

スタディレベルで DICOM インスタンスのストレージ クラスを変更するには、次の手順を行います。

REST

projects.locations.datasets.dicomStores.studies.setBlobStorageSettings メソッドを使用します。

  1. スタディレベルで DICOM インスタンスのストレージ クラスを変更します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • STUDY_INSTANCE_UID: スタディ インスタンスの一意の ID
    • STORAGE_CLASS: STANDARDNEARLINECOLDLINEARCHIVE の DICOM ストア内の DICOM オブジェクトのストレージ クラス

    JSON 本文のリクエスト:

    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    cat > request.json << 'EOF'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    EOF

    その後、次のコマンドを実行して REST リクエストを送信します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID:setBlobStorageSettings"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    @'
    {
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    その後、次のコマンドを実行して REST リクエストを送信します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID:setBlobStorageSettings" | Select-Object -Expand Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。
  2. 長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
    長時間実行オペレーションがまだ実行中の場合、サーバーは、ストレージ クラスの変更が保留中の DICOM インスタンスの数をレスポンスに含めて返します。LRO が正常に終了すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。

フィルタを使用する

次のセクションでは、フィルタ ファイルを使用して特定のファイルをフィルタし、スタディ、シリーズ、またはインスタンス レベルでストレージ クラスを変更する方法について説明します。

フィルタ ファイルが保存されているバケットにアクセスできる Healthcare サービス エージェントのサービス アカウントに、Storage オブジェクト閲覧者のロールを追加する必要があります。

フィルタ ファイルを構成する

フィルタ ファイルを使用して、ストレージ クラスを変更する必要がある DICOM ファイルのリストを定義できます。

フィルタ ファイルの各行はスタディ、シリーズ、またはインスタンスを定義し、/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID の形式を使用します。

フィルタを適用するレベルを指定するために、行を切り捨てることができます。たとえば、/studies/STUDY_INSTANCE_UID を指定してスタディ全体のストレージ クラスを変更できます。また、/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID を指定して、シリーズ全体のストレージ クラスを変更することもできます。

次のフィルタ ファイルについて考えてみましょう。

/studies/1.123.456.789
/studies/1.666.333.111/series/123.456
/studies/1.666.333.111/series/567.890
/studies/1.888.999.222/series/123.456/instances/111
/studies/1.888.999.222/series/123.456/instances/222
/studies/1.888.999.222/series/123.456/instances/333

このフィルタ ファイルを使用すると、次のものがフィルタされます。

  • スタディ インスタンス UID が 1.123.456.789 のスタディ全体
  • スタディ 1.666.333.111 内のシリーズ インスタンス UID が 123.456567.890 の 2 つの別々のシリーズ
  • スタディ 1.888.999.222 とシリーズ 123.456 でインスタンス ID が 111222333 の独立した 3 つのインスタンス

BigQuery を使用してフィルタ ファイルを作成する

BigQuery を使用してフィルタ ファイルを作成するには、DICOM ストアのメタデータを BigQuery にエクスポートする必要があります。エクスポートされたメタデータには、DICOM ストアの DICOM データのスタディ UID、シリーズ UID、インスタンス UID が表示されます。

エクスポート後、次の手順を行います。

  1. 必要なスタディ UID、シリーズ UID、インスタンス UID にクエリを実行します。

    たとえば、DICOM メタデータを BigQuery にエクスポートした後、次のクエリを実行してスタディ UID、シリーズ UID、インスタンス UID を連結し、フィルタ ファイル形式の要件と一致させます。

    SELECT CONCAT
        ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID)
    FROM
        [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
    
  2. (省略可)クエリが最大レスポンス サイズを超える大きな結果セットを返す場合は、BigQuery でクエリ結果を新しい宛先テーブルに保存します。

  3. クエリ結果をファイルに保存し、Cloud Storage にエクスポートします。手順 2 でクエリ結果を新しい宛先テーブルに保存した場合は、テーブルデータのエクスポートを参照して、テーブルのコンテンツを Cloud Storage にエクスポートします。

  4. 必要に応じて、エクスポートしたファイルを編集し、フィルタ ファイルとして使用します。Cloud Storage 内のフィルタ ファイルの場所は、setBlobStorageSettings メソッドでは必須です。

フィルタ ファイルを手動で作成する

カスタム コンテンツを含むフィルタ ファイルを作成し、Cloud Storage バケットにアップロードするには、次の手順を行います。

  1. ローカルマシンでストレージ クラスを変更する必要があるインスタンスのリストを含むフィルタ ファイルを作成します。フィルタ ファイルを構成するで説明されている形式を使用します。

  2. フィルタのテキスト ファイルを Cloud Storage のロケーションにアップロードします。

    gsutil cp PATH_TO_FILTER_FILE/FILTER_FILE_NAME.txt gs://BUCKET/DIRECTORY
    

    次のように置き換えます。

    • PATH_TO_FILTER_FILE: ローカルマシン上のフィルタ ファイルのパス
    • FILTER_FILE_NAME: フィルタ ファイルの名前
    • BUCKET/DIRECTORY: Cloud Storage のロケーションのパス

    例:

    gsutil cp my-local-folder/archive-filters.txt gs://my-bucket/my-directory
    

フィルタ ファイルを渡す

REST

  1. projects.locations.datasets.dicomStores.studies.setBlobStorageSettings メソッドを使用して、フィルタ ファイル内のすべてのインスタンスのストレージ クラスを DICOM ストアレベルで変更します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • STORAGE_CLASS: STANDARDNEARLINECOLDLINEARCHIVE の DICOM ストア内の DICOM オブジェクトのストレージ クラス
    • BUCKET/DIRECTORY

    JSON 本文のリクエスト:

    {
      "filter_config": {
        "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY"
      },
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    cat > request.json << 'EOF'
    {
      "filter_config": {
        "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY"
      },
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    EOF

    その後、次のコマンドを実行して REST リクエストを送信します。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings"

    PowerShell

    リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。

    @'
    {
      "filter_config": {
        "resource_paths_gcs_uri": "gs://BUCKET/DIRECTORY"
      },
      "blobStorageSettings": {
        "blob_storage_class": "STORAGE_CLASS"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    その後、次のコマンドを実行して REST リクエストを送信します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings" | Select-Object -Expand Content
    次のとおり出力されます。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. 長時間実行オペレーションのステータスを取得します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

    リクエストを送信するには、次のいずれかのオプションを選択します。

    curl

    次のコマンドを実行します。

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

    PowerShell

    次のコマンドを実行します。

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
    長時間実行オペレーションがまだ実行中の場合、サーバーは、ストレージ クラスの変更が保留中の DICOM インスタンスの数をレスポンスに含めて返します。LRO が正常に終了すると、サーバーはオペレーションのステータスを含む JSON 形式のレスポンスを返します。

DICOM インスタンスのストレージ クラスを確認する

getStorageInfo メソッドを使用する

以下のサンプルは、DICOM インスタンスのストレージ クラスを表示する方法を示しています。

REST

projects.locations.datasets.dicomStores.dicomWeb.studies.series.instances.getStorageInfo メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID
  • LOCATION: データセットの場所
  • DATASET_ID: DICOM ストアの親データセット
  • DICOM_STORE_ID: DICOM ストアの ID
  • STUDY_INSTANCE_UID: スタディ インスタンスの一意の ID
  • SERIES_INSTANCE_UID: シリーズ インスタンスの一意の識別子
  • INSTANCE_UID: インスタンスの一意の識別子

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

次のコマンドを実行します。

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo"

PowerShell

次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

BigQuery でエクスポートされた DICOM メタデータのクエリ

DICOM メタデータを BigQuery にエクスポートして、BigQuery データセットにクエリを実行し、DICOM インスタンスのストレージ クラスを表示することもできます。

たとえば、次のクエリを実行して、BigQuery データセット内のすべてのインスタンスのスタディ インスタンス UID、シリーズ インスタンス UID、インスタンス UID、blob ストレージ サイズ、blob ストレージ クラスを表示できます。

SELECT StudyInstanceUID,SeriesInstanceUID,SOPInstanceUID,BlobStorageSize,StorageClass FROM PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE LIMIT 1000