Visualizzare e analizzare immagini medicali nel browser: Cornerstone, Larvitar e la potenza del web
Lavoro con le immagini medicali da anni, e una delle evoluzioni più affascinanti che ho vissuto è quella che ha portato la visualizzazione DICOM direttamente nel browser. Quello che un tempo richiedeva software nativi, installazioni complesse e infrastrutture dedicate è oggi possibile con una semplice web app. E non parlo solo di “vedere immagini”: parlo di costruire vere piattaforme cloud per la gestione, l’interazione e l’analisi di immagini medicali.
Due strumenti sono stati (e sono) centrali in questo percorso:
Cornerstone.js: il riferimento per il medical imaging su web
Cornerstone.js è una libreria open source che permette di visualizzare immagini DICOM in un canvas HTML5, gestendo zoom, pan, finestre, overlay, annotazioni e tanto altro. È diventata lo standard de facto per chi lavora con immagini mediche nel browser.
Negli anni si è evoluta molto, e oggi, con Cornerstone3D, supporta anche ricostruzioni volumetriche e rendering multiplanari (MPR, CPR) grazie all’integrazione con VTK.js, la versione JavaScript della famosa libreria per il rendering scientifico e medico. Questo consente la gestione di scene 3D complesse, con rendering basato su WebGL, slicing arbitrario, interazione con piani obliqui e visualizzazione di strutture volumetriche sovrapposte (es. segmentazioni).
Una libreria potente, ma anche complessa, che richiede un certo livello di conoscenza per essere integrata in modo efficace.
Larvitar: un layer intermedio per progetti reali
Per questo in D/Vision Lab abbiamo sviluppato Larvitar, una libreria open source che estende e semplifica l’uso di Cornerstone, offrendo:
una serie di utility pronte all’uso per caricare serie DICOM, visualizzare stack, creare layout multipli
funzioni per navigare volumi 3D, selezionare piani, interagire con le immagini
supporto ai segmentation object (RTSTRUCT, SEG) e gestione overlay in scene miste
un’architettura modulare e framework-agnostic, adatta ad essere integrata in progetti Vue/React
Larvitar nasce da esigenze pratiche: costruire prototipi veloci, strumenti interattivi e componenti riutilizzabili, per clienti che vogliono portare i loro dati medicali nel cloud.
Perché il web?
Visualizzare le immagini nel browser ha una serie di vantaggi enormi:
Nessuna installazione lato utente: basta un link
Piattaforme cloud-native, scalabili e accessibili da qualsiasi dispositivo
Possibilità di integrare strumenti di AI, algoritmi di segmentazione o analisi, direttamente nell’interfaccia utente
Interoperabilità con altri sistemi (RIS, PACS, piattaforme AI)
Facilmente mantenibile e aggiornabile nel tempo (CI/CD, zero deploy manuali)
Il risultato? Applicazioni che non si limitano a mostrare un’immagine, ma che guidano l’utente attraverso flussi clinici, supportano la diagnosi, la collaborazione e la ricerca.
Un esempio pratico: visualizzazione e confronto segmentazioni AI
Uno dei progetti realizzati con questa tecnologia riguarda la visualizzazione e confronto di segmentazioni AI su immagini TAC. Abbiamo sviluppato una web app che:
carica uno o più dataset DICOM da sorgenti remote (PACS, cloud, file locale)
sovrappone le segmentazioni provenienti da modelli AI (in formato DICOM SEG o mask .nii)
consente la navigazione MPR e il confronto diretto tra segmentazioni diverse
esporta i risultati in formato compatibile con il workflow clinico o la revisione manuale
Il tutto direttamente nel browser, senza installazioni.
Ecco un esempio pratico di utilizzo di Larvitar per caricare e visualizzare una serie DICOM:
Il pacchetto consente di:
Estrarre la centerline da una maschera binaria 3D (es. segmentazione di un vaso)
Applicare algoritmi di thinning e pruning per ottenere una linea centrale semplice e continua
Esportare il risultato come lista di punti 3D, curve o polilinee, utilizzabili in analisi successive
Visualizzare il risultato tramite librerie standard (Matplotlib, PyVista)
Il tutto con un’interfaccia semplice e documentata, adatta anche a chi vuole integrarlo in progetti più ampi di analisi o visualizzazione medicale.
larvitar.initializeImageLoader();
larvitar.registerMultiFrameImageLoader();
larvitar.initializeCSTools();
larvitar.store.initialize();
larvitar.store.addViewport("viewer");
larvitar
.readFiles(fileList)
.then(seriesStack => {
const uniqueUID = Object.keys(seriesStack)[0];
const serie = seriesStack[uniqueUID];
larvitar.populateImageManager(uniqueUID, serie);
larvitar.renderImage(serie, "viewer").then(() => {
larvitar.logger.debug("Image has been rendered");
larvitar.addDefaultTools("viewer");
});
});
Questo snippet è tratto dagli esempi ufficiali di Larvitar, dove ogni caso d’uso è fornito e documentato per facilitare l’integrazione in progetti reali.
In parallelo, stiamo lavorando alla nuova versione 3.x di Larvitar, che integrerà Cornerstone3D come motore di rendering per supportare funzionalità avanzate come la navigazione volumetrica, MPR, segmentazioni 3D e overlay interattivi con performance migliorate.
Cosa realizziamo con queste tecnologie
In D/Vision Lab sviluppiamo applicazioni web che sfruttano queste tecnologie per offrire strumenti avanzati di visualizzazione e analisi:
visualizzano serie TC o RM direttamente da PACS o archivi cloud
integrano moduli di analisi AI (es. classificatori, segmentatori, misuratori automatici)
permettono di confrontare immagini pre/post trattamento
espongono strumenti di interazione clinica (annotazioni, misure, MPR, piani obliqui…)
supportano strumenti per la creazione di report strutturati o esportabili
Tutto questo con tecnologie web standard, in ambienti moderni e sicuri, integrabili con gli ecosistemi esistenti.
