Auf dieser Seite wird beschrieben, wie Sie DICOM-Daten in der Cloud Healthcare API mit verschiedenen Speicherklassen verwalten. Wenn Sie die richtige Speicherklasse auswählen, können Sie Kosten senken und die behördlichen Anforderungen an die Datenaufbewahrung 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 Klassenbeschreibungen.
Je nachdem, wie oft Sie auf das Objekt zugreifen oder wie lange es aufbewahrt werden muss, kann es sinnvoll sein, die Speicherklasse von DICOM-Objekten zu ändern. Beispiel:
- Sie können selten aufgerufene DICOM-Bilder aus dem Standard Storage in Nearline Storage oder Coldline Storage verschieben, um Abrechnungskosten zu sparen.
- Sie können Patientendaten, die aus rechtlichen Gründen aufbewahrt werden müssen, in Archive Storage verschieben. Das ist die kostengü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.
Die folgenden Beispiele zeigen, wie Sie die Speicherklasse einer DICOM-Instanz ändern.
REST
Ä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
: die ID Ihres Google Cloud ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
ist das übergeordnete Dataset des DICOM-SpeichersDICOM_STORE_ID
: die ID des DICOM-SpeichersSTUDY_INSTANCE_UID
: die eindeutige Kennung der StudieninstanzSERIES_INSTANCE_UID
: die eindeutige Kennung der SerieninstanzINSTANCE_UID
: die eindeutige Kennung der InstanzSTORAGE_CLASS
: die Speicherklasse für die DICOM-Instanz. EntwederSTANDARD
,NEARLINE
,COLDLINE
oderARCHIVE
.
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 ContentAPIs 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.
OPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.Rufen Sie den Status des Vorgangs mit langer Ausführungszeit mit der Methode
projects.locations.datasets.operations.get
ab.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID Ihres Google Cloud ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
: das übergeordnete Dataset des DICOM-SpeichersOPERATION_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 folgenden 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"done": true
enthält, ist der LRO abgeschlossen.
Speicherklasse für mehrere Objekte mit einer Filterdatei ändern
In den folgenden Abschnitten wird gezeigt, wie Sie eine Filterdatei erstellen und verwenden, um die Speicherklasse von DICOM-Objekten basierend auf einem Filterkriterium 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 kürzen, um die Ebene anzugeben, auf der der Filter angewendet wird.
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 Studieninstanz-UID als
1.123.456.789
- Zwei separate Serien mit Serieninstanz-UIDs als
123.456
und567.890
in der Studie1.666.333.111
- Drei einzelne Instanzen mit den Instanz-IDs
111
,222
und333
in der Studie1.888.999.222
und der Serie123.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:
Führen Sie eine Abfrage aus, um die UIDs der Studie, Serie und Instanzen zurückzugeben, die Sie der Filterdatei hinzufügen möchten.
Die folgende Abfrage zeigt beispielsweise, wie Sie die Studien-, Serien- und Instanz-UIDs verketten, um die Anforderungen an das Filterdateiformat zu erfüllen:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
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.
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, finden Sie unter Tabellendaten exportieren Informationen zum Exportieren des Tabelleninhalts nach Cloud Storage.
Bearbeiten Sie die exportierte Datei nach Bedarf und fügen Sie sie in Ihre Anfrage ein, um die Speicherklasse mehrerer DICOM-Objekte zu ändern.
Filterdatei manuell erstellen
So erstellen Sie eine Filterdatei manuell:
- Erstellen Sie eine Filterdatei mit den DICOM-Objekten, nach denen Sie filtern möchten.
- 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
Ä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
: die ID Ihres Google Cloud ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
ist das übergeordnete Dataset des DICOM-SpeichersDICOM_STORE_ID
: die ID des DICOM-SpeichersSTORAGE_CLASS
: Die Speicherklasse für die DICOM-Objekte. EntwederSTANDARD
,NEARLINE
,COLDLINE
oderARCHIVE
.CLOUD_STORAGE_BUCKET
: der Name des Cloud Storage-Bucket, der die Filterdatei enthältFILTER_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 ContentOPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.Rufen Sie den Status des Vorgangs mit langer Ausführungszeit mit der Methode
projects.locations.datasets.operations.get
ab.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID Ihres Google Cloud ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
: das übergeordnete Dataset des DICOM-SpeichersOPERATION_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 folgenden 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"done": true
enthält, ist der LRO abgeschlossen.
Speicherklasse eines DICOM-Objekts ansehen
Sie können die Speicherklasse von DICOM-Objekten auf Studien-, Serien- oder Instanzebene ansehen.
In den folgenden Abschnitten wird beschrieben, wie Sie die Speicherklasse einer DICOM-Instanz ansehen.
Informationen zur Speicherklasse für ein DICOM-Objekt abrufen
In den folgenden Beispielen wird gezeigt, wie Sie die Methode instances.getStorageInfo
verwenden, um die Speicherklasse von DICOM-Objekten aufzurufen.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID Ihres Google Cloud ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
ist das übergeordnete Dataset des DICOM-SpeichersDICOM_STORE_ID
: die ID des DICOM-SpeichersSTUDY_INSTANCE_UID
: die eindeutige Kennung der StudieninstanzSERIES_INSTANCE_UID
: die eindeutige Kennung der SerieninstanzINSTANCE_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 folgenden 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.
Die folgende Abfrage zeigt, wie Sie die Studieninstanz-UID, die Serieninstanz-UID, 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
: die ID Ihres Google Cloud ProjektsBIGQUERY_DATASET
: das übergeordnete BigQuery-Dataset der Tabelle mit den exportierten DICOM-MetadatenBIGQUERY_TABLE
: die BigQuery-Tabelle mit den exportierten DICOM-Metadaten