Integrazione con un visualizzatore di imaging biomedico DICOM

Questa pagina illustra i concetti e le best practice per integrare un visualizzatore di immagini biomediche di terze parti con l'API Cloud Healthcare. L'API Cloud Healthcare è integrata con diversi visualizzatori, tra cui il visualizzatore Open Health Imaging Foundation (OHIF) e il visualizzatore Weasis.

Prima di iniziare

Se non hai archiviato immagini DICOM da utilizzare nel visualizzatore, consulta Archiviare i dati DICOM e Importare ed esportare i dati DICOM tramite Cloud Storage per iniziare.

Autorizzazione e autenticazione delle richieste tramite OAuth 2.0

Le API Google Cloud supportano il protocollo OAuth 2.0 sia per l'autenticazione sia per l'autorizzazione.

Un visualizzatore di immagini biomediche deve gestire l'autenticazione e l'autorizzazione per accedere ai dati DICOM archiviati nell'API Cloud Healthcare. Puoi concedere queste autorizzazioni in due modi. Ogni metodo ha i suoi costi e vantaggi:

Utilizzare il flusso OAuth 2.0 di Google Identity Services

  • Gli utenti finali si autenticano tramite il visualizzatore biomedico nell'API Cloud Healthcare.
  • Il visualizzatore medico accede all'API Cloud Healthcare per conto dell'utente finale.
  • Le autorizzazioni vengono gestite a livello di utente e le sue azioni vengono registrate negli audit log di Cloud con l'identificatore univoco dell'utente.
  • L'utilizzo del flusso di Google Identity Services è più complesso rispetto all'utilizzo di un account di servizio. Ad esempio, l'applicazione deve gestire i callback per archiviare il token di autorizzazione, il che può aggiungere complessità non necessaria a un'applicazione semplice.

Utilizzare un account di servizio

  • Configura il visualizzatore medico in modo che utilizzi il proprio metodo di autorizzazione e controllo dell'accesso per determinare se un utente finale può visualizzare una determinata risorsa dell'API Cloud Healthcare. L'utilizzo di un account di servizio è utile se hai già un visualizzatore che esegue i propri controlli di gestione e autenticazione degli utenti.
  • Le azioni eseguite nel visualizzatore vengono registrate negli audit log di Cloud, ma non puoi visualizzare i log a livello di singoli utenti finali.
  • L'autenticazione con un account di servizio è più semplice rispetto all'utilizzo del flusso di Google Identity Services. Ad esempio, non è necessario chiedere a un utente di accedere e quindi non è necessario memorizzare un token di accesso.

Autorizzazione mediante il flusso OAuth 2.0 di Google Identity Services

Puoi autorizzare un visualizzatore di immagini biomediche ad accedere ai dati DICOM archiviati nell'API Cloud Healthcare per conto di un utente utilizzando il flusso OAuth 2.0 di Google Identity Services. A seconda dell'applicazione, sono disponibili flussi per le seguenti applicazioni:

La seguente descrizione per il flusso di accesso presuppone che l'utente che accede al visualizzatore abbia creato un archivio DICOM e archiviato istanze DICOM nell'archivio:

  1. Un utente apre l'applicazione di un visualizzatore di imaging biomedico. Nel visualizzatore compare una finestra di consenso di Google che mostra il nome dell'applicazione e i servizi dell'API di Google che sta richiedendo l'autorizzazione ad accedere con le credenziali di autorizzazione dell'utente. L'utente può consentire o negare l'accesso all'applicazione.
  2. L'utente viene indirizzato a una pagina dei servizi di identità Google. Se l'utente concede l'accesso richiesto all'applicazione, questa può accedere ai dati dell'utente.

Non archiviare token di aggiornamento nel visualizzatore. I token di accesso concessi al visualizzatore da parte dell'utente devono essere di breve durata e scambiati solo quando scadono.

I token di aggiornamento non sono necessari anche per i seguenti motivi:

  • L'utente è sempre presente quando utilizza il visualizzatore.
  • L'utilizzo di token di aggiornamento richiede interventi aggiuntivi per archiviarli in modo sicuro.

Autorizzazione tramite un account di servizio

Puoi gestire l'autenticazione e l'autorizzazione a livello di visualizzatore medico, piuttosto che a livello di utente finale, utilizzando OAuth 2.0 con un account di servizio.

Per istruzioni su come utilizzare un account di servizio per autenticare un visualizzatore medico nell'API Cloud Healthcare, consulta Autenticazione nell'API.

Ruoli obbligatori

Affinché il visualizzatore funzioni correttamente, un utente deve disporre dei seguenti ruoli:

  • roles/healthcare.dicomViewer: per visualizzare le risorse DICOM
  • roles/healthcare.dicomEditor: per visualizzare, modificare e creare risorse DICOM

Nel flusso di accesso, si suppone che l'utente abbia già configurato questi ruoli e che il visualizzatore non debba fare altro. Quando utilizzi un account di servizio, i ruoli devono essere impostati nell'account di servizio. Il visualizzatore deve restituire gli errori PERMISSION_DENIED appropriati agli utenti che non dispongono delle autorizzazioni necessarie per accedere ai propri archivi DICOM.

Accesso agli endpoint DICOMweb

Dopo che l'utente si è autenticato nel visualizzatore, quest'ultimo può effettuare richieste agli endpoint DICOMweb. Ogni archivio DICOM espone un singolo endpoint DICOMweb.

Quando l'utente si trova nel visualizzatore, deve specificare i progetti e gli archivi DICOM ai quali vuole accedere. Il modo più semplice è chiedere all'utente di fornire l'ID del progetto, del set di dati e dell'archivio DICOM a cui vuole accedere. Tuttavia, fornire ogni singolo valore potrebbe richiedere molto tempo all'utente.

In alternativa, puoi fornire una combinazione di input dell'utente e completamento automatico nel visualizzatore. Ad esempio, dopo che l'utente inserisce un ID progetto, il visualizzatore potrebbe compilare automaticamente un elenco dei set di dati e degli archivi DICOM all'interno del progetto. In alternativa, potresti fornire un singolo campo di immissione che viene compilato automaticamente con i progetti, i set di dati e gli archivi DICOM a cui l'utente può accedere. I metodi API riportati di seguito potrebbe essere utili al momento di impostare una delle seguenti alternative:

Potresti anche fornire un elenco precompilato di risorse di un utente. Tuttavia, se un utente dispone di centinaia o migliaia di archivi o set di dati DICOM, la precompilazione e la visualizzazione dell'elenco potrebbe non essere possibile.

Accesso alle risorse nel visualizzatore utilizzando DICOMweb

L'API Cloud Healthcare supporta lo standard DICOMweb. Per consentire agli utenti di accedere ai propri dati, il visualizzatore deve implementare i metodi HTTP RESTful DICOMweb anziché i protocolli DIMSE precedenti.

Tutti i visualizzatori hanno due componenti principali:

  • Il fornitore dell'elenco di lavoro
  • Il visualizzatore di immagini

Puoi utilizzare lo standard DICOMweb con entrambi i componenti.

Visualizzazione del fornitore dell'elenco di lavoro

Di solito, la prima cosa che un utente vede quando apre un visualizzatore è un elenco di tutti gli studi disponibili in ogni archivio DICOM. Il visualizzatore può recuperare questi studi utilizzando la transazione di ricerca.

Consulta la Dichiarazione di conformità DICOM dell'API Cloud Healthcare per le specifiche su come è implementata la transazione di ricerca nell'API Cloud Healthcare.

Visualizzazione delle istanze

Dopo aver effettuato l'accesso al fornitore dell'elenco di lavoro, l'utente di solito seleziona uno studio da visualizzare. Per farlo, deve accedere ai byte pixel non elaborati dello studio e ai metadati DICOM. Il visualizzatore può recuperare queste informazioni utilizzando l'insieme di metodi Retrieve Transaction. I metodi Retrieve Transaction consentono di recuperare un intero file DICOM non elaborato o i dati pixel non elaborati del file. I metodi RetrieveTransaction supportano anche la transcodifica tra diverse sintassi di trasferimento.

Consulta la Dichiarazione di conformità DICOM dell'API Cloud Healthcare per le specifiche su come i metodi di ricerca e recupero delle transazioni sono implementati nell'API Cloud Healthcare.

Ottimizzazione della velocità effettiva di rete

A volte, ad esempio quando si visualizza la scansione di una di tomografia computerizzata, un visualizzatore potrebbe dover scaricare molte istanze contemporaneamente per mostrare l'immagine. Per ottenere risultati ottimali, recupera ogni istanza in parallelo utilizzando un numero elevato di richieste simultanee, ad esempio 50 o più. Il numero esatto dipende dall'applicazione e dalla larghezza di banda della rete.