Utilizzo dell'API Cloud Healthcare per la patologia digitale

Questa pagina spiega come archiviare, analizzare e gestire intere immagini delle diapositive (WSI) utilizzando l'API Cloud Healthcare.

Panoramica

La patologia digitale consente l'archiviazione, l'elaborazione e la gestione di diapositive in vetro convenzionali digitalizzandole per produrre immagini di diapositive intere (WSI).

I WII sono in genere file di grandi dimensioni che possono contenere fino a diversi GB. Sono disponibili in diversi formati file che possono renderli difficili da gestire. L'API Cloud Healthcare semplifica il processo di archiviazione, analisi e gestione delle WSI.

Archiviazione di immagini di diapositive intere utilizzando DICOM

L'API Cloud Healthcare offre un servizio gestito per l'archiviazione delle immagini DICOM. Questo servizio supporta anche l'archiviazione e il recupero di WSI. Per ulteriori informazioni su DICOM nell'API Cloud Healthcare, consulta DICOM.

L'utilizzo di DICOM offre i seguenti vantaggi:

  • Supporta più fornitori e software.
  • DICOM è un formato file e anche un protocollo di rete che definisce le API DICOMweb e DIMSE. Queste API, utilizzate per recuperare e archiviare istanze DICOM, offrono funzionalità estese e semplificano l'interazione con le immagini.

Conversione di immagini di diapositive intere in DICOM

La maggior parte degli scanner WSI non produce in modo nativo file DICOM da WI. Di conseguenza, devi convertire le WSI in file DICOM manualmente.

I seguenti strumenti possono convertire le WSI in DICOM:

La seguente sezione mostra come utilizzare lo strumento a riga di comando wsi2dcm per generare file DICOM.

Generare file DICOM utilizzando lo strumento a riga di comando wsi2dcm

Prima di completare i seguenti passaggi, assicurati di avere un file WSI valido. I dati di esempio sono disponibili su OpenSlide e su altre risorse elencate nel sito web della digital Pathology Association.

Esegui lo strumento a riga di comando wsi2dcm:

wsi2dcm \
    --input=INPUT_WSI \
    --outFolder=PATH/TO/OUTPUT/FOLDER \
    --seriesDescription=WSI_DESCRIPTION

dove:

  • INPUT_WSI è il percorso e il nome del file WSI.
  • PATH/TO/OUTPUT/FOLDER è il percorso in cui lo strumento genera il file DICOM convertito.
  • WSI_DESCRIPTION è una descrizione scelta dall'utente per il file DICOM convertito.

L'esecuzione dello strumento genera diversi file DICOM da WSI. I file DICOM hanno il suffisso .dcm.

Caricare i file DICOM nell'API Cloud Healthcare

Se non hai ancora creato un archivio DICOM, procedi ora.

Puoi caricare i file DICOM generati in un archivio DICOM utilizzando uno dei seguenti metodi:

Recupero dei file DICOM e relativi metadati

Dopo aver caricato i file DICOM in un archivio DICOM, puoi elencare e visualizzare i metadati sulle immagini DICOM.

Elenco delle immagini delle diapositive nella loro interezza

Ciascun WSI è uno studio DICOM. Per elencare i WI, puoi chiamare il metodo dicomStores.searchForStudies:

REST &AM; LINEA CMD

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località del set di dati
  • DATASET_ID: il set di dati principale dell'archivio DICOM
  • DICOM_STORE_ID: l'ID del negozio DICOM

Per inviare la richiesta, scegli una delle seguenti opzioni:

ricciolo

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"

PowerShell

Esegui questo comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content

Explorer API

Apri la pagina di riferimento del metodo. Il riquadro Explorer API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Completa i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente:

Visualizzazione dell'intero metadati dell'immagine della diapositiva

Ciascuno studio contiene più istanze e ognuna di queste contiene un sottoinsieme di riquadri di un WSI. Per visualizzare i metadati dell'istanza nello studio, chiama il metodo dicomStores.searchForInstances:

REST &AM; LINEA CMD

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID del tuo progetto Google Cloud
  • LOCATION: la località del set di dati
  • DATASET_ID: il set di dati principale dell'archivio DICOM
  • DICOM_STORE_ID: l'ID del negozio DICOM
  • STUDY_INSTANCE_UID: l'identificatore univoco dell'istanza di studio

Per inviare la richiesta, scegli una delle seguenti opzioni:

ricciolo

Esegui questo comando:

curl -X GET \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID"

PowerShell

Esegui questo comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/instances?StudyInstanceUID=STUDY_INSTANCE_UID" | Select-Object -Expand Content

Explorer API

Apri la pagina di riferimento del metodo. Il riquadro Explorer API si apre sul lato destro della pagina. Puoi interagire con questo strumento per inviare richieste. Completa i campi obbligatori e fai clic su Esegui.

Dovresti ricevere una risposta JSON simile alla seguente:

Visualizzazione dell'intero riquadro delle immagini della diapositiva

Ogni istanza in genere contiene più frame. Un frame rappresenta un riquadro del WSI a un determinato livello di zoom nella piramide WSI. Per recuperare un singolo frame in formato JPEG, chiama il metodo frames.retrieveRendered:

ricciolo

Per recuperare un singolo frame in formato JPEG, effettua una richiesta GET e specifica le seguenti informazioni:

  • Il nome del set di dati padre
  • Nome dell'archivio DICOM
  • L'UID dello studio
  • L'UID della serie
  • L'UID dell'istanza
  • Un token di accesso

L'esempio seguente mostra una richiesta GET che utilizza curl.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Accept: image/jpeg" \
    --output FILENAME \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID/frames/0/rendered"

Se la richiesta ha esito positivo, il file JPEG viene scritto sulla macchina.

PowerShell

Per recuperare un singolo frame in formato JPEG, effettua una richiesta GET e specifica le seguenti informazioni:

  • Il nome del set di dati padre
  • Nome dell'archivio DICOM
  • L'UID dello studio
  • L'UID della serie
  • L'UID dell'istanza
  • Un token di accesso

L'esempio seguente mostra una richiesta GET utilizzando Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred"; "Accept" = "image/jpeg" }

Invoke-RestMethod `
  -Method Get `
  -Headers $headers `
  -OutFile FILENAME `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID/frames/0/rendered"

Se la richiesta ha esito positivo, il file JPEG viene scritto sulla macchina.

Recupero di tutte le immagini delle diapositive

Per recuperare l'intera istanza, che contiene i WI, utilizza il metodo instances.retrieveInstance:

ricciolo

Per recuperare un'intera istanza, effettua una richiesta GET e specifica le seguenti informazioni:

  • Il nome del set di dati padre
  • Nome dell'archivio DICOM
  • L'UID dello studio
  • L'UID della serie
  • L'UID dell'istanza
  • Un token di accesso

L'esempio seguente mostra una richiesta GET che utilizza curl.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Accept: application/dicom" \
    --output FILENAME \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID"

Se la richiesta ha esito positivo, il file DICOM viene scritto sulla macchina.

PowerShell

Per recuperare un'intera istanza, effettua una richiesta GET e specifica le seguenti informazioni:

  • Il nome del set di dati padre
  • Nome dell'archivio DICOM
  • L'UID dello studio
  • L'UID della serie
  • L'UID dell'istanza
  • Un token di accesso

L'esempio seguente mostra una richiesta GET utilizzando Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred"; "Accept" = "application/dicom" }

Invoke-RestMethod `
  -Method Get `
  -Headers $headers `
  -OutFile FILENAME `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID"

Se la richiesta ha esito positivo, il file DICOM viene scritto sulla macchina.

Visualizzazione di una diapositiva mediante un intero visualizzatore di immagini delle diapositive

Le sezioni precedenti hanno mostrato come visualizzare i metadati di un WSI e come recuperare singoli riquadri. Per visualizzare l'intero WSI, è necessario utilizzare un visualizzatore WSI basato su DICOMweb.

I seguenti visualizzatori sono compatibili con l'API Cloud Healthcare:

Visualizzare i file WSI DICOM convertiti utilizzando il visualizzatore DICOMweb WSI

Completa le sezioni seguenti per utilizzare il visualizzatore WSI DICOMweb per visualizzare i file DICOM WSI convertiti.

Download del visualizzatore

Scarica il visualizzatore WSI DICOMweb:

git clone https://github.com/GoogleCloudPlatform/dicomweb-wsi-viewer.git

Recupero del client secret

Un client secret autentica un utente quando quest'ultimo accede a un'applicazione. Incorpora il client secret nel codice sorgente del visualizzatore WSI DICOM. Per ottenere un client secret, completa i seguenti passaggi:

  1. Vai alla pagina Credenziali in Google Cloud Console.
    Vai alla pagina Credenziali

  2. Fai clic su Crea credenziali e seleziona ID client OAuth.

  3. In Tipo di applicazione, seleziona Applicazione web.

  4. Aggiungi un Nome che preferisci.

  5. In Origini JavaScript autorizzate e URI di reindirizzamento autorizzati, inserisci http://localhost:8000.

  6. Fai clic su Crea, quindi su OK nella finestra Client OAuth visualizzata. Copia l'ID client da utilizzare nella sezione successiva.

Configurazione del client secret nel visualizzatore

Completa i passaggi seguenti utilizzando l'ID client ottenuto nella sezione precedente:

  1. Nella directory dicomweb-wsi-viewer, apri il file viewer.js.

  2. Sostituisci la riga seguente in modo che contenga l'ID client.

    const CLIENT_ID = 'INSERT-YOUR-CLIENT-ID-HERE'
    

    La riga dovrebbe invece essere simile all'esempio seguente:

    const CLIENT_ID = 'PROJECT_ID-VALUE.apps.googleusercontent.com';
    
  3. Salva il file.

Se non hai già configurato la schermata del consenso OAuth del tuo progetto Google Cloud, completa i seguenti passaggi:

  1. Vai alla schermata di consenso OAuth.
    Vai alla schermata per il consenso OAuth

  2. In Email di assistenza, seleziona l'indirizzo email da visualizzare come contatto pubblico. Deve essere il tuo indirizzo email o un gruppo Google di tua proprietà.

  3. Inserisci il nome dell'applicazione che vuoi visualizzare.

  4. Fai clic su Aggiungi ambito. Nella finestra di dialogo visualizzata, inserisci https://www.googleapis.com/auth/cloud-healthcare, quindi fai clic su Aggiungi.

  5. Fai clic su Salva.

Per modificare le informazioni sulla schermata di consenso OAuth in un secondo momento, ad esempio il nome del prodotto o l'indirizzo email, ripeti i passaggi precedenti per configurare la schermata di consenso.

Se hai già configurato la schermata del consenso OAuth del tuo progetto Google Cloud, devi aggiungere https://www.googleapis.com/auth/cloud-healthcare nella finestra di dialogo Aggiungi ambito.

Esecuzione del visualizzatore WSI DICOMweb

  1. Nella directory dicomweb-wsi-viewer, esegui questo comando:

    python -m http.server 8000
    
  2. Vai a https://localhost:8000 sul computer in cui hai eseguito il comando precedente.

  3. Nell'interfaccia utente, fai clic su Accedi/Autorizza per accedere alla schermata per il consenso OAuth e concedi al visualizzatore l'autorizzazione per accedere al tuo progetto Google Cloud e alle risorse dell'API Cloud Healthcare.