Auf dieser Seite wird erläutert, wie Sie DICOM-Instanzen nach Cloud Storage exportieren und DICOM-Objekte aus Cloud Storage importieren. Eine DICOM-Instanz ist normalerweise ein Bild, kann jedoch auch ein anderer nichtflüchtiger Datentyp sein, z. B. ein strukturierter Bericht. Ein DICOM-Objekt in Cloud Storage ist eine DICOM-Instanz, die sich in Cloud Storage befindet. Weitere Informationen finden Sie unter Cloud Storage.
Cloud Storage-Berechtigungen festlegen
Bevor Sie DICOM-Daten in Cloud Storage importieren bzw. daraus exportieren können, müssen Sie dem Dienstkonto Cloud Healthcare Service Agent zusätzliche Berechtigungen erteilen. Weitere Informationen finden Sie unter Cloud Storage-Berechtigungen für DICOM-Speicher.
DICOM-Objekte importieren
Sie können mehrere DICOM-Instanzdateien mit einer der folgenden Methoden in einen DICOM-Speicher importieren:
- Programmieren Sie die Daten direkt in einem DICOM-Speicher auf Ihrem lokalen Computer mit dem in der Cloud Healthcare API implementierten RESTful-Webdienst Store Transaction.
- Laden Sie die DICOM-Daten in einen Cloud Storage-Bucket hoch und importieren Sie die Dateien dann mit einem einzigen Importvorgang in einen DICOM-Speicher, wie in diesem Abschnitt beschrieben.
In den folgenden Beispielen wird gezeigt, wie Sie DICOM-Objekte aus einem Cloud Storage-Bucket importieren.
Console
So importieren Sie DICOM-Objekte aus einem Cloud Storage-Bucket:
- Rufen Sie in der Google Cloud Console die Seite Datasets auf.
Zu den Datasets - Klicken Sie auf das Dataset mit dem DICOM-Speicher, in den Sie DICOM-Objekte importieren.
- Wählen Sie aus der Liste der Datenspeicher Importieren aus der Liste Aktionen für den DICOM-Speicher aus.
Die Seite In DICOM-Speicher importieren wird angezeigt. - Wählen Sie in der Liste Projekt ein Cloud Storage-Projekt aus.
- Wählen Sie in der Liste Standort einen Cloud Storage-Bucket aus.
- So legen Sie einen bestimmten Speicherort für den Import von Dateien fest:
- Erweiterte Optionen einblenden.
- Wählen Sie Cloud Storage-Pfad überschreiben aus.
- Um eine bestimmte Quelle für den Import von Dateien festzulegen, definieren Sie den Pfad mithilfe der folgenden Variablen im Textfeld Standort:
*
: entspricht Nicht-Trennzeichen.**
: entspricht Zeichen, einschließlich Trennzeichen. Dies kann mit einer Dateinamenerweiterung verwendet werden, um alle Dateien desselben Typs abzugleichen.?
: entspricht einem Zeichen.
- Klicken Sie auf Importieren, um DICOM-Objekte aus der definierten Quelle zu importieren.
- 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.
gcloud
Verwenden Sie den Befehl gcloud healthcare dicom-stores import gcs
, um DICOM-Objekte aus einem Cloud Storage-Bucket zu importieren. Geben Sie den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers und den Speicherort des Objekts in einem Cloud Storage-Bucket an.
- Der Speicherort der Dateien im Bucket ist beliebig und muss nicht genau dem im folgenden Beispiel angegebenen Format entsprechen.
- Wenn Sie den Speicherort der DICOM-Objekte in Cloud Storage angeben, können Sie Platzhalter verwenden, um mehrere Dateien aus einem oder mehreren Verzeichnissen zu importieren.
Die folgenden Platzhalter werden unterstützt:
- Verwenden Sie
*
, um null oder mehr Nicht-Trennzeichen abzugleichen. Zum Beispiel stimmtgs://BUCKET/DIRECTORY/Example*.dcm
mit Example.dcm und Example22.dcm in DIRECTORY überein. - Verwenden Sie
**
, um 0 oder mehr Zeichen (einschließlich Trennzeichen) abzugleichen. Muss am Ende eines Pfads und ohne andere Platzhalter im Pfad verwendet werden. Kann auch mit einer Dateinamenerweiterung wie .dcm verwendet werden, die alle Dateien mit der Dateinamenerweiterung im angegebenen Verzeichnis und in seinen Unterverzeichnissen importiert. Beispiel:gs://BUCKET/DIRECTORY/**.dcm
importiert alle Dateien mit der Endung .dcm in DIRECTORY und seinen Unterverzeichnissen. - Verwenden Sie
?
als Platzhalter für genau 1 Zeichen. Beispiel:gs://BUCKET/DIRECTORY/Example?.dcm
stimmt mit Example1.dcm überein, aber nicht mit Example.dcm oder Example01.dcm.
- Verwenden Sie
Das folgende Beispiel zeigt, wie DICOM-Objekte aus einem Cloud Storage-Bucket importiert werden.
gcloud healthcare dicom-stores import gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri=gs://BUCKET/DIRECTORY/DICOM_INSTANCE.dcm
In der Befehlszeile wird die Vorgangs-ID angezeigt:
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Führen Sie den gcloud healthcare operations describe
-Befehl aus und geben Sie OPERATION_ID aus der Antwort an, um den Status des Vorgangs anzuzeigen:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Nach Abschluss des Befehls enthält die Antwort done: true
.
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.dicom.DicomService.ImportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: "CREATE_TIME" endTime: "END_TIME" name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': "..."
API
Verwenden Sie die Methode projects.locations.datasets.dicomStores.import
, um DICOM-Objekte aus einem Cloud Storage-Bucket zu importieren.
- Der Speicherort der Dateien im Bucket kann variieren und muss nicht dem in den folgenden Beispielen angegebenen Format entsprechen.
- Wenn Sie den Speicherort der DICOM-Objekte in Cloud Storage angeben, verwenden Sie Platzhalter, um mehrere Dateien aus einem oder mehreren Verzeichnissen zu importieren.
Die folgenden Platzhalter werden unterstützt:
- Verwenden Sie
*
, um null oder mehr Nicht-Trennzeichen abzugleichen. Zum Beispiel stimmtgs://BUCKET/DIRECTORY/Example*.dcm
mit Example.dcm und Example22.dcm in DIRECTORY überein. - Verwenden Sie
**
, um 0 oder mehr Zeichen (einschließlich Trennzeichen) abzugleichen. Muss am Ende eines Pfads und ohne andere Platzhalter im Pfad verwendet werden. Kann auch mit einer Dateinamenerweiterung wie .dcm verwendet werden, die alle Dateien mit der Dateinamenerweiterung im angegebenen Verzeichnis und in seinen Unterverzeichnissen importiert. Beispiel:gs://BUCKET/DIRECTORY/**.dcm
importiert alle Dateien mit der Endung .dcm in DIRECTORY und seinen Unterverzeichnissen. - Verwenden Sie
?
als Platzhalter für genau 1 Zeichen. Beispiel:gs://BUCKET/DIRECTORY/Example?.dcm
stimmt mit Example1.dcm überein, aber nicht mit Example.dcm oder Example01.dcm.
- Verwenden Sie
REST
Importieren Sie das DICOM-Objekt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist 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-SpeichersBUCKET/PATH/TO/FILE
: der Pfad zum DICOM-Objekt in Cloud Storage
JSON-Text der Anfrage:
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } }
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' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } 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:import"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:@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } '@ | 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:import" | Select-Object -Expand ContentRufen Sie den Status des Vorgangs mit langer Ausführungszeit ab.
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
Go
Java
Node.js
Python
Um eine einzelne Instanz oder Studie aus einem DICOM-Speicher abzurufen, rufen Sie die DICOM-Daten ab. Verwenden Sie dazu den in der Cloud Healthcare API implementierten RESTful-Webdienst Retrieve Transaction.
Speicherklasse für den Import von DICOM-Objekten angeben (Vorabversion)
Standardmäßig importiert die projects.locations.datasets.dicomStores.import
-Methode ein DICOM-Objekt in einen DICOM-Speicher mit einer Standardspeicherklasse. Sie können die Speicherklasse festlegen, wenn Sie DICOM-Objekte aus Cloud Storage importieren.
Weitere Informationen finden Sie unter DICOM-Speicherklasse ändern.
In den folgenden Beispielen wird gezeigt, wie Sie die Speicherklasse angeben, wenn Sie DICOM-Objekte aus Cloud Storage importieren.
REST
Verwenden Sie die Methode projects.locations.datasets.dicomStores.import
.
Importieren Sie das DICOM-Objekt.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist 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-SpeichersBUCKET/PATH/TO/FILE
: der Pfad zum DICOM-Objekt in Cloud StorageSTORAGE_CLASS
: die Speicherklasse für das DICOM-Objekt im DICOM-Speicher ausSTANDARD
,NEARLINE
,COLDLINE
undARCHIVE
JSON-Text der Anfrage:
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "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' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "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" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import"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:@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import" | Select-Object -Expand ContentRufen Sie den Status des Vorgangs mit langer Ausführungszeit ab.
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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Fehlerbehebung bei DICOM-Importanfragen
Wenn während einer DICOM-Importanfrage Fehler auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.
DICOM-Instanzen exportieren
In den folgenden Beispielen wird gezeigt, wie Sie DICOM-Instanzen in einen Cloud Storage-Bucket exportieren. Wenn Sie DICOM-Instanzen aus einem DICOM-Speicher exportieren, werden alle Instanzen aus dem Speicher exportiert.
Console
So exportieren Sie DICOM-Instanzen nach Cloud Storage:
- Rufen Sie in der Google Cloud Console die Seite Datasets auf.
Zu den Datasets - Klicken Sie auf das Dataset, das den DICOM-Speicher enthält, aus dem Sie DICOM-Instanzen exportieren.
- Wählen Sie in der Liste der Datenspeicher aus der Liste Aktionen für den DICOM-Speicher Exportieren aus.
- Wählen Sie auf der Seite DICOM-Speicher exportieren die Option Google Cloud Storage-Bucket aus.
- Wählen Sie in der Liste Projekt ein Cloud Storage-Projekt aus.
- Wählen Sie in der Liste Standort einen Cloud Storage-Bucket aus.
- Wählen Sie in den DICOM-Exporteinstellungen den Dateityp aus, mit dem die DICOM-Instanzen exportiert werden sollen. Die folgenden Typen sind verfügbar:
- DICOM-Datei (
.dcm
) - octet-stream
- Bild (
.jpg
,.png
)
- DICOM-Datei (
- Um eine zusätzliche Übertragungssyntax zu definieren, wählen Sie diese aus der Liste Übertragungssyntax aus.
- Klicken Sie auf Exportieren, um DICOM-Instanzen an den definierten Speicherort in Cloud Storage zu exportieren.
- 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.
gcloud
Verwenden Sie den Befehl gcloud healthcare dicom-stores export gcs
, um DICOM-Instanzen in einen Cloud Storage-Bucket zu exportieren.
- Geben Sie den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers und den Cloud Storage-Ziel-Bucket an.
- Schreiben Sie in einen Cloud Storage-Bucket oder ein Cloud Storage-Verzeichnis und nicht in ein Objekt, da die Cloud Healthcare API für jedes Objekt eine
.dcm
-Datei erstellt. - Wenn der Befehl ein nicht vorhandenes Verzeichnis angibt, wird das Verzeichnis erstellt.
Das folgende Beispiel zeigt den Befehl gcloud healthcare dicom-stores export gcs
.
gcloud healthcare dicom-stores export gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri-prefix=gs://BUCKET/DIRECTORY
In der Befehlszeile wird die Vorgangs-ID angezeigt:
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Führen Sie den gcloud healthcare operations describe
-Befehl aus und geben Sie OPERATION_ID aus der Antwort an, um den Status des Vorgangs anzuzeigen:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Nach Abschluss des Befehls enthält die Antwort done: true
.
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata apiMethodName: google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: "CREATE_TIME" endTime: "END_TIME" name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': "..."
API
Verwenden Sie die Methode projects.locations.datasets.dicomStores.export
, um DICOM-Instanzen in einen Cloud Storage-Bucket zu exportieren.
- Schreiben Sie in einen Cloud Storage-Bucket oder ein Cloud Storage-Verzeichnis und nicht in ein Objekt, da die Cloud Healthcare API für jedes Objekt eine
.dcm
-Datei erstellt. - Wenn der Befehl ein nicht vorhandenes Verzeichnis angibt, wird das Verzeichnis erstellt.
curl
Wenn Sie DICOM-Instanzen exportieren möchten, senden Sie eine POST
-Anfrage und geben Sie die folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Der Cloud Storage-Ziel-Bucket
Das folgende Beispiel zeigt eine POST
-Anfrage mit curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export"
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
Die Antwort enthält einen Vorgangsnamen. Mit der Vorgangsmethode get
können Sie den Status des Vorgangs verfolgen:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort mit dem Status des Vorgangs im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES } }, "done": true, "response": { "@type": "..." } }
PowerShell
Wenn Sie DICOM-Instanzen exportieren möchten, senden Sie eine POST
-Anfrage und geben Sie die folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Der Cloud Storage-Ziel-Bucket
Das folgende Beispiel zeigt eine POST
-Anfrage mit Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, gibt der Server die Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
Die Antwort enthält einen Vorgangsnamen. Mit der Vorgangsmethode get
können Sie den Status des Vorgangs verfolgen:
$cred = gcloud auth application-default 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
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort mit dem Status des Vorgangs im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES }, }, "done": true, "response": { "@type": "..." } }
Go
Java
Node.js
Python
DICOM-Instanzen mithilfe von Filtern exportieren
Wenn Sie DICOM-Dateien nach Cloud Storage exportieren, werden standardmäßig alle DICOM-Dateien im DICOM-Speicher exportiert. Ebenso werden beim Exportieren von DICOM-Metadaten nach BigQuery die Metadaten für alle DICOM-Daten im DICOM-Speicher exportiert.
Sie können einen Teil der DICOM- oder Metadaten mithilfe einer Filterdatei exportieren.
Filterdatei konfigurieren
- 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
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 Reihe123.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, 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]
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, lesen Sie den Hilfeartikel Tabellendaten exportieren, um den Inhalt der Tabelle nach Cloud Storage zu exportieren.
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:
- 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 ü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-Daten mit einem Filter exportieren.
gcloud
Verwenden Sie den Befehl gcloud beta healthcare dicom-stores export gcs
, um DICOM-Metadaten mit einem Filters nach Cloud Storage zu exportieren:
gcloud beta healthcare dicom-stores export gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri-prefix=gs://DESTINATION_BUCKET/DIRECTORY \ --filter-config-gcs-uri=gs://BUCKET/DIRECTORY/FILTER_FILE
Dabei gilt:
- DICOM_STORE_ID ist die Kennung für den DICOM-Speicher
- DATASET_ID ist der Name des übergeordneten Datasets des DICOM-Speichers
- LOCATION ist der Speicherort des übergeordneten Datasets des DICOM-Speichers
- DESTINATION_BUCKET/DIRECTORY ist der Ziel-Bucket von Cloud Storage
- BUCKET/DIRECTORY/FILTER_FILE ist der Speicherort der Filterdatei in einem Cloud Storage-Bucket
Die Ausgabe sieht so aus:
Request issued for: [DICOM_STORE_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete...done. name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID
Führen Sie den gcloud healthcare operations describe
-Befehl aus und geben Sie OPERATION_ID aus der Antwort an, um den Status des Vorgangs anzuzeigen:
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Dabei gilt:
- OPERATION_ID ist die ID-Nummer, die von der vorherigen Antwort zurückgegeben wurde
- DATASET_ID ist der Name des übergeordneten Datasets des DICOM-Speichers
- LOCATION ist der Speicherort des übergeordneten Datasets des DICOM-Speichers
Die Ausgabe sieht so aus:
done: true metadata: '@type': type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata apiMethodName: google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData counter: success: SUCCESSFUL_INSTANCES failure: FAILED_INSTANCES createTime: 'CREATE_TIME' endTime: 'END_TIME' logsUrl: 'https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL' name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID response: '@type': '...'
API
Verwenden Sie die Methode projects.locations.datasets.dicomStores.export
, um DICOM-Daten mithilfe eines Filters zu exportieren.
curl
Wenn Sie DICOM-Daten mithilfe einer Filterdatei exportieren möchten, senden Sie eine POST
-Anfrage und geben Sie die folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Der Cloud Storage-Ziel-Bucket
- Der Speicherort der Filterdatei in einem Cloud Storage-Bucket
Das folgende Beispiel zeigt eine POST
-Anfrage mit curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'filterConfig': { 'resourcePathsGcsUri': 'gs://BUCKET/DIRECTORY/FILTER_FILE' } }" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export"
Wenn die Anfrage erfolgreich ist, gibt der Server die folgende Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
Die Antwort enthält einen Vorgangsnamen. Verwenden Sie die Vorgangsmethode get
, um den Status des Vorgangs zu verfolgen:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_NAME"
Wenn die Anfrage erfolgreich ist, gibt der Server die folgende Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "..." } }
PowerShell
Wenn Sie DICOM-Daten mithilfe einer Filterdatei exportieren möchten, senden Sie eine POST
-Anfrage und geben Sie die folgenden Informationen an:
- Name und Speicherort des übergeordneten Datasets
- Der Name des DICOM-Speichers
- Der Cloud Storage-Ziel-Bucket
- Der Speicherort der Filterdatei in einem Cloud Storage-Bucket
Das folgende Beispiel zeigt eine POST
-Anfrage mit Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'gcsDestination': { 'uriPrefix': 'gs://BUCKET/DIRECTORY' }, 'filterConfig': { 'resourcePathsGcsUri': 'gs://BUCKET/DIRECTORY/FILTER_FILE' }" ` -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:export" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, gibt der Server die folgende Antwort im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
Die Antwort enthält einen Vorgangsnamen. Verwenden Sie die Vorgangsmethode get
, um den Status des Vorgangs zu verfolgen:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_NAME" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, gibt der Server die folgende Antwort mit dem Status des Vorgangs im JSON-Format zurück:
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1beta1.dicom.DicomService.ExportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "..." } }
Fehlerbehebung bei DICOM-Exportanfragen
Wenn während einer DICOM-Exportanfrage Fehler auftreten, werden die Fehler in Cloud Logging protokolliert. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.
Wenn der gesamte Vorgang einen Fehler zurückgibt, finden Sie weitere Informationen unter Fehlerbehebung bei Vorgängen mit langer Ausführungszeit.