Questa pagina spiega come utilizzare la configurazione DicomConfig v1 per anonimizzare i dati sensibili nelle istanze DICOM ai seguenti livelli:
- A livello di set di dati utilizzando
datasets.deidentify - A livello di archivio DICOM utilizzando
dicomStores.deidentify
Questa pagina spiega anche come applicare i filtri durante l'anonimizzazione dei dati a livello di archivio DICOM.
Panoramica dell'anonimizzazione
Anonimizzazione a livello di set di dati
Per anonimizzare i dati DICOM a livello di set di dati, chiama l'operazione datasets.deidentify. La chiamata API di anonimizzazione ha i seguenti componenti:
- Il set di dati di origine: un set di dati contenente archivi DICOM con una o più istanze che includono dati sensibili. Quando chiami l'operazione
deidentify, viene eseguita l'anonimizzazione di tutte le istanze in tutti gli archivi DICOM del set di dati. - Il set di dati di destinazione: l'anonimizzazione non influisce sul set di dati originale o sui relativi dati. Le copie anonimizzate dei dati originali vengono invece scritte in un nuovo set di dati, chiamato set di dati di destinazione.
- Cosa anonimizzare: parametri di configurazione che specificano come elaborare il set di dati. Puoi configurare l'anonimizzazione DICOM per anonimizzare i metadati delle istanze DICOM (utilizzando le parole chiave dei tag) o il testo integrato nelle immagini DICOM specificando questi parametri in un oggetto
DeidentifyConfige procedendo come segue:- Impostazione del campo
configdel corpo della richiesta - Archiviarlo in Cloud Storage in formato JSON e specificare la posizione del file nel bucket utilizzando il campo
gcsConfigUridel corpo della richiesta
- Impostazione del campo
La maggior parte degli esempi di questa guida mostra come anonimizzare i dati DICOM a livello di set di dati.
Anonimizzazione a livello di archivio DICOM
L'anonimizzazione dei dati DICOM a livello di archivio DICOM ti consente di avere un maggiore controllo sui dati anonimizzati. Ad esempio, se hai un set di dati con più archivi DICOM, puoi anonimizzare ogni archivio DICOM in base al tipo di dati presenti nell'archivio.
Per anonimizzare i dati DICOM in un archivio DICOM, chiama il metodo dicomStores.deidentify. La chiamata API di anonimizzazione ha i seguenti componenti:
- L'archivio DICOM di origine: un archivio DICOM contenente una o più istanze con dati sensibili. Quando chiami l'operazione
deidentify, tutte le istanze nell'archivio DICOM vengono anonimizzate. - L'archivio DICOM di destinazione: l'anonimizzazione non influisce sull'archivio DICOM originale o sui relativi dati. Vengono invece scritte nell'archivio DICOM di destinazione copie anonimizzate dei dati originali. Il datastore DICOM di destinazione deve già esistere.
- Cosa anonimizzare: parametri di configurazione che specificano come elaborare il datastore DICOM. Puoi configurare l'anonimizzazione DICOM per anonimizzare i metadati delle istanze DICOM (utilizzando le parole chiave dei tag) o il testo integrato nelle immagini DICOM specificando questi parametri in un oggetto
DeidentifyConfige passandolo in uno dei seguenti modi:- Impostazione del campo
configdel corpo della richiesta - Archiviarlo in Cloud Storage in formato JSON e specificare la posizione del file nel bucket utilizzando il campo
gcsConfigUridel corpo della richiesta
- Impostazione del campo
Per un esempio di come anonimizzare i dati DICOM a livello di archivio DICOM, consulta Anonimizzazione dei dati a livello di archivio DICOM.
Filtri
Puoi anonimizzare un sottoinsieme di dati in un archivio DICOM configurando un file di filtro e specificandolo nella richiesta dicomStores.deidentify. Per un esempio, consulta Anonimizzazione di un sottoinsieme di un datastore DICOM.
Panoramica dei sample
Gli esempi in questa guida utilizzano una singola istanza DICOM, ma puoi anche anonimizzare più istanze.
Ognuna delle sezioni seguenti fornisce esempi di come anonimizzare i dati DICOM utilizzando vari metodi. Per ogni esempio viene fornito un output dell'immagine anonimizzata. Ogni esempio utilizza la seguente immagine originale come input:

Puoi confrontare l'immagine di output di ogni operazione di anonimizzazione con questa immagine originale per vedere gli effetti dell'operazione.
Anonimizzazione dei tag DICOM
Puoi anonimizzare le istanze DICOM in base alle parole chiave dei tag
nei metadati DICOM. Nell'oggetto DicomConfig sono disponibili i seguenti metodi di filtro dei tag:
keepList: l'elenco dei tag da conservare. Rimuovi tutti gli altri tag.removeList: l'elenco dei tag da rimuovere. Mantieni tutti gli altri tag.filterProfile: un profilo di filtro dei tag utilizzato per determinare quali tag conservare o rimuovere.
Per ogni esempio in questa sezione, viene fornito l'output dei metadati modificati dell'istanza DICOM. Di seguito sono riportati i metadati originali dell'istanza utilizzati come input per ogni esempio:
[
{
"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"]}
}
]
Anonimizzazione tramite tag keeplist
Quando specifichi un tag keeplist nell'oggetto DicomConfig, per impostazione predefinita vengono aggiunti i seguenti tag:
StudyInstanceUIDSeriesInstanceUIDSOPInstanceUIDTransferSyntaxUIDMediaStorageSOPInstanceUIDMediaStorageSOPClassUIDPixelDataRowsColumnsSamplesPerPixelBitsAllocatedBitsStoredHighbitPhotometricInterpretationPixelRepresentationNumberOfFramesPlanarConfigurationPixelAspectRatioSmallestImagePixelValueLargestImagePixelValueRedPaletteColorLookupTableDescriptorGreenPaletteColorLookupTableDescriptorBluePaletteColorLookupTableDescriptorRedPaletteColorLookupTableDataGreenPaletteColorLookupTableDataBluePaletteColorLookupTableDataICCProfileColorSpaceWindowCenterWindowWidthVOILUTFunction
L'operazione deidentify non oscura i tag precedenti. Tuttavia, i valori di alcuni tag vengono rigenerati, il che significa che vengono sostituiti con un valore diverso tramite una trasformazione deterministica.
Per saperne di più, consulta l'opzione Retain UIDs nello standard DICOM. Per conservare i valori originali dei tag precedenti, utilizza l'opzione SkipIdRedaction.
Se non vengono forniti tag della lista di elementi da conservare, non viene oscurato nessun tag DICOM nel set di dati.
I seguenti esempi mostrano come anonimizzare un set di dati contenente archivi DICOM e dati DICOM lasciando invariati alcuni tag.
Dopo aver inviato l'immagine all'API Cloud Healthcare, l'immagine viene visualizzata come segue. Sebbene i metadati visualizzati negli angoli superiori dell'immagine siano stati oscurati, i dati sanitari protetti (PHI) integrati nella parte inferiore dell'immagine rimangono. Per rimuovere anche il testo impresso, consulta Oscuramento del testo impresso nelle immagini.

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "keepList": { "tags": [ "PatientID" ] } } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Go
Java
Node.js
Python
Anonimizzazione utilizzando i tag removelist
Puoi specificare un elenco di rimozione nell'oggetto DicomConfig. L'operazione deidentify oscurerà solo i tag specificati nell'elenco. Se non vengono forniti tag removelist, l'operazione di anonimizzazione procede normalmente, ma non viene oscurato alcun tag DICOM nel set di dati di destinazione.
Quando specifichi un elenco di rimozione, il tag OverlayData viene aggiunto per impostazione predefinita perché i dati di overlay potrebbero contenere PHI.
I tag aggiunti per impostazione predefinita a un elenco di elementi da conservare non possono essere aggiunti a un elenco di elementi da rimuovere.
I seguenti esempi mostrano come anonimizzare un set di dati contenente archivi DICOM e dati DICOM rimuovendo tutti i tag nell'elenco di rimozione. I tag che non sono presenti nella removelist rimangono invariati.
Dopo aver inviato l'immagine all'API Cloud Healthcare, l'immagine viene visualizzata
come segue. Tra i tag forniti nell'elenco di rimozione, solo PatientBirthDate
viene rimosso nell'immagine, in quanto è l'unico tag dell'elenco di rimozione che
corrisponde ai metadati visibili nell'immagine.
Mentre il PatientBirthDate nell'angolo in alto dell'immagine è stato oscurato in base alla configurazione nell'elenco di rimozione, le PHI incorporate nella parte inferiore dell'immagine rimangono. Per rimuovere anche il testo impresso, consulta Oscuramento del testo impresso nelle immagini.

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "removeList": { "tags": [ "PatientBirthName", "PatientBirthDate", "PatientAge", "PatientSize", "PatientWeight", "PatientAddress", "PatientMotherBirthName" ] } } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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" ] } } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Anonimizzazione utilizzando un profilo di filtro dei tag
Anziché specificare quali tag conservare o rimuovere, puoi configurare un
TagFilterProfile
nell'oggetto
DicomConfig. Un profilo di filtro dei tag è un profilo predefinito che determina quali tag mantenere, rimuovere o trasformare. Consulta la documentazione di TagFilterProfile per i profili disponibili.
I seguenti esempi mostrano come anonimizzare un set di dati contenente datastore DICOM e dati DICOM utilizzando il profilo di filtro dei tag ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE.
Questo profilo di filtro dei tag rimuove i tag in base al profilo di base della riservatezza degli attributi dello standard DICOM.
L'API Cloud Healthcare non è completamente conforme al profilo di base della riservatezza degli attributi. Ad esempio, l'API Cloud Healthcare non verifica le limitazioni della definizione degli oggetti informativi (IOD) quando seleziona un'azione per un tag.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando il profilo del filtro dei tag ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE, l'immagine viene visualizzata come segue. Sebbene i metadati visualizzati negli angoli superiori dell'immagine siano stati oscurati, le PHI integrate nella parte inferiore dell'immagine rimangono.
Per rimuovere anche il testo impresso, consulta Oscuramento del testo impresso nelle immagini.

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE" } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029 Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Anonimizzazione dei dati nella console Google Cloud
Per anonimizzare i dati nella console Google Cloud , completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Set di dati.
Scegli Anonimizza dall'elenco Azioni per il set di dati che stai anonimizzando.
Viene visualizzata la pagina Anonimizza set di dati.
Seleziona Imposta set di dati di destinazione e inserisci un nome per il nuovo set di dati in cui archiviare i dati anonimizzati.
Seleziona Anonimizzazione dei tag DICOM per selezionare il profilo per cui i dati vengono anonimizzati. I dati possono essere anonimizzati come segue:
KEEP_ALL_PROFILE: conserva tutti i meta tag DICOMDEIDENTIFY_TAG_CONTENTS- Anonimizza i dati all'interno dei meta tagATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE: rimuove i meta tag in base al profilo di base dello standard DICOMMINIMAL_KEEP_LIST_PROFILE: conserva solo i meta tag richiesti per un oggetto DICOM valido- Salta l'oscuramento dell'ID: rigenera i campi UID come stabilito dallo standard DICOM
Seleziona Oscuramento del testo integrato in DICOM per configurare la modalità di esecuzione dell'oscuramento delle immagini durante l'anonimizzazione. Puoi configurare l'oscuramento delle immagini come segue:
REDACT_NO_TEXT- Non oscurare il testo nelle immaginiREDACT_SENSITIVE_TEXT: oscura solo il testo sensibile nelle immagini. Per oscurare anche il testo corrispondente a espressioni regolari personalizzate:- Seleziona Usa configurazione personalizzata.
- Seleziona Usa regex personalizzata.
- Nel campo Regex personalizzata, inserisci il pattern dell'espressione regolare da trovare.
- (Facoltativo) Nel campo Indice gruppo, inserisci fino a tre indici dei gruppi Capture separati da virgole da oscurare, ad esempio
1,2. Per oscurare l'intera corrispondenza, lascia il campo vuoto o inserisci0. - (Facoltativo) Fai clic su Aggiungi espressione regolare personalizzata per configurare altre espressioni regolari personalizzate.
REDACT_ALL_TEXT- Oscura tutto il testo nelle immagini
Fai clic su Anonimizza per anonimizzare i dati nel set di dati.
Oscuramento del testo integrato nelle immagini
L'API Cloud Healthcare può oscurare il testo sensibile incorporato nelle immagini. I dati sensibili, come le PHI, vengono rilevati dall'API, che poi li oscura utilizzando un rettangolo opaco. L'API restituisce le stesse immagini DICOM che hai fornito, nello stesso formato, ma qualsiasi testo identificato come contenente informazioni sensibili in base ai tuoi criteri viene oscurato.
Puoi oscurare il testo incorporato nelle immagini specificando un'opzione TextRedactionMode all'interno di un oggetto ImageConfig. Consulta la documentazione di TextRedactionMode per i valori possibili.
Oscuramento di tutto il testo impresso in un'immagine
I seguenti esempi mostrano come oscurare tutto il testo integrato nelle immagini DICOM in un set di dati. A questo scopo, specifica REDACT_ALL_TEXT nel campo TextRedactionMode.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando l'opzione REDACT_ALL_TEXT, l'immagine viene visualizzata come segue. Mentre il testo impresso nella parte inferiore dell'immagine è stato rimosso, i metadati negli angoli superiori dell'immagine rimangono. Per rimuovere anche i metadati, consulta Anonimizzazione dei tag DICOM.

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Oscuramento solo del testo sensibile impresso in un'immagine
I seguenti esempi mostrano come oscurare il testo sensibile integrato nelle immagini DICOM di un set di dati. A questo scopo, specifica REDACT_SENSITIVE_TEXT nel campo TextRedactionMode.
Gli infoType specificati negli infoType DICOM predefiniti vengono oscurati quando viene specificato REDACT_SENSITIVE_TEXT. Vengono applicati anche altri due infoType personalizzati per l'oscuramento di:
- Identificatori dei pazienti, come i numeri di storia clinica (MRN)
- Numeri di accessione
L'immagine seguente mostra una radiografia non oscurata di un paziente:

Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando l'opzione REDACT_SENSITIVE_TEXT, l'immagine viene visualizzata come segue:

Puoi vedere che si è verificato quanto segue:
- La
PERSON_NAMEin basso a sinistra dell'immagine è stata oscurata - La
DATEin basso a sinistra dell'immagine è stata oscurata
Il sesso del paziente non è stato oscurato perché non è considerato un testo sensibile in base agli infoType DICOM predefiniti.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT" } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Oscuramento del testo burn-in utilizzando espressioni regolari personalizzate
Quando textRedactionMode è impostato su REDACT_SENSITIVE_TEXT, puoi anche specificare pattern di espressioni regolari personalizzati nel campo customRegexes dell'oggetto ImageConfig per rilevare e oscurare il testo integrato corrispondente nelle immagini DICOM. Ogni elemento in customRegexes può includere i seguenti campi:
pattern: il pattern dell'espressione regolare da confrontare con il testo rilevato nell'immagine. Il pattern deve utilizzare la sintassi RE2. RE2 non supporta alcuni costrutti, come le asserzioni lookahead e lookbehind.groupIndexes: elenco facoltativo di indici dei gruppi Capture da oscurare quando il pattern corrisponde. Se omesso, l'intera corrispondenza viene oscurata. Si applicano le seguenti regole:- Puoi specificare un massimo di tre indici di gruppo per ogni espressione regolare personalizzata.
- L'indice
0oscura l'intera corrispondenza e non può essere combinato con altri indici. - Gli indici
1e superiori fanno riferimento ai gruppi Capture inpattern, in ordine. Ogni indice non deve superare il numero di gruppi Capture inpattern.
Se un pattern non è valido, la richiesta non va a buon fine e viene visualizzato un errore INVALID_ARGUMENT.
I seguenti esempi mostrano come anonimizzare un set di dati o un archivio DICOM utilizzando un'espressione regolare personalizzata:
REST
Anonimizza il set di dati o l'archivio DICOM utilizzando un'espressione regolare personalizzata.
Per anonimizzare tutti i datastore DICOM in un set di dati (
datasets.deidentify):Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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 ContentPer anonimizzare un singolo archivio DICOM (
datasets.dicomStores.deidentify):Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- SOURCE_DICOM_STORE_ID: l'ID del datastore DICOM contenente i dati da anonimizzare
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione
Corpo JSON della richiesta:
{ "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": {}, "image": { "textRedactionMode": "REDACT_SENSITIVE_TEXT", "customRegexes": [ { "pattern": "MRN:\\s*([0-9]{4,10})", "groupIndexes": [1] } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
La tabella seguente mostra come sono cambiati l'UID degli studi, l'UID delle serie e l'UID delle istanze:Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID studi ( 0020000D)2.25.705416166388191385680432936715593223551.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763UID serie ( 0020000E)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.5236941.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710UID istanze ( 00080018)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.5236951.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Combinazione di anonimizzazione dei tag e oscuramento del testo integrato
Puoi combinare l'anonimizzazione utilizzando i tag con l'oscuramento del testo incorporato nelle immagini per anonimizzare le istanze DICOM a un livello più granulare. Ad esempio, combinando REDACT_ALL_TEXT nel campo TextRedactionMode con DEIDENTIFY_TAG_CONTENTS nel campo TagFilterProfile, puoi eseguire le seguenti operazioni:
REDACT_ALL_TEXT: oscura tutto il testo impresso nell'immagine.DEIDENTIFY_TAG_CONTENTS: ispeziona i contenuti dei tag e trasforma il testo sensibile. Per saperne di più sul comportamento diDEIDENTIFY_TAG_CONTENTS, consulta Configurazione predefinita.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando le opzioni REDACT_ALL_TEXT e DEIDENTIFY_TAG_CONTENTS, l'immagine viene visualizzata come segue. Osserva le seguenti modifiche:
- I nomi negli angoli in alto a sinistra e in alto a destra dell'immagine sono stati trasformati utilizzando un
CryptoHashConfig - Le date negli angoli in alto a sinistra e in alto a destra dell'immagine sono state trasformate utilizzando un
DateShiftConfig - Il testo impresso nella parte inferiore dell'immagine è oscurato

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Utilizzo di infoType e trasformazioni primitive con i tag DICOM
L'API Cloud Healthcare può utilizzare i tipi di informazioni (infoType) per definire i dati da analizzare durante l'anonimizzazione dei tag. Un infoType è un tipo di dati sensibili, ad esempio il nome di un paziente, un indirizzo email, un numero di telefono, un numero di identificazione o un numero di carta di credito.
Le trasformazioni primitive sono regole che utilizzi per trasformare un valore di input. Puoi personalizzare il modo in cui i tag DICOM vengono anonimizzati applicando una trasformazione primitiva all'infoType di ogni tag. Ad esempio, puoi anonimizzare il cognome di un paziente e sostituirlo con una serie di asterischi specificando l'infoType LAST_NAME con la trasformazione primitiva CharacterMaskConfig.
InfoType DICOM predefiniti
Gli infoType DICOM predefiniti utilizzati per l'anonimizzazione dei metadati sono:
AGECREDIT_CARD_NUMBERDATEEMAIL_ADDRESSIP_ADDRESSLOCATIONMAC_ADDRESSPASSPORTPERSON_NAMEPHONE_NUMBERSWIFT_CODEUS_DRIVERS_LICENSE_NUMBERUS_SOCIAL_SECURITY_NUMBERUS_VEHICLE_IDENTIFICATION_NUMBERUS_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER
Quando anonimizzi il testo sensibile nelle immagini utilizzando REDACT_SENSITIVE_TEXT, l'API Cloud Healthcare utilizza gli infoType riportati sopra, ma al testo sensibile nell'immagine vengono applicati anche altri due infoType personalizzati per:
- Identificatori dei pazienti, come i numeri di cartella clinica (MRN)
- Numeri di accessione
Opzioni di trasformazione primitive
Le opzioni di trasformazione primitiva dell'API Cloud Healthcare includono:
RedactConfig: oscura un valore rimuovendolo.CharacterMaskConfig: maschera una stringa in tutto o in parte sostituendo i caratteri di input con un carattere fisso specificato.DateShiftConfig: sposta le date di un numero casuale di giorni, con l'opzione di essere coerente per lo stesso contesto.CryptoHashConfig: utilizza SHA-256 per sostituire i valori di input con una rappresentazione con codifica Base64 di una stringa di output con hashing generata utilizzando una determinata chiave di crittografia dei dati.ReplaceWithInfoTypeConfig: sostituisce un valore di input con il nome del relativo infoType.
Specifica delle configurazioni in TextConfig
Gli infoType e le trasformazioni primitive vengono specificati all'interno di un InfoTypeTransformation, che è un oggetto all'interno di TextConfig.
Gli infoType vengono inseriti nell'array infoTypes come valori separati da virgole.
La specifica di un infoType è facoltativa. Se non specifichi almeno un infoType, la trasformazione viene applicata agli infoType DICOM predefiniti presenti nell'API Cloud Healthcare.
Se specifichi infoType in InfoTypeTransformation, devi specificare almeno una trasformazione primitiva.
Puoi applicare un InfoTypeTransformation solo al profilo DEIDENTIFY_TAG_CONTENTS.
Non è possibile applicare un InfoTypeTransformation agli altri profili elencati in TagFilterProfile.
Le sezioni seguenti mostrano come utilizzare le trasformazioni primitive disponibili in InfoTypeTransformation insieme agli infoType per personalizzare il modo in cui i tag DICOM vengono anonimizzati. Gli esempi utilizzano l'immagine di esempio fornita in Panoramica degli esempi e i metadati di esempio forniti in Anonimizzazione dei tag DICOM.
Configurazione predefinita
Per impostazione predefinita, quando il profilo DEIDENTIFY_TAG_CONTENTS viene impostato senza fornire alcuna configurazione nell'oggetto TextConfig, l'API Cloud Healthcare sostituisce i dati sensibili utilizzando gli infoType DICOM predefiniti.
Tuttavia, il comportamento è diverso per gli infoType DATE e PERSON_NAME, come mostrato di seguito:
- Al testo classificato come infoType
DATEviene applicato unDateShiftConfig.DateShiftConfigutilizza una tecnica di spostamento delle date con un differenziale di 100 giorni. - Al testo classificato come infoType
PERSON_NAMEviene applicato unCryptoHashConfig.CryptoHashConfigesegue la tokenizzazione generando un valore surrogato utilizzando l'hashing di crittografia.
Si applica anche il seguente comportamento:
- Tutte le età dei pazienti con un valore maggiore o uguale a 90 vengono convertite in 90.
- Se non è possibile applicare una trasformazione a causa delle limitazioni del formato DICOM, viene fornito un valore segnaposto corrispondente alla Value Representation (VR) del tag.
- Tutti gli altri valori che corrispondono a uno degli infoType DICOM predefiniti nell'API Cloud Healthcare vengono sostituiti dal relativo infoType. Ad esempio, se il tag
PatientCommentscontenesse la stringa "Ann Johnson è andata all'ospedale di Anytown", "Anytown" verrebbe sostituito con l'infoTypeLOCATION.
I seguenti esempi mostrano l'output dell'utilizzo del profilo predefinito DEIDENTIFY_TAG_CONTENTS su un set di dati contenente archivi DICOM e dati DICOM. Puoi confrontare questo output predefinito con gli output ottenuti utilizzando le varie trasformazioni primitive con combinazioni di infoType. Gli esempi utilizzano una singola istanza DICOM, ma puoi anonimizzare più istanze.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando il profilo DEIDENTIFY_TAG_CONTENTS, l'immagine viene visualizzata come segue.
Osserva le seguenti modifiche:
- I nomi negli angoli in alto a sinistra e in alto a destra dell'immagine sono stati trasformati utilizzando un
CryptoHashConfig - Le date negli angoli in alto a sinistra e in alto a destra dell'immagine sono state trasformate utilizzando un
DateShiftConfig

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" } } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
RedactConfig
Se specifichi redactConfig, un determinato valore viene oscurato rimuovendolo completamente.
Il messaggio redactConfig non ha argomenti; se lo specifichi, attivi la trasformazione.
I seguenti esempi ampliano la configurazione predefinita, ma ora includono l'impostazione dell'infoType PERSON_NAME con la trasformazione redactConfig. L'invio di questa richiesta oscura tutti i nomi dall'istanza DICOM.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando la trasformazione redactConfig, l'immagine appare come segue:

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "redactConfig": {} } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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": {} } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
L'output mostra che i valori in ReferringPhysicianName
(00080090) e PatientName (00100010) sono stati rimossi. Questo è in contrasto con l'esempio nella configurazione predefinita, in cui questi valori sono stati trasformati utilizzando l'hashing di crittografia.
CharacterMaskConfig
Se specifichi characterMaskConfig, le stringhe che corrispondono agli infoType specificati vengono sostituite con un carattere fisso specificato. Ad
esempio, anziché oscurare il nome di un paziente o trasformarlo utilizzando
l'hashing di crittografia, puoi sostituire il nome con una serie di asterischi (*).
Puoi specificare il carattere fisso come valore per il campo maskingCharacter.
I seguenti esempi ampliano la configurazione predefinita, ma ora includono l'impostazione dell'infoType LAST_NAME con la trasformazione characterMaskConfig. Non viene fornito alcun carattere fisso, quindi il mascheramento utilizza per impostazione predefinita gli asterischi.
Gli esempi utilizzano una singola istanza DICOM, ma puoi anonimizzare più istanze.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando la trasformazione characterMaskConfig, l'immagine appare come segue:

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [ "PERSON_NAME" ], "characterMaskConfig": { "maskingCharacter": "" } } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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": "" } } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
L'output mostra che i cognomi in ReferringPhysicianName
(00080090) e PatientName (00100010) sono stati sostituiti con
asterischi. Questo è in contrasto con l'esempio nella Configurazione predefinita,
dove questi valori sono stati trasformati utilizzando l'hashing di crittografia.
DateShiftConfig
L'API Cloud Healthcare può trasformare le date spostandole all'interno di un intervallo preimpostato. Per mantenere coerenti le trasformazioni delle date tra le esecuzioni di anonimizzazione, utilizza DateShiftConfig con una delle seguenti opzioni:
- (Deprecato): una chiave AES non elaborata a 128/192/256 bit con codifica Base64.
- (Consigliato): una chiave con wrapping di Cloud Key Management Service (Cloud KMS). Consulta Anonimizzazione e reidentificazione del testo sensibile per un esempio di come utilizzare le chiavi con wrapping di Cloud KMS.
Devi concedere un ruolo con l'autorizzazione cloudkms.cryptoKeyVersions.useToDecrypt all'account di servizio Cloud Healthcare Service Agent per decrittografare la chiave con wrapping di Cloud KMS. Ti consigliamo di utilizzare il ruolo Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter). Quando utilizzi Cloud KMS per le operazioni di crittografia, vengono applicati dei costi. Per saperne di più, consulta i prezzi di Cloud Key Management Service.
L'API Cloud Healthcare utilizza questa chiave per calcolare l'importo di cui vengono spostate le date, ad esempio la data di nascita di un paziente, entro un differenziale di 100 giorni.
Se non fornisci una chiave, l'API Cloud Healthcare genera la propria chiave ogni volta che l'operazione di anonimizzazione viene eseguita sui valori di data. Ciò può comportare output di date incoerenti tra le esecuzioni.
I seguenti esempi mostrano come impostare gli infoType DATE e DATE_OF_BIRTH con la trasformazione DateShiftConfig su un'istanza DICOM. Dopo aver inviato la richiesta di anonimizzazione all'API Cloud Healthcare, i valori delle date nell'istanza verranno spostati di più o meno 100 giorni rispetto ai valori originali.
La chiave di crittografia fornita, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=, è una chiave non elaborata con crittografia AES a 256 bit codificata in base64 generata utilizzando il seguente comando. Quando richiesto, al comando viene fornita una password vuota:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando la trasformazione dateShiftConfig, l'immagine appare come segue:

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "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=" } } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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=" } } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
L'output mostra che StudyDate (00080020) e PatientBirthDate (00100030) hanno nuovi valori. Queste trasformazioni sono avvenute come risultato della combinazione della differenza di 100 giorni con il valore cryptoKey fornito. I nuovi valori delle date sono coerenti per questa istanza tra le esecuzioni di anonimizzazione, purché venga fornito lo stesso cryptoKey.
CryptoHashConfig
Puoi lasciare vuoto il campo cryptoHashConfig o fornire:
- (Deprecato): una chiave AES non elaborata a 128/192/256 bit con codifica Base64.
- (Consigliato): una chiave con wrapping di Cloud Key Management Service (Cloud KMS). Consulta Anonimizzazione e reidentificazione del testo sensibile per un esempio di come utilizzare le chiavi con wrapping di Cloud KMS.
Devi concedere un ruolo con l'autorizzazione cloudkms.cryptoKeyVersions.useToDecrypt all'account di servizio Cloud Healthcare Service Agent per decrittografare la chiave con wrapping di Cloud KMS. Ti consigliamo di utilizzare il ruolo Cloud KMS CryptoKey Decrypter (roles/cloudkms.cryptoKeyDecrypter). Quando utilizzi Cloud KMS per le operazioni di crittografia, vengono applicati dei costi. Per saperne di più, consulta i prezzi di Cloud Key Management Service.
L'API Cloud Healthcare può trasformare i dati sostituendo i valori con hash di crittografia (chiamati anche valori surrogati). Per farlo, specifica un messaggio cryptoHashConfig.
Se non fornisci una chiave, l'API Cloud Healthcare ne genera una. L'API Cloud Healthcare utilizza questa chiave per generare valori surrogati. Se fornisci la stessa chiave per ogni esecuzione, l'API Cloud Healthcare genera valori surrogati coerenti. Se non fornisci una chiave, l'API Cloud Healthcare ne genera una nuova ogni volta che viene eseguita l'operazione. L'utilizzo di una chiave diversa genera valori surrogati diversi.
I seguenti esempi mostrano come applicare una trasformazione cryptoHashConfig a tutti gli infoType DICOM predefiniti supportati nell'API Cloud Healthcare. Dopo aver inviato la richiesta di anonimizzazione, i valori con un infoType DICOM corrispondente nell'API Cloud Healthcare vengono sostituiti con valori surrogati.
L'esempio mostra anche come fornire una chiave di crittografia per generare valori surrogati coerenti tra le esecuzioni di anonimizzazione.
La chiave di crittografia fornita, U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=, è una chiave non elaborata con crittografia AES a 256 bit codificata in base64 generata utilizzando il seguente comando. Quando richiesto, al comando viene fornita una password vuota:
echo -n "test" | openssl enc -e -aes-256-ofb -a -salt
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando la trasformazione cryptoHashConfig, l'immagine appare come segue:

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "cryptoHashConfig": { "cryptoKey": "U2FsdGVkX19bS2oZsdbK9X5zi2utBn22uY+I2Vo0zOU=" } } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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=" } } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Le trasformazioni nell'output sono coerenti per questa istanza tra le esecuzioni di anonimizzazione, purché venga fornito lo stesso cryptoKey.
ReplaceWithInfoTypeConfig
Se specifichi replaceWithInfoTypeConfig, i valori di input vengono sostituiti con il nome dell'infoType del valore.
I seguenti esempi mostrano come applicare una trasformazione replaceWithInfoTypeConfig a tutti gli infoType DICOM predefiniti supportati nell'API Cloud Healthcare.
Il messaggio replaceWithInfoTypeConfig non ha argomenti; se lo specifichi,
attivi la trasformazione.
Dopo aver inviato l'immagine all'API Cloud Healthcare utilizzando la trasformazione replaceWithInfoTypeConfig, l'immagine appare come segue:

REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "text": { "transformations": [ { "infoTypes": [], "replaceWithInfoTypeConfig": {} } ] } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata. - Una volta completata l'anonimizzazione, puoi recuperare i metadati dell'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID di studi, un nuovo UID di serie e un nuovo UID di istanze, quindi devi prima cercare nel nuovo set di dati l'istanza anonimizzata.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la località del set di dati di origine
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione. Questo è lo stesso ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una di queste opzioni:
L'output contiene i nuovi metadati. Puoi confrontare i nuovi metadati con i metadati originali per vedere l'effetto della trasformazione.curl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Anonimizzazione dei dati a livello di archivio DICOM
Gli esempi precedenti mostrano come anonimizzare i dati DICOM a livello di set di dati. Questa sezione descrive come anonimizzare i dati a livello di archivio DICOM.
Per modificare una richiesta di anonimizzazione del set di dati in una richiesta di anonimizzazione del datastore DICOM, apporta le seguenti modifiche:
- Modifica
destinationDatasetnel corpo della richiesta indestinationStore - Aggiungi
dicomStores/DESTINATION_DICOM_STORE_IDalla fine del valore indestinationStorequando specifichi la destinazione - Aggiungi
dicomStores/SOURCE_DICOM_STORE_IDquando specifichi la posizione dei dati di origine
Ad esempio:
Anonimizzazione a livello di set di dati:
"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"
Anonimizzazione a livello di archivio 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"
Gli esempi seguenti ampliano la sezione Combinazione di anonimizzazione dei tag e oscuramento del testo integrato, ma l'anonimizzazione avviene su un singolo archivio DICOM e i dati anonimizzati vengono copiati in un nuovo archivio DICOM. Prima di eseguire gli esempi, il datastore DICOM a cui fa riferimento DESTINATION_DICOM_STORE_ID deve già esistere.
Console
Per anonimizzare i dati in un archivio DICOM utilizzando la console Google Cloud , completa i seguenti passaggi.
Nella console Google Cloud , vai alla pagina Set di dati.
Fai clic sul set di dati contenente i dati che vuoi anonimizzare.
Nell'elenco degli archivi DICOM, scegli Anonimizza dall'elenco Azioni per l'archivio DICOM che stai anonimizzando.
Viene visualizzata la pagina Anonimizza archivio DICOM.
Seleziona Imposta datastore di destinazione e scegli il set di dati e il datastore DICOM in cui salvare i dati anonimizzati.
Seleziona Anonimizzazione tag DICOM per configurare la modalità di anonimizzazione dei dati. I dati possono essere anonimizzati come segue:
KEEP_ALL_PROFILE: conserva tutti i meta tag DICOMDEIDENTIFY_TAG_CONTENTS: anonimizza i dati all'interno dei meta tagATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE: rimuove i meta tag in base al profilo di base nello standard DICOMMINIMAL_KEEP_LIST_PROFILE: conserva solo i meta tag richiesti per un oggetto DICOM valido- Salta l'oscuramento degli ID: rigenera i campi UID come stabilito dallo standard DICOM
Seleziona Oscuramento del testo integrato in DICOM per configurare la modalità di esecuzione dell'oscuramento delle immagini durante l'anonimizzazione. Puoi configurare l'oscuramento delle immagini come segue:
REDACT_NO_TEXT: non oscurare il testo nelle immaginiREDACT_SENSITIVE_TEXT: oscura solo il testo sensibile nelle immagini. Per oscurare anche il testo corrispondente a espressioni regolari personalizzate:- Seleziona Usa configurazione personalizzata.
- Seleziona Usa regex personalizzata.
- Nel campo Regex personalizzata, inserisci il pattern dell'espressione regolare da trovare.
- (Facoltativo) Nel campo Indice gruppo, inserisci fino a tre indici dei gruppi Capture separati da virgole da oscurare, ad esempio
1,2. Per oscurare l'intera corrispondenza, lascia il campo vuoto o inserisci0. - (Facoltativo) Fai clic su Aggiungi espressione regolare personalizzata per configurare altre espressioni regolari personalizzate.
REDACT_ALL_TEXT: oscura tutto il testo nelle immagini
Fai clic su Anonimizza per anonimizzare i dati nell'archivio DICOM.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- SOURCE_DICOM_STORE_ID: l'ID del datastore DICOM contenente i dati da anonimizzare
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione
Corpo JSON della richiesta:
{ "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" } } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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" } } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata.
Anonimizzazione di un sottoinsieme di un archivio DICOM
Puoi anonimizzare un sottoinsieme di dati in un archivio DICOM specificando un filtro.
Il filtro assume la forma di un file di filtro che specifichi come valore per il campo resourcePathsGcsUri nell'oggetto DicomFilterConfig. Il file di filtro deve esistere in un bucket Cloud Storage. Non puoi specificare un file di filtro che esiste sulla tua macchina locale o su qualsiasi altra origine. La posizione del file deve essere nel formato gs://BUCKET/PATH/TO/FILE.
Creazione di un file di filtro
Un file di filtro definisce i file DICOM da anonimizzare. Puoi filtrare i file ai seguenti livelli:
- A livello di studio
- A livello di serie
- A livello di istanza
Il file di filtro è composto da una riga per ogni studio, serie o istanza di cui vuoi eseguire l'anonimizzazione. Ogni riga utilizza il formato /studies/STUDY_UID[/series/SERIES_UID[/instances/INSTANCE_UID]].
Alla fine di ogni riga è presente un carattere di nuova riga: \n o \r\n.
Se uno studio, una serie o un'istanza non è specificato nel file di filtro che hai passato quando hai chiamato l'operazione di anonimizzazione, lo studio, la serie o l'istanza non verrà anonimizzato e non sarà presente nel datastore DICOM di destinazione.
È obbligatoria solo la parte /studies/STUDY_UID del percorso. Ciò significa che puoi anonimizzare uno studio specificando /studies/STUDY_UID o una serie specificando /studies/STUDY_UID/series/SERIES_UID.
Considera il seguente file di filtro. Il file di filtro fa sì che uno studio, due serie e tre singole istanze vengano anonimizzati:
/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
Creazione di un file di filtro utilizzando BigQuery
In genere, per creare un file di filtro, devi prima esportare i metadati da un archivio DICOM a BigQuery. In questo modo puoi utilizzare BigQuery per visualizzare gli UID di studio, serie e istanza dei dati DICOM nel tuo archivio DICOM. e successivamente effettuare le seguenti operazioni:
Esegui una query per gli UID di studio, serie e istanza che ti interessano. Ad esempio, dopo aver esportato i metadati in BigQuery, puoi eseguire la seguente query per concatenare gli UID di studio, serie e istanza in un formato compatibile con i requisiti del file di filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Se la query restituisce un set di risultati di grandi dimensioni, puoi materializzare una nuova tabella salvando i risultati della query in una tabella di destinazione in BigQuery.
Dopo aver salvato i risultati della query nella tabella di destinazione, puoi salvare i contenuti della tabella di destinazione in un file ed esportarli in Cloud Storage. Per i passaggi su come farlo, consulta Esportazione dei dati della tabella. Il file esportato è il file dei filtri. Utilizzerai la posizione del file di filtro in Cloud Storage quando specifichi il filtro nell'operazione di esportazione.
Creazione manuale di un file di filtro
Puoi creare un file di filtro con contenuti personalizzati e caricarlo in un bucket Cloud Storage.
Utilizzerai la posizione del file di filtro in Cloud Storage quando specifichi il filtro nell'operazione di anonimizzazione. L'esempio seguente mostra come caricare un file di filtro in un bucket Cloud Storage utilizzando il comando gcloud storage cp:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Ad esempio:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Utilizzo di un filtro
Dopo aver configurato il file di filtro, puoi passarlo come valore al campo resourcePathsGcsUri nell'oggetto filterConfig.
L'esempio seguente si basa sull'anonimizzazione dei dati a livello di archivio DICOM, ma viene fornito un file di filtro in Cloud Storage che determina quali risorse DICOM vengono anonimizzate.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la località del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- SOURCE_DICOM_STORE_ID: l'ID del datastore DICOM contenente i dati da anonimizzare
- DESTINATION_DICOM_STORE_ID: l'ID del datastore DICOM nel set di dati di destinazione
- BUCKET/PATH/TO/FILE: la posizione del file di filtro in un bucket Cloud Storage
Corpo JSON della richiesta:
{ "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" } }Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. La risposta contiene un identificatore per un'operazione a lunga esecuzione. Le operazioni a lunga esecuzione vengono restituite quando le chiamate ai metodi potrebbero richiedere un periodo di tempo considerevole per essere completate. Prendi nota del valore di OPERATION_ID. Questo valore ti servirà nel passaggio successivo.curl
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente: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" } } EOFQuindi esegui questo comando per inviare la richiesta 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
Salva il corpo della richiesta in un file denominato
request.json. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "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 utf8Quindi esegui questo comando per inviare la richiesta 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- Utilizza il metodo
projects.locations.datasets.operations.getper ottenere lo stato dell'operazione a lunga esecuzione.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DATASET_ID: l'ID del set di dati
- LOCATION: la località del set di dati
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
L'output è il seguente. Quando la risposta contienecurl
Esegui questo comando:
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
Esegui questo comando:
$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 ContentExplorer API
Apri la pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true, l'operazione a lunga esecuzione è terminata.
Risoluzione dei problemi relativi alle operazioni di anonimizzazione DICOM
Se si verificano errori durante un'operazione di anonimizzazione DICOM, questi vengono registrati in Cloud Logging. Per saperne di più, consulta Visualizzazione dei log degli errori in Cloud Logging.
Se l'intera operazione restituisce un errore, consulta Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.