Cette page explique comment utiliser la configuration DicomTagConfig
v1bêta1 dans l'API Cloud Healthcare pour anonymiser les données sensibles dans les instances DICOM aux niveaux suivants :
- Au niveau de l'ensemble de données avec
datasets.deidentify
- Au niveau du magasin DICOM avec
dicomStores.deidentify
Cette page explique également comment appliquer des filtres lors de l'anonymisation des données au niveau du magasin DICOM.
Vous pouvez configurer les opérations d'anonymisation DICOM à l'aide de l'objet DicomConfig
v1 hérité ou de l'objet DicomTagConfig
v1beta1. Nous vous recommandons vivement d'utiliser DicomTagConfig
.
Si vous utilisez déjà DicomConfig
pour vos opérations de désidentification, nous vous encourageons à migrer vers DicomTagConfig
. Pour obtenir un récapitulatif des nouvelles fonctionnalités, consultez Nouvelles options de configuration dans DicomTagConfig
.
Pour savoir comment migrer, consultez Migrer les requêtes et les réponses pour utiliser DicomTagConfig
.
Nouvelles options de configuration dans DicomTagConfig
Anonymiser du texte avec l'anonymisation contextuelle
Vous pouvez configurer l'objet DicomTagConfig.Options.CleanDescriptorsOption
pour activer l'anonymisation contextuelle du texte des métadonnées non structurées.
Cette option est basée sur l'option de nettoyage des descripteurs.
Lorsque vous spécifiez DicomTagConfig.Options.CleanDescriptorsOption
, un infoType supplémentaire est utilisé lors de l'inspection, ce qui peut avoir une incidence sur les coûts de facturation.
L'option DicomTagConfig.Options.CleanDescriptorsOption
permet de transformer tout texte de métadonnées non structuré correspondant aux tags supprimés, ce qui améliore la qualité de l'identification. Par exemple, supposons que vous anonymisiez une radiographie et que le nom de famille du patient soit également un nom commun, tel que Wall
. Si des métadonnées de l'instance, comme le texte dans StudyDescription
, contiennent le mot Wall
, le texte sera transformé.
L'option CleanDescriptorsOption
masque les expressions contextuelles qui correspondent à l'un des tags marqués pour suppression dans le profil de base DICOM, à condition que les tags correspondent à l'un des codes d'action suivants :
D
Z
X
U
Les expressions contextuelles correspondantes sont remplacées par le jeton [CTX]
.
Vous pouvez configurer les balises à masquer en spécifiant les éléments suivants :
- Énumération dans l'objet
ProfileType
. Il n'est pas obligatoire de spécifier une énumération. - Le filtre
CleanTextTag
pour les tags spécifiques.
Toutefois, vous ne pouvez pas modifier les tags utilisés dans le profil de base DICOM.
Masquer le texte incrusté avec l'anonymisation contextuelle
Vous pouvez spécifier l'énumération TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
pour activer la désidentification contextuelle du texte incrusté dans une image.
Cette option est basée sur l'option de nettoyage des descripteurs.
Lorsque vous spécifiez l'énumération TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, un infoType supplémentaire est utilisé lors de l'inspection, ce qui peut avoir une incidence sur les coûts de facturation.
Vous pouvez spécifier l'énumération TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
comme suit :
Dans un objet
Options.ImageConfig
avecDicomTagConfig.Options.ImageConfig.TextRedactionMode
. Lorsque vous spécifiez cette option, la balisePixelData (7FE0,0010)
est automatiquement ajoutée à la liste des balises à masquer.Dans un objet
Action.CleanImageTag
avecDicomTagConfig.Action.CleanImageTag.TextRedactionMode
. Lorsque vous spécifiez cette option, vous devez ajouter manuellement le tagPixelData
au tableauAction.queries[]
. La balisePixelData
est la seule balise acceptée lorsque vous utilisezAction.CleanImageTag
.
L'option TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
masque le texte incrusté qui correspond à l'un des tags marqués pour suppression dans le profil de base DICOM, à condition que les tags correspondent à l'un des codes d'action suivants :
D
Z
X
U
Il n'existe aucune configuration supplémentaire pour la désidentification contextuelle du texte intégré, à part l'activation ou la désactivation à l'aide d'une énumération dans l'objet ProfileType
. Il n'est pas obligatoire de spécifier une énumération.
InfoTypes supplémentaires pour l'anonymisation d'images
Vous pouvez utiliser des types d'informations (infoTypes) pour spécifier les données à analyser lors de l'anonymisation des tags. Un infoType est un type de données sensibles, par exemple un nom de patient, une adresse e-mail, un numéro de téléphone, un numéro d'identification ou un numéro de carte de crédit.
Vous pouvez configurer les champs suivants dans l'objet DicomTagConfig.Options.ImageConfig
pour déterminer les infoTypes à utiliser lors de l'anonymisation des images DICOM :
Ces champs ne prennent effet que si DicomTagConfig.Options.ImageConfig.TextRedactionMode
est défini sur l'une des valeurs suivantes :
Migrer les requêtes et les réponses pour utiliser DicomTagConfig
Vous pouvez configurer l'anonymisation DICOM à l'aide de DicomTagConfig
, qui est disponible dans l'API Cloud Healthcare v1beta1 et constitue une alternative à l'utilisation de l'ancienne DicomConfig
.
Lorsque vous envoyez une requête, vous ne pouvez pas inclure à la fois DicomConfig
et DicomTagConfig
.
Les sections suivantes décrivent les configurations dans DicomConfig
et expliquent comment les migrer vers DicomTagConfig
.
De TagFilterProfile
à ProfileType
Remplacez l'objet TagFilterProfile
DicomConfig
par l'objet ProfileType
DicomTagConfig
. Les quatre mêmes profils que dans TagFilterProfileType
sont disponibles dans ProfileType
.
L'exemple suivant montre comment migrer une requête de TagFilterProfile
vers ProfileType
:
DicomConfig | DicomTagConfig |
---|---|
|
|
keepList
et removeList
Les champs DicomConfig
keepList
et removeList
ne sont plus disponibles dans DicomTagConfig
. Si vous avez utilisé keepList
et removeList
pour spécifier les tags à conserver ou à supprimer au lieu d'utiliser un profil, vous devez migrer vers le nouvel objet Action
dans lequel vous spécifiez le comportement des tags. L'objet Action
fournit des options supplémentaires pour transformer les balises.
L'exemple suivant montre comment migrer une requête de keepList
vers Action.keepTag
. La requête indique que la valeur du tag PatientID
est conservée lors de l'opération d'anonymisation.
DicomConfig | DicomTagConfig |
---|---|
|
|
Combiner les listes de contenus à conserver, les listes de contenus à supprimer et les profils
Dans l'objet DicomConfig
, vous pouvez déterminer si vous souhaitez conserver ou supprimer des données en fonction des listes de conservation, des listes de suppression et des profils. Ces options s'excluent mutuellement.
Lorsque vous utilisez l'objet DicomTagConfig
, vous pouvez combiner ces options en spécifiant les tags à conserver et à supprimer dans un objet Action
tout en spécifiant un profil dans ProfileType
.
Les options configurées dans l'objet Action
remplacent celles configurées dans le profil ProfileType
. Les options de l'objet Action
s'appliquent dans l'ordre dans lequel elles sont fournies dans la requête.
De skipIdRedaction
à Objects.primaryIds
Remplacez le champ skipIdRedaction
de l'objet DicomConfig
par le champ primaryIds
de l'objet DicomTagConfig
. Le champ primaryIds
, qui se trouve dans l'objet Options
, contient un objet PrimaryIdsOption
dans lequel vous spécifiez l'une des énumérations suivantes :
PRIMARY_IDS_OPTION_UNSPECIFIED
: comportement par défaut lorsqu'aucune valeur n'est fournie àPrimaryIdsOption
. La valeur par défaut correspond à l'option spécifiée dansProfileType
.KEEP
: ne modifiez pas les ID principaux.REGEN
: Régénérez les ID principaux.
L'exemple suivant montre comment migrer une requête de skipIdRedaction
vers Options.primaryIds
. La requête spécifie que les valeurs des ID principaux sont conservées lors de l'opération d'anonymisation :
DicomConfig | DicomTagConfig |
---|---|
|
|
De DeidentifyConfig.ImageConfig
à DicomTagConfig.Options.ImageConfig
Remplacez l'objet DeidentifyConfig.ImageConfig
par l'objet DicomTagConfig.Options.ImageConfig
.
Les options de l'objet ImageConfig
sont identiques dans les deux versions.
L'exemple suivant montre comment migrer une requête d'une ImageConfig
dans DeidentifyConfig.image
vers une ImageConfig
dans DeidentifyConfig.DicomTagConfig.Options.cleanImage
.
La requête spécifie que tout le texte d'une image doit être masqué lors de l'opération d'anonymisation :
DeidentifyConfig.image | DeidentifyConfig.DicomTagConfig.Options.cleanImage |
---|---|
|
|
Présentation de l'anonymisation
Anonymisation au niveau de l'ensemble de données
Pour anonymiser des données DICOM au niveau de l'ensemble de données, appelez la méthode datasets.deidentify
. La méthode datasets.deidentify
comporte les composants suivants :
- L'ensemble de données source : ensemble de données contenant des magasins DICOM avec une ou plusieurs instances contenant des données sensibles. Lorsque vous appelez la méthode
datasets.deidentify
, toutes les instances de tous les magasins DICOM de l'ensemble de données sont anonymisées. - L'ensemble de données de destination : l'anonymisation n'a aucune incidence sur l'ensemble de données d'origine ni sur ses données. Au lieu de cela, les copies anonymisées des données d'origine sont écrites dans un nouvel ensemble de données, appelé ensemble de données de destination.
- Éléments à anonymiser : paramètres de configuration spécifiant comment traiter les données DICOM de l'ensemble de données. Vous pouvez configurer l'anonymisation de DICOM pour anonymiser des métadonnées d'instance DICOM (à l'aide de mots clés de tag) ou du texte incrusté dans les images DICOM en spécifiant ces paramètres dans un objet
DeidentifyConfig
.
La plupart des exemples de ce guide montrent comment anonymiser des données DICOM au niveau de l'ensemble de données.
Anonymisation de DICOM au niveau du magasin
L'anonymisation de données DICOM au niveau du magasin DICOM vous permet de mieux contrôler les données anonymisées. Par exemple, si vous disposez d'un ensemble de données avec plusieurs magasins DICOM, vous pouvez anonymiser chaque magasin DICOM en fonction du type de données qu'il contient.
Pour anonymiser des données DICOM dans un magasin DICOM, appelez la méthode dicomStores.deidentify
. La méthode dicomStores.deidentify
comporte les composants suivants :
- Magasin DICOM source : magasin DICOM contenant une ou plusieurs instances ayant des données sensibles. Lorsque vous appelez l'opération
dicomStores.deidentify
, toutes les instances du magasin DICOM sont anonymisées. - Magasin DICOM de destination : l'anonymisation n'a aucune incidence sur le magasin DICOM d'origine ni sur ses données. À la place, des copies anonymisées des données d'origine sont écrites dans le magasin DICOM de destination. Le magasin DICOM de destination doit déjà exister.
- Éléments à anonymiser : paramètres de configuration qui spécifient comment traiter le magasin DICOM. Vous pouvez configurer l'anonymisation de DICOM pour anonymiser des métadonnées d'instance DICOM (à l'aide de mots clés de tag) ou du texte incrusté dans les images DICOM en spécifiant ces paramètres dans un objet
DeidentifyConfig
.
Pour obtenir un exemple d'anonymisation de données DICOM au niveau du magasin DICOM, consultez Anonymiser des données au niveau du magasin DICOM.
Filtres
Lorsque vous anonymisez des données DICOM au niveau du magasin DICOM, vous pouvez anonymiser un sous-ensemble des données du magasin DICOM en configurant un fichier de filtre et en spécifiant ce fichier dans la requête dicomStores.deidentify
. Pour obtenir un exemple, consultez la section Anonymiser un sous-ensemble d'un magasin DICOM.
Présentation des exemples
Les exemples de ce guide utilisent une seule instance DICOM nommée dicom_deid_instance_sample.dcm
, mais vous pouvez également anonymiser plusieurs instances. Pour utiliser l'exemple d'instance DICOM dans les exemples de cette page, téléchargez le fichier sur votre ordinateur local et suivez les instructions de la section Stocker des données DICOM pour le stocker dans un magasin DICOM.
Les sections suivantes montrent à quoi ressemble l'image dans l'instance DICOM et les métadonnées de l'instance.
Exemple d'image
Certains exemples de cette page contiennent une sortie de l'image anonymisée. Chaque exemple utilise l'image d'origine suivante comme entrée. Vous pouvez comparer l'image de sortie de chaque opération d'anonymisation à cette image d'origine pour voir les effets de l'opération :
Exemple de métadonnées
La plupart des exemples de cette page contiennent une sortie des métadonnées modifiées dans l'instance DICOM. Chaque exemple utilise les métadonnées d'origine suivantes comme entrée. Vous pouvez comparer les métadonnées de sortie de chaque opération d'anonymisation à ces métadonnées d'origine pour voir les effets de l'anonymisation :
[
{
"00020002": {
"vr": "UI",
"Value": [
"1.2.840.10008.5.1.4.1.1.7"
]
},
"00020003": {
"vr": "UI",
"Value": [
"1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"
]
},
"00020010": {
"vr": "UI",
"Value": [
"1.2.840.10008.1.2.4.50"
]
},
"00020012": {
"vr": "UI",
"Value": [
"1.2.276.0.7230010.3.0.3.6.1"
]
},
"00020013": {
"vr": "SH",
"Value": [
"OFFIS_DCMTK_361"
]
},
"00080005": {
"vr": "CS",
"Value": [
"ISO_IR 100"
]
},
"00080016": {
"vr": "UI",
"Value": [
"1.2.840.10008.5.1.4.1.1.7"
]
},
"00080018": {
"vr": "UI",
"Value": [
"1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695"
]
},
"00080020": {
"vr": "DA",
"Value": [
"20110909"
]
},
"00080030": {
"vr": "TM",
"Value": [
"110032"
]
},
"00080050": {
"vr": "SH"
},
"00080064": {
"vr": "CS",
"Value": [
"WSD"
]
},
"00080070": {
"vr": "LO",
"Value": [
"Manufacturer"
]
},
"00080090": {
"vr": "PN",
"Value": [
{
"Alphabetic": "John Doe"
}
]
},
"00081090": {
"vr": "LO",
"Value": [
"ABC1"
]
},
"00100010": {
"vr": "PN",
"Value": [
{
"Alphabetic": "Ann Johnson"
}
]
},
"00100020": {
"vr": "LO",
"Value": [
"S1214223-1"
]
},
"00100030": {
"vr": "DA",
"Value": [
"19880812"
]
},
"00100040": {
"vr": "CS",
"Value": [
"F"
]
},
"0020000D": {
"vr": "UI",
"Value": [
"2.25.70541616638819138568043293671559322355"
]
},
"0020000E": {
"vr": "UI",
"Value": [
"1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694"
]
},
"00200010": {
"vr": "SH"
},
"00200011": {
"vr": "IS"
},
"00200013": {
"vr": "IS"
},
"00200020": {
"vr": "CS"
},
"00280002": {
"vr": "US",
"Value": [
3
]
},
"00280004": {
"vr": "CS",
"Value": [
"YBR_FULL_422"
]
},
"00280006": {
"vr": "US",
"Value": [
0
]
},
"00280010": {
"vr": "US",
"Value": [
1024
]
},
"00280011": {
"vr": "US",
"Value": [
1024
]
},
"00280100": {
"vr": "US",
"Value": [
8
]
},
"00280101": {
"vr": "US",
"Value": [
8
]
},
"00280102": {
"vr": "US",
"Value": [
7
]
},
"00280103": {
"vr": "US",
"Value": [
0
]
},
"00282110": {
"vr": "CS",
"Value": [
"01"
]
},
"00282114": {
"vr": "CS",
"Value": [
"ISO_10918_1"
]
}
}
]
Masquer du texte incrusté dans les images
Vous pouvez anonymiser le texte incrusté dans les images DICOM à l'aide de l'objet ImageConfig
dans un objet Action
. Dans ImageConfig
, vous pouvez spécifier les infoTypes à inclure ou à exclure, et comment masquer le texte à l'aide de l'objet TextRedactionMode
.
Masquer tout le texte
Les exemples suivants montrent comment anonymiser une instance DICOM en définissant TextRedactionMode
sur REDACT_ALL_TEXT
.
Cette configuration masque tout le texte incrusté dans l'image.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Après avoir anonymisé l'image à l'aide de REDACT_ALL_TEXT
, elle se présente comme suit. Notez que tout le texte incrusté en bas de l'image a été masqué.

REDACT_ALL_TEXT
.Masquer le texte sensible avec l'option "Nettoyer les descripteurs"
Les exemples suivants montrent comment anonymiser une instance DICOM en définissant TextRedactionMode
sur REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Pour en savoir plus sur l'option CleanDescriptorsOption
, consultez Supprimer l'identification du texte avec l'anonymisation contextuelle.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Après avoir anonymisé l'image à l'aide de REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, elle se présente comme suit. Notez que tout le texte incrusté en bas de l'image n'a pas été masqué. Le texte Female
s'affiche toujours, car PatientSex (0010,0040)
ne fait pas partie des infoTypes DICOM par défaut.

REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.Anonymiser des tags DICOM
Vous pouvez anonymiser des instances DICOM à l'aide de mots clés de tags dans les métadonnées DICOM.
Les méthodes suivantes de filtrage de tags sont disponibles dans l'objet Action
:DicomTagConfig
Vous spécifiez chaque option Action
sous la forme d'une liste d'ID, de noms ou de représentations de valeurs (VR) de tags DICOM. L'option effectue ensuite une action sur les tags de la liste. Vous ne pouvez pas spécifier plusieurs options Action
dans une liste de tags.
Chaque objet Action
fournit une liste queries[]
dans laquelle vous spécifiez une liste de tags. Les formats de balises suivants sont acceptés :
- ID de balise, tels que
"00100010"
- Noms de balises, tels que
"PatientName"
- Représentations de valeurs (VR, Value Representations), telles que
"PN"
Le nombre de tags pouvant être fournis dans la liste queries[]
n'est pas limité.
Toutefois, une seule option Action
peut être appliquée à chaque balise.
Pour spécifier différents tags auxquels sont appliquées différentes options Action
, vous devez spécifier plusieurs objets Action
.
Conserver les tags
Vous pouvez empêcher la suppression des valeurs de tags en les spécifiant dans un objet KeepTag
de l'objet DicomTagConfig
.
Pour générer un objet DICOM valide lorsque vous utilisez un objet KeepTag
, spécifiez les valeurs MINIMAL_KEEP_LIST_PROFILE
ou DEIDENTIFY_TAG_CONTENTS
dans l'objet ProfileType
.
Si vous spécifiez l'un de ces profils, les tags suivants sont automatiquement conservés, ce qui garantit que l'instance DICOM anonymisée est une instance DICOM valide :
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
TransferSyntaxUID
MediaStorageSOPInstanceUID
MediaStorageSOPClassUID
PixelData
Rows
Columns
SamplesPerPixel
BitsAllocated
BitsStored
Highbit
PhotometricInterpretation
PixelRepresentation
NumberOfFrames
PlanarConfiguration
PixelAspectRatio
SmallestImagePixelValue
LargestImagePixelValue
RedPaletteColorLookupTableDescriptor
GreenPaletteColorLookupTableDescriptor
BluePaletteColorLookupTableDescriptor
RedPaletteColorLookupTableData
GreenPaletteColorLookupTableData
BluePaletteColorLookupTableData
ICCProfile
ColorSpace
WindowCenter
WindowWidth
VOILUTFunction
Les valeurs de certains des tags précédents sont regénérées, ce qui signifie que les valeurs sont remplacées par une valeur différente via une transformation déterministe. Pour en savoir plus, consultez la section Option Conserver les UID dans la norme DICOM.
Les valeurs de StudyInstanceUID
, SeriesInstanceUID
, SOPInstanceUID
et MediaStorageSOPInstanceUID
sont appelées "ID principaux". Pour déterminer comment les ID principaux sont transformés, spécifiez une valeur dans PrimaryIdsOption
.
Les exemples suivants montrent comment utiliser l'objet KeepTag
pour conserver les valeurs de tags spécifiques inchangées lors de l'anonymisation.
La balise PatientName
est ajoutée à la liste queries[]
, de sorte que la valeur PatientName
n'est pas masquée lors de la désidentification.
Étant donné que PrimaryIdsOption
n'est pas spécifié dans l'exemple, le champ primaryIds
est défini par défaut sur PRIMARY_IDS_OPTION_UNSPECIFIED
, qui est défini par défaut sur la valeur de ProfileType
. Comme ProfileType
n'est pas non plus spécifié, le champ profileType
est défini par défaut sur PROFILE_TYPE_UNSPECIFIED
, ce qui supprime les tags en fonction du profil de base de la confidentialité des attributs (DICOM Standard Edition 2018e).
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Supprimer les tags
Les exemples suivants montrent comment utiliser l'objet RemoveTag
pour supprimer les valeurs de tags spécifiques lors de l'anonymisation. Un tag supprimé est remplacé par une valeur vide.
Dans les exemples suivants, le tag PatientName
est ajouté à la liste queries[]
. Sa valeur est donc remplacée par une valeur vide lors de l'anonymisation.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Supprimer les tags
Les exemples suivants montrent comment utiliser l'objet DeleteTag
pour supprimer des tags spécifiques lors de l'anonymisation.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Rétablir les tags sur une valeur d'espace réservé
Les exemples suivants montrent comment utiliser l'objet ResetTag
pour définir la valeur des tags sur la chaîne PLACEHOLDER
lors de l'anonymisation.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Notez en particulier que la valeur de la balise
PatientName
est définie surPLACEHOLDER
:Original metadata
Métadonnées après l'exécution de ResetTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "PLACEHOLDER" } ] }
Inspecter et transformer le texte sensible dans les balises
Les exemples suivants montrent comment utiliser l'objet CleanTextTag
pour inspecter les tags et transformer leurs valeurs en fonction de la configuration de l'objet TextConfig
.
Dans ces exemples, les options suivantes sont définies dans l'objet Actions
:
- Un objet
CleanTextTag
. - Liste
queries[]
contenant le tag DICOMPatientName
.
Les options suivantes sont définies dans l'objet TextConfig
:
- Objet
InfoTypeTransformation
qui transforme le texte correspondant à un infoType spécifique. - Objet
ReplaceWithInfoTypeConfig
qui remplace tout texte correspondant par le nom de l'infoType. - Une liste
infoTypes[]
contenant l'infoTypePERSON_NAME
.
Une fois ces configurations définies, l'opération d'anonymisation inspecte le tag PatientName
, l'associe à l'infoType PERSON_NAME
et remplace la valeur du tag par l'infoType PERSON_NAME
.
Le tag PatientName
a une représentation de valeur (VR) PN
, qui est l'une des VR acceptées dans l'objet CleanTextTag
.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Notez en particulier que la valeur de la balise
PatientName
est définie sur[PERSON_NAME]
:Original metadata
Métadonnées après l'exécution de CleanTextTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "[PERSON_NAME]" } ] }
Remplacer un UID par un UID généré
Les exemples suivants montrent comment utiliser l'objet RegenUidTag
pour remplacer un UID par un UID nouvellement généré. La seule VR acceptée par l'objet RegenUidTag
est UI
.
Par défaut, l'UID de chaque tag des métadonnées de l'échantillon avec une valeur VR de UI
est généré lors de la désidentification. Pour montrer comment générer un UID pour un tag spécifique, les options suivantes sont définies dans l'exemple :
ProfileType
est défini sur l'énumérationKEEP_ALL
, ce qui empêche l'anonymisation des métadonnées DICOM.PrimaryIdsOption
est défini sur l'énumérationKEEP
, ce qui laisse les ID principaux (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
etMediaStorageSOPInstanceUID
) inchangés.
Lorsque ces options sont définies, aucun des UID d'ID principaux dans les données d'échantillon n'est remplacé par des valeurs nouvellement générées. Toutefois, en ajoutant SOPInstanceUID
au tableau Action.queries[]
, vous pouvez générer un nouvel UID spécifiquement pour la balise SOPInstanceUID
.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'instance, car vous avez spécifié le tag
SOPInstanceUID
dans le tableauAction.queries[]
. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'instance :
Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide de la nouvelle valeur, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Notez que, parmi les ID principaux, seul
SOPInstanceUID
possède un UID nouvellement généré.
Anonymiser de manière récursive les tags dans un Sequence
imbriqué
Les exemples suivants montrent comment utiliser l'objet RecurseTag
pour anonymiser de manière récursive les tags DICOM imbriqués dans un Sequence
.
L'objet RecurseTag
n'accepte que la RV SQ
, qui est la RV pour un Sequence
.
Pour en savoir plus sur la VR SQ
, consultez 7.5 Emboîtement des ensembles de données.
L'exemple d'instance DICOM fourni pour cette page ne contient aucune balise DICOM avec une VR SQ
.
Vous pouvez créer et stocker une instance DICOM avec de fausses données contenant le VR SQ
en suivant les étapes ci-dessous, qui sont basées sur les instructions de la section Créer des instances DICOM à partir de métadonnées JSON et d'images JPEG.
L'instance DICOM que vous créez dans les étapes suivantes utilise de fausses données et ne sert qu'à illustrer le comportement deRecurseTag
.
Enregistrez les métadonnées DICOM suivantes dans un fichier JSON nommé
instance.json
. Les métadonnées contiennent une balisePhysiciansReadingStudyIdentificationSequence
(00081062
). Le tag présente une couverture et une fréquenceSQ
, et contient deux tagsPersonIdentificationCodeSequence
imbriqués (00401101
). Les tags imbriqués ont également un VRSQ
et contiennent chacun les tags imbriqués suivants :CodeValue
(00080100
)CodingSchemeDesignator
(00080102
)
[{ "00020010": { "vr": "UI", "Value": [ "1.2.840.10008.1.2.4.50" ] }, "00080005": { "vr": "CS", "Value": [ "ISO_IR 192" ] }, "00080016": { "vr": "UI", "Value": [ "1111111" ] }, "00080018": { "vr": "UI", "Value": [ "2222222" ] }, "0020000D": { "vr": "UI", "Value": [ "3333333" ] }, "0020000E": { "vr": "UI", "Value": [ "4444444" ] }, "00280002": { "vr": "US", "Value": [ 3 ] }, "00280004": { "vr": "CS", "Value": [ "YBR_FULL_422" ] }, "00280006": { "vr": "US", "Value": [ 0 ] }, "00280008": { "vr": "IS", "Value": [ 1 ] }, "00280010": { "vr": "US", "Value": [ 1024 ] }, "00280011": { "vr": "US", "Value": [ 1024 ] }, "00280100": { "vr": "US", "Value": [ 8 ] }, "00280101": { "vr": "US", "Value": [ 8 ] }, "00280102": { "vr": "US", "Value": [ 7 ] }, "00280103": { "vr": "US", "Value": [ 0 ] }, "7FE00010": { "vr": "OB", "BulkDataURI": "jpeg-image" }, "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue2" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator2" ] } } ] } } ] } }]
Téléchargez le fichier
google.jpg
sur votre ordinateur local. L'API DICOMweb de l'API Cloud Healthcare accepte toute image JPEG associée à des métadonnées JSON valides.Exécutez les commandes suivantes pour créer les limites d'ouverture (pour les métadonnées JSON), centrales (pour l'image JPEG) et de fermeture dans l'image :
echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file echo -ne "\r\n--DICOMwebBoundary--" > closing.file
Encapsulez l'image
google.jpg
entre les limites du milieu et de la fermeture. Le fichier de sortie, que vous envoyez à l'API Cloud Healthcare, est dénommémultipart-request.file
:cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
Stockez le fichier
multipart-request.file
:REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données source
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \
--data-binary @multipart-request.file \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile multipart-request.file `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Pour anonymiser l'instance DICOM que vous avez stockée, procédez comme suit.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } }
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' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"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 :@' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :
Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID de série ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID d'instance ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Notez en particulier que les valeurs des balises imbriquées
CodeValue
etCodingSchemaDesignator
sont définies surPLACEHOLDER
:Original metadata
Métadonnées après l'exécution de RecurseTag
{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [
"CodeValue2"
] }, "00080102": { "vr": "SH", "Value": ["CodingSchemeDesignator2"
] } } ] } } ] } }{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } } ] } }
Anonymiser des données au niveau du magasin DICOM
Les exemples précédents montrent comment anonymiser des données DICOM au niveau de l'ensemble de données. Cette section explique comment anonymiser des données au niveau du magasin DICOM.
Pour remplacer une requête d'anonymisation d'un ensemble de données par une requête d'anonymisation d'un magasin DICOM, effectuez les modifications suivantes :
- Remplacez
destinationDataset
dans le corps de la requête pardestinationStore
. - Ajoutez
dicomStores/DESTINATION_DICOM_STORE_ID
à la fin de la valeur dansdestinationStore
lorsque vous spécifiez la destination. - Ajoutez
dicomStores/SOURCE_DICOM_STORE_ID
lorsque vous spécifiez l'emplacement des données sources
Les exemples suivants montrent une requête d'anonymisation au niveau de l'ensemble de données et comment la modifier pour une anonymisation au niveau du magasin DICOM :
Anonymisation au niveau de l'ensemble de données :
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
Anonymisation au niveau du magasin DICOM :
"destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
Les exemples suivants montrent comment anonymiser une instance DICOM dans un magasin DICOM et écrire les données anonymisées dans un nouveau magasin DICOM. Avant d'exécuter les exemples, l'ID du magasin DICOM de destination doit déjà exister.
REST
Anonymisez l'ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites. Doit déjà exister avant l'exécution de l'opération de désidentification.
- DESTINATION_DICOM_STORE_ID : store DICOM dans l'ensemble de données de destination. Doit déjà exister avant l'exécution de l'opération de désidentification.
Corps JSON de la requête :
{ "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
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' { "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify"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 :@' { "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Vous en aurez besoin à l'étape suivante.Utilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Anonymiser un sous-ensemble d'un magasin DICOM
Vous pouvez anonymiser un sous-ensemble des données dans un magasin DICOM en spécifiant un filtre.
Le filtre prend la forme d'un fichier de filtre que vous spécifiez en tant que valeur du champ resourcePathsGcsUri
dans l'objet DicomFilterConfig
. Le fichier de filtre doit exister dans un bucket Cloud Storage. Vous ne pouvez pas spécifier un fichier de filtre existant sur votre ordinateur local ou sur une autre source. L'emplacement du fichier doit être au format gs://BUCKET/PATH/TO/FILE
.
Créer un fichier de filtre
Un fichier de filtre définit les fichiers DICOM à anonymiser. Vous pouvez filtrer les fichiers aux niveaux suivants :
- Au niveau de l'étude
- Au niveau de la série
- Au niveau de l'instance
Le fichier de filtre est constitué d'une ligne par étude, série ou instance que vous souhaitez anonymiser. Chaque ligne utilise le format /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]]
.
Un caractère de nouvelle ligne est ajouté à la fin de chaque ligne : \n
ou \r\n
.
Si une étude, une série ou une instance n'est pas spécifiée dans le fichier de filtre que vous avez transmis lors de l'appel de l'opération d'anonymisation, cette étude, cette série ou cette instance n'est pas anonymisée et n'est pas présente dans le magasin DICOM de destination.
Seule la partie /studies/STUDY_UID
du chemin est obligatoire. Cela signifie que vous pouvez anonymiser une étude en spécifiant /studies/STUDY_UID
, ou anonymiser une série en spécifiant /studies/STUDY_UID/series/SERIES_UID
.
Prenons l'exemple du fichier de filtre suivant : Le fichier de filtre entraîne l'anonymisation d'une étude, de deux séries et de trois instances individuelles :
/studies/1.123.456.789
/studies/1.666.333.111/series/123.456\n
/studies/1.666.333.111/series/567.890\n
/studies/1.888.999.222/series/123.456/instances/111\n
/studies/1.888.999.222/series/123.456/instances/222\n
/studies/1.888.999.222/series/123.456/instances/333\n
Créer un fichier de filtre à l'aide de BigQuery
Vous créez généralement un fichier de filtre en commençant par exporter les métadonnées d'un magasin DICOM vers BigQuery. Cela vous permet d'utiliser BigQuery pour afficher les UID d'étude, de série et d'instance des données DICOM dans votre magasin DICOM. Vous pouvez ensuite réaliser les opérations suivantes :
Demandez les UID d'étude, de série et d'instance qui vous intéressent. Par exemple, après avoir exporté les métadonnées vers BigQuery, vous pouvez exécuter la requête suivante pour concaténer les UID d'étude, de série et d'instance dans un format compatible avec les exigences du fichier de filtre :
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Si la requête renvoie un grand ensemble de résultats, vous pouvez matérialiser une nouvelle table en enregistrant les résultats de la requête dans une table de destination dans BigQuery.
Après avoir enregistré les résultats de la requête dans la table de destination, vous pouvez enregistrer le contenu de la table de destination dans un fichier et l'exporter vers Cloud Storage. Pour obtenir des instructions sur la procédure à suivre, consultez la page Exporter des données de table. Le fichier exporté est votre fichier de filtre. Vous utiliserez l'emplacement du fichier de filtre dans Cloud Storage lors de la spécification du filtre dans l'opération d'exportation.
Créer un fichier de filtre manuellement
Vous pouvez créer un fichier de filtre avec du contenu personnalisé et l'importer dans un bucket Cloud Storage.
Vous utiliserez l'emplacement du fichier de filtre dans Cloud Storage lors de la spécification du filtre dans l'opération d'anonymisation. L'exemple suivant montre comment importer un fichier de filtre dans un bucket Cloud Storage à l'aide de la commande gcloud storage cp
:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Exemple :
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Utilisation d'un filtre
Une fois que votre fichier de filtre est configuré, vous pouvez le transmettre en tant que valeur au champ resourcePathsGcsUri
de l'objet filterConfig
.
L'exemple suivant se développe sur l'opération Anonymiser des données au niveau du magasin DICOM, mais un fichier de filtre dans Cloud Storage permet de déterminer les ressources DICOM anonymisées.
REST
Anonymisez l'ensemble de données.
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
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DICOM_STORE_ID : ID du magasin DICOM contenant les données à anonymiser
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination
- BUCKET/PATH/TO/FILE : emplacement du fichier de filtre dans un bucket Cloud Storage
Corps JSON de la requête :
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } }
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' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } 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; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"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 :@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } '@ | 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; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify" | Select-Object -Expand ContentUtilisez la méthode
projects.locations.datasets.operations.get
pour obtenir 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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- SOURCE_DATASET_ID : ID de l'ensemble de données contenant les données à anonymiser
- 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/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
"done": true
, l'opération de longue durée est terminée.Une fois l'anonymisation terminée, vous pouvez récupérer les métadonnées de l'instance anonymisée pour voir comment elle a été modifiée. L'instance anonymisée possède un nouvel UID d'études, de série et d'instance. Vous devez donc d'abord rechercher l'instance anonymisée dans le nouvel ensemble de données.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
Le tableau suivant montre la modification de l'UID d'études, de série et d'instance :Métadonnées d'instance d'origine Métadonnées d'instance anonymisées UID d'études ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID de série ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID d'instance ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
À l'aide des nouvelles valeurs, récupérez les métadonnées de l'instance.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de votre projet Google Cloud
- DESTINATION_DATASET_ID : ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DICOM_STORE_ID : ID du magasin DICOM dans l'ensemble de données de destination. Il s'agit du même ID que celui du magasin DICOM dans l'ensemble de données source.
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand ContentExplorateur d'API
Ouvrez la page de référence de la méthode. Le panneau APIs Explorer s'ouvre dans la partie droite de la page. Vous pouvez interagir avec cet outil pour envoyer des requêtes. Renseignez tous les champs obligatoires, puis cliquez sur Execute (Exécuter).
Résoudre les problèmes liés aux opérations d'anonymisation DICOM
Si des erreurs se produisent lors d'une opération d'anonymisation 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.