DICOM-Speicherklassen

Auf dieser Seite wird beschrieben, wie Sie DICOM-Daten in der Cloud Healthcare API mithilfe verschiedener Speicherklassen verwalten. Die richtige Speicherklasse kann Ihnen helfen, Kosten zu senken und die behördlichen Anforderungen an die Datenaufbewahrung zu erfüllen.

Diese Seite richtet sich an technische Nutzer, die bereits mit DICOM und der Cloud Healthcare API vertraut sind.

Übersicht

DICOM-Speicherklassen funktionieren ähnlich wie Cloud Storage-Speicherklassen und bieten unterschiedliche Kosten- und Leistungsmerkmale, je nachdem, wie häufig Sie auf Ihre Daten zugreifen und wie lange Sie sie speichern müssen. Weitere Informationen zu den einzelnen Speicherklassen finden Sie unter Beschreibungen der Speicherklassen.

Je nachdem, wie oft Sie auf das Objekt zugreifen oder wie lange es aufbewahrt werden muss, können Sie die Speicherklasse von DICOM-Objekten ändern. Beispiel:

  • Sie können selten aufgerufene DICOM-Bilder aus dem Standardspeicher in Nearline Storage oder Coldline Storage verschieben, um die Abrechnungskosten zu senken.
  • Sie können Patientendaten, die aus rechtlichen Gründen aufbewahrt werden müssen, in den Archive Storage verschieben. Dies ist die günstigste und langlebigste Speicherklasse.

Verfügbare DICOM-Speicherklassen

Sie können die folgenden Speicherklassen für Ihre DICOM-Objekte verwenden:

  • Standard (Standardeinstellung)
  • Nearline
  • Coldline
  • Archivieren

Preise für Speicherklassen

Für jede Speicherklasse gilt eine eigene Preisstruktur. Das Ändern der Speicherklasse Ihrer DICOM-Objekte kann sich auf Ihre Abrechnungskosten auswirken. Hier finden Sie weitere Informationen:

Speicherklasse für einzelne DICOM-Objekte ändern

Sie können die Speicherklasse von DICOM-Objekten auf Studien-, Serien- oder Instanzebene ändern.

In den folgenden Beispielen wird gezeigt, wie Sie die Speicherklasse einer DICOM-Instanz ändern.

REST

  1. Ändern Sie die Speicherklasse der DICOM-Instanz mit der Methode projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings.

    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
    • STUDY_INSTANCE_UID: die eindeutige Kennung der Studieninstanz
    • SERIES_INSTANCE_UID: die eindeutige Kennung der Reiheninstanz
    • INSTANCE_UID: die eindeutige Kennung der Instanz
    • STORAGE_CLASS: die Speicherklasse für die DICOM-Instanz. Entweder STANDARD, NEARLINE, COLDLINE oder ARCHIVE.

    JSON-Text der Anfrage:

    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      }
    }
    

    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'
    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      }
    }
    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/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:setBlobStorageSettings"

    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:

    @'
    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      }
    }
    '@  | 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/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:setBlobStorageSettings" | 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 ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID: das übergeordnete Dataset des DICOM-Speichers
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang 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
    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist die LRO abgeschlossen.

Speicherklasse für mehrere Objekte mit einer Filterdatei ändern

In den folgenden Abschnitten wird beschrieben, wie Sie eine Filterdatei erstellen und verwenden, um die Speicherklasse von DICOM-Objekten basierend auf Filterkriterien zu ändern.

Anforderungen an Filterdateien

  • Jede Zeile in der Filterdatei definiert die Studie, Reihe oder Instanz und verwendet das Format /studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID.
  • Sie können eine Zeile abschneiden, um die Ebene anzugeben, auf der der Filter angewendet werden soll. Sie können beispielsweise eine gesamte Studie durch Angabe von /studies/STUDY_INSTANCE_UID oder eine ganze Reihe durch Angabe von /studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID auswählen.

Betrachten Sie die folgende Filterdatei:

/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

Diese Beispielfilterdatei gilt für Folgendes:

  • Die gesamte Studie mit der UID der Studieninstanz 1.123.456.789
  • Zwei separate Serien mit den Serieninstanz-UIDs 123.456 und 567.890 in der Studie 1.666.333.111
  • Drei einzelne Instanzen mit den Instanz-IDs 111, 222 und 333 in der Studie 1.888.999.222 und der Reihe 123.456

Filterdatei mit BigQuery erstellen

Wenn Sie eine Filterdatei mit BigQuery erstellen möchten, müssen Sie zuerst die Metadaten Ihres DICOM-Speichers nach BigQuery exportieren. Die exportierten Metadaten enthalten die Studien-, Serien- und Instanz-UIDs der DICOM-Daten in Ihrem DICOM-Speicher.

Führen Sie nach dem Exportieren der Metadaten die folgenden Schritte aus:

  1. Führen Sie eine Abfrage aus, um die UIDs der Studie, der Reihe und der Instanzen zurückzugeben, die Sie der Filterdatei hinzufügen möchten.

    In der folgenden Abfrage wird beispielsweise gezeigt, wie die Studien-, Serien- und Instanz-UIDs so verkettet werden, dass sie den Anforderungen des Filterdateiformats entsprechen:

    SELECT CONCAT
        ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID)
    FROM
        [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
  2. Optional: Wenn die Abfrage eine große Ergebnismenge zurückgibt, die die maximale Antwortgröße überschreitet, speichern Sie die Abfrageergebnisse in einer neuen Zieltabelle in BigQuery.

  3. Speichern Sie die Abfrageergebnisse in einer Datei und exportieren Sie sie nach Cloud Storage. Wenn Sie die Abfrageergebnisse in Schritt 2 in einer neuen Zieltabelle gespeichert haben, lesen Sie den Hilfeartikel Tabellendaten exportieren, um den Inhalt der Tabelle nach Cloud Storage zu exportieren.

  4. Bearbeiten Sie die exportierte Datei nach Bedarf und fügen Sie sie Ihrer Anfrage zum Ändern der Speicherklasse mehrerer DICOM-Objekte bei.

Filterdatei manuell erstellen

So erstellen Sie eine Filterdatei manuell:

  1. Erstellen Sie eine Filterdatei mit den DICOM-Objekten, nach denen Sie filtern möchten.
  2. Laden Sie die Filterdatei in Cloud Storage hoch. Eine Anleitung finden Sie unter Objekte aus einem Dateisystem hochladen.

Filterdatei verwenden

In den folgenden Beispielen wird gezeigt, wie Sie eine Filterdatei anwenden, wenn Sie die Speicherklasse von DICOM-Objekten ändern.

REST

  1. Ändern Sie die Speicherklasse der DICOM-Instanzen in der Filterdatei mit der Methode projects.locations.datasets.dicomStores.studies.series.instances.setBlobStorageSettings.

    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
    • STORAGE_CLASS: die Speicherklasse für die DICOM-Objekte. Entweder STANDARD, NEARLINE, COLDLINE oder ARCHIVE.
    • CLOUD_STORAGE_BUCKET: der Name des Cloud Storage-Bucket, der die Filterdatei enthält
    • FILTER_FILE_PATH: der vollständig qualifizierte URI der Filterdatei im Cloud Storage-Bucket

    JSON-Text der Anfrage:

    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      },
      "filterConfig": {
        "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH"
      }
    }
    

    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'
    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      },
      "filterConfig": {
        "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH"
      }
    }
    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" \
    -d @request.json \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings"

    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:

    @'
    {
      "blobStorageSettings": {
        "blobStorageClass": "STORAGE_CLASS"
      },
      "filterConfig": {
        "resourcePathsGcsUri": "gs://CLOUD_STORAGE_BUCKET/FILTER_FILE_PATH"
      }
    }
    '@  | 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" `
    -InFile request.json `
    -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:setBlobStorageSettings" | Select-Object -Expand Content
    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 ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID: das übergeordnete Dataset des DICOM-Speichers
    • OPERATION_ID ist die ID, die vom lang andauernden Vorgang 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
    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist die LRO abgeschlossen.

Speicherklasse eines DICOM-Objekts aufrufen

Sie können die Speicherklasse von DICOM-Objekten auf Studien-, Serien- oder Instanzebene aufrufen.

In den folgenden Abschnitten wird beschrieben, wie Sie die Speicherklasse einer DICOM-Instanz aufrufen.

Informationen zur Speicherklasse für ein DICOM-Objekt abrufen

In den folgenden Beispielen wird gezeigt, wie Sie mit der Methode instances.getStorageInfo die Speicherklasse von DICOM-Objekten aufrufen.

REST

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
  • STUDY_INSTANCE_UID: die eindeutige Kennung der Studieninstanz
  • SERIES_INSTANCE_UID: die eindeutige Kennung der Reiheninstanz
  • INSTANCE_UID: die eindeutige Kennung der Instanz

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/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo"

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/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID:getStorageInfo" | 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.

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Exportierte DICOM-Metadaten in BigQuery abfragen

Sie können DICOM-Metadaten nach BigQuery exportieren und dann Abfragen ausführen, um die Speicherklassen Ihrer exportierten DICOM-Objekte aufzurufen.

In der folgenden Abfrage wird gezeigt, wie Sie die UID der Studieninstanz, die UID der Serieninstanz, die Instanz-UID, die Speichergröße und die Speicherklasse von bis zu 1.000 DICOM-Instanzen aus einem BigQuery-Dataset abrufen:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • BIGQUERY_DATASET: das übergeordnete BigQuery-Dataset der Tabelle mit den exportierten DICOM-Metadaten
  • BIGQUERY_TABLE: die BigQuery-Tabelle mit den exportierten DICOM-Metadaten