Questa pagina spiega come utilizzare la configurazione v1beta1 DicomTagConfig
nell'API Cloud Healthcare per anonimizzare i dati sensibili
nelle istanze DICOM ai seguenti livelli:
- A livello del set di dati utilizzando
datasets.deidentify
- A livello di archivio DICOM utilizzando
dicomStores.deidentify
Questa pagina spiega anche come applicare i filtri durante l'anonimizzazione dei dati a livello di archivio DICOM.
Puoi configurare le operazioni di anonimizzazione DICOM utilizzando l'oggetto legacy v1 DicomConfig
o l'oggetto v1beta1 DicomTagConfig
. Ti consigliamo vivamente di utilizzare DicomTagConfig
.
Se utilizzi già DicomConfig
per le tue operazioni di anonimizzazione, ti invitiamo a eseguire la migrazione all'utilizzo di 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 anonimizzazione contestuale
Puoi configurare l'oggetto DicomTagConfig.Options.CleanDescriptorsOption
per abilitare l'anonimizzazione contestuale del testo dei metadati non strutturati.
Questa opzione si basa
sull'opzione Clean Descriptors.
Se specifichi DicomTagConfig.Options.CleanDescriptorsOption
, durante l'ispezione viene utilizzato un infoType aggiuntivo, che può influire sui costi di fatturazione.
L'opzione DicomTagConfig.Options.CleanDescriptorsOption
trasforma
il testo dei metadati non strutturati che corrisponde ai tag rimossi, migliorando
la qualità dell'anonimizzazione. Ad esempio, supponiamo che tu stia
anonimizzando una radiografia e che il paziente radiografico abbia un cognome che è anche
un sostantivo, come Wall
. Se un metadato nell'istanza, ad esempio il testo in StudyDescription
, contiene 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 oscurati specificando quanto segue:
- Un'enumerazione nell'oggetto
ProfileType
. Non è necessario specificare un'enumerazione. - Il
CleanTextTag
filtra in base a tag specifici.
Tuttavia, i tag utilizzati nel profilo di base DICOM non possono essere modificati.
Oscura il testo in sovrimpressione con l'anonimizzazione contestuale
Puoi specificare l'enum TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
per attivare l'anonimizzazione contestuale del testo in sovrimpressione in un'immagine.
Questa opzione si basa
sull'opzione Clean Descriptors.
Se 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 aggiunto automaticamente all'elenco dei tag da oscurare.In un oggetto
Action.CleanImageTag
conDicomTagConfig.Action.CleanImageTag.TextRedactionMode
. Se specifichi questa opzione, devi aggiungere manualmente il tagPixelData
all'arrayAction.queries[]
. Il tagPixelData
è l'unico tag supportato quando utilizziAction.CleanImageTag
.
L'opzione TextRedactionMode.REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
oscura il testo integrato corrispondente 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 esiste alcuna configurazione aggiuntiva per l'anonimizzazione contestuale del testo integrato se non per l'attivazione o la disattivazione tramite un'enumerazione nell'oggetto ProfileType
. Non è necessario specificare un'enumerazione.
InfoType aggiuntivi nell'anonimizzazione delle immagini
Puoi utilizzare i tipi di informazioni (infoType) per specificare quali dati analizzare quando esegui l'anonimizzazione sui tag. Un infoType è un tipo di dati sensibili, come il nome, l'indirizzo email, il numero di telefono, il numero di identificazione o il numero della carta di credito di un paziente.
Puoi configurare i seguenti campi nell'oggetto DicomTagConfig.Options.ImageConfig
per determinare quali infoType utilizzare durante l'anonimizzazione delle immagini DICOM:
Questi campi hanno effetto solo se DicomTagConfig.Options.ImageConfig.TextRedactionMode
è impostato su uno dei seguenti valori:
Esegui la migrazione delle richieste e delle risposte per utilizzare DicomTagConfig
Puoi configurare l'anonimizzazione DICOM utilizzando DicomTagConfig
, che è disponibile nella versione 1beta1 dell'API Cloud Healthcare e rappresenta un'alternativa all'utilizzo dell'API DicomConfig
legacy.
Quando invii una richiesta, non puoi includere sia DicomConfig
sia DicomTagConfig
.
Le seguenti sezioni descrivono le configurazioni in DicomConfig
e come
eseguirne la migrazione a DicomTagConfig
.
Da TagFilterProfile
a ProfileType
Sostituisci l'oggetto DicomConfig
TagFilterProfile
con l'oggetto DicomTagConfig
ProfileType
. Gli stessi quattro profili in TagFilterProfileType
sono disponibili in
ProfileType
.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di TagFilterProfile
all'utilizzo di ProfileType
:
DicomConfig | DicomTagConfig |
---|---|
|
|
keepList
e removeList
I campi DicomConfig
keepList
e removeList
non sono più disponibili in DicomTagConfig
. Se hai utilizzato keepList
e removeList
per specificare i tag da 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 opzioni aggiuntive per trasformare i tag.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di keepList
all'utilizzo di Action.keepTag
. La richiesta specifica che il valore del tag PatientID
viene mantenuto durante l'operazione di 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 conservazione, liste di rimozione e profili. Queste opzioni si escludono a vicenda.
Quando utilizzi l'oggetto DicomTagConfig
, puoi combinare queste opzioni specificando
i tag da conservare e rimuovere in un oggetto Action
e allo stesso tempo specificare un profilo in ProfileType
.
Le opzioni configurate nell'oggetto Action
sostituiscono quelle configurate nel profilo ProfileType
. Le opzioni nell'oggetto Action
si applicano nell'ordine
in cui sono fornite nella richiesta.
Da skipIdRedaction
a Objects.primaryIds
Sostituisci il campo skipIdRedaction
nell'oggetto DicomConfig
con il campo primaryIds
nell'oggetto DicomTagConfig
. Il campo primaryIds
, che si trova nell'oggetto Options
, contiene un oggetto PrimaryIdsOption
in cui specifichi una delle 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 conservati durante l'operazione di anonimizzazione:
DicomConfig | DicomTagConfig |
---|---|
|
|
Da DeidentifyConfig.ImageConfig
a DicomTagConfig.Options.ImageConfig
Sostituisci l'oggetto DeidentifyConfig.ImageConfig
con l'oggetto DicomTagConfig.Options.ImageConfig
.
Le opzioni nell'oggetto ImageConfig
sono le stesse in entrambe le versioni.
L'esempio seguente mostra come eseguire la migrazione di una richiesta dall'utilizzo di ImageConfig
in DeidentifyConfig.image
all'utilizzo di ImageConfig
in DeidentifyConfig.DicomTagConfig.Options.cleanImage
.
La richiesta specifica che tutto il testo in un'immagine deve essere oscurato durante
l'operazione di anonimizzazione:
DeidentifyConfig.image | DeidentifyConfig.DicomTagConfig.Options.cleanImage |
---|---|
|
|
Panoramica dell'anonimizzazione
Anonimizzazione a livello di set di dati
Per anonimizzare i dati DICOM a livello di set di dati, chiama il metodo datasets.deidentify
. Il metodo datasets.deidentify
ha i seguenti componenti:
- Il set di dati di origine: un set di dati contenente archivi DICOM con una o più istanze che includono dati sensibili. Quando chiami il metodo
datasets.deidentify
, tutte le istanze in tutti gli archivi DICOM nel set di dati sono anonimizzate. - Il set di dati di destinazione: l'anonimizzazione non influisce sul set di dati originale o sui relativi dati. Le copie anonimizzate dei dati originali vengono invece scritte in un nuovo set di dati, chiamato set di dati di destinazione.
- 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 dell'istanza DICOM (utilizzando le parole chiave dei tag) o il testo in sovrimpressione nelle immagini DICOM specificando questi parametri in un oggetto
DeidentifyConfig
.
La maggior parte degli esempi di questa guida mostra come anonimizzare i dati DICOM a livello del set di dati.
Anonimizzazione a livello di archivio DICOM
Anonimizzando i dati DICOM a livello di archivio DICOM, puoi avere un maggiore controllo su quali dati vengono anonimizzati. Ad esempio, se disponi di un set di dati con più archivi DICOM, puoi anonimizzare ciascun archivio DICOM in base al tipo di dati presenti nell'archivio.
Per anonimizzare i dati DICOM in un archivio DICOM, chiama il metodo dicomStores.deidentify
. Il metodo dicomStores.deidentify
ha i seguenti componenti:
- L'archivio DICOM di origine: un archivio DICOM contenente una o più istanze con dati sensibili. Quando chiami l'operazione
dicomStores.deidentify
, tutte le istanze nell'archivio DICOM vengono anonimizzate. - L'archivio DICOM di destinazione: l'anonimizzazione non influisce sull'archivio DICOM originale o sui suoi dati. Vengono invece scritte nell'archivio DICOM di destinazione le copie anonimizzate dei dati originali. L'archivio DICOM di destinazione deve già esistere.
- Che cosa anonimizzare: i parametri di configurazione che specificano come elaborare l'archivio DICOM. Puoi configurare l'anonimizzazione DICOM per anonimizzare i metadati dell'istanza DICOM (utilizzando le parole chiave dei tag) o il testo in sovrimpressione nelle immagini DICOM specificando questi parametri in un oggetto
DeidentifyConfig
.
Per un esempio di come anonimizzare i dati DICOM a livello di archivio DICOM, consulta Anonimizza i dati a livello di archivio DICOM.
Filtri
Durante l'anonimizzazione dei dati DICOM a livello di archivio DICOM, puoi anonimizzare un sottoinsieme di dati nell'archivio DICOM configurando un file di filtro e specificando il file nella richiesta dicomStores.deidentify
. Per un esempio, consulta 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 sulla tua macchina locale e segui le istruzioni in Archiviare i dati DICOM per archiviarlo in un archivio DICOM.
Le seguenti sezioni mostrano l'aspetto dell'immagine nell'istanza DICOM e i metadati nell'istanza.
Immagine di esempio
Alcuni esempi in questa pagina contengono un output dell'immagine anonimizzata. Ogni esempio utilizza la seguente immagine originale come input. Puoi confrontare l'immagine di output di ogni operazione di anonimizzazione con questa immagine originale per vedere gli effetti dell'operazione:
Metadati di esempio
La maggior parte degli esempi in questa pagina contiene un output dei metadati modificati nell'istanza DICOM. Ogni esempio utilizza i seguenti metadati originali come input. Puoi confrontare i metadati di output di ogni operazione di anonimizzazione con questi metadati originali per visualizzare 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 l'oggetto ImageConfig
all'interno di un oggetto Action
. All'interno di ImageConfig
, puoi specificare quali infoType includere o escludere e come oscurare il testo utilizzando l'oggetto TextRedactionMode
.
Oscura tutto il testo
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM impostando
TextRedactionMode
su REDACT_ALL_TEXT
.
Questa configurazione oscura tutto il testo in sovrimpressione nell'immagine.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_ALL_TEXT" } } } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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_ALL_TEXT
, l'immagine
si presenta come segue. Nota che tutto il testo in sovrimpressione nella parte inferiore
dell'immagine è stato oscurato.
Oscura il testo sensibile con l'opzione Elimina descrittori
Gli esempi riportati di seguito mostrano come anonimizzare un'istanza DICOM impostando
TextRedactionMode
su REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS
.
Per maggiori
informazioni sull'opzione CleanDescriptorsOption
, consulta
Anonimizza il testo con anonimizzazione contestuale.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "cleanImage": { "textRedactionMode": "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" } } } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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
si presenta come segue. Tieni presente che non tutto il testo in sovrimpressione nella parte inferiore dell'immagine è stato oscurato. Il testo Female
è ancora mostrato perché PatientSex (0010,0040)
non è uno degli infoType DICOM predefiniti.
Anonimizza i tag DICOM
Puoi anonimizzare le istanze DICOM in base alle parole chiave dei tag nei metadati DICOM.
I seguenti metodi di filtro dei tag sono disponibili nell'oggetto
DicomTagConfig
Action
:
Specifica ogni opzione Action
come elenco di ID tag, nomi o
rappresentazioni di valore (VR) DICOM, quindi l'opzione esegue un'azione
sui tag nell'elenco. Non puoi specificare più di un'opzione Action
in un elenco di tag.
Ogni oggetto Action
fornisce un elenco queries[]
in cui puoi specificare un elenco
di tag. Sono supportati i seguenti formati di tag:
- ID tag, ad esempio
"00100010"
- Nomi dei tag, ad esempio
"PatientName"
- Rappresentazioni del valore (VR), ad esempio
"PN"
Non c'è limite al numero di tag che possono essere forniti nell'elenco queries[]
.
Tuttavia, per ogni tag può essere eseguita una sola opzione Action
.
Per specificare tag diversi con opzioni Action
diverse eseguite,
devi specificare più oggetti Action
.
Mantieni i tag
Puoi impedire che i valori dei tag vengano oscurati specificando i tag in un oggetto KeepTag
nell'oggetto DicomTagConfig
.
Per produrre un oggetto DICOM valido durante l'utilizzo di un oggetto KeepTag
, specifica i valori MINIMAL_KEEP_LIST_PROFILE
o DEIDENTIFY_TAG_CONTENTS
nell'oggetto ProfileType
.
Specificando uno di questi profili, i seguenti tag vengono conservati automaticamente, garantendo 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 vengono sostituiti con un valore diverso attraverso una trasformazione deterministica. Per maggiori informazioni, consulta la sezione Conserva l'opzione UID nello standard DICOM.
I valori di StudyInstanceUID
, SeriesInstanceUID
, SOPInstanceUID
e MediaStorageSOPInstanceUID
sono chiamati "ID principali". Per determinare
in che modo vengono trasformati gli ID principali, specifica un valore in
PrimaryIdsOption
.
I seguenti esempi mostrano come utilizzare l'oggetto KeepTag
per mantenere invariati i valori di
tag specifici durante l'anonimizzazione.
Il tag PatientName
viene aggiunto all'elenco queries[]
, pertanto il valore PatientName
non viene oscurato durante l'anonimizzazione.
Poiché PrimaryIdsOption
non è specificato nell'esempio, il campo primaryIds
è impostato su PRIMARY_IDS_OPTION_UNSPECIFIED
per impostazione predefinita, che corrisponde al valore predefinito di ProfileType
. Poiché anche ProfileType
non è specificato,
il valore predefinito del campo profileType
è PROFILE_TYPE_UNSPECIFIED
, il che rimuove
i tag basati sul profilo di base di riservatezza dell'attributo (DICOM Standard Edition 2018e).
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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.
Rimuovi i tag
I seguenti esempi mostrano come utilizzare l'oggetto RemoveTag
per rimuovere
i valori di tag specifici durante l'anonimizzazione. Un tag rimosso viene sostituito
con un valore vuoto.
Negli esempi riportati di seguito, il tag PatientName
viene aggiunto all'elenco queries[]
, quindi il suo valore viene sostituito con un valore vuoto durante l'anonimizzazione.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "removeTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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.
Elimina tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto DeleteTag
per eliminare tag specifici durante l'anonimizzazione.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "deleteTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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.
Reimposta il valore dei tag su un segnaposto
I seguenti esempi mostrano come utilizzare l'oggetto ResetTag
per impostare
il valore dei tag sulla stringa PLACEHOLDER
durante l'anonimizzazione.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "resetTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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, nota che il valore del tag
PatientName
è impostato suPLACEHOLDER
:Original metadata
Metadati dopo l'esecuzione di ResetTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "PLACEHOLDER" } ] }
Ispeziona e trasforma il testo sensibile nei tag
Gli esempi riportati di seguito mostrano come utilizzare l'oggetto CleanTextTag
per ispezionare i tag e trasformare i valori dei tag in base alla configurazione nell'oggetto 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 controlla il tag PatientName
, abbina il tag 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 è uno
dei VR supportati nell'oggetto CleanTextTag
.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "cleanTextTag": {} } ] }, "text": { "additionalTransformations": [ { "infoTypes": [ "PERSON_NAME" ], "replaceWithInfoTypeConfig": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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, nota che il valore del tag
PatientName
è impostato su[PERSON_NAME]
:Original metadata
Metadati dopo l'esecuzione di CleanTextTag
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "Ann Johnson" } ] }
"00100010": { "vr": "PN", "Value": [ { "Alphabetic": "[PERSON_NAME]" } ] }
Sostituisci un UID con un UID generato
I seguenti esempi mostrano come utilizzare l'oggetto RegenUidTag
per sostituire un UID con un UID appena generato. L'unico VR supportato dall'oggetto RegenUidTag
è UI
.
Per impostazione predefinita, per ogni tag nei metadati di esempio con VR
UI
viene generato l'UID durante l'anonimizzazione. Per mostrare come generare un UID per un tag specifico, nell'esempio vengono impostate le seguenti opzioni:
ProfileType
è impostato sull'enumKEEP_ALL
, che impedisce l'anonimizzazione dei metadati DICOM.PrimaryIdsOption
è impostato sull'enumKEEP
, che lascia invariati gli ID principali (StudyInstanceUID
,SeriesInstanceUID
,SOPInstanceUID
eMediaStorageSOPInstanceUID
).
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
all'array
Action.queries[]
, puoi generare un nuovo UID specifico per il tag SOPInstanceUID
.
REST
Anonimizza il set di dati.
Prima di utilizzare i dati della richiesta, 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "options": { "primaryIds": "KEEP" }, "actions": [ { "queries": [ "00080018" ], "regenUidTag": {} } ], "profileType": "KEEP_ALL_PROFILE" } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un nuovo UID dell'istanza perché hai specificato il tag
SOPInstanceUID
nell'arrayAction.queries[]
, quindi devi prima cercare l'istanza anonimizzata nel nuovo set di dati.Prima di utilizzare i dati della richiesta, 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 sono 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 originali Metadati dell'istanza anonimizzati UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando il nuovo valore, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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 Explorer 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 VR SQ
, che è la VR per
Sequence
.
Per informazioni sulla VR SQ
, consulta 7.5 Nesting dei set di dati.
L'istanza di esempio DICOM fornita in questa pagina non contiene tag DICOM con una VR SQ
.
Puoi creare e archiviare un'istanza DICOM con dati falsi che contengono la VR SQ
completando i seguenti passaggi, basati sulle istruzioni in
Creare istanze DICOM da metadati JSON e file JPEG.
L'istanza DICOM che crei nei passaggi seguenti utilizza dati falsi e ha il solo 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 una VRSQ
e contiene due tagPersonIdentificationCodeSequence
(00401101
) nidificati. I tag nidificati hanno anche 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 ai metadati JSON, purché i metadati siano validi.Esegui questi comandi per creare un'immagine di apertura (per i metadati JSON), centrale (per il formato JPEG) e di chiusura dell'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. Il file di 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
Archivia 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 che hai archiviato.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationDataset": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PhysiciansReadingStudyIdentificationSequence" ], "recurseTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:
Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)3333333
1.3.6.1.4.1.11129.5.1.222168347996079463826250565085126257314
UID serie ( 0020000E
)4444444
1.3.6.1.4.1.11129.5.1.25205702030237830896398173746777399347
UID istanze ( 00080018
)2222222
1.3.6.1.4.1.11129.5.1.286710307126045768765142714621897494633
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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 Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.
In particolare, nota che i valori dei tag
CodeValue
eCodingSchemaDesignator
nidificati 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" ] } } ] } } ] } }
Anonimizza i dati a livello di archivio DICOM
Gli esempi precedenti mostrano come anonimizzare i dati DICOM a livello del 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 una richiesta di anonimizzazione degli archivi DICOM, apporta le seguenti modifiche:
- Nel corpo della richiesta, sostituisci
destinationDataset
condestinationStore
. - Aggiungi
dicomStores/DESTINATION_DICOM_STORE_ID
alla fine del valore indestinationStore
quando specifichi la destinazione - Aggiungi
dicomStores/SOURCE_DICOM_STORE_ID
quando specifichi la posizione dei dati di origine
I seguenti esempi mostrano una richiesta di anonimizzazione a livello di set di dati e come modificare la richiesta di anonimizzazione a livello di archivio DICOM:
Anonimizzazione a livello di set di dati:
"destinationDataset": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID" ... "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID:deidentify"
Anonimizzazione a livello di negozio 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
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicomTagConfig": { "actions": [ { "queries": [ "PatientName" ], "keepTag": {} } ] } } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/SOURCE_DATASET_LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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.
Anonimizza 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 filtro da te specificato come valore per il campo resourcePathsGcsUri
nell'oggetto DicomFilterConfig
. Il file del filtro deve esistere in un bucket Cloud Storage; non puoi specificare un file di filtro che esiste sulla tua macchina locale o su qualsiasi altra origine. La posizione del file deve essere nel formato gs://BUCKET/PATH/TO/FILE
.
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 filtro è composto da una riga per 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 filtro che hai passato durante la chiamata dell'operazione di anonimizzazione, lo studio, la serie o l'istanza non saranno anonimizzati e non saranno presenti nell'archivio DICOM di destinazione.
È richiesta solo la parte /studies/STUDY_UID
del percorso. Ciò significa che puoi anonimizzare uno studio specificando /studies/STUDY_UID
oppure puoi anonimizzare una serie specificando /studies/STUDY_UID/series/SERIES_UID
.
Considera il seguente file di filtro. Il file di filtro fa sì che uno studio, due serie e tre singole istanze siano anonimizzati:
/studies/1.123.456.789
/studies/1.666.333.111/series/123.456\n
/studies/1.666.333.111/series/567.890\n
/studies/1.888.999.222/series/123.456/instances/111\n
/studies/1.888.999.222/series/123.456/instances/222\n
/studies/1.888.999.222/series/123.456/instances/333\n
Creare un file di filtro utilizzando BigQuery
In genere, un file di filtro viene creato esportando prima i metadati da un archivio DICOM in BigQuery. Ciò consente di utilizzare BigQuery per visualizzare gli UID di studio, serie e istanza dei dati DICOM nel tuo archivio DICOM. A questo punto, procedi nel seguente modo:
Query per gli UID di studio, serie e istanza che ti interessano. Ad esempio, dopo aver esportato i metadati in BigQuery, puoi eseguire la seguente query per concatenare gli UID di studio, serie e istanza in un formato compatibile con i requisiti dei file di filtro:
SELECT CONCAT ('/studies/', StudyInstanceUID, '/series/', SeriesInstanceUID, '/instances/', SOPInstanceUID) FROM [PROJECT_ID:BIGQUERY_DATASET.BIGQUERY_TABLE]
Se la query restituisce un set di risultati di grandi dimensioni, puoi materializzare una nuova tabella salvando i risultati della query in una tabella di destinazione in BigQuery.
Dopo aver salvato i risultati della query nella tabella di destinazione, puoi salvare i contenuti della tabella di destinazione in un file ed esportarlo in Cloud Storage. Per la procedura da seguire, vedi Esportazione dei dati di una tabella. Il file esportato è il tuo file di filtro. Userai 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.
Potrai utilizzare la posizione del file del filtro in Cloud Storage quando specifichi il filtro nell'operazione di anonimizzazione. L'esempio seguente mostra come caricare un file di filtro in un bucket Cloud Storage utilizzando il comando gsutil cp
:
gsutil cp PATH/TO/FILTER_FILE gs://BUCKET/DIRECTORY
Ad esempio:
gsutil cp /home/user/Desktop/filters.txt gs://my-bucket/my-directory
Utilizzare un filtro
Dopo aver configurato il file dei filtri, puoi passarlo come valore al campo resourcePathsGcsUri
nell'oggetto filterConfig
.
Il seguente esempio si espande sulla pagina Anonimizzazione dei dati a livello di archivio DICOM, ma in Cloud Storage viene fornito un file filtro per determinare quali risorse DICOM sono anonimizzate.
REST
Anonimizza 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 sono 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 attuale:cat > request.json << 'EOF' { "destinationStore": "projects/PROJECT_ID/locations/LOCATION/datasets/DESTINATION_DATASET_ID/dicomStores/DESTINATION_DICOM_STORE_ID", "config": { "dicom": { "filterProfile": "DEIDENTIFY_TAG_CONTENTS" }, "image": { "textRedactionMode": "REDACT_ALL_TEXT" } }, "filterConfig": { "resourcePathGcsUri": "gs://BUCKET/PATH/TO/FILE" } } EOF
Quindi, esegui questo comando per inviare la richiesta REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/SOURCE_DATASET_ID/dicomStores/SOURCE_DICOM_STORE_ID:deidentify"PowerShell
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory attuale:@' { "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, 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 l'anonimizzazione, puoi recuperare i metadati per l'istanza anonimizzata per vedere come sono cambiati. L'istanza anonimizzata ha un UID nuovo di studi, un UID di serie e un UID delle istanze, quindi devi prima cercare 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 sono 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 l'UID degli studi, l'UID della serie e l'UID delle istanze:Metadati dell'istanza originali Metadati dell'istanza anonimizzati UID studi ( 0020000D
)2.25.70541616638819138568043293671559322355
1.3.6.1.4.1.11129.5.1.201854290391432893460946240745559593763
UID serie ( 0020000E
)1.2.276.0.7230010.3.1.3.8323329.78.1531234558.523694
1.3.6.1.4.1.11129.5.1.303327499491957026103380014864616068710
UID istanze ( 00080018
)1.2.276.0.7230010.3.1.4.8323329.78.1539083058.523695
1.3.6.1.4.1.11129.5.1.97415866390999888717168863957686758029
Utilizzando i nuovi valori, recupera i metadati per l'istanza.
Prima di utilizzare i dati della richiesta, 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 sono 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.
Risolvi i problemi relativi alle operazioni di anonimizzazione DICOM
Se si verificano errori durante un'operazione di anonimizzazione DICOM, questi vengono registrati in Cloud Logging. Per saperne di più, consulta Visualizzazione dei log degli errori in Cloud Logging.
Se l'intera operazione restituisce un errore, consulta la sezione Risoluzione dei problemi relativi alle operazioni a lunga esecuzione.