Questa pagina illustra concetti e best practice per integrare un visualizzatore di diagnostica per immagini di terze parti con l'API Cloud Healthcare. L'API Cloud Healthcare è integrata con più 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 Importazione ed esportazione dei dati DICOM utilizzando Cloud Storage per iniziare.
Autorizzazione e autenticazione delle richieste con OAuth 2.0
Google Cloud Le API supportano il protocollo OAuth 2.0 sia per l'autenticazione che per l'autorizzazione.
Un visualizzatore medico 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 propri costi e vantaggi:
Utilizzo del flusso OAuth 2.0 per i servizi di identità Google
- Gli utenti finali si autenticano tramite il visualizzatore medico per accedere all'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 azioni dell'utente vengono registrate in Cloud Audit Logs con l'identificatore univoco dell'utente.
- Utilizzare il flusso dei Servizi di identità Google è 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 una semplice applicazione.
Utilizzare un account di servizio
- Puoi configurare il visualizzatore medico per utilizzare 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 degli utenti e di autenticazione.
- Le azioni eseguite nel visualizzatore vengono registrate in Cloud Audit Logs, ma non puoi visualizzare i log a livello dei singoli utenti finali.
- L'autenticazione mediante un account di servizio è più semplice rispetto all'utilizzo del flusso Google Identity Services. Ad esempio, non è necessario richiedere all'utente di accedere, quindi non è necessario archiviare un token di accesso.
Autorizzazione mediante il flusso OAuth 2.0 dei Servizi di identità Google
Puoi autorizzare un visualizzatore medico ad accedere ai dati DICOM archiviati nell'API Cloud Healthcare per conto di un utente utilizzando il flusso OAuth 2.0 dei servizi di identità Google. 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:
- 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.
- L'utente viene indirizzato a una pagina 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.
Anche i token di aggiornamento non sono necessari per i seguenti motivi:
- L'utente è sempre presente quando utilizza il visualizzatore.
- L'utilizzo dei token di aggiornamento richiede operazioni aggiuntive per archiviarli in modo sicuro.
Autorizzazione tramite un account di servizio
Puoi gestire l'autenticazione e l'autorizzazione a livello di visualizzatore di dati medici, anziché 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 sanitario nell'API Cloud Healthcare, consulta Autenticazione nell'API.
Ruoli obbligatori
Affinché il visualizzatore funzioni correttamente, un utente deve avere i seguenti ruoli:
roles/healthcare.dicomViewer
: per visualizzare le risorse DICOMroles/healthcare.dicomEditor
: per visualizzare, modificare e creare risorse DICOM
Durante il flusso di accesso, è previsto che l'utente abbia già configurato questi ruoli e che lo spettatore non debba fare altro. Quando usi un account di servizio,
i ruoli devono essere impostati nell'account. 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 ha eseguito l'autenticazione al 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 processo più semplice è chiedere all'utente di fornire gli ID per il progetto, il set di dati e l'archivio DICOM a cui si 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, potresti chiedere all'utente di inserire un ID progetto e quindi il visualizzatore completerebbe automaticamente un elenco dei set di dati e degli archivi DICOM all'interno del progetto. In alternativa, puoi fornire un singolo campo di immissione che compila automaticamente i progetti, i set di dati e gli archivi DICOM a cui l'utente ha accesso. I metodi API riportati di seguito potrebbe essere utili al momento di impostare una delle seguenti alternative:
projects.list
: elenca i progetti che sono visibili all'utente e che soddisfano un filtro specificato.projects.locations.list
: elenca le informazioni sulle località supportate per l'API Cloud Healthcare.projects.locations.datasets.list
: elenca i set di dati dell'API Cloud Healthcare in un progetto.projects.locations.datasets.dicomStores.list
: elenca gli archivi DICOM in un set di dati.
Potresti anche prendere in considerazione la precompilazione di un elenco di risorse di un utente. Tuttavia, se un utente ha centinaia o migliaia di archivi o set di dati DICOM, potrebbe non essere possibile precompilare e visualizzare l'elenco.
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.
Ogni visualizzatore ha due componenti principali:
- Il provider 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 viene 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 eseguire il rendering dello studio, il visualizzatore deve accedere ai byte pixel non elaborati dello studio e ai metadati DICOM. Il visualizzatore può recuperare queste informazioni utilizzando il set di metodi Recupera transazione. I metodi di recupero della transazione consentono di recuperare un intero file DICOM non elaborato o i dati pixel non elaborati del file. I metodi di recupero della transazione supportano anche la transcodifica tra diverse sintassi di trasferimento.
Per informazioni dettagliate su come i metodi di ricerca e recupero delle transazioni vengono implementati nell'API Cloud Healthcare, consulta la dichiarazione di conformità DICOM dell'API Cloud Healthcare.
Ottimizzazione della velocità effettiva di rete
A volte, ad esempio durante il rendering di una TAC, un visualizzatore potrebbe dover scaricare molte istanze contemporaneamente per eseguire il rendering dell'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 dalla larghezza di banda dell'applicazione e della rete.