Cette page explique comment importer des objets DICOM depuis Cloud Storage et comment y exporter des instances DICOM. Une instance DICOM est généralement une image, mais elle peut être un autre type de données persistantes, comme un rapport structuré. Un objet DICOM dans Cloud Storage est une instance DICOM qui réside Cloud Storage. Pour en savoir plus, consultez la page Cloud Storage.
Définir des autorisations Cloud Storage
Avant d'importer des données DICOM depuis Cloud Storage ou de les exporter vers ce service, vous devez accorder des autorisations supplémentaires au compte de service Agent de service Cloud Healthcare. Pour en savoir plus, consultez la section Autorisations Cloud Storage pour les datastores DICOM.
Importer des objets DICOM
Pour importer plusieurs fichiers d'instance DICOM dans un magasin DICOM, vous pouvez utilisez l'une des méthodes suivantes:
- Par programmation stocker les données directement dans un magasin DICOM. depuis votre ordinateur local à l'aide du Transaction en magasin Service Web RESTful tel qu'il est implémenté dans l'API Cloud Healthcare.
- Importer les données DICOM dans un bucket Cloud Storage puis importer les fichiers dans un magasin DICOM en une seule opération d'importation comme expliqué dans cette section.
Les exemples suivants montrent comment importer des objets DICOM depuis un bucket Cloud Storage.
Console
Pour importer des objets DICOM à partir d'un bucket Cloud Storage, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Ensembles de données.
Accéder à la page "Ensembles de données" - Cliquez sur l'ensemble de données contenant le magasin DICOM dans lequel vous importez des objets DICOM.
- Dans la liste de datastores, sélectionnez Importer dans la liste Actions du magasin DICOM.
L'importation dans le magasin DICOM s'affiche. - Dans la liste Projet, sélectionnez un projet Cloud Storage.
- Dans la liste Emplacement, sélectionnez un bucket Cloud Storage.
- Pour définir un emplacement spécifique pour l'importation de fichiers, procédez comme suit :
- Développer les options avancées
- Sélectionnez Remplacer le chemin d'accès Cloud Storage.
- Pour définir une source spécifique pour l'importation de fichiers, définissez le chemin d'accès à l'aide des variables suivantes dans la zone de texte Emplacement :
*
- correspond aux caractères non séparateurs.**
- correspond aux caractères, y compris les séparateurs. Cela peut être utilisé avec une extension de nom de fichier pour correspondre à tous les fichiers du même type.?
- correspond à 1 caractère.
- Cliquez sur Importer pour importer des objets DICOM à partir de la source définie.
- Pour suivre l'état de l'opération, cliquez sur l'onglet Opérations. Une fois l'opération terminée, les indications suivantes s'affichent :
- La section État de l'opération de longue durée est représentée par une coche verte sous l'en-tête OK.
- La section Présentation comporte une coche verte et un indicateur OK sur la même ligne que l'ID de l'opération.
gcloud
Pour importer des objets DICOM à partir d'un bucket Cloud Storage, utilisez la commande gcloud healthcare dicom-stores import gcs
. Spécifiez le nom de l'ensemble de données parent, le nom du magasin DICOM et l'emplacement de l'objet dans un bucket Cloud Storage.
- L'emplacement des fichiers dans le bucket est arbitraire et ne doit pas nécessairement respecter exactement le format spécifié dans l'exemple suivant.
- Lorsque vous spécifiez l'emplacement des objets DICOM dans Cloud Storage, vous pouvez importer plusieurs fichiers depuis un ou plusieurs répertoires au moyen de caractères génériques.
Les caractères génériques suivants sont acceptés :
- Utilisez
*
pour correspondre à 0 ou plusieurs caractères non séparateurs. Par exemple,gs://BUCKET/DIRECTORY/Example*.dcm
correspond à Example.dcm et Example22.dcm dans DIRECTORY. - Utilisez
**
pour correspondre à 0 caractère ou plus (séparateurs compris). Doit être utilisé à la fin d'un chemin d'accès et sans autres caractères génériques. Peut également être utilisé avec une extension de nom de fichier (.dcm, par exemple), qui importe tous les fichiers portant l'extension dans le répertoire spécifié et ses sous-répertoires. Par exemple,gs://BUCKET/DIRECTORY/**.dcm
importe tous les fichiers portant l'extension .dcm dans DIRECTORY et ses sous-répertoires. - Utilisez
?
pour correspondre à 1 caractère. Par exemple,gs://BUCKET/DIRECTORY/Example?.dcm
correspond à "Example1.dcm", mais ne correspond pas à "Example.dcm" ou "Example01.dcm".
- Utilisez
L'exemple suivant montre comment importer des objets DICOM à partir d'un bucket Cloud Storage.
gcloud healthcare dicom-stores import gcs DICOM_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ --gcs-uri=gs://BUCKET/DIRECTORY/DICOM_INSTANCE.dcm
La ligne de commande affiche l'ID de l'opération :
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Pour afficher l'état de l'opération, exécutez la commande gcloud healthcare operations describe
et spécifiez OPERATION_ID dans la réponse :
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Une fois la commande terminée, la réponse inclut 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
Pour importer des objets DICOM à partir d'un bucket Cloud Storage, utilisez la méthode projects.locations.datasets.dicomStores.import
.
- L'emplacement des fichiers dans le bucket peut varier et n'a pas besoin correspondre au format spécifié dans les exemples suivants.
- Lorsque vous spécifiez l'emplacement des objets DICOM dans Cloud Storage, vous pouvez importer plusieurs fichiers depuis un ou plusieurs répertoires au moyen de caractères génériques.
Les caractères génériques suivants sont acceptés :
- Utilisez
*
pour correspondre à 0 ou plusieurs caractères non séparateurs. Par exemple,gs://BUCKET/DIRECTORY/Example*.dcm
correspond à Example.dcm et Example22.dcm dans DIRECTORY. - Utilisez
**
pour correspondre à 0 caractère ou plus (séparateurs compris). Doit être utilisé à la fin d'un chemin d'accès et sans autres caractères génériques. Peut également être utilisé avec une extension de nom de fichier (.dcm, par exemple), qui importe tous les fichiers portant l'extension dans le répertoire spécifié et ses sous-répertoires. Par exemple,gs://BUCKET/DIRECTORY/**.dcm
importe tous les fichiers portant l'extension .dcm dans DIRECTORY et ses sous-répertoires. - Utilisez
?
pour correspondre à 1 caractère. Par exemple,gs://BUCKET/DIRECTORY/Example?.dcm
correspond à "Example1.dcm", mais ne correspond pas à "Example.dcm" ou "Example01.dcm".
- Utilisez
REST
Importez l'objet DICOM.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudLOCATION
: emplacement de l'ensemble de donnéesDATASET_ID
: ensemble de données parent du magasin DICOMDICOM_STORE_ID
: ID du magasin DICOMBUCKET/PATH/TO/FILE
: chemin d'accès à l'objet DICOM dans Cloud Storage
Corps JSON de la requête :
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :cat > request.json << 'EOF' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" } } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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 ContentObtenez l'état de l'opération de longue durée.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin DICOM
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Pour récupérer une seule instance ou étude à partir d'un magasin DICOM, vous pouvez récupérer des données DICOM à l'aide du service Web RESTful Retrieve Transaction mis en œuvre dans l'API Cloud Healthcare.
Spécifier une classe de stockage pour importer des objets DICOM (preview)
Par défaut, la méthode projects.locations.datasets.dicomStores.import
importe
un objet DICOM vers un magasin DICOM avec une classe de stockage standard. Vous pouvez définir le paramètre
lorsque vous importez des objets DICOM depuis Cloud Storage.
Pour en savoir plus, consultez
Modifiez la classe de stockage DICOM.
Les exemples suivants montrent comment spécifier la classe de stockage lorsque vous importez Objets DICOM depuis Cloud Storage.
REST
Utilisez la méthode projects.locations.datasets.dicomStores.import
.
Importez l'objet DICOM.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google CloudLOCATION
: emplacement de l'ensemble de donnéesDATASET_ID
: ensemble de données parent du magasin DICOMDICOM_STORE_ID
: ID du magasin DICOMBUCKET/PATH/TO/FILE
: chemin d'accès à l'objet DICOM dans Cloud StorageSTORAGE_CLASS
: classe de stockage de l'objet DICOM dans le magasin DICOM à partir deSTANDARD
,NEARLINE
,COLDLINE
etARCHIVE
Corps JSON de la requête :
{ "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :cat > request.json << 'EOF' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } } EOF
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
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
Enregistrez le corps de la requête dans un fichier nommé
request.json
. Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :@' { "gcsSource": { "uri": "gs://BUCKET/PATH/TO/FILE.dcm" }, "blob_storage_settings": { "blob_storage_class": "STORAGE_CLASS" } } '@ | Out-File -FilePath request.json -Encoding utf8
Exécutez ensuite la commande suivante pour envoyer votre requête REST :
$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 ContentObtenez l'état de l'opération de longue durée.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- LOCATION : emplacement de l'ensemble de données
- DATASET_ID : ensemble de données parent du magasin DICOM
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Résoudre les problèmes liés aux requêtes d'importation DICOM
Si des erreurs se produisent lors d'une requête d'importation DICOM, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.
Exporter des instances DICOM
Les exemples suivants montrent comment exporter des instances DICOM vers un bucket Cloud Storage. Lorsque vous exportez des instances DICOM depuis un datastore DICOM, toutes les instances qu'il contient sont exportées.
Console
Pour exporter des instances DICOM vers Cloud Storage, procédez comme suit :
- Dans la console Google Cloud, accédez à la page Ensembles de données.
Accéder à la page "Ensembles de données" - Cliquez sur l'ensemble de données contenant le magasin DICOM à partir duquel vous exportez des instances DICOM.
- Dans la liste des datastores, sélectionnez Exporter dans la liste Actions du magasin DICOM.
- Sur la page Exporter un magasin DICOM qui s'affiche, sélectionnez Bucket Google Cloud Storage.
- Dans la liste Projet, sélectionnez un projet Cloud Storage.
- Dans la liste Emplacement, sélectionnez un bucket Cloud Storage.
- Dans Paramètres d'exportation DICOM, sélectionnez le type de fichier utilisé pour exporter les instances DICOM. Les types suivants sont disponibles :
- Fichier DICOM (
.dcm
) - Octetstream
- Image (
.jpg
,.png
)
- Fichier DICOM (
- Pour définir une syntaxe de transfert supplémentaire, sélectionnez-la dans la liste Syntaxe de transfert.
- Cliquez sur Exporter pour exporter des instances DICOM vers l'emplacement défini dans Cloud Storage.
- Pour suivre l'état de l'opération, cliquez sur l'onglet Opérations. Une fois l'opération terminée, les indications suivantes s'affichent :
- La section État de l'opération de longue durée est représentée par une coche verte sous l'en-tête OK.
- La section Présentation comporte une coche verte et un indicateur OK sur la même ligne que l'ID de l'opération.
gcloud
Pour exporter des instances DICOM vers un bucket Cloud Storage, utilisez la commande gcloud healthcare dicom-stores export gcs
.
- Indiquez le nom de l'ensemble de données parent, le nom du magasin DICOM et le bucket Cloud Storage de destination.
- Écrivez dans un bucket ou un répertoire Cloud Storage plutôt qu'un objet, car l'API Cloud Healthcare crée un fichier
.dcm
pour chaque objet. - Si la commande spécifie un répertoire qui n'existe pas, celui-ci est créé.
L'exemple suivant montre la commande 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
La ligne de commande affiche l'ID de l'opération :
name: projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID
Pour afficher l'état de l'opération, exécutez la commande gcloud healthcare operations describe
et spécifiez OPERATION_ID dans la réponse :
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Une fois la commande terminée, la réponse inclut 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
Pour exporter des instances DICOM vers un bucket Cloud Storage, utilisez la méthode projects.locations.datasets.dicomStores.export
.
- Écrivez dans un bucket ou un répertoire Cloud Storage plutôt qu'un objet, car l'API Cloud Healthcare crée un fichier
.dcm
pour chaque objet DICOM. - Si la commande spécifie un répertoire qui n'existe pas, celui-ci est créé.
curl
Pour exporter des instances DICOM, envoyez une requête POST
et fournissez les informations suivantes :
- Nom et emplacement de l'ensemble de données parent
- Le nom du magasin DICOM
- Le bucket Cloud Storage de destination
L'exemple suivant montre une requête POST
utilisant 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"
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Pour suivre l'état de l'opération, utilisez la méthode get
:
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"
Si la requête aboutit, le serveur renvoie une réponse avec l'état de l'opération au format JSON :
{ "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
Pour exporter des instances DICOM, envoyez une requête POST
et fournissez les informations suivantes :
- Nom et emplacement de l'ensemble de données parent
- Le nom du magasin DICOM
- Le bucket Cloud Storage de destination
L'exemple suivant montre une requête POST
utilisant 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
Si la requête aboutit, le serveur renvoie la réponse au format JSON :
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Pour suivre l'état de l'opération, utilisez la méthode get
:
$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
Si la requête aboutit, le serveur renvoie une réponse avec l'état de l'opération au format JSON :
{ "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
Exporter des instances DICOM à l'aide de filtres
Par défaut, lorsque vous exportez des fichiers DICOM vers Cloud Storage, tous les fichiers DICOM du magasin DICOM sont exportés. De même, lorsque vous exportez des fichiers DICOM vers BigQuery, les métadonnées de toutes les données DICOM dans le store DICOM est exporté.
Vous pouvez exporter un sous-ensemble de données ou de métadonnées DICOM à l'aide d'un fichier de filtre.
Configurer un fichier de filtre
- Chaque ligne du fichier de filtre définit l'étude, la série ou l'instance et utilise le format
/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID
. - Vous pouvez tronquer une ligne pour indiquer le niveau auquel le filtre fonctionne.
Par exemple, vous pouvez sélectionner une étude entière en spécifiant
/studies/STUDY_INSTANCE_UID
ou vous pouvez sélectionner une une série entière en spécifiant/studies/STUDY_INSTANCE_UID/series/SERIES_INSTANCE_UID
Prenons l'exemple du fichier de filtre suivant:
/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
Cet exemple de fichier de filtre s'applique aux éléments suivants:
- L'ensemble de l'étude avec l'UID de l'instance de l'étude comme
1.123.456.789
- Deux séries distinctes avec des UID d'instance de série en tant que
123.456
et567.890
dans l'étude1.666.333.111
- Trois instances individuelles avec les ID d'instance
111
,222
et333
dans le étude1.888.999.222
et série123.456
Créer un fichier de filtre à l'aide de BigQuery
Pour créer un fichier de filtre à l'aide de BigQuery, vous devez d'abord exporter les métadonnées de votre magasin DICOM vers BigQuery. Les métadonnées exportées vous montre les UID des études, séries et instances des données DICOM de votre Google Store.
Après avoir exporté les métadonnées, procédez comme suit:
Exécutez une requête pour renvoyer les UID de l'étude, de la série et des instances que vous vous souhaitez ajouter au fichier de filtre.
Par exemple, la requête suivante montre comment concaténer l'étude, la série et UID de l'instance pour respecter les exigences du format de fichier du filtre:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Facultatif : Si la requête renvoie un grand ensemble de résultats qui dépasse la taille de réponse maximale, enregistrez les résultats de la requête dans une nouvelle table de destination dans BigQuery.
Enregistrez les résultats de la requête et l'exporter vers Cloud Storage. Si vous avez enregistré les résultats de votre requête vers une nouvelle table de destination à l'étape 2, consultez Exporter les données d'une table pour exporter les données contenus dans Cloud Storage.
Modifiez le fichier exporté si nécessaire et incluez-le dans votre demande modifier la classe de stockage de plusieurs objets DICOM.
Créer un fichier de filtre manuellement
Pour créer manuellement un fichier de filtre, procédez comme suit :
- Créez un fichier de filtre contenant les objets DICOM sur lesquels vous effectuez le filtrage.
- Importez le fichier de filtre dans Cloud Storage. Pour obtenir des instructions, consultez l'article Importer des objets à partir d'un système de fichiers
Transmettre le fichier de filtre
Après avoir créé un fichier de filtre, appelez l'opération d'exportation DICOM et transmettez le fichier de filtre à l'aide de l'API REST. Les exemples suivants montrent comment exporter des données DICOM à l'aide d'un filtre.
gcloud
Pour exporter des métadonnées DICOM vers Cloud Storage à l'aide d'un filtre, utilisez la commande gcloud beta healthcare dicom-stores export gcs
:
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
Remplacez les éléments suivants :
- DICOM_STORE_ID : identifiant du magasin DICOM
- DATASET_ID : nom de l'ensemble de données parent du magasin DICOM
- LOCATION : emplacement de l'ensemble de données parent du magasin DICOM
- DESTINATION_BUCKET/DIRECTORY : bucket Cloud Storage de destination.
- BUCKET/DIRECTORY/FILTER_FILE : emplacement du fichier de filtre dans un bucket Cloud Storage
Le résultat est le suivant :
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
Pour afficher l'état de l'opération, exécutez la commande gcloud healthcare operations describe
et spécifiez la valeur OPERATION_ID de la réponse :
gcloud healthcare operations describe OPERATION_ID \ --location=LOCATION \ --dataset=DATASET_ID
Remplacez les éléments suivants :
- OPERATION_ID : numéro d'ID renvoyé par la réponse précédente
- DATASET_ID : nom de l'ensemble de données parent du magasin DICOM
- LOCATION : emplacement de l'ensemble de données parent du magasin DICOM
Le résultat est le suivant :
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
Pour exporter des données DICOM à l'aide d'un filtre, utilisez la méthode projects.locations.datasets.dicomStores.export
.
curl
Pour exporter des données DICOM à l'aide d'un fichier de filtre, envoyez une requête POST
et fournissez les informations suivantes :
- Nom et emplacement de l'ensemble de données parent
- Le nom du magasin DICOM
- Le bucket Cloud Storage de destination
- L'emplacement du fichier de filtre dans un bucket Cloud Storage
L'exemple suivant montre une requête POST
utilisant 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"
Si la requête aboutit, le serveur affiche la réponse suivante au format JSON :
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Utilisez la méthode get
pour suivre l'état de l'opération :
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"
Si la requête aboutit, le serveur affiche la réponse suivante au format JSON :
{ "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
Pour exporter des données DICOM à l'aide d'un fichier de filtre, envoyez une requête POST
et fournissez les informations suivantes :
- Nom et emplacement de l'ensemble de données parent
- Le nom du magasin DICOM
- Le bucket Cloud Storage de destination
- L'emplacement du fichier de filtre dans un bucket Cloud Storage
L'exemple suivant montre une requête POST
utilisant 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
Si la requête aboutit, le serveur affiche la réponse suivante au format JSON :
{ "name": "projects/PROJECT_ID/locations/REGION/datasets/DATASET_ID/operations/OPERATION_ID" }
La réponse contient un nom d'opération. Utilisez la méthode get
pour suivre l'état de l'opération :
$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
Si la requête aboutit, le serveur affiche la réponse suivante avec l'état de l'opération au format JSON :
{ "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": "..." } }
Résoudre les problèmes liés aux requêtes d'exportation DICOM
Si des erreurs se produisent lors d'une requête d'exportation DICOM, elles sont consignées dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.
Si l'ensemble de l'opération renvoie une erreur, consultez la section Résoudre les problèmes d'opérations de longue durée.