Questa pagina spiega come archiviare, analizzare e gestire le immagini intere delle slide (WSI) utilizzando l'API Cloud Healthcare.
Panoramica
Patologia digitale consente l'archiviazione, l'elaborazione e la gestione convenzionali slide di vetro digitalizzando le diapositive per produrre immagini intere (WSI).
Le WSI sono file di grandi dimensioni che possono avere anche diversi GB. Loro sono disponibili in vari formati file, che possono complicarne la gestione. L'API Cloud Healthcare semplifica il processo di archiviazione, analisi e nella gestione delle WSI.
Archiviazione di intere immagini di slide utilizzando DICOM
L'API Cloud Healthcare è un servizio gestito per l'archiviazione in formato Docker. Questo servizio supporta anche l'archiviazione e il recupero delle WSI. Per maggiori informazioni informazioni su DICOM nell'API Cloud Healthcare, vedi DICOM.
L'uso di DICOM presenta i seguenti vantaggi:
- Supporta più fornitori e software.
- DICOM è un formato file e anche un protocollo di networking che definisce le API DICOMweb e DIMSE. Queste API, utilizzate per recuperare e archiviare le istanze DICOM, funzionalità estese e semplificare l'interazione con le immagini.
Conversione di intere immagini slide in DICOM
La maggior parte degli scanner WSI non produce file DICOM in modo nativo dalle WSI. Di conseguenza, devi convertire manualmente le WSI in file DICOM.
I seguenti strumenti possono convertire le WSI in DICOM:
- Dicomizer di Orthanc strumento a riga di comando
- Toolkit per DICOM Java per PixelMedTM
- strumento a riga di comando wsi2dcm
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 disporre di una WSI valida . I dati di esempio sono disponibili su OpenSlide e altre risorse elencate sulla Digital Pathology Association sito web.
Esegui lo strumento a riga di comando wsi2dcm:
wsi2dcm \ --input=INPUT_WSI \ --outFolder=PATH/TO/OUTPUT/FOLDER \ --seriesDescription=WSI_DESCRIPTION
dove:
- INPUT_WSI indica il percorso e il nome del file WSI.
- PATH/TO/OUTPUT/FOLDER è il percorso in cui lo strumento restituisce il file DICOM convertito.
- WSI_DESCRIPTION è una descrizione a tua scelta per il file DICOM convertito.
L'esecuzione dello strumento genera diversi file DICOM dalla WSI. I file DICOM
hanno il suffisso .dcm
.
carica i file DICOM nell'API Cloud Healthcare
Se non hai già creato un archivio DICOM, fallo ora.
Puoi caricare i file DICOM generati in un archivio DICOM utilizzando uno dei seguenti metodi: utilizza i seguenti metodi:
- Archiviazione dei file direttamente mediante l'implementazione delle transazioni DICOMweb Store dell'API Cloud Healthcare
- Archiviazione dei file utilizzando lo strumento dell'interfaccia a riga di comando DICOMweb
Recupero dei file DICOM e dei relativi metadati
Dopo aver caricato i file DICOM in un archivio DICOM, puoi elencare e visualizzare sulle immagini DICOM.
Elenco delle immagini dell'intera slide
Ogni WSI è uno studio DICOM. Per elencare le WSI, puoi richiamare il metodo
dicomStores.searchForStudies
:
REST
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
- DATASET_ID: set di dati padre dell'archivio DICOM
- DICOM_STORE_ID: l'ID datastore DICOM
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies"
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/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies" | Select-Object -Expand Content
Explorer API
Apri l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Visualizzare l'intero metadati dell'immagine della slide
Ogni studio contiene più istanze e ogni istanza contiene un sottoinsieme
dei riquadri di una WSI. Per visualizzare i metadati dell'istanza per un'istanza nello studio, chiama il metodo
dicomStores.searchForInstances
:
REST
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
- DATASET_ID: set di dati padre dell'archivio DICOM
- DICOM_STORE_ID: l'ID datastore DICOM
- STUDY_INSTANCE_UID: l'identificatore univoco (UID) dell'istanza di studio
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/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 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 l'app pagina di riferimento del metodo. Sul lato destro della pagina si apre il riquadro Explorer API. Puoi interagire con questo strumento per inviare richieste. Compila tutti i campi obbligatori e fai clic su Esegui.
Dovresti ricevere una risposta JSON simile alla seguente:
Visualizzazione dei riquadri di immagini dell'intera slide
Ogni istanza in genere contiene più frame. Una cornice rappresenta un riquadro
della WSI a un determinato livello di zoom nella "piramide" della WSI.
Per recuperare un singolo frame in formato JPEG, richiama la funzione frames.retrieveRendered
:
curl
Per recuperare un singolo frame in formato JPEG, effettua una richiesta GET
e specificare 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_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/0/rendered"
Se la richiesta ha esito positivo, il file JPEG viene scritto sul computer.
PowerShell
Per recuperare un singolo frame in formato JPEG, effettua una richiesta GET
e specificare 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
mediante 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_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID/frames/0/rendered"
Se la richiesta ha esito positivo, il file JPEG viene scritto sul computer.
Recupero di tutte le immagini delle slide intere
Per recuperare l'intera istanza, che contiene le WSI, utilizza il metodo
instances.retrieveInstance
:
curl
Per recuperare un'intera istanza, effettua una richiesta GET
e specificare 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_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
Se la richiesta ha esito positivo, il file DICOM viene scritto sulla tua macchina.
PowerShell
Per recuperare un'intera istanza, effettua una richiesta GET
e specificare 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
mediante 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_INSTANCE_UID/series/SERIES_INSTANCE_UID/instances/INSTANCE_UID"
Se la richiesta ha esito positivo, il file DICOM viene scritto sulla tua macchina.
Visualizzare una slide usando un visualizzatore di immagini per tutta la slide
Le sezioni precedenti hanno mostrato come visualizzare i metadati di una WSI e recuperare singoli riquadri. Per visualizzare l'intera WSI, devi utilizzare un Visualizzatore WSI basato su DICOMweb.
I seguenti visualizzatori sono compatibili con l'API Cloud Healthcare:
Visualizza i file DICOM convertiti di WSI utilizzando il visualizzatore WSI di DICOMweb
Completa le sezioni seguenti per utilizzare il visualizzatore WSI DICOMweb per visualizzare i File DICOM WSI.
Download del visualizzatore in corso...
Scarica il visualizzatore WSI DICOMweb:
git clone https://github.com/GoogleCloudPlatform/dicomweb-wsi-viewer.git
Recupero del client secret
Un client secret consente di autenticare un utente quando accede a un un'applicazione. Devi incorporare il client secret nel codice sorgente del Visualizzatore WSI DICOMweb. Per ottenere un client secret, segui questi passaggi:
Vai alla pagina Credenziali nella console Google Cloud.
Vai alla pagina CredenzialiFai clic su Crea credenziali e seleziona ID client OAuth.
In Tipo di applicazione, seleziona Applicazione web.
Aggiungi un nome a tua scelta.
In Origini JavaScript autorizzate e URI di reindirizzamento autorizzati, inserisci
http://localhost:8000
.Fai clic su Crea, quindi su OK nella finestra Client OAuth visualizzata. Copia l'ID client per utilizzarlo nella prossima sezione.
Configurazione del client secret nel visualizzatore
Completa i seguenti passaggi utilizzando l'ID client ottenuto nella sezione precedente:
Nella directory
dicomweb-wsi-viewer
, apri il fileviewer.js
.Sostituisci la riga riportata di seguito in modo che contenga il tuo ID client.
const CLIENT_ID = 'INSERT-YOUR-CLIENT-ID-HERE'
La riga dovrebbe invece avere l'aspetto dell'esempio seguente:
const CLIENT_ID = 'PROJECT_ID-VALUE.apps.googleusercontent.com';
Salva il file.
Configurare la schermata per il consenso OAuth
Se non hai ancora configurato il protocollo OAuth per il tuo progetto Google Cloud schermata per il consenso, completa i seguenti passaggi:
Vai alla schermata per il consenso OAuth.
Vai alla schermata per il consenso OAuthIn Email dell'assistenza, seleziona l'indirizzo email che vuoi visualizzare come contatto pubblico. Questo indirizzo email deve essere il tuo indirizzo email o un indirizzo email Google Gruppo di tua proprietà.
Inserisci il Nome applicazione che vuoi visualizzare.
Fai clic su Aggiungi ambito. Nella finestra di dialogo visualizzata, inserisci
https://www.googleapis.com/auth/cloud-healthcare
. e fai clic su Aggiungi.Fai clic su Salva.
Per modificare in un secondo momento le informazioni nella schermata per il consenso OAuth, ad esempio il prodotto o un indirizzo email, ripeti i passaggi precedenti per configurare la schermata per il consenso.
Se hai già configurato il consenso OAuth del progetto Google Cloud
schermo, devi aggiungere https://www.googleapis.com/auth/cloud-healthcare
nella finestra di dialogo Aggiungi ambito.
Esecuzione del visualizzatore WSI DICOMweb
Nella directory
dicomweb-wsi-viewer
, esegui questo comando:python -m http.server 8000
Passa a
https://localhost:8000
sulla macchina su cui hai eseguito il comando precedente.Nell'interfaccia utente, fai clic su Accedi/Autorizza per accedere alla schermata per il consenso OAuth. e concedi al visualizzatore l'autorizzazione ad accedere al tuo progetto Google Cloud e le risorse dell'API Cloud Healthcare.