Questa pagina spiega come utilizzare la configurazione DicomTagConfig
v1beta1 nell'API Cloud Healthcare 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.
Puoi configurare le operazioni di anonimizzazione DICOM utilizzando l'oggetto legacy v1 DicomConfig
o l'oggetto v1beta1 DicomTagConfig
. Ti consigliamo vivamente di utilizzare DicomTagConfig
.
Se utilizzi già DicomConfig
per le operazioni di anonimizzazione, ti consigliamo di eseguire la migrazione a DicomTagConfig
. Per un riepilogo delle nuove funzionalità, vedi Nuove opzioni di configurazione in DicomTagConfig
.
Per istruzioni su come eseguire la migrazione, consulta Eseguire la migrazione di richieste e risposte per utilizzare DicomTagConfig
.
Nuove opzioni di configurazione in DicomTagConfig
Anonimizza il testo con l'anonimizzazione contestuale
Puoi configurare l'oggetto DicomTagConfig.Options.CleanDescriptorsOption
per attivare l'anonimizzazione contestuale del testo dei metadati non strutturati.
Questa opzione si basa sull'opzione Descrittori puliti.
Quando specifichi DicomTagConfig.Options.CleanDescriptorsOption
, durante l'ispezione viene utilizzato un infoType aggiuntivo, il che può influire sui costi di fatturazione.
L'utilizzo dell'opzione DicomTagConfig.Options.CleanDescriptorsOption
trasforma
qualsiasi testo di metadati non strutturato che corrisponde ai tag rimossi e, in questo modo, migliora
la qualità della deidentificazione. Ad esempio, supponiamo che tu stia
deidentificando una radiografia e che il paziente della radiografia abbia un cognome che è anche
un sostantivo, come Wall
. Se i metadati nell'istanza, ad esempio il testo in
StudyDescription
, contengono la parola Wall
, il testo verrà trasformato.
L'opzione CleanDescriptorsOption
redige le frasi contestuali che corrispondono a qualsiasi tag contrassegnato per la rimozione nel profilo di base DICOM, a condizione che i tag corrispondano a uno dei seguenti codici azione:
D
Z
X
U
Le frasi contestuali corrispondenti vengono sostituite con il token [CTX]
.
Puoi configurare i tag da oscurare specificando quanto segue:
- Un'enumerazione nell'oggetto
ProfileType
. La specifica di un'enumerazione non è obbligatoria. CleanTextTag
filtra per tag specifici.
Tuttavia, i tag utilizzati nel profilo di base DICOM non possono essere modificati.
Oscurare il testo integrato con l'anonimizzazione contestuale
Puoi specificare l'enumerazione TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
per attivare la deidentificazione contestuale del testo incorporato in un'immagine.
Questa opzione si basa sull'opzione Descrittori puliti.
Quando specifichi l'enumerazione TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, durante l'ispezione viene utilizzato un infoType aggiuntivo, il che può influire sui costi di fatturazione.
Puoi specificare l'enumerazione TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
nei seguenti modi:
In un oggetto
Options.ImageConfig
conDicomTagConfig.Options.ImageConfig.TextRedactionMode
. Quando specifichi questa opzione, il tagPixelData (7FE0,0010)
viene aggiunto automaticamente all'elenco dei tag da oscurare.In un oggetto
Action.CleanImageTag
conDicomTagConfig.Action.CleanImageTag.TextRedactionMode
. Quando specifichi questa opzione, devi aggiungere manualmente il tagPixelData
all'arrayAction.queries[]
. Il tagPixelData
è l'unico tag supportato quando utilizziAction.CleanImageTag
.
L'opzione TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
oscura
il testo integrato che corrisponde a qualsiasi tag
contrassegnato per la rimozione nel profilo di base DICOM
a condizione che i tag corrispondano a uno dei seguenti codici di azione:
D
Z
X
U
Non è necessaria alcuna configurazione aggiuntiva per la deidentificazione contestuale del
testo incorporato, se non l'attivazione o la disattivazione tramite un'enumerazione nell'oggetto ProfileType
. La specifica di un'enumerazione non è obbligatoria.
InfoType aggiuntivi nell'anonimizzazione delle immagini
Puoi utilizzare i tipi di informazioni (infoType) per specificare i dati da cercare durante la deidentificazione dei tag. Un infoType è un tipo di dato sensibile, ad esempio il nome di un paziente, l'indirizzo email, il numero di telefono, il numero di identificazione o il numero di carta di credito.
Puoi configurare i seguenti campi nell'oggetto DicomTagConfig.Options.ImageConfig
per determinare quali tipi di informazioni utilizzare durante l'anonimizzazione delle immagini DICOM:
Questi campi hanno effetto solo se DicomTagConfig.Options.ImageConfig.TextRedactionMode
è impostato su uno dei seguenti valori:
Esegui la migrazione di richieste e risposte per utilizzare DicomTagConfig
Puoi configurare l'anonimizzazione DICOM utilizzando DicomTagConfig
, disponibile nell'API Cloud Healthcare v1beta1 e alternativa all'utilizzo di DicomConfig
legacy.
Quando invii una richiesta, non puoi includere sia DicomConfig
sia DicomTagConfig
.
Le sezioni seguenti descrivono le configurazioni in DicomConfig
e come
migrarle a DicomTagConfig
.
Da TagFilterProfile
a ProfileType
Sostituisci l'oggetto DicomConfig
TagFilterProfile
con l'oggetto DicomTagConfig
ProfileType
. Gli stessi quattro profili in TagFilterProfileType
sono disponibili in
ProfileType
.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di TagFilterProfile
all'utilizzo di ProfileType
:
DicomConfig | DicomTagConfig |
---|---|
|
|
keepList
e removeList
I campi DicomConfig
keepList
e removeList
non sono più disponibili in DicomTagConfig
. Se hai utilizzato keepList
e removeList
per specificare i tag da conservare o rimuovere anziché utilizzare un profilo,
devi eseguire la migrazione al nuovo oggetto Action
in cui specificare il comportamento dei tag. L'oggetto Action
fornisce opzioni aggiuntive per trasformare i tag.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di keepList
all'utilizzo di Action.keepTag
. La richiesta specifica che il valore del tag PatientID
viene mantenuto durante l'operazione di deidentificazione.
DicomConfig | DicomTagConfig |
---|---|
|
|
Combinare elenchi di conservazione, elenchi di rimozione e profili
Nell'oggetto DicomConfig
, puoi decidere se mantenere o rimuovere i dati in base a elenchi di conservazione, elenchi di rimozione e profili. Queste opzioni si escludono a vicenda.
Quando utilizzi l'oggetto DicomTagConfig
, puoi combinare queste opzioni specificando
i tag da conservare e rimuovere in un oggetto Action
e specificando un profilo in ProfileType
.
Le opzioni configurate nell'oggetto Action
sostituiscono quelle configurate nel profilo ProfileType
. Le opzioni nell'oggetto Action
vengono applicate nell'ordine
in cui sono fornite nella richiesta.
Da skipIdRedaction
a Objects.primaryIds
Sostituisci il campo skipIdRedaction
nell'oggetto DicomConfig
con il campo primaryIds
nell'oggetto DicomTagConfig
. Il campo primaryIds
, che si trova nell'oggetto Options
, contiene un oggetto PrimaryIdsOption
in cui specifichi uno dei seguenti enum:
PRIMARY_IDS_OPTION_UNSPECIFIED
: comportamento predefinito quando non viene fornito alcun valore aPrimaryIdsOption
. Il valore predefinito è l'opzione specificata inProfileType
.KEEP
: lascia invariati gli ID principali.REGEN
: rigenera gli ID primari.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di skipIdRedaction
all'utilizzo di Options.primaryIds
. La richiesta specifica che
i valori degli ID primari vengono mantenuti durante l'operazione di anonimizzazione:
DicomConfig | DicomTagConfig |
---|---|
|
|
Da DeidentifyConfig.ImageConfig
a DicomTagConfig.Options.ImageConfig
Sostituisci l'oggetto DeidentifyConfig.ImageConfig
con l'oggetto
DicomTagConfig.Options.ImageConfig
.
Le opzioni nell'oggetto ImageConfig
sono le stesse in entrambe le versioni.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di un ImageConfig
in DeidentifyConfig.image
all'utilizzo di un ImageConfig
in DeidentifyConfig.DicomTagConfig.Options.cleanImage
.
La richiesta specifica che tutto il testo di un'immagine deve essere oscurato durante l'operazione
di anonimizzazione:
DeidentifyConfig.image | DeidentifyConfig.DicomTagConfig.Options.cleanImage |
---|---|
|
|
Panoramica dell'anonimizzazione
Anonimizzazione a livello di set di dati
Per anonimizzare i dati DICOM a livello di set di dati, chiama il metodo
datasets.deidentify
. Il metodo datasets.deidentify
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 il metodo
datasets.deidentify
, vengono anonimizzate tutte le istanze di tutti gli archivi DICOM nel set di dati. - Il set di dati di destinazione: l'anonimizzazione non interessa il set di dati originale o i dati al suo interno. Le copie anonimizzate dei dati originali vengono invece scritte in un nuovo set di dati, chiamato set di dati di destinazione.
- Che cosa anonimizzare: i parametri di configurazione che specificano come elaborare i dati DICOM nel set di dati. Puoi configurare l'anonimizzazione DICOM per anonimizzare i metadati delle istanze DICOM (utilizzando le parole chiave dei tag) o il testo incorporato nelle immagini DICOM specificando questi parametri in un oggetto
DeidentifyConfig
.
La maggior parte degli esempi in 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
. Il metodo dicomStores.deidentify
ha i seguenti componenti:
- L'archivio DICOM di origine: un archivio DICOM contenente una o più istanze che includono dati sensibili. Quando chiami l'operazione
dicomStores.deidentify
, vengono anonimizzate tutte le istanze nell'archivio DICOM. - L'archivio DICOM di destinazione: l'anonimizzazione non interessa l'archivio DICOM originale o i dati al suo interno. Le copie anonimizzate dei dati originali vengono invece scritte nell'archivio DICOM di destinazione. L'archivio DICOM di destinazione deve esistere già.
- Che cosa anonimizzare: i parametri di configurazione che specificano come elaborare l'archivio DICOM. Puoi configurare l'anonimizzazione DICOM per anonimizzare
i metadati delle istanze DICOM (utilizzando le parole chiave dei tag) o il testo incorporato nelle immagini DICOM
specificando questi parametri in un oggetto
DeidentifyConfig
.
Per un esempio di come anonimizzare i dati DICOM a livello di archivio DICOM, consulta Anonimizzare i dati a livello di archivio DICOM.
Filtri
Quando anonimizzi i dati DICOM a livello di archivio DICOM, puoi anonimizzare un sottoinsieme dei dati nell'archivio DICOM configurando un file di filtro e specificandolo nella richiesta dicomStores.deidentify
. Per un
esempio, vedi
Anonimizzare un sottoinsieme di un archivio DICOM.
Panoramica di Samples
Gli esempi di questa guida utilizzano una singola istanza DICOM denominata
dicom_deid_instance_sample.dcm
,
ma puoi anche anonimizzare più istanze. Per utilizzare l'istanza DICOM di esempio negli esempi di questa pagina, scarica il file sul tuo computer locale e segui le istruzioni riportate in Archiviare dati DICOM per archiviarlo in un archivio DICOM.
Le sezioni riportate di seguito mostrano l'aspetto dell'immagine nell'istanza DICOM e i metadati nell'istanza.
Immagine di esempio
Alcuni esempi in questa pagina contengono un output dell'immagine deidentificata. Ogni campione utilizza la seguente immagine originale come input. Puoi confrontare l'immagine di output di ogni operazione di deidentificazione con questa immagine originale per vedere gli effetti dell'operazione:
Metadati di esempio
La maggior parte degli esempi in questa pagina contiene un output dei metadati modificati nell'istanza DICOM. Ogni esempio utilizza i seguenti metadati originali come input. Puoi confrontare i metadati di output di ogni operazione di deidentificazione con i metadati originali per vedere gli effetti della deidentificazione:
[
{
"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"
]
}
}
]
Oscurare il testo integrato nelle immagini
Puoi anonimizzare il testo integrato nelle immagini DICOM utilizzando l'oggetto
ImageConfig
all'interno di un oggetto
Action
. All'interno di ImageConfig
, puoi specificare quali infoType includere o
escludere e come oscurare il testo utilizzando l'oggetto TextRedactionMode
.
Oscura tutto il testo
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM impostando
TextRedactionMode
su REDACT_ALL_TEXT
.
Questa configurazione oscura tutto il testo integrato nell'immagine.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Dopo aver rimosso i dati identificativi dall'immagine utilizzando REDACT_ALL_TEXT
, l'immagine
ha questo aspetto. Nota che tutto il testo incorporato nella parte inferiore dell'immagine è stato oscurato.

REDACT_ALL_TEXT
.Oscurare il testo sensibile con l'opzione Pulisci descrittori
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM impostando
TextRedactionMode
su REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Per ulteriori
informazioni sull'opzione CleanDescriptorsOption
, vedi
Anonimizzare il testo con l'anonimizzazione contestuale.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Dopo aver rimosso i dati identificativi dall'immagine utilizzando REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, l'immagine
ha questo aspetto. Tieni presente che non tutto il testo incorporato nella parte inferiore dell'immagine è stato oscurato. Il testo Female
viene ancora visualizzato perché
PatientSex (0010,0040)
non è uno degli infoType DICOM predefiniti.

REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.Anonimizzare i tag DICOM
Puoi anonimizzare le istanze DICOM in base alle parole chiave dei tag nei metadati DICOM.
Nell'oggetto
DicomTagConfig
Action
sono disponibili i seguenti metodi di filtro dei tag:
Specifichi ogni opzione Action
come un elenco di ID tag DICOM, nomi o
rappresentazioni di valori (VR), quindi l'opzione esegue un'azione sui
tag nell'elenco. Non puoi specificare più di un'opzione Action
in un elenco di tag.
Ogni oggetto Action
fornisce un elenco queries[]
in cui specifichi un elenco
di tag. Sono supportati i seguenti formati di tag:
- ID tag, ad esempio
"00100010"
- Nomi dei tag, ad esempio
"PatientName"
- Rappresentazioni di valori (VR), ad esempio
"PN"
Non esiste un limite al numero di tag che possono essere forniti nell'elenco queries[]
.
Tuttavia, ogni tag può avere una sola opzione Action
.
Per specificare tag diversi a cui vengono applicate opzioni Action
diverse,
devi specificare più oggetti Action
.
Mantieni i tag
Puoi impedire la redazione dei valori dei tag specificandoli in un oggetto KeepTag
nell'oggetto DicomTagConfig
.
Per produrre un oggetto DICOM valido durante l'utilizzo di un oggetto KeepTag
, specifica i valori MINIMAL_KEEP_LIST_PROFILE
o DEIDENTIFY_TAG_CONTENTS
nell'oggetto ProfileType
.
Se specifichi uno di questi profili, i seguenti tag vengono mantenuti automaticamente, garantendo che l'istanza DICOM anonimizzata sia DICOM valida:
StudyInstanceUID
SeriesInstanceUID
SOPInstanceUID
TransferSyntaxUID
MediaStorageSOPInstanceUID
MediaStorageSOPClassUID
PixelData
Rows
Columns
SamplesPerPixel
BitsAllocated
BitsStored
Highbit
PhotometricInterpretation
PixelRepresentation
NumberOfFrames
PlanarConfiguration
PixelAspectRatio
SmallestImagePixelValue
LargestImagePixelValue
RedPaletteColorLookupTableDescriptor
GreenPaletteColorLookupTableDescriptor
BluePaletteColorLookupTableDescriptor
RedPaletteColorLookupTableData
GreenPaletteColorLookupTableData
BluePaletteColorLookupTableData
ICCProfile
ColorSpace
WindowCenter
WindowWidth
VOILUTFunction
I valori di alcuni tag precedenti vengono rigenerati, il che significa che i valori vengono sostituiti con un valore diverso tramite una trasformazione deterministica. Per saperne di più, consulta l'opzione Retain UIDs nello standard DICOM.
I valori di StudyInstanceUID
, SeriesInstanceUID
, SOPInstanceUID
e MediaStorageSOPInstanceUID
sono chiamati "ID principali". Per determinare
come vengono trasformati gli ID principali, specifica un valore in
PrimaryIdsOption
.
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto KeepTag
per mantenere invariati i valori di tag specifici durante l'anonimizzazione.
Il tag PatientName
viene aggiunto all'elenco queries[]
, quindi il valore PatientName
non viene oscurato durante l'anonimizzazione.
Poiché PrimaryIdsOption
non è specificato nell'esempio,
il campo primaryIds
è impostato sul valore predefinito PRIMARY_IDS_OPTION_UNSPECIFIED
, che a sua volta
è impostato sul valore in ProfileType
. Poiché non è specificato neanche ProfileType
,
il campo profileType
ha come valore predefinito PROFILE_TYPE_UNSPECIFIED
, che rimuove
i tag in base al profilo di base di riservatezza attributo (DICOM Standard Edition 2018e).
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Rimuovi i tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto RemoveTag
per rimuovere
i valori di tag specifici durante l'anonimizzazione. Un tag rimosso viene sostituito da un valore vuoto.
Nei seguenti esempi, il tag PatientName
viene aggiunto all'elenco
queries[]
, quindi il suo valore viene sostituito con un valore
vuoto durante la deidentificazione.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Elimina tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto DeleteTag
per eliminare
tag specifici durante l'anonimizzazione.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Reimpostare i tag su un valore segnaposto
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto ResetTag
per impostare il valore dei tag sulla stringa PLACEHOLDER
durante l'anonimizzazione.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
In particolare, nota che il valore del tag
PatientName
è impostato suPLACEHOLDER
:Original metadata
Metadati dopo l'esecuzione di ResetTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "PLACEHOLDER" } ] }
Ispezionare e trasformare il testo sensibile nei tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto CleanTextTag
per esaminare i tag e trasformare i valori dei tag in base alla configurazione nell'oggetto TextConfig
.
In questi esempi, nell'oggetto Actions
sono impostate le seguenti opzioni:
- Un oggetto
CleanTextTag
. - Un elenco
queries[]
contenente il tag DICOMPatientName
.
Le seguenti opzioni sono impostate nell'oggetto TextConfig
:
- Un oggetto
InfoTypeTransformation
che trasforma il testo che corrisponde a un particolare infoType. - Un oggetto
ReplaceWithInfoTypeConfig
che sostituisce qualsiasi testo corrispondente con il nome dell'infoType. - Un elenco
infoTypes[]
contenente l'infoTypePERSON_NAME
.
Con queste configurazioni impostate, l'operazione di anonimizzazione esamina il tag PatientName
, lo associa al infoType PERSON_NAME
e sostituisce il valore del tag con il infoType PERSON_NAME
.
Il tag PatientName
ha una rappresentazione del valore (VR) di PN
, che è una delle VR supportate nell'oggetto CleanTextTag
.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
In particolare, nota che il valore del tag
PatientName
è impostato su[PERSON_NAME]
:Original metadata
Metadati dopo l'esecuzione di CleanTextTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "[PERSON_NAME]" } ] }
Sostituisci un UID con un UID generato
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto RegenUidTag
per sostituire un UID con un UID appena generato. L'unica VR supportata dall'oggetto RegenUidTag
è UI
.
Per impostazione predefinita, a ogni tag nei metadati di esempio con un VR
di UI
viene generato l'UID durante l'anonimizzazione. Per mostrare come generare
un UID per un tag specifico, nell'esempio sono impostate le seguenti opzioni:
ProfileType
è impostato sull'enumerazioneKEEP_ALL
, che impedisce l'anonimizzazione di qualsiasi metadato DICOM.PrimaryIdsOption
è impostato sull'enumerazioneKEEP
, che lascia invariati gli ID principali (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
eMediaStorageSOPInstanceUID
).
Quando queste opzioni sono impostate, nessuno degli UID degli ID principali nei dati di esempio viene sostituito
con valori appena generati. Tuttavia, aggiungendo SOPInstanceUID
all'array
Action.queries[]
, puoi generare un nuovo UID specifico per il tag SOPInstanceUID
.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID istanze perché hai specificato il tag
SOPInstanceUID
nell'arrayAction.queries[]
, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella mostra come è cambiato l'UID delle istanze:
Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando il nuovo valore, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/2.25.70541616638819138568043293671559322355/series/1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Tieni presente che, tra gli ID principali, solo
SOPInstanceUID
ha un UID appena generato.
Anonimizzare in modo ricorsivo i tag in un Sequence
nidificato
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto RecurseTag
per anonimizzare in modo ricorsivo i tag DICOM nidificati in un Sequence
.
L'oggetto RecurseTag
supporta solo la VR SQ
, ovvero la VR per
un Sequence
.
Per informazioni sulla SQ
VR, vedi 7.5 Nesting of Data Sets.
L'istanza DICOM di esempio fornita per questa pagina non contiene tag DICOM con un VR SQ
.
Puoi creare e archiviare un'istanza DICOM con dati fittizi che contengono il VR SQ
completando i seguenti passaggi, basati sulle istruzioni riportate in Creare istanze DICOM da metadati JSON e file JPEG.
L'istanza DICOM che crei nei passaggi seguenti utilizza dati fittizi ed è pensata solo per illustrare il comportamento diRecurseTag
.
Salva i seguenti metadati DICOM in un file JSON denominato
instance.json
. I metadati contengono un tagPhysiciansReadingStudyIdentificationSequence
(00081062
). Il tag ha una VRSQ
e contiene due tagPersonIdentificationCodeSequence
(00401101
) nidificati. Anche i tag nidificati hanno unSQ
VR e ognuno contiene i seguenti tag nidificati:CodeValue
(00080100
)CodingSchemeDesignator
(00080102
)
[{ "00020010": { "vr": "UI", "Value": [ "1.2.840.10008.1.2.4.50" ] }, "00080005": { "vr": "CS", "Value": [ "ISO_IR 192" ] }, "00080016": { "vr": "UI", "Value": [ "1111111" ] }, "00080018": { "vr": "UI", "Value": [ "2222222" ] }, "0020000D": { "vr": "UI", "Value": [ "3333333" ] }, "0020000E": { "vr": "UI", "Value": [ "4444444" ] }, "00280002": { "vr": "US", "Value": [ 3 ] }, "00280004": { "vr": "CS", "Value": [ "YBR_FULL_422" ] }, "00280006": { "vr": "US", "Value": [ 0 ] }, "00280008": { "vr": "IS", "Value": [ 1 ] }, "00280010": { "vr": "US", "Value": [ 1024 ] }, "00280011": { "vr": "US", "Value": [ 1024 ] }, "00280100": { "vr": "US", "Value": [ 8 ] }, "00280101": { "vr": "US", "Value": [ 8 ] }, "00280102": { "vr": "US", "Value": [ 7 ] }, "00280103": { "vr": "US", "Value": [ 0 ] }, "7FE00010": { "vr": "OB", "BulkDataURI": "jpeg-image" }, "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue2" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator2" ] } } ] } } ] } }]
Scarica il file
google.jpg
sulla tua macchina locale. L'API DICOMweb dell'API Cloud Healthcare accetta qualsiasi immagine JPEG abbinata a metadati JSON, purché i metadati siano validi.Esegui questi comandi per creare un separatore di apertura (per i metadati JSON), uno centrale (per l'immagine JPEG) e uno di chiusura nell'immagine:
echo -ne "--DICOMwebBoundary\r\nContent-Type: application/dicom+json\r\n\r\n" > opening.file echo -ne "\r\n--DICOMwebBoundary\r\nContent-Location: jpeg-image\r\nContent-Type: image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50\r\n\r\n" > middle.file echo -ne "\r\n--DICOMwebBoundary--" > closing.file
Inserisci l'immagine
google.jpg
tra il separatore centrale e quello di chiusura. Il file di output che invii all'API Cloud Healthcare è denominatomultipart-request.file
:cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
Archivia il file
multipart-request.file
:REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DICOM_STORE_ID: l'ID dell'archivio DICOM all'interno del set di dati di origine
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: multipart/related; type=\"application/dicom+json\"; boundary=DICOMwebBoundary" \
--data-binary @multipart-request.file \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-InFile multipart-request.file `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
Completa i seguenti passaggi per rimuovere i dati identificativi dall'istanza DICOM che hai archiviato.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID serie ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID istanze ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314/series/1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347/instances/1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
In particolare, nota che i valori dei tag nidificati
CodeValue
eCodingSchemaDesignator
sono impostati suPLACEHOLDER
:Original metadata
Metadati dopo l'esecuzione di RecurseTag
{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "CodeValue1" ] }, "00080102": { "vr": "SH", "Value": [ "CodingSchemeDesignator1" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [
"CodeValue2"
] }, "00080102": { "vr": "SH", "Value": ["CodingSchemeDesignator2"
] } } ] } } ] } }{ "00081062": { "vr": "SQ", "Value": [ { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } }, { "00401101": { "vr": "SQ", "Value": [ { "00080100": { "vr": "SH", "Value": [ "PLACEHOLDER" ] }, "00080102": { "vr": "SH", "Value": [ "PLACEHOLDER" ] } } ] } } ] } }
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 di un set di dati in una richiesta di anonimizzazione di un archivio DICOM, apporta le seguenti modifiche:
- Sostituisci
destinationDataset
nel corpo della richiesta condestinationStore
- Aggiungi
dicomStores/DESTINATION_DICOM_STORE_ID
alla fine del valore indestinationStore
quando specifichi la destinazione - Aggiungi
dicomStores/SOURCE_DICOM_STORE_ID
quando specifichi la posizione dei dati di origine
Gli esempi riportati di seguito mostrano una richiesta di anonimizzazione a livello di set di dati e come modificare la richiesta per un'anonimizzazione a livello di archivio DICOM:
Anonimizzazione a livello di set di dati:
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM in un archivio DICOM e scrivere i dati anonimizzati in un nuovo archivio DICOM. Prima di eseguire gli esempi, l'ID archivio DICOM di destinazione deve già esistere.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati. Deve esistere prima dell'esecuzione dell'operazione di deidentificazione.
- DESTINATION_DICOM_STORE_ID: l'archivio DICOM nel set di dati di destinazione. Deve esistere prima dell'esecuzione dell'operazione di deidentificazione.
Corpo JSON della richiesta:
{ "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Per inviare la richiesta, scegli una di queste opzioni:
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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_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/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, 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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify" | Select-Object -Expand ContentOPERATION_ID
. Ti servirà nel passaggio successivo.Utilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Anonimizzare un sottoinsieme di un archivio DICOM
Puoi anonimizzare un sottoinsieme dei 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 in qualsiasi altra origine. La posizione del
file deve essere nel formato
gs://BUCKET/PATH/TO/FILE
.
Creare un file di filtri
Un file di filtro definisce quali file DICOM anonimizzare. Puoi filtrare i file ai seguenti livelli:
- A livello di studio
- A livello di serie
- A livello di istanza
Il file di filtri è composto da una riga per ogni studio, serie o istanza che vuoi
deidentificare. 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 nell'archivio DICOM di destinazione.
È necessaria solo la parte /studies/STUDY_UID
del percorso. Ciò significa che puoi rimuovere l'identificazione di uno studio specificando
/studies/STUDY_UID
oppure puoi rimuovere l'identificazione di una
serie specificando /studies/STUDY_UID/series/SERIES_UID
.
Considera il seguente file di filtri. Il file di filtri causa la deidentificazione di uno studio, due serie e tre singole istanze:
/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
Creare un file di filtri utilizzando BigQuery
In genere, si crea un file di filtro esportando prima 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. A questo punto puoi:
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 esportarlo in Cloud Storage. Per i passaggi su come farlo, consulta Esportazione dei dati della tabella. Il file esportato è il file di filtri. Utilizzerai la posizione del file di filtro in Cloud Storage quando specifichi il filtro nell'operazione di esportazione.
Crea manualmente un file di filtri
Puoi creare un file di filtri 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 deidentificazione. Il seguente esempio mostra come caricare un file di filtri 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
Utilizzare un filtro
Una volta 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 per determinare quali risorse DICOM vengono anonimizzate.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- LOCATION: la posizione del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da deidentificare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DICOM_STORE_ID: l'ID dell'archivio DICOM contenente i dati da anonimizzare
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio 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:
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" } } EOF
Quindi, 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 utf8
Quindi, 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 ContentUtilizza il metodo
projects.locations.datasets.operations.get
per ottenere lo stato dell'operazione a lunga esecuzione.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da de-identificare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_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. Completa i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID per studi, serie e istanze, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/instances" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
La seguente tabella 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.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo Google Cloud progetto
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati deidentificati
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- DESTINATION_DICOM_STORE_ID: l'ID dell'archivio DICOM nel set di dati di destinazione. Corrisponde all'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/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata"PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID/dicomWeb/studies/1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763/series/1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710/instances/1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029/metadata" | Select-Object -Expand 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. Completa i campi obbligatori e fai clic su Esegui.
Risolvere i problemi relativi alle operazioni di anonimizzazione DICOM
Se si verificano errori durante un'operazione di deidentificazione DICOM, questi vengono registrati in Cloud Logging. Per ulteriori informazioni, consulta Visualizzazione dei log degli errori su Cloud Logging.
Se l'intera operazione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.