Best practice per DICOM

Questa pagina mostra le best practice per migliorare le prestazioni quando si lavora con dati DICOM nell'API Cloud Healthcare.

Massimizzazione dei fotogrammi al secondo (f/s) in un visualizzatore di immagini

Lo strumento healthcare-imaging-performance-test fornisce benchmark che ti consentono di visualizzare in anteprima l'FPS previsto per un visualizzatore di imaging medicale DICOM che estrae i dati dall'API Cloud Healthcare.

Invio simultaneo di richieste

Per ottenere prestazioni ottimali in termini di FPS, invia richieste contemporaneamente. Ad esempio, nelle seguenti condizioni puoi migliorare FPS da 30 FPS a 60 FPS quando passi da 6 richieste in parallelo a 20:

  • Nessuna compressione
  • Quando i dati DICOM si trovano tutti nella stessa regione
  • Quando le immagini DICOM hanno una dimensione di 0,5 MB

Recupero dei frame in una singola richiesta

I metodi retrieveStudy e retrieveSeries restituiscono in modo efficiente più file DICOM in una singola richiesta. Con questi metodi, puoi recuperare le immagini alla stessa velocità che utilizzi per un numero ottimale di richieste in parallelo. Puoi chiamare questi metodi in una singola richiesta anziché utilizzare richieste in parallelo se si verificano le seguenti condizioni:

  • Il client può archiviare l'intero studio in memoria oppure può analizzare la risposta come un flusso per gestire un'istanza DICOM alla volta
  • Non è necessario personalizzare l'ordine delle immagini recuperate

Migliorare il rendimento per gli utenti del web

Le seguenti sezioni si applicano al recupero delle immagini DICOM quando si utilizza un visualizzatore web.

Aumento del numero massimo di richieste in parallelo

Quando si utilizza un visualizzatore basato sul Web, la maggior parte dei browser applica un numero massimo di connessioni per host. Generalmente questo numero è sei. Tuttavia, in pratica non esistono limitazioni al numero massimo di richieste in parallelo perché:

  • La maggior parte dei browser utilizza HTTP/2 per impostazione predefinita se il server supporta HTTP/2
  • HTTP/2 utilizza un'unica connessione per tutte le richieste

Ad esempio, se utilizzi Cornerstone.js per creare un visualizzatore, puoi modificare il numero massimo di richieste in parallelo in un numero ottimale per il visualizzatore modificando maxSimultaneousRequests durante la configurazione di Cornerstone.js.

Utilizzo dei web worker

JavaScript è un linguaggio a thread singolo, quindi è necessario prestare particolare attenzione quando si applicano pattern di contemporaneità. Puoi utilizzare i web worker per elaborare sia le immagini DICOM sia le richieste HTTP.

Ad esempio, se modifichi l'elaborazione delle richieste HTTP per i web worker, puoi raddoppiare di fatto l'FPS del visualizzatore da 30 a 60 FPS presupponendo un overhead per l'elaborazione delle richieste di 30 millisecondi.