Cette page explique comment utiliser la configuration v1 DicomConfig
pour anonymiser des données sensibles dans des 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.
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 l'opération datasets.deidentify
. L'appel d'API d'anonymisation 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 l'opération
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 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
et en procédant comme suit :- Définir le champ
config
du corps de la requête - En le stockant dans Cloud Storage au format JSON et en spécifiant l'emplacement du fichier dans le bucket à l'aide du champ
gcsConfigUri
du corps de la requête
- Définir le champ
La majorité 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
. L'appel d'API d'anonymisation 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
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 ou 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
et en les transmettant en effectuant l'une des opérations suivantes :- Définir le champ
config
du corps de la requête - En le stockant dans Cloud Storage au format JSON et en spécifiant l'emplacement du fichier dans le bucket à l'aide du champ
gcsConfigUri
du corps de la requête
- Définir le champ
Pour obtenir un exemple d'anonymisation de données DICOM au niveau du magasin DICOM, consultez la section Anonymiser des données au niveau du magasin DICOM.
Filtres
Vous pouvez anonymiser un sous-ensemble de données dans un 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 échantillons
Les exemples de ce guide utilisent une seule instance DICOM, mais vous pouvez également anonymiser plusieurs instances.
Chacune des sections suivantes fournit des exemples d'anonymisation de données DICOM à l'aide de différentes méthodes. Une sortie de l'image anonymisée est fournie avec chaque échantillon. 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.
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 DicomConfig
:
keepList
: liste des tags à conserver. Supprimez tous les autres tags.removeList
: liste des tags à supprimer. Conservez tous les autres tags.filterProfile
: profil de filtrage des tags permettant de déterminer les tags à conserver ou à supprimer.
Pour chaque exemple de cette section, la sortie des métadonnées modifiées de l'instance DICOM est fournie. Voici les métadonnées d'origine de l'instance utilisées comme entrée pour chaque échantillon :
[
{
"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"]}
}
]
Anonymiser à l'aide de tags keeplist
Lorsque vous spécifiez un tag keeplist dans l'objet DicomConfig
, les tags suivants sont ajoutés par défaut :
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
L'opération deidentify
ne masque pas les tags précédents. Cependant, les valeurs de certains tags 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. Pour conserver les valeurs d'origine des tags précédents, utilisez l'option SkipIdRedaction
.
Si aucune balise keeplist n'est fournie, aucune balise DICOM de l'ensemble de données n'est masquée.
Les exemples suivants montrent comment anonymiser un ensemble de données contenant des magasins DICOM et des données DICOM tout en laissant certains tags inchangés.
Une fois l'image envoyée à l'API Cloud Healthcare, elle apparaît comme suit. Alors que les métadonnées affichées dans les angles supérieurs de l'image ont été masquées, les informations de santé protégées qui sont incluses dans l'angle inférieur de l'image sont conservées. Pour supprimer également le texte incrusté, consultez la section Masquer le texte incrusté dans les images.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Go
Java
Node.js
Python
Anonymiser avec des tags removelist
Vous pouvez spécifier un tag removelist dans l'objet DicomConfig
. L'opération deidentify
ne masque que les tags spécifiés dans la liste. Si aucun tag removelist n'est fourni, l'opération d'anonymisation se déroule comme à l'accoutumée, mais aucun tag DICOM n'est masqué dans l'ensemble de données de destination.
Lorsque vous spécifiez une liste removelist, le tag OverlayData
est ajouté par défaut, car les données de superposition peuvent contenir des données de santé protégées.
Les tags qui sont ajoutés par défaut à une liste keeplist ne peuvent pas être ajoutés à une liste removelist.
Les exemples suivants montrent comment anonymiser un ensemble de données contenant des magasins DICOM et des données DICOM en supprimant tous les tags de la liste removelist. Les tags qui ne figurent pas dans la liste removelist ne sont pas modifiés.
Une fois l'image envoyée à l'API Cloud Healthcare, elle apparaît comme suit. À l'exception des balises fournies dans la liste de suppression, seul PatientBirthDate
est supprimé dans l'image, car il s'agit de la seule balise de la liste de suppressions qui correspond aux métadonnées visibles dans l'image.
Bien que le PatientBirthDate
dans l'angle supérieur de l'image ait été masqué conformément à la configuration de la liste removelist, les données de santé protégées incrustées en bas de l'image sont conservées. Pour supprimer également le texte incrusté, consultez la section Masquer le texte incrusté dans les images.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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 à l'aide d'un profil de filtre de tag
Au lieu de spécifier les tags à conserver ou à supprimer, vous pouvez configurer un TagFilterProfile
dans l'objet DicomConfig
. Un profil de filtre de tag est un profil prédéfini qui détermine les tags à conserver, supprimer ou transformer. Consultez la documentation sur TagFilterProfile
pour les profils disponibles.
Les exemples suivants montrent comment anonymiser un ensemble de données contenant des magasins DICOM et des données DICOM à l'aide du profil de filtre de tag ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
.
Ce profil de filtre de tag supprime les tags en fonction du profil de base de la confidentialité d'attribut du standard DICOM.
L'API Cloud Healthcare n'est pas entièrement conforme au profil de base de la confidentialité d'attribut. Par exemple, l'API Cloud Healthcare ne vérifie pas les restrictions de définition d'objet d'informations (IOD) lors de la sélection d'une action pour un tag.
Une fois envoyée à l'API Cloud Healthcare à l'aide du profil de filtre de tag ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
, l'image apparaît comme suit. Les métadonnées affichées dans les angles supérieurs de l'image ont été masquées, mais les données de santé incrustées en bas de l'image reste affichées.
Pour supprimer également le texte incrusté, consultez la section Masquer le texte incrusté dans les images.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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 des données dans la console Google Cloud
Pour anonymiser des données dans la console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page "Ensembles de données".
Choisissez Supprimer l'identification (De-identify) dans la liste Actions de l'ensemble de données dont vous supprimez l'identification.
La page Supprimer l'identification de l'ensemble de données (De-identify Dataset) s'affiche.
Sélectionnez Set destination dataset (Définir l'ensemble de données de destination) et saisissez le nom du nouvel ensemble de données sur lequel stocker vos données supprimées.
Sélectionnez DICOM tag de-identification (Suppression de l'identification des tags DICOM) afin de sélectionner le profil pour lequel les données sont anonymisées. Les données peuvent être anonymisées comme suit :
KEEP_ALL_PROFILE
- Conserver toutes les balises Meta DICOMDEIDENTIFY_TAG_CONTENTS
- Supprimer l'identification dans les balises MetaATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
- Supprimer les balises Meta en fonction du profil de base de la norme DICOMMINIMAL_KEEP_LIST_PROFILE
- Ne conserver que les balises Meta requises pour un objet DICOM valide- Ignorer le masquage de l'ID - Générer à nouveau des champs d'ID utilisateur comme indiqué par la norme DICOM
Sélectionnez Masquage de texte incrusté dans DICOM pour configurer la manière dont le masquage des images est effectué lors de la suppression de l'identification. Vous pouvez configurer le masquage d'images comme suit :
REDACT_NO_TEXT
- Ne pas masquer le texte des imagesREDACT_SENSITIVE_TEXT
– Masquer uniquement le texte sensible dans les imagesREDACT_ALL_TEXT
- Masquer tout le texte dans les images
Cliquez sur Anonymiser pour anonymiser les données dans l'ensemble de données.
Masquer le texte incrusté des images
L'API Cloud Healthcare peut masquer le texte sensible incrusté dans les images. Les données sensibles telles que les données de santé protégées sont détectées par l'API, qui les masque ensuite à l'aide d'un rectangle opaque. L'API renvoie les images DICOM que vous avez fournies, au même format, mais tout texte identifié comme contenant des informations sensibles (selon les critères que vous avez définis) est masqué.
Vous pouvez masquer le texte incrusté des images en spécifiant une option TextRedactionMode
dans un objet ImageConfig
. Consultez la documentation sur TextRedactionMode
pour connaître les valeurs possibles.
Masquer tout le texte incrusté dans une image
Les exemples suivants montrent comment masquer tout le texte incrusté dans des images DICOM d'un ensemble de données. Pour ce faire, spécifiez REDACT_ALL_TEXT
dans le champ TextRedactionMode
.
Une fois l'image envoyée à l'API Cloud Healthcare à l'aide de l'option REDACT_ALL_TEXT
, elle apparaît comme suit : Bien que le texte incrusté au bas de l'image ait été supprimé, les métadonnées figurant dans les angles supérieurs de l'image sont conservées. Pour supprimer également les métadonnées, consultez la section Anonymiser des tags DICOM.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous 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
Masquer uniquement le texte incrusté sensible d'une image
Les exemples suivants montrent comment masquer le texte sensible incrusté dans des images DICOM d'un ensemble de données. Pour ce faire, spécifiez REDACT_SENSITIVE_TEXT
dans le champ TextRedactionMode
.
Les données infoTypes spécifiées dans le paramètre infoTypes DICOM par défaut sont masqués lorsque REDACT_SENSITIVE_TEXT
est spécifié. Un paramètre infoType personnalisé supplémentaire pour les identifiants des patients, tel que les numéros de dossiers médicaux (MRN), est également appliqué et les identifiants des patients sont masqués.
L'image suivante montre une radiographie non masquée d'un patient :
Une fois l'image envoyée à l'API Cloud Healthcare à l'aide de l'option REDACT_SENSITIVE_TEXT
, elle apparaît comme suit :
Vous pouvez constater que les événements suivants se sont produits :
- Le paramètre
PERSON_NAME
en bas à gauche de l'image a été masqué. - Le paramètre
DATE
en bas à gauche de l'image a été masqué.
Le sexe du patient n'a pas été masqué, car il n'est pas considéré comme du texte sensible selon le paramètre infoTypes DICOM par défaut.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous 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
Combiner l'anonymisation de tag et le masquage de texte incrusté
Vous pouvez combiner l'anonymisation à l'aide de tags au masquage de texte incrusté des images pour anonymiser des instances DICOM à un niveau plus précis. Par exemple, en combinant REDACT_ALL_TEXT
dans le champ TextRedactionMode
à DEIDENTIFY_TAG_CONTENTS
dans le champ TagFilterProfile
, vous pouvez effectuer les opérations suivantes :
REDACT_ALL_TEXT
: efface tout le texte incrusté de l'image.DEIDENTIFY_TAG_CONTENTS
: inspecte les contenus du tag et transforme les données sensibles dans le texte. Pour en savoir plus sur le comportement deDEIDENTIFY_TAG_CONTENTS
, consultez la section Configuration par défaut.
Une fois l'image envoyée à l'API Cloud Healthcare à l'aide des options REDACT_ALL_TEXT
et DEIDENTIFY_TAG_CONTENTS
, elle apparaît comme suit. Observez les modifications suivantes :
- Les noms situés en haut à gauche et en haut à droite de l'image ont été transformés à l'aide d'un élément
CryptoHashConfig
. - Les dates situées en haut à gauche et en haut à droite de l'image ont été transformées à l'aide d'un élément
DateShiftConfig
. - Le texte incrusté dans le bas de l'image est masqué
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Utiliser des infoTypes et des transformations primitives avec des balises DICOM
L'API Cloud Healthcare peut utiliser des types d'informations (infoTypes) pour définir les données analysées 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.
Les transformations primitives sont des règles que vous utilisez pour transformer une valeur d'entrée. Vous pouvez personnaliser la manière dont les informations d'identification sont supprimées des tags DICOM en appliquant une transformation primitive au paramètre infoType de chaque tag. Par exemple, vous pouvez anonymiser le nom d'un patient et le remplacer par une série d'astérisques en spécifiant l'infoType LAST_NAME
par la transformation primitive CharacterMaskConfig
.
infoTypes DICOM par défaut
Les infoTypes DICOM par défaut utilisés lors de l'anonymisation des métadonnées sont les suivants :
AGE
CREDIT_CARD_NUMBER
DATE
EMAIL_ADDRESS
IP_ADDRESS
LOCATION
MAC_ADDRESS
PASSPORT
PERSON_NAME
PHONE_NUMBER
SWIFT_CODE
US_DRIVERS_LICENSE_NUMBER
US_SOCIAL_SECURITY_NUMBER
US_VEHICLE_IDENTIFICATION_NUMBER
US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
Lorsque vous anonymisez un texte sensible dans des images à l'aide de REDACT_SENSITIVE_TEXT
, l'API Cloud Healthcare utilise les infoTypes ci-dessus, mais un infoType personnalisé supplémentaire pour les identifiants des patients, par exemple un numéro d'enregistrement médical (MRN), sont également appliqués au texte sensible de l'image.
Options de transformation primitives
Les options de transformation primitive de l'API Cloud Healthcare sont les suivantes :
RedactConfig
: masque une valeur en la supprimant.CharacterMaskConfig
: masque une chaîne entièrement ou partiellement en remplaçant les caractères d'entrée par un caractère fixe spécifié.DateShiftConfig
: décale les dates d'un nombre aléatoire de jours. Offre la possibilité de rester cohérent dans un même contexte.CryptoHashConfig
: utilise SHA-256 pour remplacer les valeurs d'entrée par une représentation encodée en base64 d'une chaîne de sortie hachée générée à l'aide d'une clé de chiffrement des données donnée.ReplaceWithInfoTypeConfig
: remplace une valeur saisie par le nom de son infoType.
Spécifier des configurations dans TextConfig
Les infoTypes et les transformations primitives sont spécifiés dans un InfoTypeTransformation
, qui est un objet dans TextConfig
.
Les infoTypes sont saisis dans le tableau infoTypes
sous la forme de valeurs séparées par des virgules.
La spécification d'un infoType est facultative. Si vous ne spécifiez pas au moins un infoType, la transformation s'applique aux infoTypes DICOM par défaut disponibles dans l'API Cloud Healthcare.
Si vous spécifiez des infoTypes dans InfoTypeTransformation
, vous devez spécifier au moins une transformation primitive.
Vous ne pouvez appliquer un InfoTypeTransformation
qu'au profil DEIDENTIFY_TAG_CONTENTS
.
Vous ne pouvez pas appliquer un InfoTypeTransformation
aux autres profils répertoriés dans TagFilterProfile
.
Les sections suivantes montrent comment utiliser les transformations primitives disponibles dans InfoTypeTransformation
avec des infoTypes pour personnaliser l'anonymisation des tags DICOM. Les exemples utilisent l'exemple d'image fourni dans la section Présentation des exemples et les exemples de métadonnées fournis dans la section Anonymiser des tags DICOM.
Configuration par défaut
Par défaut, lorsque le profil DEIDENTIFY_TAG_CONTENTS
est défini sans fournir de configuration dans l'objet TextConfig
, l'API Cloud Healthcare remplace les données sensibles à l'aide des infoTypes DICOM par défaut.
Toutefois, le comportement des infoTypes DATE
et PERSON_NAME
est différent, comme indiqué ci-dessous :
- Un
DateShiftConfig
est appliqué au texte classé comme infoTypeDATE
. UnDateShiftConfig
utilise une technique de changement de date avec un différentiel de 100 jours. - Un
CryptoHashConfig
est appliqué au texte classé comme infoTypePERSON_NAME
. LeCryptoHashConfig
effectue une tokenisation en générant une valeur de substitution à l'aide du hachage cryptographique.
Le comportement suivant s'applique également :
- Toutes les valeurs d'âge de patient supérieures ou égales à 90 sont converties en 90.
- Si une transformation ne peut pas être appliquée en raison de restrictions de format DICOM, une valeur d'espace réservé correspondant à la représentation de valeur (VR) de la balise est fournie.
- Toutes les autres valeurs correspondant à l'un des infoTypes DICOM par défaut de l'API Cloud Healthcare sont remplacées par leur infoType. Par exemple, si le tag
PatientComments
contenait la chaîne "Ann Johnson s'est rendue à l'hôpital de Anytown," "Anytown" serait remplacé par l'infoTypeLOCATION
.
Les exemples suivants montrent le résultat de l'utilisation du profil par défaut DEIDENTIFY_TAG_CONTENTS
sur un ensemble de données contenant des magasins et des données DICOM. Vous pouvez comparer ce résultat par défaut avec les résultats obtenus lorsque vous utilisez les différentes transformations primitives avec des combinaisons d'infoTypes. Les exemples utilisent une seule instance DICOM, mais vous pouvez anonymiser plusieurs instances.
Une fois l'image envoyée à l'API Cloud Healthcare à l'aide du profil DEIDENTIFY_TAG_CONTENTS
, elle apparaît comme suit :
Observez les modifications suivantes :
- Les noms situés en haut à gauche et en haut à droite de l'image ont été transformés à l'aide d'un élément
CryptoHashConfig
. - Les dates situées en haut à gauche et en haut à droite de l'image ont été transformées à l'aide d'un élément
DateShiftConfig
.
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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
RedactConfig
Si vous spécifiez redactConfig
, vous masquez une valeur donnée en la supprimant complètement.
Le message redactConfig
n'accepte aucun argument ; sa simple présence active la transformation.
Les exemples suivants se développent sur la configuration par défaut, mais incluent désormais la définition de l'infoType PERSON_NAME
avec la transformation redactConfig
. L'envoi de cette requête supprime tous les noms de l'instance DICOM.
Une fois l'image envoyée à l'API Cloud Healthcare à l'aide de la transformation redactConfig
, elle apparaît 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
- 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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Le résultat montre que les valeurs dans ReferringPhysicianName
(00080090
) et PatientName
(00100010
) ont été supprimées. Cela diffère de l'exemple de la configuration par défaut, où ces valeurs étaient transformées à l'aide du hachage cryptographique.
CharacterMaskConfig
Définir characterMaskConfig
remplace les chaînes correspondant aux infoTypes donnés par un caractère fixe spécifié. Par exemple, au lieu de masquer le nom d'un patient ou de le transformer à l'aide du hachage cryptographique, vous pouvez le remplacer par une série d'astérisques (*
). Vous pouvez spécifier le caractère fixe en tant que valeur dans le champ maskingCharacter
.
Les exemples suivants se développent sur la configuration par défaut, mais incluent désormais la définition de l'infoType LAST_NAME
avec la transformation characterMaskConfig
. Aucun caractère fixe n'est fourni. Par conséquent, le masquage utilise par défaut des astérisques.
Les exemples utilisent une seule instance DICOM, mais vous pouvez anonymiser plusieurs instances.
Une fois envoyée à l'API Cloud Healthcare à l'aide de la transformation characterMaskConfig
, l'image apparaît 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
- 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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Le résultat montre que les noms dans ReferringPhysicianName
(00080090
) et PatientName
(00100010
) ont été remplacés par des astérisques. Cela diffère de l'exemple de la configuration par défaut, où ces valeurs étaient transformées à l'aide du hachage cryptographique.
DateShiftConfig
L'API Cloud Healthcare peut transformer les dates en les décalant d'une plage définie. Pour maintenir la cohérence des transformations de date lors des exécutions de la suppression de l'identification, utilisez DateShiftConfig
avec l'une des options suivantes :
- (Obsolète) : clé AES 128/192/256 bits encodée en base 64 brute.
- (Recommandé) : Une clé encapsulée par Cloud Key Management Service (Cloud KMS). Pour obtenir un exemple d'utilisation des clés encapsulées Cloud KMS, consultez la section Supprimer des éléments d'identification de texte sensible et les restaurer.
Vous devez attribuer un rôle doté de l'autorisation cloudkms.cryptoKeyVersions.useToDecrypt
au compte de service Agent de service Cloud Healthcare pour déchiffrer la clé encapsulée Cloud KMS Nous vous recommandons d'utiliser le rôle Cloud KMS de Déchiffreur de CryptoKey (roles/cloudkms.cryptoKeyDecrypter
). Lorsque vous utilisez Cloud KMS pour les opérations de chiffrement, des frais s'appliquent. Pour en savoir plus, consultez les tarifs de Cloud Key Management Service.
L'API Cloud Healthcare utilise cette clé pour calculer la valeur utilisée pour décaler les dates (telles que la date de naissance d'un patient) dans un délai de 100 jours.
Si vous ne fournissez pas de clé, l'API Cloud Healthcare génère sa propre clé chaque fois que l'opération d'anonymisation s'exécute sur des valeurs de date. Cela peut générer des dates incohérentes entre les exécutions.
Les exemples suivants montrent comment définir les infoTypes DATE
et DATE_OF_BIRTH
avec la transformation DateShiftConfig
sur une instance DICOM. Après avoir envoyé la requête d'anonymisation à l'API Cloud Healthcare, les valeurs de date dans l'instance seront décalées de plus ou moins 100 jours par rapport à leurs valeurs d'origine.
La clé cryptographique fournie, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
, est une clé encodée en base64 256 bits brute chiffrée par AES générée à l'aide de la commande suivante. Lorsque l'invite correspondante s'affiche, un mot de passe vide est fourni à la commande :
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Une fois envoyée à l'API Cloud Healthcare à l'aide de la transformation dateShiftConfig
, l'image apparaît 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
- 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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "DATE", "DATE_OF_BIRTH" ], "dateShiftConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Le résultat indique que les valeurs StudyDate
(00080020
) et PatientBirthDate
(00100030
) ont de nouvelles valeurs. Ces transformations ont eu lieu à la suite de la combinaison du différentiel de 100 jours avec la valeur cryptoKey
fournie. Les nouvelles valeurs de date sont cohérentes pour cette instance entre les exécutions de l'anonymisation, à condition que le même cryptoKey
soit fourni.
CryptoHashConfig
Vous pouvez laisser le champ cryptoHashConfig
vide ou vous pouvez lui fournir l'un des éléments suivants :
- (Obsolète) : clé AES 128/192/256 bits encodée en base 64 brute.
- (Recommandé) : Une clé encapsulée par Cloud Key Management Service (Cloud KMS). Pour obtenir un exemple d'utilisation des clés encapsulées Cloud KMS, consultez la section Supprimer des éléments d'identification de texte sensible et les restaurer.
Vous devez attribuer un rôle doté de l'autorisation cloudkms.cryptoKeyVersions.useToDecrypt
au compte de service Agent de service Cloud Healthcare pour déchiffrer la clé encapsulée Cloud KMS Nous vous recommandons d'utiliser le rôle Cloud KMS de Déchiffreur de CryptoKey (roles/cloudkms.cryptoKeyDecrypter
). Lorsque vous utilisez Cloud KMS pour les opérations de chiffrement, des frais s'appliquent. Pour en savoir plus, consultez les tarifs de Cloud Key Management Service.
L'API Cloud Healthcare peut transformer des données en remplaçant les valeurs par des hachages cryptographiques (également appelés valeurs de substitution). Pour ce faire, spécifiez un message cryptoHashConfig
.
Si vous ne fournissez pas de clé, l'API Cloud Healthcare génère une clé. L'API Cloud Healthcare utilise cette clé pour générer des valeurs de substitution. Si vous fournissez la même clé pour chaque exécution, l'API Cloud Healthcare génère des valeurs de substitution cohérentes. Si vous ne fournissez pas de clé, l'API Cloud Healthcare génère une nouvelle clé à chaque exécution de l'opération. Utiliser une clé différente génère des valeurs de substitution différentes.
Les exemples suivants montrent comment appliquer une transformation cryptoHashConfig
à tous les infoTypes DICOM par défaut compatibles avec l'API Cloud Healthcare. Après avoir envoyé la requête d'anonymisation, les valeurs avec un infoType DICOM correspondant dans l'API Cloud Healthcare sont remplacées par des valeurs de substitution.
L'exemple montre également comment fournir une clé cryptokey pour générer des valeurs de substitut cohérentes entre les exécutions de l'anonymisation.
La clé cryptographique fournie, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=
, est une clé encodée en base64 256 bits brute chiffrée par AES générée à l'aide de la commande suivante. Lorsque l'invite correspondante s'affiche, un mot de passe vide est fourni à la commande :
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Une fois envoyée à l'API Cloud Healthcare à l'aide de la transformation cryptoHashConfig
, l'image apparaît 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
- 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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }
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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } 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: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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } } '@ | 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:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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).
Les transformations dans la sortie sont cohérentes pour cette instance entre les exécutions de l'anonymisation, à condition que le même cryptoKey
soit fourni.
ReplaceWithInfoTypeConfig
Spécifier replaceWithInfoTypeConfig
remplace les valeurs d'entrée par le nom de l'infoType de la valeur.
Les exemples suivants montrent comment appliquer une transformation replaceWithInfoTypeConfig
à tous les infoTypes DICOM par défaut compatibles avec l'API Cloud Healthcare.
Le message replaceWithInfoTypeConfig
n'accepte aucun argument, sa simple présence active la transformation.
Une fois envoyée à l'API Cloud Healthcare à l'aide de la transformation replaceWithInfoTypeConfig
, l'image apparaît 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
- 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
Corps JSON de la requête :
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/v1/projects/PROJECT_ID/locations/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/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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
- SOURCE_DATASET_LOCATION : emplacement de l'ensemble de données source
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentAPI Explorer
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 Exécuter.
Vous devriez recevoir une réponse JSON de ce type :
À 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
- LOCATION : emplacement de l'ensemble de données
- DESTINATION_DATASET_ID: ID de l'ensemble de données de destination dans lequel les données anonymisées sont écrites
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination. Il s'agit de l'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 GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/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/v1/projects/PROJECT_ID/locations/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 ContentAPI Explorer
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 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 le
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
Exemple :
Anonymisation au niveau de l'ensemble de données :
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
Les exemples suivants se développent sur l'opération Combiner l'anonymisation de tag et le masquage de texte incrusté, mais l'anonymisation est appliquée sur un seul magasin DICOM et les données anonymisées sont copiées dans un nouveau magasin DICOM. Avant d'exécuter les exemples, le magasin DICOM référencé par DESTINATION_DICOM_STORE_ID doit déjà exister.
Console
Pour anonymiser des données dans un magasin DICOM à l'aide de la console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page "Ensembles de données".
Cliquez sur l'ensemble de données contenant les données que vous souhaitez anonymiser.
Dans la liste des magasins DICOM, sélectionnez Supprimer l'identification dans la liste Actions du magasin DICOM dont vous supprimez l'identification.
La page Suppression de l'identification pour un magasin DICOM s'affiche.
Sélectionnez Définir le datastore de destination et choisissez l'ensemble de données et le magasin DICOM dans lesquels les données anonymisées sont enregistrées.
Sélectionnez Suppression de l'identification des tags DICOM pour configurer la manière dont les données sont anonymisées. Les données peuvent être anonymisées comme suit :
KEEP_ALL_PROFILE
: conserver toutes les balises Meta DICOMDEIDENTIFY_TAG_CONTENTS
: supprimer l'identification dans les balises MetaATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE
: supprime les balises Meta en fonction du profil de base de la norme DICOMMINIMAL_KEEP_LIST_PROFILE
: ne conserver que les balises Meta requises pour un objet DICOM valide- Ignorer le masquage de l'ID: générer à nouveau des champs d'ID utilisateur comme indiqué par la norme DICOM
Sélectionnez Masquage de texte incrusté dans DICOM pour configurer la manière dont le masquage des images est effectué lors de la suppression de l'identification. Vous pouvez configurer le masquage d'images comme suit :
REDACT_NO_TEXT
: ne pas masquer le texte des imagesREDACT_SENSITIVE_TEXT
: masquer uniquement le texte sensible dans les imagesREDACT_ALL_TEXT
: masquer tout le texte des images
Cliquez sur Anonymiser pour anonymiser les données dans le magasin DICOM.
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 store DICOM contenant les données à anonymiser
- DESTINATION_DICOM_STORE_ID: ID du store DICOM dans l'ensemble de données de destination
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" } } }
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" } } } 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" } } } '@ | 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 Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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.
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 :
Demander 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
Utiliser 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 détermine 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 store DICOM contenant les données à anonymiser
- DESTINATION_DICOM_STORE_ID: ID du store 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 Content- 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
- DATASET_ID : ID de l'ensemble de données
- LOCATION : emplacement de l'ensemble de données
- OPERATION_ID : ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPI Explorer
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.
Dépannage des 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.