DICOM-Metadaten an BigQuery streamen

Auf dieser Seite wird erläutert, wie Sie einen DICOM-Speicher so konfigurieren, dass er DICOM-Instanzmetadaten bei jedem Einfügen einer DICOM-Instanz in eine BigQuery-Tabelle exportiert. Die DICOM-Instanzen können entweder mit der Speichertransaktion oder durch den Import aus Cloud Storage eingefügt werden.

Mit dem BigQuery-Streaming können Sie die Daten in einem DICOM-Speicher nahezu in Echtzeit mit einem BigQuery-Dataset synchronisieren. Sie können komplexe Abfragen an DICOM-Daten durchführen, ohne jedes Mal die neueste Version Ihres DICOM-Speichers in BigQuery exportieren zu müssen, wenn Sie Ihre Daten analysieren möchten.

Bevor Sie das Streaming konfigurieren, lesen Sie den Artikel DICOM-Metadaten nach BigQuery exportieren, um zu erfahren, wie das Exportieren von DICOM-Metadaten nach BigQuery funktioniert.

BigQuery-Berechtigungen festlegen

Bevor Sie DICOM-Metadaten nach BigQuery 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.

DICOM-Speicher konfigurieren

Konfigurieren Sie das Objekt StreamConfig in Ihrem DICOM-Speicher, um das Streaming in BigQuery zu aktivieren. Konfigurieren Sie BigQueryDestination in StreamConfig, um einen voll qualifizierten BigQuery-Tabellen-URI anzugeben, in den die Metadaten der DICOM-Instanz gestreamt werden. StreamConfig ist ein Array, das heißt, Sie können mehrere BigQuery-Ziele angeben. Sie können Metadaten aus einem einzelnen DICOM-Speicher in bis zu fünf BigQuery-Tabellen in einem BigQuery-Dataset streamen.

Wenn Sie DICOM-Instanzen in der Cloud Healthcare API löschen, werden BigQuery-Zeilen, die die Metadaten für diese Instanzen enthalten, nicht gelöscht.

Die folgenden Beispiele zeigen, wie Sie einen DICOM-Speicher aktualisieren, um das BigQuery-Streaming zu aktivieren. In diesen Beispielen befinden sich der DICOM-Speicher und die BigQuery-Tabelle im selben Projekt. Informationen zum Exportieren von DICOM-Metadaten in ein anderes Projekt finden Sie unter DICOM-Metadaten in ein anderes Projekt exportieren.

curl

Wenn Sie das BigQuery-Streaming in einem vorhandenen DICOM-Speicher aktivieren möchten, stellen Sie eine PATCH-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des DICOM-Speichers
  • Der Name eines vorhandenen BigQuery-Datasets
  • Ein Name für BigQuery-Ziele von 1–5 Der Name darf nur Buchstaben (Groß- und Kleinschreibung), Ziffern und Unterstriche enthalten. Das BigQuery-Dataset muss vorhanden sein, aber die Cloud Healthcare API kann eine vorhandene Tabelle aktualisieren oder eine neue erstellen.
  • Eine Aktualisierungsmaske
  • Ein Zugriffstoken

Das folgende Beispiel zeigt eine PATCH-Anfrage mit curl.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'streamConfigs': [{
         'bigqueryDestination': {
          'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
         }
      }]
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs"

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID",
  "streamConfigs": [
    {
      "bigqueryDestination": {
        "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID"
      }
    }
  ]
}

PowerShell

Wenn Sie das BigQuery-Streaming in einem vorhandenen DICOM-Speicher aktivieren möchten, stellen Sie eine PATCH-Anfrage und geben Sie die folgenden Informationen an:

  • Der Name des übergeordneten Datasets
  • Der Name des DICOM-Speichers
  • Der Name eines vorhandenen BigQuery-Datasets
  • Ein Name für die BigQuery-Exporttabelle. Der Name darf nur Buchstaben (Groß- und Kleinschreibung), Ziffern und Unterstriche enthalten. Das BigQuery-Dataset muss vorhanden sein, aber die Cloud Healthcare API kann eine vorhandene Tabelle aktualisieren oder eine neue erstellen.
  • Eine Aktualisierungsmaske
  • Ein Zugriffstoken

Das folgende Beispiel zeigt eine PATCH-Anfrage mit Windows PowerShell.

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

Invoke-WebRequest `
  -Method Patch `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
      'streamConfigs': [
        {
          'bigqueryDestination': {
            'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
        }
      }
    ]
  }" `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID?updateMask=streamConfigs" | Select-Object -Expand Content

Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:

{
  "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID",
  "streamConfigs": [
    {
      "bigqueryDestination": {
        "tableUri": "bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID"
      }
    }
  ]
}

Einschränkungen und zusätzliches Verhalten

  • DICOM-Tags werden in der BigQuery-Zieltabelle als separate Spalte mit dem Namen DroppedTags.TagName aufgeführt, wenn eines der folgenden Ereignisse auftritt:

    • Die Größe des DICOM-Tags ist mindestens 1 MB groß.
    • Für das DICOM-Tag ist in BigQuery kein unterstützter Typ vorhanden (siehe Ausgeschlossene VRs)
  • Wenn Sie eine Instanz in einem DICOM-Speicher löschen, wird die Instanz nicht in BigQuery gelöscht.

Fehlerbehebung bei DICOM-Streaminganfragen

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.

Wählen Sie zum Filtern von Logs mit Streaming-DICOM-Metadaten healthcare.googleapis.com/dicom_stream aus der zweiten Liste unter Nach Label oder Textsuche filtern aus.