DICOM-Metadaten nach BigQuery exportieren

Auf dieser Seite wird erläutert, wie Sie DICOM-Metadaten zur Untersuchung und Analyse nach BigQuery exportieren können. Informationen zum BigQuery-Schema, das beim Export von DICOM-Metadaten erstellt wird, finden Sie unter Hintergrundinformationen zum BigQuery-DICOM-Schema.

BigQuery-Berechtigungen festlegen

Bevor Sie DICOM-Metadaten in eine BigQuery-Tabelle exportieren, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter BigQuery-Berechtigungen für den DICOM-Speicher.

BigQuery-Ziel festlegen

Verwenden Sie beim Festlegen des BigQuery-Ziels den vollständig qualifizierten URI so:
bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID
Das Verhalten des Exportvorgangs kann abhängig von den folgenden Faktoren variieren:
  • Ob die Zieltabelle bereits vorhanden ist
  • Ob Sie das Feld force (mit der API) oder das Flag --overwrite-table (über die Google Cloud CLI) festgelegt haben
  • Ob ein Wert für die Aufzählung writeDisposition festgelegt wurde. Wenn Sie die writeDisposition-Aufzählung verwenden, darf das Feld force nicht festgelegt werden.
Das Verhalten in den einzelnen Fällen ist so:
  • Wenn die Zieltabelle bereits vorhanden ist und force auf true gesetzt oder das Flag --overwrite-table angegeben ist, wird die vorhandene Tabelle durch den Exportvorgang überschrieben.
  • Wenn die Zieltabelle bereits vorhanden ist und force auf false gesetzt oder das Flag --overwrite-table nicht angegeben ist, tritt ein Fehler auf.
  • Wenn die Zieltabelle noch nicht vorhanden ist, wird eine neue Tabelle erstellt, unabhängig davon, ob Sie das Feld force oder das Flag --overwrite-table angeben.
  • Das Verhalten von writeDisposition wird in der relevanten Dokumentation beschrieben. Die writeDisposition-Aufzählung verhält sich ähnlich wie die Optionen bei der Verwendung von force, mit folgender Ausnahme: Wenn die Zieltabelle bereits vorhanden und leer ist, wird der Exportvorgang abgeschlossen, statt das ein Fehler zurückgegeben wird.

DICOM-Metadaten exportieren

In den folgenden Beispielen wird gezeigt, wie Sie DICOM-Metadaten in eine BigQuery-Tabelle exportieren. In diesen Beispielen befinden sich der DICOM-Speicher und die BigQuery-Tabelle im selben Projekt. Informationen zum Exportieren von DICOM-Metadaten in eine BigQuery-Tabelle in einem anderen Projekt finden Sie unter DICOM-Metadaten in ein anderes Projekt exportieren.

Console

So exportieren Sie DICOM-Metadaten in eine BigQuery-Tabelle:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.

    Zu „Datasets“

  2. Klicken Sie auf das Dataset, das den DICOM-Speicher mit den Metadaten enthält, die Sie exportieren möchten.

  3. Öffnen Sie in derselben Zeile wie der DICOM-Speicher die Liste Aktionen und wählen Sie Exportieren aus.

  4. Wählen Sie auf der Seite DICOM-Speicher exportieren die Option BigQuery-Tabelle aus.

  5. Klicken Sie im Feld Projekt auf Durchsuchen und wählen Sie Ihr Projekt aus.

  6. Wählen Sie in der Liste Dataset das BigQuery-Dataset aus, in das Sie DICOM-Metadaten exportieren möchten.

  7. Geben Sie im Feld Tabelle einen neuen Tabellennamen ein. BigQuery überprüft jede Auswahl auf die Gültigkeit der Zieltabelle.

  8. Wählen Sie im Abschnitt Zieltabellen-Schreibanordnung eine der folgenden Optionen aus. Diese Optionen entsprechen der Aufzählung WriteDisposition.

    • Daten nur exportieren, wenn die Zieltabelle leer ist: Entspricht WRITE_EMPTY
    • Daten an Zieltabelle anfügen: Entspricht WRITE_APPEND
    • Alle vorhandenen Daten in der Zieltabelle löschen, bevor die Instanzen geschrieben werden: Entspricht WRITE_TRUNCATE.
  9. Klicken Sie auf Exportieren, um DICOM-Metadaten in die BigQuery-Tabelle zu exportieren.

  10. Klicken Sie auf den Tab Vorgänge, um den Status des Vorgangs zu verfolgen. Wenn der Vorgang abgeschlossen ist, werden folgende Hinweise angezeigt:
    • Im Abschnitt Status: Lang andauernder Vorgang befindet sich unter der Überschrift OK ein grünes Häkchen.
    • Der Abschnitt Übersicht hat ein grünes Häkchen und einen OK-Indikator in der Zeile, in der sich auch die Vorgangs-ID befindet.
    Falls Fehler auftreten, klicken Sie auf Aktionen und dann auf Details in Cloud Logging ansehen.

gcloud

Führen Sie den Befehl gcloud healthcare dicom-stores export bq aus, um DICOM-Metadaten in eine BigQuery-Tabelle zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
    • DICOM_STORE_ID: die ID des DICOM-Speichers
    • BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets, in das Sie DICOM-Metadaten exportieren
    • BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • write-empty: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • write-truncate: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • write-append: Daten an die BigQuery-Tabelle anhängen.

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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
    Die Antwort lautet: Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Der Befehl fragt den Vorgang mit langer Ausführungszeit ab und gibt den Namen des Vorgangs im Feld name aus, sobald der Export abgeschlossen ist. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

    Antwort

    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. Führen Sie den Befehl gcloud healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen:

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Antwort

    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

Verwenden Sie die Methode projects.locations.datasets.dicomStores.export, um DICOM-Metadaten in eine BigQuery-Tabelle zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
    • DICOM_STORE_ID: die ID des DICOM-Speichers
    • BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets, in das Sie DICOM-Metadaten exportieren
    • BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • WRITE_EMPTY: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • WRITE_TRUNCATE: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • WRITE_APPEND: Daten an die BigQuery-Tabelle anhängen.

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "bigqueryDestination": {
          "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $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

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    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

    Führen Sie diesen Befehl aus:

    $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

    APIs Explorer

    Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der lang andauernde Vorgang abgeschlossen.

DICOM-Metadaten in ein anderes Projekt exportieren

Wenn Sie DICOM-Metadaten aus einem DICOM-Speicher in einem Projekt in ein BigQuery-Dataset in einem anderen Projekt exportieren möchten, lesen Sie die Informationen unter DICOM-Metadaten in ein anderes Projekt exportieren zum Festlegen der IAM-Berechtigungen im Zielprojekt.

gcloud

Verwenden Sie den Befehl gcloud healthcare dicom-stores export bq, um DICOM-Metadaten aus einem DICOM-Speicher in einem Projekt in eine BigQuery-Tabelle in einem anderen Projekt zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • SOURCE_PROJECT_ID: die ID des Quell-Google Cloud-Projekts
    • SOURCE_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: Das übergeordnete Dataset des DICOM-Quellspeichers
    • SOURCE_DICOM_STORE_ID: die ID des DICOM-Quellspeichers
    • DESTINATION_PROJECT_ID: die ID des anderen Projekts
    • DESTINATION_BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets im Zielprojekt, in das Sie DICOM-Metadaten exportieren möchten
    • DESTINATION_BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • write-empty: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • write-truncate: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • write-append: Daten an die BigQuery-Tabelle anhängen.

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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
    Die Antwort lautet: Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Der Befehl fragt den Vorgang mit langer Ausführungszeit ab und gibt den Namen des Vorgangs im Feld name aus, sobald der Export abgeschlossen ist. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

    Antwort

    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. Führen Sie den Befehl gcloud healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen:

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • SOURCE_PROJECT_ID: die ID des Quell-Google Cloud-Projekts
    • SOURCE_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Quell-Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Antwort

    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

Verwenden Sie die Methode projects.locations.datasets.dicomStores.export, um DICOM-Metadaten aus einem DICOM-Speicher in einem Projekt in eine BigQuery-Tabelle in einem anderen Projekt zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • SOURCE_PROJECT_ID: die ID des Quell-Google Cloud-Projekts
    • SOURCE_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: Das übergeordnete Dataset des DICOM-Quellspeichers
    • SOURCE_DICOM_STORE_ID: die ID des DICOM-Quellspeichers
    • DESTINATION_PROJECT_ID: die ID des anderen Projekts
    • DESTINATION_BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets im Zielprojekt, in das Sie DICOM-Metadaten exportieren möchten
    • DESTINATION_BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • WRITE_EMPTY: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • WRITE_TRUNCATE: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • WRITE_APPEND: Daten an die BigQuery-Tabelle anhängen.

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "bigqueryDestination": {
          "tableUri": "bq://DESTINATION_PROJECT_ID.DESTINATION_BIGQUERY_DATASET_ID.DESTINATION_BIGQUERY_TABLE_ID",
          "writeDisposition": "WRITE_DISPOSITION"
      }
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $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

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • SOURCE_PROJECT_ID: die ID des Quell-Google Cloud-Projekts
    • SOURCE_LOCATION: Speicherort des Quell-Datasets
    • SOURCE_DATASET_ID: die ID des Quell-Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    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

    Führen Sie diesen Befehl aus:

    $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

    APIs Explorer

    Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der lang andauernde Vorgang abgeschlossen.

DICOM-Metadaten mit Filtern exportieren

Wenn Sie DICOM-Dateien nach Cloud Storage exportieren, werden standardmäßig alle DICOM-Dateien im angegebenen DICOM-Speicher exportiert. Ebenso werden beim Exportieren von DICOM-Metadaten nach BigQuery die Metadaten für alle DICOM-Daten im angegebenen DICOM-Speicher exportiert.

Sie können einen Teil der DICOM- oder Metadaten mithilfe eines Filters exportieren. Sie definieren diesen Filter in einer Filterdatei.

Filterdateien konfigurieren

In einer Filterdatei wird definiert, welche DICOM-Dateien nach Cloud Storage oder BigQuery exportiert werden sollen. Sie können Dateien auf den folgenden Ebenen konfigurieren:

  • Auf der Studienebene
  • Für die Reihe
  • Auf Instanzebene

Eine Filterdatei besteht aus mehreren Zeilen, wobei jede Zeile die Studie, Reihe oder Instanz definiert, die Sie exportieren möchten. Jede Zeile hat das Format /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]].

Wenn in der Filterdatei bei deren Übergabe keine Studie, Reihe oder Instanz angegeben ist, wird diese Studie, Reihe oder Instanz nicht exportiert.

Nur der Teil /studies/STUDY_UID des Pfads ist erforderlich. Sie können eine gesamte Studie durch Angabe von /studies/STUDY_UID oder eine ganze Reihe durch Angabe von /studies/STUDY_UID/series/SERIES_UID exportieren.

Betrachten Sie die folgende Filterdatei. Die Filterdatei bedingt, dass eine Studie, zwei Reihen und drei einzelnen Instanzen exportiert werden:

/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

Filterdatei mit BigQuery erstellen

Normalerweise exportieren Sie zuerst die Metadaten aus einem DICOM-Speicher in BigQuery, um eine Filterdatei zu erstellen. Sie können BigQuery verwenden, um die Studien-, Series- und Instanz-UIDs der DICOM-Daten in Ihrem DICOM-Speicher anzuzeigen. Danach können Sie folgende Schritte ausführen:

  1. Fragen Sie nach den Studien-, Serien- und Instanz-UIDs, die Sie interessieren. Nachdem Sie beispielsweise die DICOM-Metadaten in BigQuery exportiert haben, können Sie die folgende Abfrage ausführen, um die Studien-, Serien- und Instanz-UIDs in einem Format zu verketten, das mit den Anforderungen der Filterdatei kompatibel ist:
    SELECT CONCAT
        ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID)
    FROM
        [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
  2. Wenn die Abfrage eine große Ergebnismenge zurückgibt, können Sie eine neue Tabelle materialisieren, indem Sie die Abfrageergebnisse in einer Zieltabelle in BigQuery speichern.
  3. Wenn Sie die Abfrageergebnisse in einer Zieltabelle speichern, können Sie den Inhalt der Zieltabelle in einer Datei speichern und nach Cloud Storage exportieren. Die erforderlichen Schritte finden Sie unter Tabellendaten exportieren. Die exportierte Datei ist Ihre Filterdatei. Sie verwenden den Speicherort der Filterdatei in Cloud Storage, wenn Sie den Filter im Exportvorgang angeben.

Filterdatei manuell erstellen

Sie können eine Filterdatei mit benutzerdefinierten Inhalten erstellen und diese in einen Cloud Storage-Bucket hochladen. Sie verwenden den Speicherort der Filterdatei in Cloud Storage, wenn Sie den Filter im Exportvorgang angeben. Im folgenden Beispiel wird gezeigt, wie Sie mit dem Befehl gcloud storage cp eine Filterdatei in einen Cloud Storage-Bucket hochladen:
gcloud storage cp FILTER_FILE gs://BUCKET

Filterdatei übergeben

Nachdem Sie eine Filterdatei erstellt haben, können Sie den DICOM-Exportvorgang aufrufen und die Filterdatei mit der REST API übergeben. In folgenden Beispielen wird gezeigt, wie Sie DICOM-Metadaten mit einem Filter exportieren.

gcloud

Führen Sie den Befehl gcloud beta healthcare dicom-stores export bq aus, um DICOM-Metadaten mithilfe eines Filters in eine BigQuery-Tabelle zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
    • DICOM_STORE_ID: die ID des DICOM-Speichers
    • BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets, in das Sie DICOM-Metadaten exportieren
    • BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • BUCKET: der Name des Cloud Storage-Buckets, der die Filterdatei enthält. Wenn sich die Filterdatei in einem Verzeichnis befindet, geben Sie das Verzeichnis in den Pfad ein.
    • FILTER_FILE: Speicherort und Name der Filterdatei in einem Cloud Storage-Bucket
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • write-empty: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • write-truncate: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • write-append: Daten an die BigQuery-Tabelle anhängen.

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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
    Die Antwort lautet: Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen sehr lange dauern kann. Der Befehl fragt den Vorgang mit langer Ausführungszeit ab und gibt den Namen des Vorgangs im Feld name aus, sobald der Export abgeschlossen ist. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

    Antwort

    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. Führen Sie den Befehl gcloud healthcare operations describe aus und geben Sie OPERATION_ID aus der Antwort an, um weitere Details zum Vorgang aufzurufen:

    Ersetzen Sie folgende Werte, bevor Sie die unten aufgeführten Befehlsdaten verwenden:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Führen Sie folgenden Befehl aus:

    Linux, macOS oder 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

    Sie sollten eine Antwort ähnlich der folgenden erhalten:

    Antwort

    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

Verwenden Sie die Methode projects.locations.datasets.dicomStores.export, um DICOM-Metadaten mithilfe eines Filters in eine BigQuery-Tabelle zu exportieren.

  1. Exportieren Sie die DICOM-Metadaten.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des DICOM-Speichers
    • DICOM_STORE_ID: die ID des DICOM-Speichers
    • BIGQUERY_DATASET_ID: der Name eines vorhandenen BigQuery-Datasets, in das Sie DICOM-Metadaten exportieren
    • BIGQUERY_TABLE_ID: der Name einer neuen oder vorhandenen Tabelle im BigQuery-Dataset. Wenn während des Exportvorgangs eine neue Tabelle erstellt wird, beachten Sie die Anforderungen unter Tabellennamen.
    • BUCKET: der Name des Cloud Storage-Buckets, der die Filterdatei enthält. Wenn sich die Filterdatei in einem Verzeichnis befindet, geben Sie das Verzeichnis in den Pfad ein.
    • FILTER_FILE: Speicherort und Name der Filterdatei in einem Cloud Storage-Bucket
    • WRITE_DISPOSITION: ein Wert für die Aufzählung WriteDisposition. Verwenden Sie einen der folgenden Werte:
      • WRITE_EMPTY: Nur Daten exportieren, wenn die BigQuery-Tabelle leer ist.
      • WRITE_TRUNCATE: Alle vorhandenen Daten in der BigQuery-Tabelle werden gelöscht, bevor die DICOM-Instanzen geschrieben werden.
      • WRITE_APPEND: Daten an die BigQuery-Tabelle anhängen.

    JSON-Text der Anfrage:

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

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

    @'
    {
      "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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $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

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    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

    Führen Sie diesen Befehl aus:

    $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

    APIs Explorer

    Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der lang andauernde Vorgang abgeschlossen.

DICOM-Daten in BigQuery abfragen und analysieren

Nachdem Sie die DICOM-Metadaten in eine BigQuery-Tabelle exportiert haben, können Sie Beispielabfragen ausführen, um weitere Details zu den Metadaten zu erhalten. Die folgenden Beispiele zeigen, wie Sie Abfragen für einige gängige Anwendungsfälle ausführen.

In Metadaten suchen

Angenommen, Sie möchten in einer großen Menge von Metadaten suchen, was in anderen Systemen schwierig wäre, z. B. in einem Bildarchivierungs- und Kommunikationssystem (Picture Archive and Communication System, PACS) oder in einem anbieterneutralen Archiev (Vendor Neutral Archive, VNA). Folgende Abfrage zeigt, wie Sie den PatientID-Wert eines Patienten abfragen und den DICOMweb-Pfad nutzen, um bestimmte Image-Instanzen abzurufen. Das Beispiel nutzt die Tabelle chc-nih-chest-xray.nih_chest_xray.nih_chest_xray aus dem NIH-Dataset: Röntgenaufnahmen des Brustkorbs.

#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';

Die Abfrage gibt die mit dem Patienten verknüpften Studien zurück. Die folgende Antwort verwendet das JSON-Format:

[
  {
    "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"
  }
]

Abfrage der neuesten Studien

Angenommen, Sie möchten eine PACS-Leseliste mit den neuesten Studien aus Ihrem Dataset füllen.

Die folgende Abfrage zeigt, wie Sie neueste Studien zusammen mit der Instanzanzahl und den umgebenden Metadaten abrufen und anzeigen. Das Beispiel nutzt die Tabelle bigquery-public-data.idc_v5.dicom_metadata aus dem TCIA-Dataset.

#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;

Die Abfrage gibt folgende Informationen zurück:

  • Die 10 aktuellsten Studien, die in das System aufgenommen wurden, und die Zeit der Aufnahme
  • Der mit den Studien verknüpften Patienten
  • Die UID der Studie
  • Die Anzahl der Instanzen, die mit der Studie verknüpft sind

Die folgende Antwort verwendet das JSON-Format:

[
  {
    "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"
  }
]

Einschränkungen und zusätzliches Verhalten

Wenn für das DICOM-Tag kein unterstützter Typ in BigQuery vorhanden ist (siehe Ausgeschlossene VRs), wird es in der BigQuery-Zieltabelle in einer separaten Spalte mit dem Namen DroppedTags.TagName aufgeführt.

Fehlerbehebung bei DICOM-Exportanfragen

Wenn Fehler während einer DICOM-Anfrage zum Exportieren von Metadaten nach BigQuery auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.