BigQuery への DICOM メタデータのエクスポート

このページでは、探索と分析のために DICOM メタデータを BigQuery にエクスポートする方法について説明します。DICOM メタデータをエクスポートするときに作成される BigQuery スキーマについては、BigQuery DICOM スキーマについてをご覧ください。

BigQuery の権限を設定する

DICOM メタデータを BigQuery テーブルにエクスポートする前に、Cloud Healthcare Service Agentサービス アカウントに追加の権限を付与する必要があります。詳しくは、DICOM ストアの BigQuery 権限をご覧ください。

BigQuery の宛先の設定

BigQuery の宛先を設定するときは、次のように完全修飾された URI を使用します。
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
エクスポート オペレーションの動作は、次の事項に応じて異なります。
  • 宛先テーブルがすでに存在するかどうか
  • force フィールド(API を使用)または --overwrite-table フラグ(Google Cloud CLI を使用)を設定したかどうか
  • writeDisposition enum に値を設定しているかどうか。writeDisposition enumを使用する場合は、force フィールドを設定しないでください。
それぞれの場合の動作は次のようになります。
  • 宛先テーブルがすでに存在し、forcetrue に設定されているか、--overwrite-table フラグが指定されている場合は、エクスポート オペレーションによって既存のテーブルが上書きされます。
  • 宛先テーブルがすでに存在し、forcefalse に設定されているか、--overwrite-table フラグが指定されていない場合は、エラーが発生します。
  • 宛先テーブルがまだ存在しない場合は、force フィールドまたは --overwrite-table フラグを指定しているかに関係なく、新しいテーブルが作成されます。
  • writeDisposition の動作については、そのドキュメントをご覧ください。writeDisposition 列挙型は、force を使用する場合のオプションと同様の動作を行います。ただし、宛先テーブルがすでに存在していて空の場合、エクスポート オペレーションはエラーを返すのではなく完了します。

DICOM メタデータのエクスポート

以下のサンプルは、DICOM メタデータを BigQuery テーブルにエクスポートする方法を示しています。これらのサンプルでは、DICOM ストアと BigQuery テーブルは同じプロジェクトにあります。DICOM メタデータを別のプロジェクトの BigQuery テーブルにエクスポートする場合は、DICOM メタデータを別のプロジェクトにエクスポートするをご覧ください。

Console

DICOM メタデータを BigQuery テーブルにエクスポートするには、次の手順を行います。

  1. Google Cloud コンソールで、[データセット] ページに移動します。

    [データセット] に移動

  2. エクスポートするメタデータを含む DICOM ストアがあるデータセットをクリックします。

  3. DICOM ストアと同じ行で [アクション] リストを開き、[エクスポート] を選択します。

  4. 表示される [DICOM ストアのエクスポート] ページで、[BigQuery テーブル] を選択します。

  5. [Project] フィールドで [参照] をクリックして、プロジェクトを選択します。

  6. [データセット] リストで、DICOM メタデータをエクスポートする BigQuery データセットを選択します。

  7. [テーブル] フィールドに新しいテーブル名を入力します。宛先テーブルが有効であることを確認するため、BigQuery によって各選択項目がチェックされます。

  8. [宛先テーブルの書き込み処理] セクションで、次のいずれかを選択します。これらのオプションは WriteDisposition enum に対応しています。

    • 宛先テーブルが空の場合にのみデータをエクスポート: WRITE_EMPTY と同等です。
    • 宛先テーブルにデータを追加する: WRITE_APPEND と同等です。
    • インスタンスを書き込む前に宛先テーブル内の既存のデータをすべて消去する: WRITE_TRUNCATE と同等です。
  9. [エクスポート] をクリックして、DICOM メタデータを BigQuery テーブルにエクスポートします。

  10. オペレーションのステータスを追跡するには、[オペレーション] タブをクリックします。オペレーションが完了すると、次の状況が表示されます。
    • [長時間実行オペレーションのステータス] セクションでは、[OK] の見出しの下に、緑色のチェックマークが表示されます。
    • [概要] セクションでは、オペレーション ID と同じ行に緑色のチェックマークと [OK] インジケーターが表示されます。
    エラーが発生した場合は、[アクション] をクリックしてから、[Cloud Logging で詳細を表示] をクリックします。

gcloud

DICOM メタデータを BigQuery テーブルにエクスポートするには、gcloud healthcare dicom-stores export bq コマンドを実行します。

  1. DICOM メタデータをエクスポートします。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする既存の BigQuery データセットの名前
    • BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • write-empty: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • write-truncate: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • write-append: BigQuery テーブルにデータを追加します。

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

    Linux、macOS、Cloud Shell

    gcloud healthcare dicom-stores export bq DICOM_STORE_ID \
      --location=LOCATION \
      --dataset=DATASET_ID \
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID \
      --write-disposition=WRITE_DISPOSITION
    

    Windows(PowerShell)

    gcloud healthcare dicom-stores export bq DICOM_STORE_ID `
      --location=LOCATION `
      --dataset=DATASET_ID `
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID `
      --write-disposition=WRITE_DISPOSITION
    

    Windows(cmd.exe)

    gcloud healthcare dicom-stores export bq DICOM_STORE_ID ^
      --location=LOCATION ^
      --dataset=DATASET_ID ^
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ^
      --write-disposition=WRITE_DISPOSITION
    
    レスポンスは次のとおりです。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。このコマンドは、長時間実行オペレーションをポーリングし、エクスポートの完了後に name フィールドにオペレーションの名前を出力します。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

    レスポンス

    Request issued for: [DICOM_STORE_ID]
    Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    

  2. オペレーションの詳細を表示するには、gcloud healthcare operations describe コマンドを実行してレスポンスの OPERATION_ID を指定します。

    後述のコマンドデータを使用する前に、次のように置き換えます。

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

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

    Linux、macOS、Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --dataset=DATASET_ID \
        --location=LOCATION
    

    Windows(PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=PROJECT_ID `
        --dataset=DATASET_ID `
        --location=LOCATION
    

    Windows(cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=PROJECT_ID ^
        --dataset=DATASET_ID ^
        --location=LOCATION
    

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

    レスポンス

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.protobuf.Empty'
    

REST

DICOM メタデータを BigQuery テーブルにエクスポートするには、projects.locations.datasets.dicomStores.export メソッドを使用します。

  1. DICOM メタデータをエクスポートします。

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

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする既存の BigQuery データセットの名前
    • BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • WRITE_EMPTY: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • WRITE_TRUNCATE: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • WRITE_APPEND: BigQuery テーブルにデータを追加します。

    JSON 本文のリクエスト:

    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

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

    curl

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

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    EOF

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

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

    PowerShell

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

    @'
    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | 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; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content

    API Explorer

    リクエスト本文をコピーして、メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスには、長時間実行オペレーション(LRO)の識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでに時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. projects.locations.datasets.operations.get メソッドを使用して、長時間実行オペレーションのステータスを取得します。

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

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

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

    curl

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

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    API Explorer

    メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須項目を入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスに "done": true が含まれている場合、長時間実行オペレーションは終了しています。

別のプロジェクトへの DICOM メタデータのエクスポート

あるプロジェクトの DICOM ストアから別のプロジェクトの BigQuery データセットに DICOM メタデータをエクスポートするには、まず、宛先プロジェクトで IAM 権限を設定する方法について、別のプロジェクトの権限に DICOM メタデータをエクスポートするをご覧ください。

gcloud

あるプロジェクトの DICOM ストアから別のプロジェクトの BigQuery テーブルに DICOM メタデータをエクスポートするには、gcloud healthcare dicom-stores export bq コマンドを使用します。

  1. DICOM メタデータをエクスポートします。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • SOURCE_PROJECT_ID: ソースの Google Cloud プロジェクトの ID
    • SOURCE_LOCATION: ソース データセットのロケーション
    • SOURCE_DATASET_ID: ソース DICOM ストアの親データセット
    • SOURCE_DICOM_STORE_ID: ソース DICOM ストアの ID
    • DESTINATION_PROJECT_ID: 異なるプロジェクトの ID
    • DESTINATION_BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする宛先プロジェクト内の既存の BigQuery データセットの名前
    • DESTINATION_BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • write-empty: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • write-truncate: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • write-append: BigQuery テーブルにデータを追加します。

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

    Linux、macOS、Cloud Shell

    gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID \
      --project=SOURCE_PROJECT_ID \
      --location=SOURCE_LOCATION \
      --dataset=SOURCE_DATASET_ID \
      --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID \
      --write-disposition=WRITE_DISPOSITION
    

    Windows(PowerShell)

    gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID `
      --project=SOURCE_PROJECT_ID `
      --location=SOURCE_LOCATION `
      --dataset=SOURCE_DATASET_ID `
      --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID `
      --write-disposition=WRITE_DISPOSITION
    

    Windows(cmd.exe)

    gcloud healthcare dicom-stores export bq SOURCE_DICOM_STORE_ID ^
      --project=SOURCE_PROJECT_ID ^
      --location=SOURCE_LOCATION ^
      --dataset=SOURCE_DATASET_ID ^
      --bq-table=bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID ^
      --write-disposition=WRITE_DISPOSITION
    
    レスポンスは次のとおりです。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。このコマンドは、長時間実行オペレーションをポーリングし、エクスポートの完了後に name フィールドにオペレーションの名前を出力します。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

    レスポンス

    Request issued for: [SOURCE_DICOM_STORE_ID]
    Waiting for operation [projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
    

  2. オペレーションの詳細を表示するには、gcloud healthcare operations describe コマンドを実行してレスポンスの OPERATION_ID を指定します。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • SOURCE_PROJECT_ID: ソースの Google Cloud プロジェクトの ID
    • SOURCE_LOCATION: ソース データセットのロケーション
    • SOURCE_DATASET_ID: ソース データセットの ID
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

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

    Linux、macOS、Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=SOURCE_PROJECT_ID \
        --dataset=SOURCE_DATASET_ID \
        --location=SOURCE_LOCATION
    

    Windows(PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=SOURCE_PROJECT_ID `
        --dataset=SOURCE_DATASET_ID `
        --location=SOURCE_LOCATION
    

    Windows(cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=SOURCE_PROJECT_ID ^
        --dataset=SOURCE_DATASET_ID ^
        --location=SOURCE_LOCATION
    

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

    レスポンス

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.protobuf.Empty'
    

REST

あるプロジェクトの DICOM ストアから別のプロジェクトの BigQuery テーブルに DICOM メタデータをエクスポートするには、projects.locations.datasets.dicomStores.export メソッドを使用します。

  1. DICOM メタデータをエクスポートします。

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

    • SOURCE_PROJECT_ID: ソースの Google Cloud プロジェクトの ID
    • SOURCE_LOCATION: ソース データセットのロケーション
    • SOURCE_DATASET_ID: ソース DICOM ストアの親データセット
    • SOURCE_DICOM_STORE_ID: ソース DICOM ストアの ID
    • DESTINATION_PROJECT_ID: 異なるプロジェクトの ID
    • DESTINATION_BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする宛先プロジェクト内の既存の BigQuery データセットの名前
    • DESTINATION_BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • WRITE_EMPTY: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • WRITE_TRUNCATE: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • WRITE_APPEND: BigQuery テーブルにデータを追加します。

    JSON 本文のリクエスト:

    {
      "bigqueryDestination": {
          "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    

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

    curl

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

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
          "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    EOF

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

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:export"

    PowerShell

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

    @'
    {
      "bigqueryDestination": {
          "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | 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; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:export" | Select-Object -Expand Content

    API Explorer

    リクエスト本文をコピーして、メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスには、長時間実行オペレーション(LRO)の識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでに時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. projects.locations.datasets.operations.get メソッドを使用して、長時間実行オペレーションのステータスを取得します。

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

    • SOURCE_PROJECT_ID: ソースの Google Cloud プロジェクトの ID
    • SOURCE_LOCATION: ソース データセットのロケーション
    • SOURCE_DATASET_ID: ソース データセットの ID
    • OPERATION_ID: 長時間実行オペレーションから返された ID。

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

    curl

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

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_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/v1/projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    API Explorer

    メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須項目を入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスに "done": true が含まれている場合、長時間実行オペレーションは終了しています。

フィルタを使用した DICOM メタデータのエクスポート

デフォルトでは、DICOM ファイルを Cloud Storage にエクスポートする際は、指定した DICOM ストア内のすべての DICOM ファイルがエクスポートされます。同様に、DICOM メタデータを BigQuery にエクスポートする際は、指定した DICOM ストア内のすべての DICOM データのメタデータがエクスポートされます。

フィルタを使用して、DICOM データまたはメタデータのサブセットをエクスポートできます。フィルタはフィルタ ファイルで定義します。

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

フィルタ ファイルでは、Cloud Storage または BigQuery にどの DICOM ファイルをエクスポートするかを定義します。フィルタ ファイルは次のレベルで構成できます。

  • スタディレベル
  • シリーズ レベル
  • インスタンス レベル

フィルタ ファイルは、エクスポートするスタディ、シリーズ、インスタンスをそれぞれ定義する行を含む、複数の行で構成されます。各行には /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]] 形式を使用します。

フィルタ ファイルで渡す際に、フィルタ ファイルにスタディ、シリーズ、またはインスタンスが指定されていない場合、そのスタディ、シリーズ、インスタンスはエクスポートされません。

パスの /studies/STUDY_UID の部分のみが必須です。/studies/STUDY_UID を指定してスタディ全体をエクスポートするか、/studies/STUDY_UID/series/SERIES_UID を指定してシリーズ全体をエクスポートすることが可能です。

次のフィルタ ファイルについて考えてみましょう。このフィルタ ファイルを使用すると、1 つのスタディ、2 つのシリーズ、3 つの個別のインスタンスがエクスポートされます。

/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

BigQuery を使用したフィルタ ファイルの作成

通常、フィルタ ファイルを作成するには、まず DICOM ストアから BigQuery にメタデータをエクスポートします。これにより、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 にエクスポートできます。この手順については、テーブルデータのエクスポートをご覧ください。エクスポートされるファイルはフィルタ ファイルです。エクスポート オペレーションでフィルタを指定するときは、Cloud Storage 内のフィルタ ファイルの場所を使用します。

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

カスタム コンテンツを含むフィルタ ファイルを作成し、Cloud Storage バケットにアップロードできます。エクスポート オペレーションでフィルタを指定するときは、Cloud Storage 内のフィルタ ファイルの場所を使用します。次のサンプルは、gsutil cp コマンドを使用してフィルタ ファイルを Cloud Storage バケットにアップロードする方法を示しています。
gsutil cp FILTER_FILE gs://BUCKET

フィルタ ファイルで渡す

フィルタ ファイルを作成したら、DICOM エクスポート オペレーションを呼び出し、REST API を使用してフィルタ ファイルで渡します。以下のサンプルでは、フィルタを使用して DICOM メタデータをエクスポートする方法が示されます。

gcloud

フィルタを使用して DICOM メタデータを BigQuery テーブルにエクスポートするには、gcloud beta healthcare dicom-stores export bq コマンドを実行します。

  1. DICOM メタデータをエクスポートします。

    後述のコマンドデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする既存の BigQuery データセットの名前
    • BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • BUCKET: フィルタ ファイルを含む Cloud Storage バケットの名前。フィルタ ファイルがディレクトリにある場合は、パスにそのディレクトリを含めます。
    • FILTER_FILE: Cloud Storage バケット内のフィルタ ファイルの場所と名前
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • write-empty: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • write-truncate: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • write-append: BigQuery テーブルにデータを追加します。

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

    Linux、macOS、Cloud Shell

    gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID \
      --location=LOCATION \
      --dataset=DATASET_ID \
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID \
      --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE \
      --write-disposition=WRITE_DISPOSITION
    

    Windows(PowerShell)

    gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID `
      --location=LOCATION `
      --dataset=DATASET_ID `
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID `
      --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE `
      --write-disposition=WRITE_DISPOSITION
    

    Windows(cmd.exe)

    gcloud beta healthcare dicom-stores export bq DICOM_STORE_ID ^
      --location=LOCATION ^
      --dataset=DATASET_ID ^
      --bq-table=bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID ^
      --filter-config-gcs-uri=gs://BUCKET/FILTER_FILE ^
      --write-disposition=WRITE_DISPOSITION
    
    レスポンスは次のとおりです。レスポンスには、長時間実行オペレーションの識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでにかなりの時間がかかる場合に返されます。このコマンドは、長時間実行オペレーションをポーリングし、エクスポートの完了後に name フィールドにオペレーションの名前を出力します。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

    レスポンス

    Request issued for: [DICOM_STORE_ID]
    Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...⠏
    name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
    

  2. オペレーションの詳細を表示するには、gcloud healthcare operations describe コマンドを実行してレスポンスの OPERATION_ID を指定します。

    後述のコマンドデータを使用する前に、次のように置き換えます。

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

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

    Linux、macOS、Cloud Shell

    gcloud healthcare operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --dataset=DATASET_ID \
        --location=LOCATION
    

    Windows(PowerShell)

    gcloud healthcare operations describe OPERATION_ID `
        --project=PROJECT_ID `
        --dataset=DATASET_ID `
        --location=LOCATION
    

    Windows(cmd.exe)

    gcloud healthcare operations describe OPERATION_ID ^
        --project=PROJECT_ID ^
        --dataset=DATASET_ID ^
        --location=LOCATION
    

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

    レスポンス

    done: true
    // If there were any errors, an `error` field displays instead of a `response` field.
    // See Troubleshooting long-running operations for a list of response codes.
    error: ERROR
      code: ERROR_CODE
      message: DESCRIPTION
    metadata:
      '@type': 'type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata'
      apiMethodName: 'google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData_bq'
      counter:
        success: 'SUCCESS_COUNT'
        // If there were any failures, they display in the `failure` field.
        failure: 'FAILURE_COUNT'
      createTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      endTime: 'YYYY-MM-DDTHH:MM:SS+ZZ:ZZ'
      logsUrl: https://console.cloud.google.com/CLOUD_LOGGING_URL
    name: projects/SOURCE_PROJECT_ID/locations/SOURCE_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID
    // The `response` field only displays if there were no errors.
    response:
      '@type': 'type.googleapis.com/google.protobuf.Empty'
    

REST

フィルタを使用して DICOM メタデータを BigQuery テーブルにエクスポートするには、projects.locations.datasets.dicomStores.export メソッドを使用します。

  1. DICOM メタデータをエクスポートします。

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

    • PROJECT_ID: Google Cloud プロジェクトの ID
    • LOCATION: データセットの場所
    • DATASET_ID: DICOM ストアの親データセット
    • DICOM_STORE_ID: DICOM ストアの ID
    • BIGQUERY_DATASET_ID: DICOM メタデータをエクスポートする既存の BigQuery データセットの名前
    • BIGQUERY_TABLE_ID: BigQuery データセット内の新規または既存のテーブルの名前。エクスポート オペレーションによって新しいテーブルが作成される場合は、テーブルの命名に関するページでテーブル名の要件をご確認ください。
    • BUCKET: フィルタ ファイルを含む Cloud Storage バケットの名前。フィルタ ファイルがディレクトリにある場合は、パスにそのディレクトリを含めます。
    • FILTER_FILE: Cloud Storage バケット内のフィルタ ファイルの場所と名前
    • WRITE_DISPOSITION: WriteDisposition enum の値。次の値のいずれかを使用できます。
      • WRITE_EMPTY: BigQuery テーブルが空の場合にのみデータをエクスポートします。
      • WRITE_TRUNCATE: DICOM インスタンスを書き込む前に、BigQuery テーブル内の既存のデータをすべて消去します。
      • WRITE_APPEND: BigQuery テーブルにデータを追加します。

    JSON 本文のリクエスト:

    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      },
      "filterConfig": {
          "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE"
      }
    }
    

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

    curl

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

    cat > request.json << 'EOF'
    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      },
      "filterConfig": {
          "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE"
      }
    }
    EOF

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

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

    PowerShell

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

    @'
    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      },
      "filterConfig": {
          "resourcePathsGcsUri": "gs://BUCKET/FILTER_FILE"
      }
    }
    '@  | 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; charset=utf-8" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content

    API Explorer

    リクエスト本文をコピーして、メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスには、長時間実行オペレーション(LRO)の識別子が含まれます。長時間実行オペレーションは、メソッドの呼び出しが完了するまでに時間がかかる場合に返されます。OPERATION_IDの値をメモします。この値は次の手順で必要になります。

  2. projects.locations.datasets.operations.get メソッドを使用して、長時間実行オペレーションのステータスを取得します。

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

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

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

    curl

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

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

    API Explorer

    メソッド リファレンス ページを開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。必須項目を入力して、[Execute] をクリックします。

    次のとおり出力されます。レスポンスに "done": true が含まれている場合、長時間実行オペレーションは終了しています。

BigQuery で DICOM データのクエリと分析を行う

DICOM メタデータを BigQuery テーブルにエクスポートした後、サンプルクエリを実行してメタデータの詳細を取得できます。次のサンプルは、一般的なユースケースのクエリを実行する方法を示しています。

メタデータを横断する検索

画像保存通信システム(PACS)や、ベンダー ニュートラル アーカイブ(VNA)など、他のシステムでは検索が困難な大量のメタデータ全体を検索する必要があるとします。次のクエリは、患者の PatientID 値に対してクエリを実行し、DICOMweb パスを使用して特定の画像インスタンスを取得する方法を示しています。このサンプルは、NIH 胸部 X 線データセットchc-nih-chest-xray.nih_chest_xray.nih_chest_xray テーブルを使用します。

#standardSQL
SELECT CONCAT('/dicomWeb/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) as DICOMwebPath
FROM `chc-nih-chest-xray.nih_chest_xray.nih_chest_xray`
WHERE PatientID = '19045';

このクエリにより、患者に関連付けられたスタディが返されます。次のレスポンスでは、JSON 形式を使用しています。

[
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.169629990647803559688464142879817265366193/series/1.3.6.1.4.1.11129.5.5.141990184899344268273968625887396932057061/instances/1.3.6.1.4.1.11129.5.5.162448513493627342869165322873398445570578"
  },
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.114160532832901355654444239008681456919023/series/1.3.6.1.4.1.11129.5.5.178361108150351071908200174504411112440700/instances/1.3.6.1.4.1.11129.5.5.145959606905209488520697484018030440952428"
  },
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.177801331756958922168115732894519725643007/series/1.3.6.1.4.1.11129.5.5.134128639331055702643451404466208677561042/instances/1.3.6.1.4.1.11129.5.5.148534317486838863760908141408862094292875"
  },
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.119570482687494886334491471870663517807852/series/1.3.6.1.4.1.11129.5.5.148050768676645373034111775531663876425927/instances/1.3.6.1.4.1.11129.5.5.111153708388576066195389700503245704293300"
  },
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.144704399171290022427247626928443085419319/series/1.3.6.1.4.1.11129.5.5.190285793344339390593165731988543561416633/instances/1.3.6.1.4.1.11129.5.5.110245902713751842026864359179754889505217"
  },
  {
    "DICOMwebPath": "/dicomWeb/studies/1.3.6.1.4.1.11129.5.5.172276126220388966649736649950361623806435/series/1.3.6.1.4.1.11129.5.5.171512371498506519035489729484464872160452/instances/1.3.6.1.4.1.11129.5.5.111721417729733087384317002785068394901165"
  }
]

最新スタディのクエリ

PACS 読み取り作業リストに、データセットの最新スタディを入力するとします。

次のクエリは、最新のスタディを、インスタンス数や周囲のメタデータとともに取得して表示する方法を示しています。このサンプルでは、TCIA データセットbigquery-public-data.idc_v5.dicom_metadata テーブルを使用します。

#standardSQL
SELECT
  MIN(CONCAT(StudyDate, ' ', StudyTime)) as StudyDateTime, MIN(PatientID) as PatientID, StudyInstanceUID, COUNT(*) as InstanceCount
FROM
 `bigquery-public-data.idc_v5.dicom_metadata` AS dicom
GROUP BY StudyInstanceUID
ORDER BY StudyDateTime DESC
LIMIT 10;

クエリにより次の情報が返されます。

  • システムに入力された最新 10 件のスタディとそのスタディがシステムに入力された日時
  • 各スタディに関連する患者
  • スタディの UID
  • スタディに関連付けられたインスタンスの数

次のレスポンスでは、JSON 形式を使用しています。

[
  {
    "StudyDateTime": "2021-07-11 00:38:22",
    "PatientID": "C3L-01924",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2466232160.763753303.1625963902816.3.0",
    "InstanceCount": "4"
  }, {
    "StudyDateTime": "2021-07-10 23:52:10",
    "PatientID": "C3L-01924",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2463459463.1074873794.1625961130119.3.0",
    "InstanceCount": "4"
  }, {
    "StudyDateTime": "2021-07-10 23:31:13",
    "PatientID": "C3L-02513",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2462202516.1453336368.1625959873172.3.0",
    "InstanceCount": "7"
  }, {
    "StudyDateTime": "2021-07-10 23:25:17",
    "PatientID": "C3L-01924",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2461846936.496969835.1625959517592.3.0",
    "InstanceCount": "4"
  }, {
    "StudyDateTime": "2021-07-10 22:35:16",
    "PatientID": "C3L-02515",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2458845347.1905567435.1625956516003.3.0",
    "InstanceCount": "6"
  }, {
    "StudyDateTime": "2021-07-10 21:49:46",
    "PatientID": "C3L-02515",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2456116127.1264613559.1625953786783.3.0",
    "InstanceCount": "7"
  }, {
    "StudyDateTime": "2021-07-10 21:46:04",
    "PatientID": "C3L-02513",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2455894080.1705479047.1625953564736.3.0",
    "InstanceCount": "6"
  }, {
    "StudyDateTime": "2021-07-10 21:13:30",
    "PatientID": "C3L-01924",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2453939652.2052768474.1625951610308.3.0",
    "InstanceCount": "4"
  }, {
    "StudyDateTime": "2021-07-10 21:10:17",
    "PatientID": "C3L-02515",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2453746219.164669562.1625951416875.3.0",
    "InstanceCount": "6"
  }, {
    "StudyDateTime": "2021-07-10 20:05:48",
    "PatientID": "C3L-02513",
    "StudyInstanceUID": "1.3.6.1.4.1.5962.99.1.2449877792.1996682667.1625947548448.3.0",
    "InstanceCount": "6"
  }
]

制限事項と追加の動作

DICOM タグが BigQuery でサポートされているタイプでない(除外される VR に表示される)場合、宛先 BigQuery テーブルの別の列(DroppedTags.TagName)に表示されます。

DICOM エクスポート リクエストのトラブルシューティング

BigQuery リクエストに対する DICOM のメタデータのエクスポート中にエラーが発生した場合は、エラーが Cloud Logging に記録されます。詳細については、Cloud Logging でのエラーログの表示をご覧ください。