Anonimizzazione delle immagini mediche tramite l'API Cloud Healthcare

Introduzione

Questo documento spiega in che modo ricercatori, data scientist, team IT o organizzazioni sanitarie e di scienze biologiche possono utilizzare l'API Cloud Healthcare per rimuovere informazioni che consentono l'identificazione personale (PII) e informazioni sanitarie protette (PHI) dai dati di Digital Imaging and Communications in Medicine (DICOM). Questo processo, noto come anonimizzazione, aiuta a garantire la privacy del paziente e a preparare i dati DICOM per l'utilizzo nella ricerca, nella condivisione dei dati e nel machine learning.

Il tutorial correlato, Utilizzo dell'API Cloud Healthcare per anonimizzare le immagini mediche, illustra due casi d'uso di anonimizzazione dei dati di immagini mediche mediante l'API Cloud Healthcare.

Come funziona l'anonimizzazione dei dati DICOM

Le immagini mediche acquisite a fini clinici possono avere importanti usi secondari in progetti di ricerca e biblioteche didattiche. Tuttavia, potresti dover rimuovere o modificare gli elementi di dati sensibili (PII o PHI) dalle immagini DICOM prima di analizzarle o condividerle con collaboratori autorizzati.

Il seguente diagramma mostra diverse pipeline di immagini mediche da origini on-premise che vengono instradate a Google Cloud e poi rese anonime dall'operazione di anonimizzazione dell'API Cloud Healthcare.

Pipeline di anonimizzazione DICOM.

Prima, carichi le immagini mediche in formato DICOM su Cloud Storage, quindi nell'API Cloud Healthcare. In alternativa, puoi caricare le immagini DICOM direttamente nell'API Cloud Healthcare. Le immagini mediche, che sono conservate in un archivio DICOM nell'API Cloud Healthcare, vengono quindi indirizzate tramite il processo di anonimizzazione dell'API Cloud Healthcare per anonimizzare le immagini e i metadati associati.

Ad esempio, in qualità di ricercatore medico potresti avere accesso a immagini a raggi X di fratture spinali di pazienti in un sistema di archiviazione e comunicazione delle immagini on-premise (PACS). Puoi spostare i dati dei pixel dell'immagine in Cloud Storage utilizzando Storage Transfer Service, Transfer Appliance o uno dei prodotti di connettività ibrida. Puoi quindi copiare o spostare i dati da Cloud Storage all'API Cloud Healthcare. Dopo che i dati sono nell'API Cloud Healthcare, puoi utilizzarli come backup, visualizzarli da remoto o consentire l'accesso alle app e ai servizi cloud di terze parti approvati.

In un altro scenario, potresti inviare immagini DICOM anonimizzate ad AutoML Vision per addestrare un modello che aiuti i team sanitari a rilevare le fratture vertebrali nei raggi X. In questo modo, puoi creare uno strumento di supporto alle decisioni cliniche, utilizzando i tuoi dati.

API Cloud Healthcare

L'API Cloud Healthcare è una soluzione gestita per archiviare e accedere ai dati sanitari in Google Cloud. È fondamentale per collegare i sistemi sanitari esistenti e le applicazioni in hosting su Google Cloud.

All'interno di un progetto Google Cloud, i dati importati tramite l'API Cloud Healthcare vengono archiviati in un set di dati, che si trova in una posizione geografica corrispondente a una regione di Google Cloud. L'API Cloud Healthcare supporta le regioni elencate in Regioni. Per un elenco dei prodotti Google Cloud e delle regioni in cui sono implementati, consulta le località Cloud.

Poiché ogni modalità di dati dell'assistenza sanitaria, ad esempio DICOM, FHIR (Fast Healthcare Interoperability Resources) e HL7v2, ha caratteristiche strutturali ed di elaborazione diverse, i set di dati sono suddivisi in archivi specifici della modalità.

Il seguente diagramma mostra in che modo l'API Cloud Healthcare organizza i dati clinici per località, set di dati e archivio.

Organizzazione dei dati clinici dell'API Cloud Healthcare.

Ogni set di dati contiene uno o più archivi che gestiscono la stessa modalità o modalità diverse, a seconda delle esigenze dell'app. L'utilizzo di più archivi nello stesso set di dati potrebbe essere appropriato se un'app elabora diversi tipi di dati. Ad esempio, potresti voler separare i dati in base all'ospedale, alla clinica o al dipartimento di origine. Un'app può accedere a tutti i set di dati o negozi che vuoi senza compromettere le prestazioni. È importante progettare l'architettura complessiva del set di dati e del archivio per soddisfare gli obiettivi generali della tua organizzazione, come la vicinanza alle risorse di calcolo o agli utenti finali, il partizionamento o il controllo degli accessi.

Il seguente diagramma mostra due set di dati contenenti archivi HL7v2, DICOM e FHIR.

Architettura dei set di dati con archivi HL7v2 e DICOM.

Puoi copiare immagini DICOM in un archivio DICOM o archivi all'interno di un set di dati da una serie di origini. Per ulteriori informazioni, consulta Creazione e gestione degli archivi DICOM.

Anonimizzazione dei dati DICOM

L'API Cloud Healthcare include strumenti di anonimizzazione che possono oscurare (rimuovere) o modificare in modo scalabile i contenuti sensibili in testo e immagini, in base alla configurazione specificata.

Questi strumenti operano su testo e immagini codificati in formati specifici di cartelle cliniche, come DICOM e FHIR. Quando lavori con le istanze DICOM, i componenti di una chiamata API di anonimizzazione sono i seguenti:

  • Origine: un set di dati o un archivio DICOM contenente una o più istanze DICOM con dati sensibili. Il tutorial associato utilizza un set di dati, ma puoi modificare gli esempi in modo che funzionino su un singolo archivio DICOM.
  • Che cosa anonimizzare: parametri di configurazione che specificano come elaborare il set di dati. Puoi configurare l'operazione di anonimizzazione DICOM per anonimizzare i metadati dell'istanza DICOM utilizzando parole chiave dei tag, nascondendo il testo incorporato nelle immagini DICOM o in entrambi i modi.
  • Destinazione:l'anonimizzazione non influisce sul set di dati originale o sui relativi dati. Le copie elaborate dei dati originali vengono invece scritte in un nuovo set di dati o archivio DICOM, chiamato destinazione. Il tutorial associato utilizza un set di dati, ma puoi modificare gli esempi in modo che funzionino su un archivio DICOM.

Le due immagini seguenti mostrano un'immagine a raggi X di esempio prima e dopo l'anonimizzazione, in cui l'obiettivo è rimuovere o modificare tutti i metadati e il testo integrato associati all'immagine.

La prima immagine mostra un'immagine a raggi X con dati PII e PHI di esempio che appaiono nei metadati e nel testo in sovrimpressione.

Immagine a raggi X di esempio prima dell'anonimizzazione (con dati di esempio).

La seconda immagine mostra la stessa immagine a raggi X con tutti i metadati PII e PHI di esempio rimossi o oscurati.

Immagine a raggi X di esempio dopo l'anonimizzazione (con dati di esempio).

Dopo l'anonimizzazione, tutti i metadati dell'immagine vengono rimossi e tutto il testo incorporato nell'immagine viene oscurato da un rettangolo opaco. Questa configurazione di anonimizzazione è utile quando sono necessari solo i dati dei pixel immagine per ulteriori analisi, per l'addestramento di modelli di machine learning (ML) o per l'inferenza.

Ad esempio, potresti voler addestrare un modello di classificazione delle immagini per determinare se è presente una frattura in una radiografia. Per addestrare questo modello, hai bisogno di un numero elevato di immagini di esempio, alcuni che includono ossa fratture e altri no. Tuttavia, non avrai bisogno di informazioni sensibili, come il genere, l'età o la data di nascita del paziente, poiché queste informazioni non sono pertinenti per il modello.

oppure analizzare la progressione di una particolare malattia in una popolazione di pazienti in base all'età. In questo caso, devi conoscere informazioni come l'età e il sesso del paziente, nonché la data di ogni studio, poiché si tratta di informazioni rilevanti per l'analisi clinica. Hai la possibilità di conservare alcuni dei metadati, oscurando al contempo altre informazioni identificabili sui pazienti, come i nomi e i numeri delle cartelle cliniche.

La best practice prevede di cambiare le date di qualsiasi studio in modo da mantenere le relative tempistiche, ma abbinarle a un paziente è quasi impossibile. Per ulteriori informazioni, consulta la sezione relativa al trasferimento delle date.

Accesso richiesto e ruoli Identity and Access Management

In Google Cloud, l'accesso alle risorse è gestito tramite i ruoli Identity and Access Management (IAM). Per accedere all'API Cloud Healthcare è necessario che l'account (IAM) disponga dei ruoli appropriati per la funzione che vuoi eseguire.

Puoi utilizzare un account utente (quello utilizzato per accedere alla console Google Cloud) o un account di servizio IAM. Il tutorial associato utilizza un account di servizio, ad eccezione della visualizzazione di immagini mediche, per il quale è necessario utilizzare un account utente. Le informazioni generali presentate qui si applicano a tutti i tipi di account.

Per creare il set di dati di destinazione, devi disporre almeno dell'autorizzazione healthcare.datasets.deidentify per il set di dati di origine e dell'autorizzazione healthcare.datasets.create nel progetto Google Cloud. Il ruolo IAM Amministratore del set di dati Healthcare include entrambe le autorizzazioni.

Per informazioni su come controllare l'accesso ai set di dati e agli archivi DICOM, consulta Controllo dell'accesso alle risorse dell'API Cloud Healthcare. Per informazioni sulle autorizzazioni richieste per i metodi del set di dati, consulta Controllo dell'accesso o l'API Cloud Healthcare.

Visualizzatori di immagini mediche

I seguenti visualizzatori DICOM sono integrati con l'API Cloud Healthcare e puoi utilizzarli per visualizzare le immagini prima e dopo l'anonimizzazione:

Affinché il visualizzatore funzioni correttamente, le tue credenziali di accesso devono avere il ruolo healthcare.dicomViewer.

Struttura dell'API

Puoi accedere ai dati e gestirli nei set di dati e negli archivi dell'API Cloud Healthcare utilizzando un'API REST che identifica ogni archivio in base a progetto, località, set di dati, tipo di negozio e nome del negozio Google Cloud. L'API Cloud Healthcare implementa standard specifici della modalità per l'accesso, coerenti con gli standard di settore per ogni rispettiva modalità. Ad esempio, l'API Cloud Healthcare fornisce in modo nativo operazioni per la lettura di serie e studi DICOM che sono coerenti con lo standard DICOMweb.

Le operazioni che accedono a un archivio specifico della modalità utilizzano un percorso di richiesta costituito da un percorso di base e da un percorso di richiesta specifico per la modalità. Le operazioni amministrative, che in genere operano solo su località, set di dati e archivi di dati, potrebbero utilizzare solo il percorso di base.

Per fare riferimento a un determinato archivio all'interno di un set di dati dell'API Cloud Healthcare, utilizza un percorso di base strutturato come questo:

 /projects/project/locations/location/datasets/dataset/store-type/store-name

Sostituisci quanto segue:

  • project: il tuo progetto Google Cloud
  • location: la zona in cui si trovano le risorse
  • dataset: il nome del set di dati
  • store-type: il tipo di datastore
  • store-name: il nome del tuo datastore

Di seguito è riportato un esempio di percorso di base:

/projects/MyProj/locations/us-central1/datasets/dataset1/dicomStores/dicomstore1

L'esempio di percorso precedente fa riferimento a un archivio DICOM dell'API Cloud Healthcare nel progetto Google Cloud MyProj, nella regione US-central, in un set di dati denominato dataset1, con il nome dicomstore1.

Per accedere a un dato, combini il percorso di base con un percorso di richiesta formattato in base allo standard della modalità appropriato. Ad esempio, le richieste DICOMweb a un archivio DICOM potrebbero avere il seguente aspetto:

 base-path/dicomWeb/studies/{study_id}/series?PatientName={patient_name}

La parte base-path del percorso rappresenta un percorso di base specifico per questa richiesta. La parte {study_id} del percorso identifica un particolare studio DICOM e il nome del paziente è specificato da {patient_name}. Nell'esempio precedente, la specifica del percorso è coerente con la struttura di percorsi standard DICOMweb.

Anonimizzazione tramite tag e configurazione di oscuramento delle immagini

L'anonimizzazione dei dati DICOM include due processi:

  • Anonimizzazione dei metadati DICOM
  • Oscuramento del testo in sovrimpressione nelle immagini

Nell'API Cloud Healthcare, l'anonimizzazione dei metadati si basa sui tag DICOM e l'oscuramento del testo in sovrimpressione viene eseguito tramite l'opzione TextRedactionMode.

Utilizzo di tag e profili per l'anonimizzazione

Puoi anonimizzare le istanze DICOM in base alle parole chiave dei tag nei metadati DICOM. Nell'oggetto DicomConfig sono disponibili i seguenti metodi di filtro dei tag:

  • keepList: un elenco di tag da mantenere. Rimuove tutti gli altri tag.
  • removeList: un elenco di tag da rimuovere. Mantiene tutti gli altri tag.
  • TagFilterProfile: un profilo di filtro tag che specifica quali tag mantenere o rimuovere.

Tag degli attributi minimi DICOM

I seguenti tag sono gli attributi minimi di un'istanza DICOM valida all'interno dell'API Cloud Healthcare:

  • StudyInstanceUID
  • SeriesInstanceUID
  • SOPInstanceUID
  • TransferSyntaxUID
  • MediaStorageSOPInstanceUID
  • MediaStorageSOPClassUID
  • PixelData
  • Rows
  • Columns
  • SamplesPerPixel
  • BitsAllocated
  • BitsStored
  • Highbit
  • PhotometricInterpretation
  • PixelRepresentation
  • NumberOfFrames

keepList

Per utilizzare il metodo di filtro dei tag keepList, devi fornire un elenco di nomi dei tag. Questi tag sono gli unici che vengono conservati nelle risorse anonimizzate. Quando specifichi un tag keeplist nell'oggetto DicomConfig, i tag degli attributi minimi DICOM vengono aggiunti per impostazione predefinita.

Se non vengono forniti tag keeplist, non vengono rimossi tag DICOM nel set di dati. In genere, quando un tag viene mantenuto, appare invariato nell'output rispetto all'originale. Tuttavia, i tag StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID e MediaStorageSOPInstanceUID vengono rigenerati con nuovi valori univoci nell'output.

removeList

Puoi specificare un tag removeList nell'oggetto DicomConfig. L'operazione di anonimizzazione rimuove solo i tag specificati nell'elenco. Se non vengono forniti tag removeList, l'operazione di anonimizzazione procede come al solito, ma nessun tag DICOM nel set di dati di destinazione viene oscurato.

Impossibile aggiungere i tag degli attributi minimi DICOM a un removeList.

TagFilterProfile

Anziché specificare quali tag mantenere o rimuovere, puoi utilizzare il profilo TagFilterProfile. Questo profilo predefinito determina il modo in cui vengono gestiti e modificati i tag. Ad esempio, il profilo MINIMAL_KEEP_LIST_PROFILE conserva solo i tag necessari per produrre risorse DICOM valide e rimuove tutti gli altri tag. Per ulteriori informazioni, consulta la documentazione di TagFilterProfile.

Consigliamo il profilo TagFilterProfile come metodo di filtro dei tag, soprattutto per gli utenti non tecnici, perché il profilo preselezionato significa che non è necessario esaminare e comprendere tutti i tag DICOM e i relativi contenuti.

Profili utilizzati di frequente

Puoi utilizzare il profilo ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE per eseguire uno dei casi d'uso di anonimizzazione più comuni del settore, rimuovendo i tag in base ai profili di riservatezza degli attributi dello standard DICOM.

Un altro profilo usato di frequente è DEIDENTIFY_TAG_CONTENTS, che controlla i metadati all'interno dei contenuti dei tag e sostituisce il testo sensibile. Quando utilizzi il profilo DEIDENTIFY_TAG_CONTENTS, puoi anche applicare configurazioni come tipi di informazioni e trasformazioni primitive. I tipi di informazioni e le trasformazioni primitive non possono essere applicati agli altri profili.

Puoi utilizzare i tipi di informazioni per definire quali dati vengono analizzati quando esegui l'anonimizzazione con i tag. Un tipo di informazione è un tipo di dati sensibili, come il nome di un paziente, l'indirizzo email, il numero di telefono, il numero di identificazione o il numero di carta di credito. Per maggiori informazioni, consulta la pagina relativa ai rilevatori di InfoTypes e infoType.

Le trasformazioni primitive sono regole che utilizzi per trasformare un valore di input. Puoi personalizzare il modo in cui i tag DICOM vengono anonimizzati applicando una trasformazione primitiva al tipo di informazioni di ogni tag. Ad esempio, puoi anonimizzare il cognome di un paziente e sostituirlo con una serie di asterischi. Per informazioni sulle trasformazioni primitive, consulta le opzioni di trasformazione primitiva.

Il tutorial associato fornisce un caso d'uso per il profilo MINIMAL_KEEP_LIST_PROFILE.

Tipi di informazioni predefiniti

Per impostazione predefinita, il profilo DEIDENTIFY_TAG_CONTENTS gestisce i seguenti tipi di informazioni:

  • AGE
  • CREDIT_CARD_NUMBER
  • DATE
  • EMAIL_ADDRESS
  • IP_ADDRESS
  • LOCATION
  • MAC_ADDRESS
  • PERSON_NAME
  • PHONE_NUMBER
  • SWIFT_CODE
  • US_DRIVERS_LICENSE_NUMBER
  • US_PASSPORT
  • US_SOCIAL_SECURITY_NUMBER
  • US_VEHICLE_IDENTIFICATION_NUMBER
  • US_INDIVIDUAL_TAXPAYER_IDENTIFICATION_NUMBER

Se devi modificare solo i tipi di informazioni nell'elenco precedente, puoi utilizzare il profilo DEIDENTIFY_TAG_CONTENTS senza parametri aggiuntivi.

Oscuramento del testo in sovrimpressione nelle immagini

L'API Cloud Healthcare può oscurare il testo sensibile incorporato nelle immagini. I dati sensibili, come PII o PHI, vengono rilevati dall'API Cloud Healthcare, che li nasconde con un rettangolo opaco. L'API Cloud Healthcare restituisce le stesse immagini DICOM dell'input, ma qualsiasi testo identificato come contenente informazioni sensibili, in base ai tuoi criteri, viene oscurato.

Puoi oscurare il testo in sovrimpressione dalle immagini specificando un'opzione TextRedactionMode all'interno di un oggetto ImageConfig:

  • REDACT_ALL_TEXT: oscura tutto il testo in sovrimpressione delle immagini DICOM in un set di dati.
  • REDACT_SENSITIVE_TEXT: oscura il testo sensibile in sovrimpressione dalle immagini DICOM in un set di dati.

Quando specifichi REDACT_SENSITIVE_TEXT, oscuri default infoTypes e custom infoType come identificatori paziente. Informazioni come i numeri di cartelle cliniche (MRN) vengono oscurate dalle immagini.

Per ulteriori informazioni sulla configurazione dell'oscuramento delle immagini, consulta la pagina Oscuramento del testo in sovrimpressione delle immagini.

Passaggi successivi