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 Cloud Storage-Objekt ist eine DICOM-Instanz, die sich in Cloud Storage befindet.
Sie können Bulk-Daten zwischen einem Cloud Storage-Bucket und einem DICOM-Speicher importieren und exportieren. Angenommen, Sie haben viele DICOM-Instanzdateien, die Sie in einen DICOM-Speicher importieren möchten. Anstatt die Daten direkt programmatisch zu speichern, können Sie die Daten in einem Cloud Storage-Bucket speichern und die Dateien dann mit einem einzigen Importvorgang in einen DICOM-Speicher importieren. Weitere Informationen finden Sie unter Cloud Storage.
Zum direkten Speichern einer DICOM-Instanz, z. B. von Ihrem lokalen Rechner, können Sie die DICOM-Daten speichern. Verwenden Sie dazu den in der Cloud Healthcare API implementierten RESTful-Webdienst Store Transaction. Um eine einzelne Instanz oder Studie aus einem DICOM-Speicher abzurufen, können Sie DICOM-Daten abrufen. Verwenden Sie dazu den in der Cloud Healthcare API implementierten RESTful-Webdienst Retrieve Transaction.
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
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 Cloud Console die Seite Datasets auf.
Klicken Sie auf das Dataset, für das Sie DICOM-Objekte importieren.
Wählen Sie in der Liste der DICOM-Speicher in der Liste Aktionen die Option Importieren 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.
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 Befehl gcloud healthcare operations describe
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 ist beliebig und muss nicht genau dem in den folgenden Beispielen 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
curl
Zum Importieren von DICOM-Objekten senden Sie eine POST
-Anfrage, die den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers, den Speicherort des Objekts in einem Cloud Storage-Bucket und ein Zugriffstoken enthält.
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 "{ 'gcsSource': { 'uri': 'gs://BUCKET/*.dcm' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import"
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 Methode Operation 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.ImportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL", "counter": { "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES }, }, "done": true, "response": { "@type": "..." } }
PowerShell
Zum Importieren von DICOM-Objekten senden Sie eine POST
-Anfrage, die den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers, den Speicherort des Objekts in einem Cloud Storage-Bucket und ein Zugriffstoken enthält.
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 "{ 'gcsSource': { 'uri': 'gs://BUCKET/*.dcm' } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID:import" | 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. Sie können den Status des Vorgangs mit der Methode Operation get
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.ImportDicomData", "createTime": "CREATE_TIME", "endTime": "END_TIME", "logsUrl": "https://console.cloud.google.com/logs/viewer/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES } }, "done": true, "response": { "@type": "..." } }
Go
Java
Node.js
Python
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 Cloud Console die Seite Datasets auf.
Klicken Sie auf das Dataset, für das Sie DICOM-Instanzen exportieren.
Wählen Sie in der Liste der DICOM-Speicher in der Liste Aktionen die Option Exportieren aus.
Die Seite DICOM-Speicher exportieren wird angezeigt.
Wählen Sie 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.
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 Befehl gcloud healthcare operations describe
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
Zum Exportieren von DICOM-Instanzen senden Sie eine POST
-Anfrage, die den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers, den Cloud Storage-Ziel-Bucket und ein Zugriffstoken enthält.
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 Methode Operation 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/viewer/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES } }, "done": true, "response": { "@type": "..." } }
PowerShell
Zum Exportieren von DICOM-Instanzen senden Sie eine POST
-Anfrage, die den Namen des übergeordneten Datasets, den Namen des DICOM-Speichers, den Cloud Storage-Ziel-Bucket und ein Zugriffstoken enthält.
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 Methode Operation 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/viewer/CLOUD_LOGGING_URL", "counter":{ "success": SUCCESSFUL_INSTANCES "failure": FAILED_INSTANCES }, }, "done": true, "response": { "@type": "..." } }
Go
Java
Node.js
Python
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.