DICOM-Metadaten nach BigQuery streamen

Auf dieser Seite wird beschrieben, wie Sie einen DICOM-Speicher konfigurieren, um DICOM-Instanzmetadaten in eine BigQuery-Tabelle zu exportieren, wenn einer der folgenden Fälle eintritt:

Beim Streamen von DICOM-Metadaten in eine BigQuery-Tabelle wird die Tabelle mit Ihren DICOM-Daten synchronisiert, sodass Sie komplexe Abfragen mit der neuesten Version Ihres DICOM-Speichers ausführen können.

Hinweise

BigQuery-Berechtigungen festlegen

Bevor Sie DICOM-Metadaten in BigQuery streamen, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent die erforderlichen Berechtigungen erteilen. Weitere Informationen finden Sie unter BigQuery-Berechtigungen für den DICOM-Speicher.

Anleitung zum Exportieren von DICOM-Metadaten nach BigQuery

Machen Sie sich vor dem Konfigurieren des Streamings mit dem Exportieren von DICOM-Metadaten nach BigQuery vertraut.

DICOM-Speicher konfigurieren

Konfigurieren Sie das Objekt StreamConfig in Ihrem DICOM-Speicher, um das Streaming in BigQuery zu aktivieren. Legen Sie im Objekt StreamConfig für das Objekt BigQueryDestination einen voll qualifizierten BigQuery-Tabelle-URI als Metadatenziel der DICOM-Instanz fest.

Sie können bis zu fünf BigQuery-Ziele als kommagetrennte JSON-Objekte angeben.

Durch das Löschen von DICOM-Instanzen in einem DICOM-Speicher werden die BigQuery-Zeilen mit den Metadaten für diese Instanzen nicht gelöscht.

Console

Führen Sie folgende Schritte aus, um einen DICOM-Speicher zum Aktivieren des BigQuery-Streaming zu aktualisieren:

  1. Rufen Sie in der Google Cloud Console die Seite Datasets auf.
    Zu den Datasets
  2. Wählen Sie das Dataset mit dem DICOM-Speicher aus, den Sie bearbeiten möchten.
  3. Wählen Sie den DICOM-Speicher aus, für den Sie eine Streaming-Konfiguration hinzufügen.
  4. Klicken Sie auf der Seite Datastore-Details auf Neue Streamingkonfiguration hinzufügen.
  5. Klicken Sie im Feld Neue Streaming-Konfiguration auf Durchsuchen.
    1. Wählen Sie im Bereich Tabelle auswählen eine BigQuery-Tabelle.
    2. Klicken Sie auf Auswählen.
  6. Klicken Sie auf Fertig.

REST

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.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • 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 ist die DICOM-Speicher-ID
  • BIGQUERY_DATASET_ID ist der Name eines vorhandenen BigQuery-Datasets
  • BIGQUERY_TABLE_ID ist ein endeutiger Name für eine Tabelle im BigQuery-Dataset. Informationen zu den Anforderungen für die Benennung finden Sie unter Tabellennamen. Das BigQuery-Dataset muss vorhanden sein, aber die Cloud Healthcare API kann eine vorhandene Tabelle aktualisieren oder eine neue erstellen.

JSON-Text anfordern:

{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}

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'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
EOF

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

curl -X PATCH \
-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?updateMask=streamConfigs"

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:

@'
{
  'streamConfigs': [{
     'bigqueryDestination': {
      'tableUri': 'bq://PROJECT_ID.BIGQUERY_DATASET_ID.BIGQUERY_TABLE_ID'
     }
  }]
}
'@  | 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 PATCH `
-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?updateMask=streamConfigs" | 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.

Sie sollten in etwa folgende JSON-Antwort erhalten:

Metadaten werden gelöscht

In früheren Versionen der Cloud Healthcare API wurden DICOM-Instanzmetadaten nur dann nach BigQuery exportiert, wenn eine DICOM-Instanz in einen DICOM-Speicher eingefügt wurde. Beim Schreiben von Metadaten für Löschvorgänge wurden der erstellten Tabelle zwei neue Spalten mit den Namen Type und LastUpdated hinzugefügt, die die DICOM-Metadaten enthalten.

Alle Metadaten in der Tabelle, die vor der Einführung von Löschmetadaten vorhanden waren, haben für diese Spalten einen NULL-Wert. NULL ist der niedrigste Wert und wird bei der Sortierung in absteigender Reihenfolge zuletzt angezeigt.

Generierte BigQuery-Ansicht

Wenn Sie eine DICOM-Instanz in einen DICOM-Speicher einfügen oder löschen, wird die konfigurierte BigQuery-Tabelle aktualisiert.

Wenn keine Ansicht der Tabelle vorhanden ist, wird die Ansicht erstellt. Andernfalls wird die Ansicht aktualisiert.

Einschränkungen und zusätzliches Verhalten

In den exportierten Metadaten fehlen möglicherweise einige DICOM-Tags. In diesem Fall befinden sich die fehlenden Tags entweder in einer separaten Spalte mit dem Namen DroppedTags.TagName in der BigQuery-Zieltabelle oder sie werden vollständig entfernt.

Tags können aus einem der folgenden Gründe fehlen:

  • Das DICOM-Tag ist eine nicht unterstützte VR, die unter Ausgeschlossene VRs aufgeführt ist.
  • Das DICOM-Tag überschreitet ungefähr 1 MB. Dies führt dazu, dass das Tag der Spalte DroppedTags.Name hinzugefügt wird. Sequenz-Tags (SQ) mit mehr als 1 MB werden vollständig ausgeschlossen.
  • Die Anzahl der Spalten in der BigQuery-Tabelle überschreitet die maximale Anzahl von Spalten. Wenn der Export von DICOM-Metadaten in eine BigQuery-Tabelle das Spaltenlimit überschreitet, werden der Spalte DroppedTags.Name DICOM-Tags hinzugefügt, die mit keiner vorhandenen Spalte übereinstimmen. Wenn die Spalte DroppedTags nicht hinzugefügt werden kann, werden die DICOM-Tags ohne Benachrichtigung gelöscht und ein Warnlog wird generiert. Weitere Informationen finden Sie unter Fehlerbehebung bei DICOM-Streaminganfragen zum Anzeigen von Logs.

Löschmetadaten in eine vorhandene Tabelle einfügen

Das Verhalten der generierten Ansicht hängt davon ab, ob ihre Basistabelle Metadaten enthält, die vor der Einführung des Features Löschmetadaten hinzugefügt wurden.

Angenommen, eine BigQuery-Tabelle enthält DICOM-Metadaten aus der Zeit, bevor Löschmetadaten unterstützt wurden, und Folgendes geschieht:

  1. Sie fügen eine DICOM-Instanz in einen DICOM-Speicher ein.
  2. Sie löschen die DICOM-Instanz aus dem DICOM-Speicher.
  3. Sie bearbeiten die Tags der ursprünglichen DICOM-Instanz und fügen die geänderte DICOM-Instanz in den DICOM-Speicher ein.

Da die BigQuery-Tabelle die ursprünglichen Metadaten enthielt, bevor Löschmetadaten unterstützt wurden, haben die ursprüngliche DICOM-Instanz und ihre bearbeitete Version dieselben Studien, Serien und Instanzkennzeichnungen (Unique Identifiers – UID). Die generierte Ansicht kann entweder die ursprüngliche DICOM-Instanz oder die neueste DICOM-Instanz enthalten. Ohne die Spalte LastUpdated kann in der Ansicht nicht ermittelt werden, welche DICOM-Instanz neuer ist.

Führen Sie einen der folgenden Schritte aus, um sicherzustellen, dass Sie die neuesten DICOM-Instanzmetadaten abfragen:

  • Fragen Sie die Basistabelle anstelle der Ansicht ab. Achten Sie darauf, dass die Abfrage in der bearbeiteten DICOM-Instanz nach den aktualisierten Tags sucht.
  • Löschen Sie die vorhandene DICOM-Metadaten-Tabelle und erstellen Sie sie dann neu. Dazu exportieren Sie die DICOM-Metadaten manuell nach BigQuery. Die neu erstellte Tabelle enthält die Spalte LastUpdated.

    Mit dieser Option werden bisherige Streamingmetadaten entfernt. Dabei wird aber sichergestellt, dass die Tabelle die Spalte LastUpdated mit gültigen Werten enthält.

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.

Führen Sie die folgenden Schritte aus, um Fehlerlogs für Streaming-DICOM-Metadaten in der Google Cloud Console zu filtern:

  1. Rufen Sie die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie im Feld Query die folgende Abfrage ein:

    logName="healthcare.googleapis.com%2Fdicom_stream"
    
  3. Klicken Sie auf Abfrage ausführen.

    Alle Fehlerlogs werden im Abschnitt Abfrageergebnisse angezeigt.