In questa pagina viene spiegato come utilizzare la versione v1beta1 DicomTagConfig
configurazione 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 DicomConfig
v1 legacy o l'oggetto DicomTagConfig
v1beta1. Ti consigliamo vivamente di utilizzare DicomTagConfig
.
Se utilizzi già DicomConfig
per le tue operazioni di anonimizzazione, ti consigliamo di
a utilizzare DicomTagConfig
. Per un riepilogo delle nuove funzionalità, vedi Nuove opzioni di configurazione in DicomTagConfig
.
Per istruzioni su come eseguire la migrazione, vedi 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 la proprietà DicomTagConfig.Options.CleanDescriptorsOption
per abilitare l'anonimizzazione contestuale del testo dei metadati non strutturati.
Questa opzione si basa sul
Opzione Descrittori puliti.
Quando specifichi DicomTagConfig.Options.CleanDescriptorsOption
, durante l'ispezione viene utilizzato un valore extra di infoType che può influire sui costi di fatturazione.
L'utilizzo dell'opzione DicomTagConfig.Options.CleanDescriptorsOption
trasforma
testo di metadati non strutturato corrispondente ai tag rimossi, migliorando in tal modo
la qualità dell'anonimizzazione. Ad esempio, supponiamo che tu
che anonimizza una radiografia, e il paziente ha un cognome che
un nome, ad esempio Wall
. Se eventuali metadati nell'istanza, ad esempio il testo in
StudyDescription
, contengono la parola Wall
, il testo verrà trasformato.
L'opzione CleanDescriptorsOption
oscura 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 di 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 in
ProfileType
. Non è necessario specificare un'enumerazione. - La
CleanTextTag
filtrando in base a 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 la classe TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
enum per attivare l'anonimizzazione contestuale del testo in sovrimpressione in un'immagine.
Questa opzione si basa sul
Opzione Descrittori puliti.
Quando specifichi l'enum TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, durante l'ispezione viene utilizzato un infoType aggiuntivo che può influire sui costi di fatturazione.
Puoi specificare l'enum TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
nei seguenti modi:
In un oggetto
Options.ImageConfig
conDicomTagConfig.Options.ImageConfig.TextRedactionMode
. Se specifichi questa opzione, il tagPixelData (7FE0,0010)
viene automaticamente aggiunti all'elenco di 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
testo in sovrimpressione che corrisponde a qualsiasi tag
contrassegnato per la rimozione nel profilo di base DICOM
purché i tag corrispondano a uno dei seguenti codici di azione:
D
Z
X
U
Non è prevista alcuna configurazione aggiuntiva per la spersonalizzazione contestuale del testo in rilievo, se non l'abilitazione o la disattivazione tramite un enum nell'oggetto ProfileType
. Non è necessario specificare un enum.
Altri infoType nell'anonimizzazione delle immagini
Puoi utilizzare i tipi di informazioni (infoType). specificare quali dati analizzare per l'anonimizzazione dei tag. Un infoType è un tipo di dati sensibili, come quelli di un paziente nome, indirizzo email, numero di telefono, numero di identificazione o carta di credito numero.
Puoi configurare i seguenti campi nel DicomTagConfig.Options.ImageConfig
per determinare quali infoType utilizzare durante l'anonimizzazione delle immagini DICOM:
Questi campi vengono applicati solo se DicomTagConfig.Options.ImageConfig.TextRedactionMode
è impostato su uno dei seguenti valori:
Esegui la migrazione delle richieste e delle risposte per utilizzare DicomTagConfig
Puoi configurare l'anonimizzazione DICOM utilizzando DicomTagConfig
, che è disponibile nell'API Cloud Healthcare versione 1beta1 ed è un'alternativa all'utilizzo della precedente DicomConfig
.
Quando invii una richiesta, non puoi includere sia DicomConfig
che DicomTagConfig
.
Le sezioni seguenti descrivono le configurazioni in DicomConfig
e come eseguire la migrazione a DicomTagConfig
.
Da TagFilterProfile
a ProfileType
Sostituisci DicomConfig
TagFilterProfile
con 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 mantenere o rimuovere anziché utilizzare un profilo,
devi eseguire la migrazione al nuovo oggetto Action
in cui specifichi il comportamento dei tag. L'oggetto Action
fornisce dati aggiuntivi
per trasformare i tag.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di keepList
a quello di Action.keepTag
. La richiesta specifica che il valore del tag PatientID
viene mantenuto durante l'operazione di anonimizzazione.
DicomConfig | DicomTagConfig |
---|---|
|
|
Combinare liste di titoli, liste di rimozione e profili
Nell'oggetto DicomConfig
, puoi determinare se conservare o rimuovere i dati
in base a liste di titoli, liste di rimozione e profili. Queste opzioni sono mutuamente esclusive.
Quando utilizzi l'oggetto DicomTagConfig
, puoi combinare queste opzioni specificando
quali tag conservare e rimuovere in una Action
specificando al contempo 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 vengono fornite nella richiesta.
Da skipIdRedaction
a Objects.primaryIds
Sostituisci skipIdRedaction
nell'oggetto DicomConfig
con il campo primaryIds
nell'oggetto DicomTagConfig
. Il campo primaryIds
, che appartiene all'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 principali.
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 principali vengono mantenuti durante l'operazione di anonimizzazione:
DicomConfig | DicomTagConfig |
---|---|
|
|
Da DeidentifyConfig.ImageConfig
a DicomTagConfig.Options.ImageConfig
Sostituisci l'oggetto DeidentifyConfig.ImageConfig
con
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
per utilizzare 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
è costituito dai 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
, tutte le istanze in tutti gli archivi DICOM nel set di dati sono anonimizzate. - 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 come anonimizzare i dati DICOM a livello del 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 su quali dati vengono anonimizzati. Ad esempio, se hai un set di dati con più archivi DICOM, puoi anonimizzare ogni archivio DICOM in base al tipo di dati esistenti 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 con dati sensibili. Quando chiami l'operazione
dicomStores.deidentify
, vengono anonimizzate tutte le istanze nell'archivio DICOM. - L'archivio DICOM di destinazione: l'anonimizzazione non influisce sull'archivio DICOM originale o sui relativi dati. Al contrario, le copie anonimizzate i dati originali vengono scritti nell'archivio DICOM di destinazione. L'archivio DICOM di destinazione deve già esistere.
- Che cosa anonimizzare: i parametri di configurazione che specificano la modalità di elaborazione
nell'archivio DICOM. Puoi configurare l'anonimizzazione DICOM per
Metadati dell'istanza DICOM (utilizzando parole chiave tag) o testo in sovrimpressione nelle immagini DICOM
specificando questi parametri in un file
DeidentifyConfig
.
Ad esempio, su come anonimizzare i dati DICOM a livello di archivio DICOM, consulta Anonimizza i dati a livello di archivio DICOM.
Filtri
Quando anonimizza i dati DICOM a livello di archivio DICOM, puoi anonimizzare
un sottoinsieme dei dati nell'archivio DICOM mediante la configurazione di un filtro
e specificando il file nella richiesta dicomStores.deidentify
. Per un
vedi gli esempi
Anonimizza un sottoinsieme di un archivio DICOM.
Panoramica degli esempi
Gli esempi in 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 i dati DICOM per archiviarlo in un archivio DICOM.
Le sezioni riportate di seguito mostrano l'immagine nell'istanza DICOM e i metadati dell'istanza.
Immagine di esempio
Alcuni esempi in questa pagina contengono un output dell'immagine anonimizzata. Ogni sample utilizza la seguente immagine originale come input. Puoi confrontare l'immagine di output di ogni operazione di anonimizzazione con questa immagine originale per vedere gli effetti dell'operazione:
Metadati di esempio
La maggior parte degli esempi in questa pagina contiene un output dei metadati modificati nella sezione Istanza DICOM. Ogni campione utilizza i seguenti metadati originali come di testo. Puoi confrontare i metadati di output di ogni anonimizzazione ai metadati originali per verificare gli effetti dell'anonimizzazione:
[
{
"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"
]
}
}
]
Oscura il testo in sovrimpressione nelle immagini
Puoi anonimizzare il testo in sovrimpressione nelle immagini DICOM utilizzando il
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'opzione TextRedactionMode
.
Oscurare 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 in sovrimpressione nell'immagine.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Dopo aver anonimizzato l'immagine utilizzando REDACT_ALL_TEXT
, l'immagine
simile a questo. Nota che tutto il testo in sovrimpressione nella parte inferiore del
l'immagine è stata oscurata.
Oscura il testo sensibile con l'opzione Elimina descrittori
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM mediante l'impostazione
TextRedactionMode
a REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Per maggiori informazioni
informazioni sull'opzione CleanDescriptorsOption
, consulta
Anonimizza il testo con anonimizzazione contestuale.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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. Compila tutti i campi obbligatori e fai clic su Esegui.
Dopo aver anonimizzato l'immagine utilizzando REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
, l'immagine
simile a questo. Nota che non tutto il testo in sovrimpressione nella parte inferiore del
l'immagine è stata oscurata. Il testo Female
viene comunque visualizzato perchéPatientSex (0010,0040)
non è uno degli infoType DICOM predefiniti.
Anonimizzare i tag DICOM
Puoi anonimizzare le istanze DICOM in base alle parole chiave dei tag nei metadati DICOM.
In
DicomTagConfig
Action
:
Specifichi ogni opzione Action
come un elenco di ID, nomi o rappresentazioni di valore (VR) dei tag DICOM, dopodiché 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 specificare un elenco di tag. Sono supportati i seguenti formati di tag:
- ID tag, ad esempio
"00100010"
- Nomi dei tag, ad esempio
"PatientName"
- Rappresentazioni di valore (VR), ad esempio
"PN"
Non c'è limite al numero di tag che possono essere forniti nell'elenco queries[]
.
Tuttavia, su ogni tag può essere eseguita una sola opzione Action
.
Per specificare tag diversi su cui vengono eseguite opzioni Action
diverse,
devi specificare più oggetti Action
.
Mantieni i tag
Puoi impedire la oscuratura 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 MINIMAL_KEEP_LIST_PROFILE
o DEIDENTIFY_TAG_CONTENTS
valori in ProfileType
.
Se specifichi uno di questi profili, i seguenti tag vengono automaticamente mantenuta, assicurando che l'istanza DICOM anonimizzata sia valida DICOM:
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 dei tag precedenti vengono rigenerati, il che significa che i valori sostituiti con un valore diverso attraverso una trasformazione deterministica. Per ulteriori informazioni, consulta l'opzione Mantieni UID 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 conservare i valori di
che non modifichiamo tag specifici durante l'anonimizzazione.
Il tag PatientName
viene aggiunto all'elenco queries[]
, pertanto PatientName
non viene oscurato durante l'anonimizzazione.
Poiché PrimaryIdsOption
non è specificato nel campione,
il valore predefinito del campo primaryIds
è PRIMARY_IDS_OPTION_UNSPECIFIED
, che a sua volta
al valore in ProfileType
. Poiché anche ProfileType
non è specificato,
il valore predefinito del campo profileType
è PROFILE_TYPE_UNSPECIFIED
, che rimuove
i tag in base al profilo di base di riservatezza attributo (Edizione Standard DICOM 2018e).
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila 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 nel
queries[]
, quindi il suo valore viene sostituito da uno vuoto
durante l'anonimizzazione.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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. Compila 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila 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
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
Reimposta il valore dei tag su un 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
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
"done": true
, l'operazione a lunga esecuzione è terminata.Una volta completata la deidentificazione, puoi recuperare i metadati dell'istanza deidentificata per vedere come è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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. Compila tutti i campi obbligatori e fai clic su Esegui.
In particolare, tieni presente 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" } ] }
Ispeziona e trasforma il testo sensibile nei tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto CleanTextTag
per ispezionare i tag
e trasformerai i valori dei tag in base alla configurazione
TextConfig
.
In questi esempi, le seguenti opzioni sono impostate nell'oggetto Actions
:
- 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 ispeziona il
PatientName
tag, lo associa all'infoType PERSON_NAME
e sostituisce
il valore del tag con l'infoType PERSON_NAME
.
Il tag PatientName
ha una rappresentazione del valore (VR) di PN
, che è una delle VR supportate nell'oggetto CleanTextTag
.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/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 delle seguenti 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 il seguente 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
. Questo valore 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, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
In particolare, tieni presente 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]" } ] }
Sostituire 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'unico formato VR supportato dall'oggetto RegenUidTag
è UI
.
Per impostazione predefinita, ogni tag nei metadati di esempio con una VR
di UI
ha il relativo UID generato durante l'anonimizzazione. Per mostrare come generare
un UID per un tag specifico, vengono impostate le seguenti opzioni
nell'esempio:
ProfileType
è impostato suKEEP_ALL
che impedisce l'anonimizzazione dei metadati DICOM.PrimaryIdsOption
è impostato suKEEP
enum, che lascia gli ID primari (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
eMediaStorageSOPInstanceUID
) senza modifiche.
Quando queste opzioni sono impostate, nessuno degli UID dell'ID principale nei dati di esempio viene sostituito
con i nuovi valori generati. Tuttavia, aggiungendo SOPInstanceUID
al
Action.queries[]
puoi generare un nuovo UID specifico per il tag SOPInstanceUID
.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/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 delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID istanza perché hai specificato il tag
SOPInstanceUID
nell'arrayAction.queries[]
, quindi occorre prima cerca l'istanza anonimizzata nel nuovo set di dati.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come è cambiato l'UID delle istanze:
Metadati dell'istanza originale Metadati dell'istanza anonimizzati UID delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.
Tieni presente che tra gli ID principali, solo
SOPInstanceUID
ha un UID appena generato.
Anonimizza in modo ricorsivo i tag in un elemento 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 realtà virtuale SQ
, ovvero la realtà virtuale per
Sequence
.
Per informazioni sul VR SQ
, consulta 7.5 Nidificazione dei set di dati.
L'istanza di esempio DICOM
fornita per questa pagina non contiene tag DICOM che abbiano una realtà virtuale SQ
.
Puoi creare e archiviare un'istanza DICOM con dati falsi che contengono la VR SQ
completando i seguenti passaggi, basati sulle istruzioni in
Crea istanze DICOM da metadati JSON e file JPEG.
L'istanza DICOM che crei nei passaggi seguenti utilizza dati falsi,
e ha esclusivamente lo scopo di illustrare il comportamento di RecurseTag
.
Salva i seguenti metadati DICOM in un file JSON denominato
instance.json
. I metadati contengono un tagPhysiciansReadingStudyIdentificationSequence
(00081062
). Il tag ha un valore VRSQ
e contiene due tagPersonIdentificationCodeSequence
(00401101
) nidificati. Anche i tag nidificati dispongono di un VRSQ
e ciascuno 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é questi ultimi siano validi.Esegui questi comandi per creare un'apertura (per i metadati JSON), centrale (per l'immagine JPEG) e il limite 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
all'interno del bordo centrale e di chiusura. L'output che invii all'API Cloud Healthcare, si chiamamultipart-request.file
:cat opening.file instance.json middle.file google.jpg closing.file > multipart-request.file
Memorizza il file
multipart-request.file
:REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- 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 delle seguenti 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 anonimizzare l'istanza DICOM archiviata.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
Corpo JSON della richiesta:
{ "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } }
Per inviare la richiesta, scegli una delle seguenti 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 il seguente 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
. Questo valore 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come l'UID degli studi, l'UID della serie e l'UID delle istanze modificato:
Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID della serie ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID delle istanze ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
Utilizzando i nuovi valori, recupera i metadati dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila i campi obbligatori e fai clic su Esegui.
In particolare, nota che i valori degli elementi nidificati
CodeValue
eCodingSchemaDesignator
I tag 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 cambiare una richiesta di anonimizzazione dei set di dati in un'anonimizzazione degli archivi DICOM richiesta, apporta le seguenti modifiche:
- Nel corpo della richiesta, sostituisci
destinationDataset
condestinationStore
. - Aggiungi
dicomStores/DESTINATION_DICOM_STORE_ID
alla fine di indestinationStore
quando specifichi la destinazione - Aggiungi
dicomStores/SOURCE_DICOM_STORE_ID
quando specifichi la posizione dei dati di origine
I seguenti esempi mostrano una richiesta di anonimizzazione a livello di set di dati e come modifica 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"
Anonimazzione 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 datastore DICOM di destinazione deve esistere già.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati. Deve già esistere prima di eseguire l'operazione di anonimizzazione.
- DESTINATION_DICOM_STORE_ID: l'archivio DICOM nel set di dati di destinazione. Deve già esistere prima di eseguire l'operazione di anonimizzazione.
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 delle seguenti 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 il seguente 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
. Questo valore 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, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 specificato come valore per il campo resourcePathsGcsUri
nell'oggetto DicomFilterConfig
. Il file del filtro deve essere presente in un bucket Cloud Storage. Non puoi specificare un file del filtro esistente sulla tua macchina locale o in un'altra origine. La posizione
il file deve essere nel formato
gs://BUCKET/PATH/TO/FILE
.
Creare un file di filtro
Un file filtro definisce i file DICOM da anonimizzare. Puoi filtrare i file nei seguenti livelli:
- A livello di studio
- A livello di serie
- A livello di istanza
Il file del filtro è costituito da una riga per ogni studio, serie o istanza che vuoi anonimizzare. 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 sono specificati nel file di filtro che hai superato quando chiami l'operazione di anonimizzazione, lo studio, la serie o l'istanza non saranno non identificabili e non saranno presenti nell'archivio DICOM di destinazione.
È obbligatoria solo la parte /studies/STUDY_UID
del percorso. Ciò significa che puoi anonimizzare uno studio specificando
/studies/STUDY_UID
oppure puoi anonimizzare
specificando /studies/STUDY_UID/series/SERIES_UID
.
Considera il seguente file di filtro. Il file del filtro consente di anonimizzare un'indagine, 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 filtro utilizzando BigQuery
In genere, crei 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 studi, serie e istanze dei dati DICOM nel tuo archivio DICOM. e successivamente effettuare le seguenti operazioni:
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 ed istanza in un formato compatibile con i requisiti del file del filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Se la query restituisce un insieme di risultati di grandi dimensioni, puoi materializzare una nuova tabella salvando i risultati della query in una tabella di destinazione in BigQuery.
Dopo aver salvato i risultati della query nella tabella di destinazione, puoi salvare i contenuti della tabella di destinazione in un file ed esportarli in Cloud Storage. Per la procedura da seguire, consulta Esportazione dei dati delle tabelle. Il file esportato è il tuo file filtro. Utilizzerai la posizione del file del filtro in Cloud Storage quando specifichi il filtro nell'operazione di esportazione.
Creare manualmente un file di filtro
Puoi creare un file di filtro con contenuti personalizzati e
caricarlo in un bucket Cloud Storage.
Utilizzerai la posizione del file del filtro in Cloud Storage quando
specificando il filtro nell'operazione di anonimizzazione. L'esempio seguente mostra come caricare un file filtro in un bucket Cloud Storage utilizzando il comando gcloud storage cp
:
gcloud storage cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Ad esempio:
gcloud storage cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Utilizzare un filtro
Dopo aver configurato il file del filtro, puoi passarlo come valore a
il campo resourcePathsGcsUri
nell'oggetto filterConfig
.
Il seguente esempio si espande Anonimizzazione dei dati a livello di archivio DICOM, ma in Cloud Storage viene fornito un file filtro per determinare Le risorse DICOM sono anonimizzate.
REST
Anonimizzare il set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- LOCATION: la posizione del set di dati
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- SOURCE_DICOM_STORE_ID: l'ID 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 del 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 delle seguenti 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 il seguente 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 progetto Google Cloud
- SOURCE_DATASET_LOCATION: la posizione del set di dati di origine
- SOURCE_DATASET_ID: l'ID del set di dati contenente i dati da anonimizzare
- OPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una delle seguenti 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 è cambiata. L'istanza anonimizzata ha un nuovo UID di studi, UID di serie e UID di istanze, quindi devi prima trovare l'istanza anonimizzata nel nuovo set di dati.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 tabella seguente mostra come sono cambiati gli UID degli studi, delle serie e delle istanze:Metadati dell'istanza originale Metadati delle istanze anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID della 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 delle 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 dell'istanza.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- DESTINATION_DATASET_ID: l'ID del set di dati di destinazione in cui vengono scritti i dati anonimizzati
- 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. Equivale all'ID dell'archivio DICOM nel set di dati di origine.
Per inviare la richiesta, scegli una delle seguenti 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 Esplora API. Puoi interagire con questo strumento per inviare richieste. Compila tutti 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 anonimizzazione DICOM, gli errori vengono e registrato in Cloud Logging. Per ulteriori informazioni, consulta Visualizzazione dei log degli errori in Cloud Logging.
Se l'intera operazione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.