UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II SCUOLA POLITECNICA E DELLE SCIENZE DI BASE AREA DIDATTICA DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea in Informatica Tesi sperimentale di Laurea ANALISI DI IMMAGINI MEDICALI SU TABLET: SVILUPPO DI UNA GUI PER INTERAZIONI TOUCH Relatori PROF. GUIDO RUSSO PROF. ALBERTO ALOISIO Tutor aziendale DOTT. LUIGI GALLO Candidato GIANPAOLO BARATTO Matricola 566/2832 Anno Accademico 2012/2013

2 Alla mia famiglia

3 RINGRAZIAMENTI Ringraziamenti I primi ringraziamenti vanno al mio relatore, il Prof. Guido Russo, per la sua esemplare disponibilità, per avermi seguito con professionalità e pazienza e per essere stato un punto di riferimento per portare a termine questo lavoro. Ringrazio il Prof. Alberto Aloisio per avermi seguito con precisione durante l attività di tirocinio. Ringrazio il mio tutor aziendale, il Dott. Luigi Gallo, per tutto quello che mi ha trasmesso in questi mesi di lavoro. La sua grande passione e il suo entusiasmo contagioso mi hanno permesso di crescere sia come uomo che come studente. Ringrazio tutti i professori che ho incontrato in questi anni di studio, nessuno escluso. Grazie per quello che mi avete insegnato e per come me lo avete insegnato. Ci sono stati, come è inevitabile, momenti belli e momenti meno belli. La mia speranza è che tutti voi abbiate sempre agito in buona fede. Ringrazio i miei amici universitari per tutti i momenti passati insieme e per aver reso piacevoli anche le giornate più dure ed interminabili. Ringrazio Alessandra per essere sempre stata al mio fianco, per non aver mai smesso di credere nelle mie capacità nemmeno per un istante e per aver condiviso con me ogni vittoria ma soprattutto ogni sconfitta. Con il suo carattere genuino e la sua semplicità mi ha sempre accompagnato per mano in questo cammino. Ringrazio i miei genitori, ai quali devo tutto, per avermi sempre sostenuto ed incoraggiato ad andare avanti e per avermi insegnato più di quanto abbia fatto chiunque altro. Senza di loro niente sarebbe stato possibile. In particolare, ringrazio mia madre per avermi sempre consigliato e spronato a vedere il lato positivo di ogni cosa. Ringrazio mio padre per essere stato e per essere sempre la mia roccia, il mio porto sicuro, per avermi dato la forza di crederci, anche quando tutte le condizioni erano sfavorevoli, ed affrontare ogni avversità con determinazione e convinzione. Noi siamo più forti. Grazie di cuore. Gianpaolo Baratto I

4 INDICE Indice RINGRAZIAMENTI I INDICE II INDICE DELLE FIGURE V INTRODUZIONE 1 CAPITOLO I DIAGNOSTICA PER IMMAGINI 3 I.1 INTRODUZIONE 3 I.2 ACQUISIZIONE DEI DATI 5 I.2.1 ECOGRAFIA DIGITALE (DE) 5 I.2.2 TOMOGRAFIA ASSIALE COMPUTERIZZATA (CT) 6 I.2.3 RISONANZA MAGNETICA NUCLEARE (MRI) 7 I.2.4 ANGIOGRAFIA DIGITALE (CA) 8 I.2.5 IMAGING IN MEDICINA NUCLEARE 9 I.3 FORMATI PROPRIETARI E FORMATO DICOM 9 I.4 INTERPRETAZIONE DEI RISULTATI 12 I.4.1 FILTRAGGIO E RISTRUTTURAZIONE 13 I REGISTRAZIONE 14 I.4.2 CLASSIFICAZIONE 15 I SEGMENTAZIONE 15 I.4.3 RICOSTRUZIONE E VISUALIZZAZIONE 3D 19 I ESTRAZIONE DI ISOSUPERFICI 20 I CLASSIFICAZIONE BINARIA DEI VOXEL 21 I DIRECT VOLUME RENDERING 21 I.4.4 VISUALIZZAZIONE FINALE 22 I.5 SOFTWARE PER L ANALISI DI IMMAGINI MEDICALI SU TABLET 23 I.6 ATTIVITÀ DI RICERCA PRESSO IL CNR 30 II

5 INDICE CAPITOLO II MITO MEDICAL IMAGING TOOLKIT 34 II.1 INTRODUZIONE 34 II.2 ARCHITETTURA SOFTWARE 35 II.3 ANALISI DELLE FUNZIONALITÀ 36 II.3.1 FUNZIONALITÀ BASE 37 II.3.2 FUNZIONALITÀ PER L INTERAZIONE CON UN SISTEMA PACS 39 II.3.3 FUNZIONALITÀ 2D 40 II.3.4 FUNZIONALITÀ 3D 43 II.3.5 FUNZIONALITÀ IN REALTÀ VIRTUALE 44 II.3.6 CONFRONTO CON OSIRIX 46 II.4 API OPEN SOURCE E CROSS PLATFORM 47 II.4.1 VANTAGGI DELL'OPEN SOURCE E DEL CROSS PLATFORM 48 II.4.2 CARATTERISTICHE COMUNI DI ITK E VTK 50 II ARCHITETTURA PIPELINE 51 II ESECUZIONE DELLA PIPELINE 53 II.4.3 WXWIDGETS 55 II.5 PORTING DI MITO SU PIATTAFORME MOBILI 56 II.5.1 ANALISI E SCELTA DELLA PIATTAFORMA 56 II SISTEMI MICROSOFT WINDOWS 8/ WINDOWS 8 RT BASED 56 II PORTING COME DESKTOP APP DI WINDOWS 8 57 II PORTING COME APP METRO STYLE DI WINDOWS STORE 59 II SISTEMI ANDROID/IOS BASED 60 II SCELTE IMPLEMENTATIVE 62 II.5.2 IMPLEMENTAZIONI DI INTERAZIONI TOUCH SU WINDOWS 8 63 II WM_POINTER 64 II WM_GESTURE 66 II WM_TOUCH 67 II SCELTE IMPLEMENTATIVE 68 III

6 INDICE CAPITOLO III ANALISI E PROGETTAZIONE DELL'APPLICAZIONE 70 III.1 INTRODUZIONE 70 III.2 REQUISITI FUNZIONALI 70 III.2.1 DIAGRAMMA DEI CASI D USO 71 III.3. CLASSI INDIVIDUATE 85 III.3.1 INTERFACCIA GRAFICA 85 III.3.2 INTERAZIONI TOUCH 90 III.4 MOCKUP DELL INTERFACCIA GRAFICA 92 CAPITOLO IV REALIZZAZIONE DELL APPLICAZIONE 95 IV.1 INTRODUZIONE 95 IV.2 IMPLEMENTAZIONE DELL INTERFACCIA GRAFICA 95 IV.2.1 MITO APP 95 IV.2.2 MAIN GUI 97 IV.2.3 2D GUI 117 IV.2.4 VOLUME RENDERING GUI 132 IV.2.5 SURFACE RENDERING GUI 152 IV.3 IMPLEMENTAZIONE DELLE INTERAZIONI TOUCH 166 IV.4 ESEMPIO D USO 180 CONCLUSIONI E SVILUPPI FUTURI 196 BIBLIOGRAFIA 198 WEBGRAFIA 201 IV

7 INDICE DELLE FIGURE E DELLE TABELLE Indice delle figure 1 Architettura software per la diagnostica per immagini 1 2 Formato DICOM Processo di trattamento dei dati medicali 12 4 Processo di classificazione 16 5 Splash screen di Osirix HD 24 6 Osirix HD: setup 25 7 Osirix HD: schermata principale 26 8 Osirix HD: sezione Viewer 26 9 Osirix HD: sezione Q&R Osirix HD: ricerca di esami in PACS ENDEAVOR Mobile 3.0: splash screen e voice dictation report ENDEAVOR Mobile 3.0: PACS e DICOM Viewer LEADTOOLS DICOM Viewer: strumenti (1) LEADTOOLS DICOM Viewer: strumenti (2) Interfaccia Wiimote: uni-modal Interfaccia Wiimote: multi-modal Interfaccia gesture-based: Data Glove Sala operatoria informatizzata Interfaccia gesture-based: touchless Architettura di MITO MITO: interfaccia utente principale MITO: anonymize MITO: dialog PACS Query/Retrieve MITO: dialog Send to PACS MITO: 2D Viewer MITO: regole di fusione MITO: dialog Image Fusion Settings MITO: processo di image fusion MITO: Volume Rendering MITO: Surface Rendering Occhiali anaglifici Occhiali e proiettori per polarizzazione passiva Shutter glasses per la polarizzazione attiva Microsoft Xbox Kinect Confronto con OsiriX (1) 46 V

8 INDICE DELLE FIGURE E DELLE TABELLE 36 Confronto con OsiriX (2) Tipi di Process Object nella pipeline di ITK E VTK Molteplicità degli ingressi e delle uscite delle pipeline di ITK e VTK Esecuzione parziale di una pipeline Windows 8 Desktop app gesture Windows Store Esempio di GUI Android Porting di MITO: scheda riassuntiva Confronto tra i diversi tipi di messaggi Diagramma dei casi d uso: Main GUI Diagramma dei casi d uso: 2D GUI Diagramma dei casi d uso: Volume Rendering GUI Diagramma dei casi d uso: Surface Rendering GUI Class Diagram: wxmitoapp Class Diagram: wxmaingui Class Diagram: wx2dgui Class Diagram: wxvolumerenderinggui Class Diagram: wxsurfacerenderinggui Touch gesture Class Diagram: appwxvtkinteractor Mockup: splash screen Mockup: Main GUI (1) Mockup: Main GUI (2) Mockup: 2D GUI Mockup: Volume Rendering GUI Mockup: Surface Rendering GUI Interazioni touch: pinch to zoom (1) Interazioni touch: pinch to zoom (2) Interazioni touch: pan (1) Interazioni touch: pan (2) Interazioni touch: rotate (1) Interazioni touch: rotate (2) Esempio d uso: splash screen Esempio d uso: Main GUI (1) Esempio d uso: Main GUI (2) Esempio d uso: Main GUI (3) Esempio d uso: Main GUI (4) 182 VI

9 INDICE DELLE FIGURE E DELLE TABELLE 73 Esempio d uso: Main GUI (5) Esempio d uso: 2D GUI (1) Esempio d uso: 2D GUI (2) Esempio d uso: 2D GUI (3) Esempio d uso: 2D GUI (4) Esempio d uso: 2D GUI (5) Esempio d uso: 2D GUI (6) Esempio d uso: 2D GUI (7) Esempio d uso: Volume Rendering GUI (1) Esempio d uso: Volume Rendering GUI (2) Esempio d uso: Volume Rendering GUI (3) Esempio d uso: Volume Rendering GUI (4) Esempio d uso: Volume Rendering GUI (5) Esempio d uso: Volume Rendering GUI (6) Esempio d uso: Volume Rendering GUI (7) Esempio d uso: Volume Rendering GUI (8) Esempio d uso: Volume Rendering GUI (9) Esempio d uso: Volume Rendering GUI (10) Esempio d uso: Volume Rendering GUI (11) Esempio d uso: Volume Rendering GUI (12) Esempio d uso: Volume Rendering GUI (13) Esempio d uso: 2D GUI (8) Esempio d uso: Surface Rendering GUI (1) Esempio d uso: Surface Rendering GUI (2) Esempio d uso: Surface Rendering GUI (3) Esempio d uso: Surface Rendering GUI (4) 195 VII

10 INTRODUZIONE Introduzione La medicina utilizza costantemente gli strumenti tecnologici che la scienza mette a disposizione per una sempre più completa comprensione dei fenomeni che avvengono nel corpo umano. Negli ultimi decenni, alle varie discipline scientifiche si è affiancata l'informatica. La potenza di calcolo, la possibilità di modellizzare i fenomeni complessi, di memorizzare e recuperare con grande rapidità le informazioni e di rappresentare visivamente realtà complesse sono solo alcuni dei vantaggi apportati dall informatica. Molte delle attività condotte presso la sede di Napoli dell'istituto di Calcolo e Reti ad Alte Prestazioni (ICAR) del Consiglio Nazionale delle Ricerche (CNR), presso il cui laboratorio è stato svolto il presente lavoro di tesi, hanno una loro finalizzazione applicativa nella realizzazione di un ambiente di realtà virtuale immersiva di supporto alla diagnostica per immagini. Questa tesi, infatti, si colloca nell'ambito dell attività di ricerca relativa allo sviluppo di un software Open Source e Cross Platform per la visualizzazione, l analisi e l elaborazione di immagini medicali. Il software di base messo a disposizione è stato sviluppato nel corso di diversi anni di lavoro da un gruppo di ricercatori e vanta un numero considerevole di funzionalità. L architettura su cui si basa il sistema è mostrata in Figura 1. Figura 1 Architettura software per la diagnostica per immagini 1

11 INTRODUZIONE L obiettivo di questo lavoro, dopo aver fatto uno studio sul dominio applicativo, è quello di effettuare un porting di questo software su dispositivi tablet. Sarà fatta un analisi delle possibili strategie implementative da seguire e si sceglierà quella più conveniente. Successivamente sarà progettata e realizzata una GUI per interazioni touch in grado di mantenere il considerevole numero di funzionalità preesistenti e di aggiungerne delle nuove. Si fa presente che i display dei tablet, essendo sprovvisti della certificazione appropriata, non sono adatti alla refertazione medica. 2

12 CAPITOLO I DIAGNOSTICA PER IMMAGINI Capitolo I Diagnostica per immagini Gli ultimi venti anni hanno marcato l'avvento di sistemi medicali per l'acquisizione di immagini che possono facilmente generare, utilizzando metodi non-invasivi, informazioni tridimensionali sugli organi interni di persone viventi. La disciplina che studia l'applicazione di tali tecniche si è ormai affermata come un campo di ricerca a sé stante noto con il nome di Diagnostica per Immagini (Medical Imaging). I compiti di questa disciplina consistono essenzialmente nel connettere e ulteriormente sviluppare le conoscenze acquisite in campi tra loro diversi e complementari come l'elaborazione di immagini e la visualizzazione scientifica [BIGOTTI]. In questo capitolo, dopo aver analizzato gli aspetti più interessanti della materia, si analizzerà lo stato dell arte e si descriveranno le attività di ricerca presso il CNR. I.1 Introduzione La diagnostica per immagini è un processo generico attraverso il quale è possibile osservare un area di un organismo non visibile dall esterno. Storicamente nasce qualche anno dopo la scoperta dei raggi X da parte del fisico tedesco Roentgen, avvenuta nel Questi raggi vennero chiamati <<X>> proprio perché si trattava di radiazioni ignote, di cui non si conosceva l origine. La diagnostica per immagini ha avuto negli ultimi decenni un forte impulso, dovuto alle nuove metodologie d impiego degli stessi raggi X, che hanno portato alla Tomografia Assiale Computerizzata, all'impiego d ultrasuoni (ecografia), di radio isotopi (scintigrafia, PET), alla scoperta dei fenomeni di risonanza magnetica ecc. In tutti questi casi si pone in primo luogo il problema di fornire all'utente finale, sia esso medico o 3

13 CAPITOLO I DIAGNOSTICA PER IMMAGINI paramedico, uno strumento d impiego sufficientemente agevole e sicuro, per utilizzare appieno queste grandi potenzialità diagnostiche messe a disposizione dall'evoluzione scientifica e tecnologica. La visualizzazione di immagini medicali, infatti, impegna il più importante apparato sensoriale umano che è quello della vista e di conseguenza il relativo processo interpretativo della mente umana che costituisce un mezzo semplice ed efficace per comunicare informazioni complesse e ricche di contenuti. Il presupposto fondamentale è che i dati raccolti dai sensori che analizzano i fenomeni non siano alterati durante la fase d elaborazione che deve consentire all'operatore la più ampia disponibilità di mezzi atti ad esaltare la comprensione dei fenomeni. Con la diffusione delle prime macchine per tomografia assiale computerizzata negli anni '70, si è assistito ad un'evoluzione sempre più veloce delle modalità con cui si acquisiscono, si conservano e si analizzano le immagini necessarie a determinare una diagnosi medica. Il cambiamento sostanziale, rispetto alle metodologie tradizionali, è stato il passaggio da informazioni analogiche, statiche e bidimensionali come quelle date dalle normali immagini radiografiche (raggi X) ad informazioni numeriche, eventualmente dinamiche e contenenti informazioni tridimensionali. L'elemento determinante che ha permesso quest evoluzione è stata la transizione da sistemi basati su pellicola, come gli apparecchi radiografici, a sistemi basati su computer. In particolare, gli sviluppi più clamorosi, in quest'ambito, si sono avuti grazie al contributo della medicina nucleare che, con l'impiego dei traccianti radioattivi, ha trasformato profondamente la diagnosi medica. I due piú comuni tipi di macchinari utilizzati come strumenti diagnostici in medicina nucleare sono la SPECT (Single Photon Emission Computed Tomography) e la PET (Positron Emission Tomography), che utilizzano come traccianti, rispettivamente, degli emettitori di fotoni e degli emettitori di positroni. La conseguenza di questo sviluppo è stata la necessità di generare degli algoritmi e delle metodologie 4

14 CAPITOLO I DIAGNOSTICA PER IMMAGINI d interpretazione dei dati acquisiti che simulino al meglio la conoscenza del radiologo, che resta, ancora oggi, di gran lunga il più efficiente sistema d elaborazione dei dati medicali conosciuto. Si tratta, quindi, di realizzare, in un sistema computerizzato, le stesse operazioni che un radiologo opera sui dati a sua disposizione: eliminazione del rumore (in pratica evitare di prendere in considerazione gli artifici introdotti dal macchinario d acquisizione), identificazione dei diversi tessuti e/o regioni di interesse (confrontando regioni tra loro limitrofe e sfruttando informazioni morfologiche ed anatomiche) e ricostruzione della situazione reale tridimensionale a partire da molteplici dati bidimensionali [SONKA]. Queste operazioni, in effetti, sono spesso compiute dal radiologo in collaborazione con lo specialista della patologia studiata (il neurochirurgo, l'oncologo, il chirurgo plastico etc.) [BANK]. Seppure oggi sia possibile affermare poter compiere diagnosi assistite da calcolatore, siamo ancora molto lontani da una situazione ideale in cui si possano ottenere dei risultati affidandosi solamente alle capacità di calcolo di un computer. I.2 Acquisizione dei dati In questa sezione sono descritti brevemente alcuni tra i macchinari odierni più utilizzati per l acquisizione dei dati medicali e le loro principali caratteristiche tecniche. I.2.1 Ecografia Digitale (DE) Le tecniche ecografiche non utilizzano radiazioni ionizzanti, ma di onde acustiche (ultrasuoni) e si basano sul principio dell'emissione di eco e della trasmissione delle onde ultrasonore Un fascio d onde acustiche ad alta frequenza è diretto all'interno del corpo, le onde riflesse dai diversi tessuti sono poi captate da un trasduttore posto sulla superficie del corpo e trasformate in immagini, successivamente 5

15 CAPITOLO I DIAGNOSTICA PER IMMAGINI digitalizzate e visualizzate con una scala di grigi che restituisce l'immagine ecografica classica. I dati ottenuti vengono poi elaborati secondo un interpretazione che correla i tempi di ritardo alle distanze e l'intensità del segnale alle densità del tessuto. In questo modo è possibile realizzare un immagine tridimensionale degli organi effettuando un rendering delle superfici esterne ed, eventualmente, rappresentando i volumi con opacità proporzionale alla densità per poterle osservare nello spazio da diversi punti di vista. Tale metodica viene considerata come esame di base prioritario rispetto a tecniche di imaging più complesse come TAC, imaging a risonanza magnetica, angiografia. Attualmente, l ecografia viene utilizzata routinariamente in ambito radiologico, internistico, chirurgico e ostetrico. La sua diffusione è stata favorita dalla innocuità, dalla relativa economicità e, soprattutto, dalla sensibilità diagnostica per le patologie degli organi costituiti da tessuti molli. Il limite principale dell ecografia è rappresentato dal fatto che essa è operatore-dipendente: affinché le informazioni ricavabili da uno studio ecografico siano correttamente interpretate, si richiedono particolari doti di manualità e spirito di osservazione, oltre a cultura dell immagine ed esperienza clinica [ECOGRAFIA]. I.2.2 Tomografia Assiale Computerizzata (CT) I tomografi CT sono le apparecchiature digitali più utilizzate nella diagnostica per immagini, sono relativamente poco costosi e la maggior parte degli ospedali ne sono dotati. L'output di un tomografo CT è una serie di matrici transassiali (slice) allineate perpendicolarmente all'asse definito dalla spina dorsale del paziente. Ogni slice rappresenta una fetta del corpo del paziente di un determinato spessore (tipicamente 1-10 mm). Schematicamente, l acquisizione avviene facendo ruotare una serie di emettitori di raggi X e una serie di rilevatori, tra loro solidali, attorno al corpo del paziente. Per la maggior parte dei tomografi la risoluzione ottenibile per ciascuna matrice varia da 64x64 a 512x512 6

16 CAPITOLO I DIAGNOSTICA PER IMMAGINI pixel 1. La dimensione di ciascun pixel può variare nell'intervallo mm ed è omogenea nel piano transassiale. Il numero di slice varia in funzione della distanza tra le sezioni e dell'estensione dell'organo da esaminare. Ciascun pixel idealmente rappresenta le caratteristiche d assorbimento di un piccolo volume del corpo umano individuato dai limiti fisici del pixel stesso. Al momento la CT è l'unica tecnica per cui si è definita un unità di misura standard (nota come Hounsfield Unit o HU dal nome dell inventore del tomografo TC), che ha, come riferimento, l'acqua (0 HU) e vale, ad esempio per l'aria e sopra 200 HU per le ossa. I moderni tomografi riescono ad acquisire una slice in 1-5 secondi. L'intero processo d acquisizione richiede, in media, slice, con un tempo che va dai 5 ai 15 minuti e la dose di radiazioni da CT è comparabile con quella di una serie di tradizionali lastre a raggi X [HSIEH]. I.2.3 Risonanza Magnetica Nucleare (MRI) La Risonanza Magnetica Nucleare è, come tecnologia, molto più recente rispetto alla CT ed è tuttora in piena evoluzione. È stata sviluppata dall'americano Paul Lauterbur e dall'inglese Peter Mansfield che, hanno vinto, nel 2003 il premio Nobel per la Medicina. Essa offre caratteristiche uniche rispetto a tutte le altre tecniche di acquisizione in Medical Imaging. In una MRI il paziente è posto all'interno di un campo magnetico ad alta intensità che fa sì che i momenti magnetici delle molecole del paziente si allineino alla direzione del campo esterno. Il paziente è poi irradiato con una serie d impulsi di microonde (a basso livello di radiazione) chiamati impulsi d eccitazione che generano un oscillazione dei momenti magnetici delle molecole precedentemente allineati; in questo modo le molecole cominciano a loro volta a riemettere microonde dopo ogni impulso. Le riemissioni sono misurate 1 Pixel: area elementare analizzata dall'emettitore/rilevatore. Poiché rappresentata un volume elementare (superficie per spessore delle slice) viene definito nel Medical Imaging come Voxel. 7

17 CAPITOLO I DIAGNOSTICA PER IMMAGINI dal tomografo che è in grado di stabilire la localizzazione spaziale delle sorgenti delle microonde riemesse. Il tempo necessario ad ottenere una scansione completa è di circa 5-10 minuti. I dati così ricavati rappresentano varie caratteristiche dell emissione molecolare. Modificando alcuni parametri di controllo del dispositivo quali, ad esempio, la frequenza, il tempo d emissione dell'impulso eccitante, il tempo di ritardo passato per ottenere l'impulso in ritorno, è possibile individuare particolari tipi di molecole, movimenti delle molecole stesse (sangue che fluisce nei vasi) e varie altre caratteristiche. L'output di un tomografo MRI è simile a quello delle CT salvo che le slice rappresentanti fette dell'oggetto sottoposto a scansione possono essere ottenute o su piani transassiali (esattamente come nelle CT) o su piani orientati in qualsiasi modo nello spazio (cosa non possibile per le CT attuali) [LIANG]. I.2.4 Angiografia Digitale (CA) La tecniche di angiografia digitale si basano sulla ricostruzione radiologica computerizzata di immagini vascolari. Queste sono ottenute mediante un sistema radiologico tradizionale con annessa telecamera e digitalizzazione delle informazioni. Sottraendo ai fotogrammi l'immagine ottenuta prima dell'introduzione del mezzo di contrasto, vengono eliminate le strutture statiche dell'immagine, come ossa ed altri organi (che appaiono con la stessa intensità prima e dopo l'introduzione dell'agente di contrasto), e si ottiene una maggiore nitidezza dei vasi sanguigni. Questa tecnica, detta DSA (Digital Subtraction Angiography), non può essere applicata allo studio del cuore. Grazie a questo nuovo tipo di procedura è stato possibile rendere meno traumatico l'esame rispetto all'angiografia tradizionale, diminuendo i tempi di lavoro e l'esposizione del paziente alle radiazioni. 8

18 CAPITOLO I DIAGNOSTICA PER IMMAGINI I.2.5 Imaging in medicina nucleare Quando si parla di medicina nucleare, ci si riferisce a tecniche in cui una sostanza radioopaca è immessa nel corpo del paziente da esaminare, permettendo così di rilevare il livello di radiazioni da essa e messo all'interno del corpo. La maggiore differenza rispetto alla CT è data dalla posizione della sorgente radioattiva: in una CT è esterna al paziente e posta in posizione nota, in medicina nucleare è interna al paziente ed in posizione a priori sconosciuta. L'uso di centinaia di diverse sostanze radioattive permette un'ampia flessibilità di utilizzo per rilevare fenomeni metabolici tra i più diversi (si può ad esempio tracciare il metabolismo di sostanze quali il glucosio, od osservare il circolo sanguigno marcando l'emoglobina). Tecniche che sono al confine tra medicina nucleare e radiologia sono tutte quelle che adoperano materiali radioopachi durante acquisizioni effettuate con CT. In questo caso il materiale iniettato non è fonte di emissione di radiazioni ma serve ad aumentare il contrasto tra certi tessuti e quelli che li circondano. Un esempio di tecnica di medicina nucleare è la tomografia ad emissione di positroni (PET). Questa permette di localizzare con precisione a livello cellulare una sostanza marcata con un radioisotopo che emette positroni e viene utilizzata prevalentemente nella diagnosi oncologica, ma anche in quella neurologica e cardiologia. I.3 Formati proprietari e formato DICOM Nel momento in cui le varie case produttrici di macchine TC e MRI hanno iniziato ad utilizzare le immagini digitali, ogni costruttore ha implementato proprie codifiche per la produzione delle immagini stesse. Tali codifiche cambiano da costruttore a costruttore, e anche da modello a modello. Tali tipi di formato sono detti proprietari, nel senso che sono sviluppati dal costruttore per il suo uso esclusivo e non sono solitamente resi pubblici. 9

19 CAPITOLO I DIAGNOSTICA PER IMMAGINI Normalmente, nessuna garanzia è fornita dal costruttore riguardo alla possibilità di scambiare dati in tali formati con l esterno. Di fatto, l uso di un formato proprietario per le immagini digitali vincola all utilizzo di software e hardware prodotto dal costruttore della macchina e non dà alcuna garanzia sulla possibilità di continuare ad accedere ai dati salvati in caso di sostituzione della macchina stessa. Inoltre, lo scambio di dati con altri centri è estremamente difficoltoso se non impossibile. Per superare le limitazioni insite nell uso di formati proprietari, è stato sviluppato negli ultimi anni un formato comune DICOM (Digital Imaging and Communications) per la trasmissione tra apparecchiature diverse (macchine per acquisizione, computer, stampanti, archivi digitali, etc.) di immagini digitali di tipo biomedico e di informazioni medico-sanitarie, mediante la definizione di un protocollo di comunicazione, che fa uso di tecnologie e protocolli di rete standard. Tale formato, fortunatamente, è utilizzato da quasi tutte le macchine più recenti [BID]. Il progetto originario è stato sviluppato da due associazioni statunitensi: The American College of Radiology (ACR) [ACR], responsabile dello sviluppo tecnico-medico del sistema, e il National Electrical Manufacturers Association (NEMA) [NEMA], un consorzio diproduttori responsabile tra l altro degli aspetti inerenti eventuali violazioni di brevetti e normative. Nel 1985 fu ufficializzata la versione 1.0 dello standard ACR-NEMA a cui seguì nel 1988 la versione 2.0: si trattava di un primitivo standard in cui era definito il formato dei file contenenti le immagini e lo standard fisico e di protocollo per l'interconnessione punto-punto delle varie apparecchiature. Le implementazioni tuttavia furono piuttosto limitate, soprattutto a causa del mezzo fisico di connessione realizzato con tecnologie già per l'epoca obsolete. Nel 1993 lo standard ACR-NEMA si trasformò radicalmente nella versione 3.0 [DICOM] nella quale, mantenendo sostanzialmente 10

20 CAPITOLO I DIAGNOSTICA PER IMMAGINI immutate le specifiche inerenti il formato delle immagini, furono aggiunti numerosi servizi ed implementati i protocolli di rete TCP 2 /IP 3 : il nuovo standard fu identificato con il termine DICOM, e proprio l'integrazione nelle specifiche del protocollo di rete TCP/IP, ormai largamente diffuso, ne decretò un successo ed una popolarità sempre crescenti. Il formato DICOM (Figura 2) è costituito da un header contenente campi liberi, definiti dal DICOM dictionary, e da un corpo utilizzato per l'archiviazione delle immagini. Figura 2 Formato DICOM 3.0 Il DICOM dictionary è definito da ciascuna casa produttrice di apparecchiature medicali ed ognuna di loro utilizza l'header DICOM 2 TCP (Trasmission Control Protocol) è un protocollo di trasporto, definito in [RFC793]. 3 IP (Internet Protocol) è un protocollo di rete, definito in [RFC791] 11

21 CAPITOLO I DIAGNOSTICA PER IMMAGINI secondo le proprie esigenze. Il corpo può essere utilizzato per contenere una o più immagini. Gli standard utilizzati per la compressione di tali immagini includono JPEG 4, LZW 5 e RLE 6. Lo standard DICOM è in continua evoluzione ed è aggiornato sotto le indicazioni del Procedures of the DICOM Standards Committee. I.4 Interpretazione dei risultati In Figura 3 è mostrato il processo di trattamento dei dati medicali dall acquisizione alla visualizzazione finale. Figura 3 Processo di trattamento dei dati medicali L'interpretazione dei dati biomedicali richiede un'integrazione di tecniche di elaborazione di immagine e di visualizzazione bidimensionale e tridimensionale. 4 JPEG (Joint Photographic Experts Group) è uno standard internazionale di compressione per immagini a tono continuo, sia a livelli di grigio che a colori [JPEG]. 5 LZW (Lempel Ziv Welch) è un algoritmo di compressione dati sorprendentemente semplice: durante la fase di compressione, stringhe di caratteri vengono sostituite da semplici codici. 6 RLE (Run-length encoding) è storicamente il primo algoritmo di compressione per le immagini inventato, utilizzato nei fax ben prima che le elaborazioni grafiche al computer fossero un'attività comune. 12

22 CAPITOLO I DIAGNOSTICA PER IMMAGINI Lo scopo della visualizzazione è, infatti, quello di rendere interpretabili nel miglior modo possibili i dati acquisiti dai macchinari descritti in precedenza. È ovvio che si possano avere molteplici livelli di restituzione a seconda delle caratteristiche che si vogliono esaminare e dei mezzi che si hanno a disposizione (hardware e software). Il metodo più diffuso d analisi dei dati consiste nel prendere in considerazione le varie slice bidimensionali ottenute ed analizzarle come se fossero radiografie. Risultati migliori si possono ottenere ricostruendo viste tridimensionali dei dati, interagendo con il modello, eventualmente ricorrendo alla visione stereoscopica o generando animazioni. Una comprensione ancora più approfondita si può avere ricorrendo a tecniche ancor più sofisticate come la simulazione d operazioni complesse sui dati o la visione ad immersione completa (realtà virtuale). I.4.1 Filtraggio e Ristrutturazione La prima fase di trattamento delle immagini consiste, come generalmente avviene in caso di post-processing di immagini digitali,nell eliminazione dalle immagini, per quanto possibile, del rumore introdotto dai macchinari di acquisizione. Nel caso di immagini medicali si ha un ulteriore problema dato che il soggetto analizzato è un organismo vivente e quindi, durante il periodo di acquisizione (che può durare alcuni minuti), pur con tutti gli accorgimenti adottati per assicurare l'immobilità, modifica la sua forma. Questo, ad esempio, è uno dei motivi per cui la maggior parte delle ricerche condotte sino ad oggi in questo campo si sono concentrate sul fornire ausilio alla chirurgia ortopedica o alla neurochirurgia; quando si tratta, infatti, di effettuare analisi su ossa o sul cranio e sul suo contenuto si hanno disturbi scarsi o nulli dovuti al movimento del paziente. Una soluzione a questi problemi può venire dalla velocità dei macchinari d acquisizione. La riduzione a pochi secondi del tempo di 13

23 CAPITOLO I DIAGNOSTICA PER IMMAGINI scansione potrebbe, infatti, consentire di acquisire un intero volume di dati mentre il paziente trattiene il respiro (come avviene usualmente per una radiografia). I Registrazione La registrazione è il processo che consente di determinare una corrispondenza tra dati non omogenei. Qualora le immagini presentino problemi d allineamento, dovuti a movimenti del paziente o a tecniche di digitalizzazione manuali, si rende necessario un passo preliminare di image registration [ART1] e [REGIST], per il quale sono oggi disponibili programmi automatici o semiautomatici. Questo procedimento si avvale prevalentemente di algoritmi di tipo optical flow (features tracking) [LR] o mutua informazione [MBR]. La registrazione può rappresentare un processo costoso in termini di complessità computazionale. Alcuni sistemi mettono a disposizione tecniche di multiresolution registration ampiamente utilizzate per migliore l'accuratezza e per ottimizzare la resa del risultato finale del processo di registrazione. Con tale tecnica, gli algoritmi di registrazione sono eseguiti dapprima nei punti in cui l'immagine presenta un minore numero di pixel significativi, con un livello di accuratezza molto basso ei passi di elaborazione sono iterati fino a raggiungere il massimo livello di dettaglio là dove l'immagine presenta un numero maggiore di pixel significativi. Volendo dare una definizione più generale di registrazione possiamo descriverla come l applicazione di una trasformazione ad un entità tale che alcune delle sue proprietà diventino congruenti con quelle di un entità di riferimento. Le principali applicazioni nell ambito biomedico riguardano: registrazione di dati di uno stesso paziente acquisite mediante modalità diverse (Multi Modality Image Registration); 14

24 CAPITOLO I DIAGNOSTICA PER IMMAGINI registrazione di dati relativi a pazienti diversi oppure di dati acquisiti in età diverse di uno stesso paziente; registrazione funzionale alla segmentazione, che prevede la registrazione con un atlante, cioè un insieme di dati più esteso e standardizzato che può contenere informazioni riguardo la funzionalità o la topologia dei vari organi. Come esposto in [MBR] è conveniente pensare la registrazione come il moto di un insieme di dati verso l altro, in questo modo possiamo classificare le varie tecniche in base a due fattori: il tipo di moto che determina quali trasformazioni sono permesse e il potenziale d attrazione che indica da quali forze il moto è guidato. Una volta che l'insieme di dati è stato ripulito, riallineato e le varie slice sono state più o meno omogeneizzate tra di loro, si passa alla seconda fase del processo che comporta ancora l'applicazione di tecniche di elaborazione dell'immagine: la classificazione dell'immagine. I.4.2 Classificazione Per classificazione s intende la suddivisione dell'immagine in regioni tra loro omogenee, secondo parametri che sono stabiliti da chi la esegue. Per fare un esempio che renda l'idea del procedimento, s immagini di avere una fetta bidimensionale di un cranio, all'interno dell'immagine si possono riconoscere, in una situazione non patologica,una serie di tessuti che variano dalla pelle, alle ossa, al grasso, alla materia grigia ed alla materia bianca, per non parlare di tessuti che sono più difficilmente classificabili, come i vasi sanguigni ed il tessuto connettivo, perché presenti in agglomerati di dimensioni molto piccole. I Segmentazione Il procedimento di segmentazione è la prima fase della classificazione e consiste nel suddividere l'immagine in una serie di 15

25 CAPITOLO I DIAGNOSTICA PER IMMAGINI regioni primitive tra loro topologicamente connesse, la fase successiva consiste nel catalogare ogni singola regione ed accorpare tra loro quelle che corrispondono allo stesso tessuto. In Figura 4 si può vedere l'immagine originale ottenuta da CT, la stessa immagine dopo che è stata segmentata dando origine a 32 regioni primitive e l'immagine classificata dove le regioni sono ridotte a 3: aria, osso ed altri tessuti. Figura 4 Processo di classificazione Il procedimento di segmentazione è molto importante per almeno due motivi. In primo luogo, permettendo di individuare regioni omogenee, consente di effettuare con estrema facilità delle misurazioni morfometriche altrimenti estremamente complesse; si pensi, ad esempio, alla possibilità di calcolare, con ragionevole precisione, il volume di una massa tumorale a partire da dati tridimensionali ed a quanto ciò possa essere d ausilio alla pianificazione della terapia radiante o di un intervento chirurgico. In secondo luogo consente di classificare i dati a disposizione in maniera tale che siano più facilmente utilizzabili nel seguito. Allo stato dell'arte esistono molteplici metodi che consentono di ottenere i risultati mostrati. Si possono suddividere in tre categorie: manuali, semi-automatici ed automatici. La prima categoria include tutte quelle tecniche, dove l utente non è assistito, in alcun modo, durante il processo di segmentazione: è lui stesso che deve marcare le differenti ROI con il mouse o altri dispositivi. 16

26 CAPITOLO I DIAGNOSTICA PER IMMAGINI La seconda categoria contempla, invece, tutti quegli algoritmi che aiutano l utente durante il processo di segmentazione. Per esempio,l utente marca dei punti significativi nell immagine che sa appartenere a regioni differenti ed è poi il processo di segmentazione, in modo automatico, a trovare nuovi punti, partendo da quelli selezionati manualmente. Della terza categoria fanno, invece, parte tutte quelle tecniche che non richiedono un particolare input da parte dell utente. Un processo di segmentazione totalmente automatico generalmente deve avere delle conoscenze circa le strutture presenti nell immagine, questo perché un computer non ha idea di quello che sta vedendo. Un criterio per eseguire un processo di segmentazione automatico, è quello che si basa sulla selezione dei livelli di grigio anziché sulla topologia o la disposizione spaziale dei punti. Nei casi di difficile interpretazione sono utilizzati i metodi manuali,altrimenti si utilizzano i semi-automatici, che sono i preferiti, perché molto sicuri (è difficile per un programma fare errori se si richiede di colorare un pixel selezionato) e semplici da comprendere ed utilizzare rispetto ai metodi automatici, ancora estremamente fragili. Le tecniche di segmentazione possono essere suddivise in due categorie: Tecniche di estrazione di regioni (ossa, parti molli, ecc.): sfogliatura (threshold) e region growing. Tecniche di estrazione di contorni: marching cubes, modelli deformabili snakes, modelli deformabili baloon. La sogliatura è un operazione di selezione in base ai toni di grigio. Il risultato è un immagine binaria composta di regioni e produce deibuoni risultati quando l oggetto d interesse è separato dallo sfondo dell immagine. Il principale svantaggio, di tale tecnica di segmentazione, è la mancanza di un possibile adattamento locale. Sono rari i casi in cui il metodo del thresholding fornisce dei risultati ottimali; 17

27 CAPITOLO I DIAGNOSTICA PER IMMAGINI per questa ragione in genere è richiesta una successiva elaborazione dell immagine, elaborazione che tipicamente fa uso di algoritmi matematici di morfologia come erosione e dilatazione [HASSAN] e [LAVAG]. Il region growing è una tecnica che prende in considerazione le caratteristiche dell'immagine per raggruppare i voxel e formare regioni secondo un criterio d omogeneità. Partendo da alcune regioni iniziali (fase di suddivisione), queste sono fuse (fase di fusione) per costituire regioni più estese, fino a quando il procedimento è possibile. Questi metodi forniscono una regione chiusa e di conseguenza un contorno chiuso. Il loro problema è la difficile implementazione [CHANG] e [ZAMP]. Il marching cubes è una tecnica per la costruzione di iso-superfici 3D. L'algoritmo originale è stato proposto da Lorensen e Cline [LOR] e prevede due passi: 1. s individua la superficie corrispondente ad un determinato valore e si creano i triangoli; 2. per assicurare la qualità dell'immagine si calcolano le normali alla superficie nei vertici di ogni triangolo, in modo da poter applicare, ad esempio, un gouraud shading 7. La strategia complessiva è di tipo divide et impera. Dapprima si localizza la superficie in un cubo logico di otto voxel, presi a gruppi di quattro da due slices adiacenti, poi si determina come la superficie interseca il cubo e poi si passa al successivo. Dato che ci sono otto vertici per ogni cubo e due stati (interno ed esterno) esistono 256 possibilità che sono codificate in un'apposita tavola. In realtà i casi base sono 14 e i restanti costituiscono permutazioni ottenibili per simmetria e rotazione. Si arriva ad una triangolazione all'interno di ciascun cubo e si applica 7 Gouraud Shading: consiste nell applicare il modello di illuminazione scelto sui vertici di ogni poligono costituente la scena per eliminare le discontinuità. In opposizione al Flat Shading, che consiste nell applicare il modello di illuminazione scelto una volta per ogni poligono costituente la scena. 18

28 CAPITOLO I DIAGNOSTICA PER IMMAGINI un'interpolazione lineare per trovare le intersezioni della superficie sugli spigoli. Le snakes sono state introdotte da Kass [KASS] per modellare e segmentare oggetti in immagini 2D. Appartengono ad una classe di modelli deformabili in cui si cerca di minimizzare una funzione energia associata. Il successo della segmentazione attraverso le snakes è limitato dalla sensibilità dell algoritmo nei confronti del rumore e delle condizioni iniziali: ciò è dovuto principalmente alle ottimizzazioni locali che spesso impediscono di trovare il minimo globale dell energia, e all approssimazione poligonale discreta per i contorni. Il balloon, proposto da Choen [COHEN], consiste in una geometria da deformare fino a coincidere con la superficie di un oggetto, ad esempio l'approssimazione poligonale di una sfera. Il comportamento desiderato del modello è determinato dal costo locale di una funzione associata a ciascun vertice e determinata dalla somma di tre termini: un potenziale di deformazione che espande i vertici verso la superficie dell oggetto, un termine immagine che identifica proprietà come i contorni e si oppone all espansione, e un termine che mantiene la topologia del modello costringendo ogni vertice a rimanere al centro dei suoi vicini. Tale modello fu in seguito esteso da Terzopoulos et al. [TERZ] per la ricostruzione di oggetti tridimensionali. Per approfondimenti si consiglia la lettura di [MIL], in cui questo procedimento è applicato ad un volume 3D di dati TAC. I.4.3 Ricostruzione e visualizzazione 3D Una volta filtrati e classificati i dati, si procede alla loro ricostruzione e visualizzazione in tre dimensioni. Le tecniche di visualizzazione tridimensionale sono state studiate a fondo nel campo delle applicazioni mediche e il loro impiego come ausilio clinico è ormai consolidato. Maggiori informazioni si possono trovare in [BIA]. In genere, si ricorre alla seguente classificazione: 19

29 CAPITOLO I DIAGNOSTICA PER IMMAGINI Estrazione di Isosuperfici: utilizzano poligoni o superfici curve come rappresentazione intermedia della superficie di interesse; Classificazione Binaria dei Voxel: si basano sulla suddivisione del volume in cubi opachi o trasparenti, oppure di poligoni chedefiniscono le facce dei cubi; Direct Volume Rendering: Modellano l'apparenza di una gelatina semi-trasparente utilizzando le leggi dell'ottica per simulare l'andamento dei raggi di luce all'interno del volume. I Estrazione di Isosuperfici Questo insieme di tecniche è caratterizzato dall applicazione di metodi per l'estrazione di una superficie dall'insieme di dati tridimensionale, e per la trasformazione di tale superficie in primitive geometriche da restituire, poi, graficamente. La prima di queste tecniche ad essere stata applicata è stata la ricostruzione di isosuperfici a partire da isolinee in un insieme di piani paralleli. Si tratta poi di costruire delle griglie di poligoni che congiungano isolinee di piani presi a due a due in maniera tale da formare una superficie connessa. Un'evoluzione importante si è avuta con l'introduzione della tecnica nota come marching cubes, analizzata nel paragrafo precedente. Questa tecnica risolve molte delle ambiguità insite nel metodo precedente ed è quella oggi più diffusamente impiegata nella ricostruzione di iso-supefici. Il vantaggio principale di questo tipo di tecniche è rappresentato dalla possibilità che danno di sfruttare a pieno le risorse hardware delle workstation grafiche, che sono progettate per visualizzare in maniera estremamente efficiente delle primitive geometriche quali punti, linee, poligoni, etc. Ovviamente esse risentono delle limitazioni insite nella necessità di dover interpolare dati da un grigliato discreto, risultando talvolta inefficienti in presenza di insiemi di dati contenenti un alto livello di rumore numerico o con campionamento non adeguato. 20

30 CAPITOLO I DIAGNOSTICA PER IMMAGINI I Classificazione Binaria dei Voxel Queste tecniche (comunemente note con il nome di cuberille) consistono nella classificazione del dataset in maniera binaria, ovvero nella suddivisione dei voxel in quelli che contengono una porzione della materia che interessa e quelli che non la contengono. La tecnica cuberille vera e propria, genera un insieme di cubi (delle dimensioni del voxel) opachi per ognuno dei voxel classificato pieno. Tali cubetti sono poi resi dal più distante al più vicino all'osservatore in maniera da eliminare automaticamente le superfici nascoste. Un'evoluzione della tecnica, che permette un notevole aumento della velocità d esecuzione, parte dal principio inverso di lanciare un raggio per ogni pixel e fermarsi non appena si trova un cubo opaco. In questo caso si può anche ottenere un miglioramento della qualità della scena finale analizzando in ogni voxel il gradiente del campo. Pur essendo relativamente facili da implementare, queste tecniche risentono, come nel caso di estrazione di iso-superfici, della difficoltà di campionare esattamente in maniera binaria il dataset volumetrico. I Direct Volume Rendering In letteratura con il termine Direct Volume Rendering è individuata una famiglia di metodi per visualizzare in modo diretto campi scalari tridimensionali. Dal punto di vista generale queste tecniche generano le immagini finali associando a ciascun voxel un colore ed un opacità parziale e,successivamente, miscelando ( blending) assieme i vari contributi, di colore e opacità, resi dai voxel proiettati sullo stesso pixel del piano immagine. Queste proiezioni possono essere eseguite sia in image-order (raycasting) che in object-order (splatting). Il modello fisico su cui si basano le tecniche Direct VolumeRendering è quello di una gelatina colorata semi-trasparente che mantiene in sospensione delle particelle riflettive allineate in modo tale da dare 21

31 CAPITOLO I DIAGNOSTICA PER IMMAGINI l'apparenza delle superfici racchiuse. Drebin [DREBIN] fu uno dei primi ad utilizzare questo tipo di metodo per visualizzare dati volumetrici medicali. La tecnica proposta consiste nello stimare la frazione di occupazione in un voxel per ciascun materiale che dovrebbe essere presente all'interno del voxel stesso. Da queste informazioni è possibile calcolare un colore ed un opacità parziale per ciascun voxel, trasformando geometricamente ciascuna slice di valori dallo spazio oggetto allo spazio immagine proiettandolo sul piano immagine e miscelando assieme con le porzioni formate dalle precedenti slice. Altre interessanti tecniche sono state proposte da Upson e Keeler [UPSKEEL] e Levoy [LEVOY]. Un dato comune le caratterizza: tutte eseguono l'operazione di blending (cioè la miscelazione dei colori) utilizzando l'algebra per la composizione delle immagini proposta da Porter e Duff [PORDUF] producendo globalmente delle immagini simili. Il principale problema di queste tecniche è l'alto costo computazionale che le rende al momento impraticabili per la visualizzazione interattiva. I.4.4 Visualizzazione finale La fase finale del processo di trattamento dei dati consiste nella loro effettiva presentazione all'utente. Per far questo si deve tener presente di quali sono le risorse che l'utente ha a disposizione per vedere i dati. Se possiede solo una workstation con limitate risorse di hardware grafico, probabilmente si limiterà a visualizzare immagini bidimensionali, eventualmente istantanee di una scena tridimensionale. Se é dotato di risorse grafiche più potenti potrà cercare di avere una sessione interattiva con il modello tridimensionale, generato da un programma di estrazione di isosuperfici, che gli permetta di cambiare il punto di vista, le dimensioni dell'oggetto ed eventualmente operare delle operazioni di selezione, tagliando e modificando l'apparenza. Se invece non ha a disposizione hardware grafico potente, ma, comunque, risorse 22

32 CAPITOLO I DIAGNOSTICA PER IMMAGINI di calcolo adeguate (magari collegandosi in rete con supercalcolatori remoti), sarà più facile ottenere dei buoni risultati usando delle tecniche di visualizzazione diretta. Risultati ancora più significativi si possono avere se si hanno a disposizione dei dispositivi specializzati, come ad esempio degli occhiali a cristalli liquidi che permettono di avere una visione stereoscopica della scena tridimensionale. Ancora più sofisticati possono essere dei dispositivi, come l'head Mounted Display, che permettono di immergersi nei dati ottenendo l'effetto noto come realtà virtuale. I.5 Software per l analisi di immagini medicali su tablet In questa sezione verranno presi in considerazioni solo alcuni fra i migliori software odierni per l analisi e l elaborazione di immagini medicali su tablet, i cui display, si ricorda, essendo sprovvisti della certificazione appropriata, non sono idonei alla refertazione medica. In particolare, si presenteranno applicazioni per Apple IOS 8 e Android 9. L applicazione Osirix HD, disponibile per ios, anche se non è adatta ad un uso professionale, è da considerarsi per certi versi uno dei software di riferimento per il settore mobile e, per questo motivo, verrà trattata in maniera più ampia. Successivamente si descriveranno brevemente le applicazioni ENDEAVOR Mobile 3.0 e LEADTOOLS DICOM Viewer disponibili rispettivamente per Android e Windows 8. Osirix HD OsiriX HD è un visualizzatore di immagini medicali per il sistema operativo Apple ios. Questa piattaforma permette il download, la 8 ios (precedentemente iphone OS) è un sistema operativo sviluppato da Apple per iphone, ipod touch e ipad. Come Mac OS X è una derivazione di UNIX (famiglia BSD) e usa un microkernel XNU Mach basato su Darwin OS. 9 Android è un sistema operativo sviluppato da Google (ma ancora prima dalla Android Inc.) e lanciato per la prima volta nel Diversamente dai sistemi concorrenti principali, come ios (Apple) e Windows Phone (Microsoft), Android poggia le basi su una struttura open-source, presa a piene mani dal sistema Linux. 23

33 CAPITOLO I DIAGNOSTICA PER IMMAGINI visualizzazione e la manipolazione direttamente sul dispositivo di serie di immagini provenienti da ogni tipo di sorgente (ecografia, TAC, RMN, PET, ecc.) nel formato standard DICOM. Sono supportati diversi protocolli di rete tramite i quali è possibile ricevere immagini da qualsiasi dispositivo di imaging che utilizzi tale standard. Integrati nel sistema, sono disponibili strumenti di manipolazione delle immagini medicali veloci ed interattivi come lo zoom, il pan e la regolazione del contrasto delle immagini attraverso l'interfaccia touchscreen multipoint. Questa applicazione può essere utilizzata anche come supporto per altre applicazioni ios in quanto permette di leggere DICOM dataset ricevuti in messaggi di posta elettronica, in Safari 10 o memorizzati in una cartella Dropbox 11. Inoltre, supporta il protocollo URL built-in OsiriX per l integrazione in HIS 12, RIS 13 o in un ambiente PACS 14 [OSIRIXHD]. Figura 5 Splash screen di Osirix HD 10 Safari è un browser web sviluppato da Apple Inc. per il sistema operativo Mac OS X, ios e, tra il 2007 e il 2012, reso disponibile in versioni aggiornate anche per Windows. 11 Dropbox è un software di cloud storage multipiattaforma, che offre un servizio di file hosting e sincronizzazione automatica di file tramite web. Il programma è disponibile per Windows, Mac OS X, Linux, ios, BlackBerry OS e Android. 12 HIS (Hospital Information System) è l'insieme integrato di strumenti informatici utilizzati in ambito sanitario per gestire i flussi amministrativi e clinici di un ospedale. 13 RIS (Radiology Information System) è un sistema informatico radiologico utilizzato per gestire il flusso dei dati legati ai pazienti. 14 PACS (Picture archiving and communication system) è un sistema hardware e software dedicato all'archiviazione, trasmissione, visualizzazione e stampa delle immagini diagnostiche digitali. 24

34 CAPITOLO I DIAGNOSTICA PER IMMAGINI Questa applicazione è priva di certificazioni appropriate e quindi non è adatta ad un uso professionale. Le caratteristiche tecniche permettono comunque un ottima visualizzazione delle immagini TC e RM mentre qualche limite si avverte con le immagini CR e DR non tanto per la risoluzione di 3MP (che corrisponde a quella dei monitor medicali), ma per la dimensione delle immagini che obbliga ad effettuare frequenti zoom. Dalle impostazioni di ios si può accedere al setup di Osirix HD inserendo i parametri di comunicazione con il PACS oppure attivare il protocollo Bonjour per lo scambio di immagini con la versione di Osirix per Mac. Figura 6 Osirix HD: setup La schermata principale all avvio di OsiriX HD è relativa alla sezione Database ed è divisa in due frame; in quello di sinistra sono elencati i nomi dei pazienti, mentre in quello di destra, che occupa i tre quarti dello schermo, sono visualizzati i dati anagrafici e le serie delle immagini dell esame. In questa disposizione grafica si può riconoscere una realizzazione del design pattern split view. Questo è un approccio progettuale che viene spesso utilizzato su molte applicazioni desktop e web e prevede che, mentre sul lato sinistro dello schermo siano visualizzate le categorie di livello superiore, sul lato destro sia mostrata una scheda dettagliata della selezione effettuata. 25

35 CAPITOLO I DIAGNOSTICA PER IMMAGINI Figura 7 Osirix HD: schermata principale Accedendo alla sezione Viewer dalla toolbar inferiore è possibile visualizzare le immagini. Le icone della toolbar superiore servono da sinistra verso destra per scegliere la serie da visualizzare, il formato di visualizzazione (1:1 o 2:1) e i valori window level e window width, per ruotare l immagine, effettuare misure lineari, creare una ROI circolare, visualizzare i Metadati e inviare immagini ai nodi DICOM. Figura 8 Osirix HD: sezione Viewer 26

36 CAPITOLO I DIAGNOSTICA PER IMMAGINI La sezione Q&R (Query&Retrieve) della toolbar inferiore consente di recuperare esami dai nodi DICOM tramite il protocollo bonjour oppure preconfigurati mediante il tasto modifica della toolbar superiore. Figura 9 Osirix HD: sezione Q&R La ricerca di un esame può avvenire secondo i seguenti Tag DICOM: paziente, # acc., descrizione, ID paziente, ref physician, institution, nascita, modalità, data. Figura 10 Osirix HD: ricerca di esami in PACS Infine la sezione Aiuto? contiene un breve manuale localizzato in italiano molto efficace [OSIRIXHDIT]. 27

37 CAPITOLO I DIAGNOSTICA PER IMMAGINI ENDEAVOR Mobile 3.0 ENDEAVOR Mobile 3.0 è una piattaforma teleradiografica per android creata da Computer Vision Research Group USM. Questa vanta una serie di funzioni avanzate per la diagnostica per immagini e, rispetto alla versione originale per desktop, offre un'interfaccia utente completamente ridisegnata per il touch. Figura 11 ENDEAVOR Mobile 3.0: splash screen e voice dictation report Questa applicazione consente agli utenti di recuperare, archiviare e visualizzare immagini mediche (TAC, PET, MR, raggi X, ecc.), direttamente sui dispositivi Android. L applicazione ENDEAVOR Mobile 3.0 include le seguenti funzionalità: Un avanzato DICOM Viewer integrato Capacità di raccolta di immagini centralizzata Strumenti di annotazione standard Strumenti di manipolazione delle immagini medicali come lo scrolling, il panning e lo zoom attraverso l'interfaccia touchscreen multipoint. Capacità di Window Level Modalità di visualizzazione CLUT Visualizzazione dettagliata dei metadati DICOM Reporting a dettatura vocale 28

38 CAPITOLO I DIAGNOSTICA PER IMMAGINI Accesso ai PAC Live Collaboration Technology (Collaborative Annotation) Download e upload di immagini dal Box cloud storage Figura 12 ENDEAVOR Mobile 3.0: PACS e DICOM Viewer Una grossa limitazione di questo software è dovuta al mancato supporto per le immagini DICOM non compresse. LEADTOOLS DICOM Viewer L'applicazione LEADTOOLS DICOM Viewer è un visualizzatore di immagini DICOM disponibile per Windows 8. Questa può essere utilizzata non solo per visualizzare, ma anche per modificare, annotare e salvare immagini DICOM. Figura 13 LEADTOOLS DICOM Viewer: strumenti (1) 29

39 CAPITOLO I DIAGNOSTICA PER IMMAGINI Questa applicazione è costruita utilizzando il LEADTOOLS Medical Imaging SDK e rappresenta una delle applicazioni di esempio che vengono fornite ai programmatori. Le applicazioni di esempio LEADTOOLS si pongono l obiettivo di mostrare agli sviluppatori alcune delle capacità che possono integrare nelle proprie applicazioni. Figura 14 LEADTOOLS DICOM Viewer: strumenti (2) L'applicazione LEADTOOLS DICOM Viewer include le seguenti funzionalità: Visualizzare i file DICOM (immagini e metadati) Eseguire il Window Leveling Visualizzare e modificare i metadati DICOM (tag) Creare, visualizzare e salvare annotazioni di immagine Salvare file DICOM Visualizzare riproduzioni CINE (per le immagini a fotogrammi multipli) I.6 Attività di ricerca presso il CNR In questa sezione posta al termine di questo primo capitolo, si descriveranno alcune delle attività di ricerca del CNR di interesse per lo studio e la definizione di questo scritto. 30

40 CAPITOLO I DIAGNOSTICA PER IMMAGINI Il mio progetto, come già annunciato, si pone all interno del settore di ricerca di supporto alla diagnostica per immagini dell ICAR CNR. In questo settore sono molteplici le attività di interesse e ne verranno descritte alcune solo in minima parte. Della necessità di disporre di un ambiente software Open Source e Cross Platform per l analisi e l elaborazione avanzata di immagini medicali nasce la piattaforma MITO (Medical Imaging TOolkit) che sarà il tema centrale del Capitolo II in cui verrà ampiamente trattata. Questa piattaforma si pone all avanguardia nel suo settore per diversi aspetti e funzionalità in fase di sviluppo ed integrazione. Oltre ad offrire sofisticati strumenti per la gestione di dataset DICOM, per l interazione con un sistema PACS e l elaborazione di immagini in due dimensioni, offre anche Tecniche di ricostruzione 3D (Ray Casting, Maximum Intensity Projection, Surface Rendering) e funzionalità in realtà virtuale. In questo ambito, infatti, è stata sviluppata un interfaccia di controllo avanzata che fa uso del Nintendo Wiimote 15 come dispositivo di input e funziona in diverse modalità. Figura 15 Interfaccia Wiimote: uni-modal 15 Wiimote è il controller senza fili, il cui nome è formato da una crasi di Wii e Remote della console pre videogiochi Wii, prodotta dall azienda Nintendo 31

41 CAPITOLO I DIAGNOSTICA PER IMMAGINI Figura 16 Interfaccia Wiimote: multi-modal Un altra interfaccia di controllo avanzata che è stata sviluppata fa uso di un Data Glove 16 come dispositivo di input ed è gesture-based (basata su gesture). Figura 17 Interfaccia gesture-based: Data Glove Uno degli obiettivi della ricerca inerente allo sviluppo della piattaforma MITO è quello di analizzare e sviluppare interfacce gestuali evolute per l interazione touchless. In questo modo è possibile un esplorazione pratica ed efficiente dei dati nelle sale operatorie mediante un'interfaccia senza controller. 16 Data Glove è un dispositivo di input per l' interazione uomo-computer indossato come un guanto 32

42 CAPITOLO I DIAGNOSTICA PER IMMAGINI Figura 18 Sala operatoria informatizzata Questa tecnologia è in grado di ridurre notevolmente la durata dell'operazione eliminando i tempi relativi al lavaggio necessario per accedere al computer in modo sicuro. La pulizia per prevenire la contaminazione batterica dopo aver utilizzato un computer può richiedere fino a 20 minuti. A volte può aggiungere un'ora intera all operazione. I chirurghi, non potendo lasciare il campo sterile attorno al paziente, hanno bisogno di visualizzare immagini mediche senza dover toccare fisicamente alcun controllo [LAW]. È stata sviluppata un interfaccia gesture-based che fa uso di Microsoft Xbox Kinect 17 come unico dispositivo di input. Quest ultimo è adatto per l'utilizzo in sale operatorie poiché l'interfaccia utente che ne deriva è touch-free e non richiede passi di calibrazione complessi. Figura 19 Interfaccia gesture-based: touchless 17 Microsoft Kinect è un accessorio per Xbox 360 sensibile al movimento del corpo umano 33

43 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Capitolo II MITO Medical Imaging TOolkit In questo capitolo verrà presentato il software MITO (Medical Imaging TOlkit) e saranno illustrate le sue funzionalità. Successivamente, dopo una breve descrizione dei vantaggi dell utilizzo di software Open Source e Cross Platform, saranno introdotte le librerie utilizzate per la gestione della GUI e della logica di interfacciamento del software: ITK per l elaborazione delle immagini, VTK per la visualizzazione e wxwidgets per la creazione dell interfaccia grafica. Verranno poi analizzate diverse strategie implementative per il porting su dispositivi mobile e l implementazione di interazioni touch. Per approfondimenti consultare [VTK], [VTKWEB], [ITK] e [ITKpdf] II.1 Introduzione MITO (Medical Imaging TOolkit) è un ambiente software evoluto designato per la visualizzazione e la navigazione di immagini biomedicali. (quali CT, MRI, PET, ). La piattaforma vanta numerose capacità innovative fra cui l elaborazione di modelli tridimensionali per la creazione di una realtà virtuale immersiva. Oltre a gestire un album, consente l anonimizzazione di uno studio e la comunicazione con un sistema PACS attraverso il protocollo DICOM per scaricare ed inviare immagini biomedicali. Il software offre un sofisticato set di funzionalità per l image processing come la selezione ed estrazione di ROI (Region Of Interest), la segmentazione (Region Growing), la fusione di immagini multimodali e la ricostruzione tridimensionale. Molte funzionalità implementate su questa piattaforma non sono presenti in noti ambienti quali OsiriX (un infrastruttura MAC-based). 34

44 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Dopo aver presentato l architettura del software, si analizzeranno i diversi moduli integrati nel sistema. II.2 Architettura software L architettura di MITO (Medical Imaging TOolkit) è costituita da un variegato set di componenti Open Source e Cross Platform. Le numerose librerie per la gestione e la visualizzazione di immagini medicali sono state integrate con la libreria per la creazione dell interfaccia grafica wxwidgets che si occupa della gestione degli eventi. Figura 20 Architettura di MITO Al fine di presentare la piattaforma si riporta una breve descrizione di ciascun componente software: wxwidgets: libreria di alto livello per la gestione di interfacce grafiche; VTK (Visualization ToolKit): libreria di alto livello per la visualizzazione grafica e l image processing; ITK (Insight ToolKit): libreria di alto livello che implementa algoritmi di registrazione e segmentazione; IJG JPEG: libreria di alto livello per la conversione di immagini DICOM in formato JPEG CTN: libreria di alto livello per la gestione dell interazione con i sistemi PACS 35

45 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT OpenGL (Open Graphic Library): ambiente per lo sviluppo di applicazioni grafiche 2D e 3D 18. La libreria di basso livello consente, inoltre, di sfruttare l accelerazione hardware delle schede grafiche, che implementano funzionalità per il rendering 19 real-time 3D e compatibili con tale standard; II.3 Analisi delle funzionalità La piattaforma MITO vanta un considerevole numero di funzionalità che possono essere suddivise in diverse categorie. Le funzionalità base, accessibili dalla finestra principale, sono le seguenti: Caricamento/Salvataggio di studi DICOM Gestione di un album per la memorizzazione di studi aperti di recente Anonimizzazione di studi DICOM L interazione con un sistema PACS è gestita da alcune finestre dialog che permettono di effettuare queste operazioni: Send (Invio di immagini DICOM) Query/Retrieve (Interrogazione e recupero di immagini DICOM relative ad un particolare paziente/studio) All interno del Viewer 2D sono disponibili alcune funzionalità avanzate per l image processing: Interazione con un immagine (modifica window level/window width, traslazione, zoom, rotazione) Selezione ed estrazione di ROI (Region Of Interest) 18 Le OpenGL 3D consentono di realizzare applicazioni per la visualizzazione di una scena 3D. Quest'ultima contiene gli insiemi di dati che rappresentano gli oggetti tridimensionali e i dati relativi alle loro illuminazione e posizione rispetto all'osservatore [OPGL] 19 Processo di generazione di un'immagine a partire da una descrizione di un insieme di oggetti tridimensionali (scena tridimensionale). La descrizione è data in un linguaggio o in una struttura dati definiti rigorosamente e deve contenere la geometria, il punto di vista, le informazioni sulla mappatura delle superfici visibili e sull illuminazione. L'immagine è una immagine digitale; essa fornisce l'aspetto finale al modello o all'animazione illuminazione. 36

46 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Segmentazione (Region Growing) Fusione di più immagini multimodali (CT/PET, MRI/PET, ) Le funzionalità 3D sono accessibili mediante le finestre dedicate alla ricostruzione delle immagini e sono le seguenti: Tecniche di ricostruzione 3D (Ray Casting, Maximum Intensity Projection, Surface Rendering) Interazione con un volume (modifica window level/window width, traslazione, zoom, rotazione in senso orario e lungo i tre assi, applicazione di una CLUT) Selezione di VOI (Volume Of Interest) Infine, sono disponibili funzionalità per la realtà virtuale: Stereoscopia (Anaglifo, Polarizzazione passiva e attiva) Interazione con il volume stereoscopico attraverso uno o più dispositivi Wii Interazione con il volume stereoscopico attraverso Microsoft Xbox Kinect II.3.1 Funzionalità base L interfaccia utente principale è divisa in diverse sezioni. Nella parte superiore, dopo la barra del menù, è presente una toolbar che da accesso agli strumenti principali. Fra questi si trovano le funzioni import file, import study, export, anonymize, query, send, image fusion, 2D Viewer, Direct Volume Rendering, Indirect Volume Rendering e delete. Subito sotto si trova un album locale che consente di caricare studi DICOM presenti sul computer o precedentemente scaricati da un PACS. Nello stesso pannello è presente un viewer per visualizzare in anteprima le immagini e le thumbnails 20 relative alla serie selezionata. 20 Thumbnail (dalla parola dell'inglese per "miniatura") è il termine che viene usato normalmente in informatica per definire un'anteprima di un'immagine più grande, che quindi viene presentata in formato ridotto. Solitamente, cliccando sull'anteprima, attraverso un link verso l'immagine più grande, questa verrà visualizzata nelle sue dimensioni reali. 37

47 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Figura 21 MITO: interfaccia utente principale La dialog realtiva all anonimizzazione offre la possibilità di scegliere quali metadati DICOM modificare e di impostarli secondo le nuove esigenze. Successivamente, è possibile salvare uno studio con le nuove informazioni. Figura 22 MITO: anonymize 38

48 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT II.3.2 Funzionalità per l interazione con un sistema PACS Apposite interfacce utente consentono la comunicazione con i sistemi PACS. Si possono richiedere informazioni relative ad uno studio effettuato da un paziente e scaricare immagini DICOM tramite la dialog PACS Query/Retrieve. Figura 23 MITO: dialog PACS Query/Retrieve La dialog Send to Pacs consente di scegliere una serie o un immagine DICOM singola e di inviarla ad un PACS. Figura 24 MITO: dialog Send to PACS 39

49 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT II.3.3 Funzionalità 2D Dopo aver caricato uno studio, all interno del 2D Viewer è possibile visualizzare una slice ed interagire con essa attraverso operazioni di rotazione, traslazione, zoom e modifica del contrasto e della luminosità (window level/window width). Figura 25 MITO: 2D Viewer Per la definizione di una ROI (Region Of Interest) MITO consente di effettuare 2 tipi di misurazioni su una slice: Lunghezza di un segmento Angolo di un arco E altresì possibile selezionare ed estrarre regioni di interesse di una slice di forma rettangolare, poligonale chiusa o disegnate a mano libera. La piattaforma MITO comprende 3 tecniche di segmentazione appartenenti alla famiglia di algoritmi Region Growing: Connected Threshold A partire da un seme iniziale, vengono considerati tutti i pixel la cui intensità è compresa tra un limite inferiore ed uno superiore Neighborhood Connected 40

50 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT E una variante del precedente: vengono considerati tutti i pixel il cui vicinato ha un intensità che cade in un intervallo specificato Confidence Connected Specificato un moltiplicatore f e calcolati la media m e la deviazione standard dei pixel dell immagine, vengono considerati tutti i pixel la cui intensità appartiene all intervallo [m-f,m+f ] Due immagini multimodali (CT/PET, MRI/PET, ) possono essere fuse in un unica immagine secondo 2 differenti approcci: Combinazione aritmetica La regola di fusione consiste in una media pesata dei pixel Combinazione basata su Wavelet Le trasformate Wavelet scompongono un immagine in componenti a bassa frequenza (approssimazioni) e ad alta frequenza (dettagli) che possono essere analizzate e combinate indipendentemente Sono state implementate 3 differenti regole di fusione Figura 26 MITO: regole di fusione Attraverso un interfaccia grafica un utente può scegliere quale algoritmo applicare. E inoltre possibile colorare una delle due immagini di partenza applicando una CLUT (Colour Look-Up Table). 41

51 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Figura 27 MITO: dialog Image Fusion Settings Il processo di image fusion descritto è illustrato in figura 26. A partire da due immagini multimodali viene creata una terza che corrisponde alla loro fusione. Questa funzione utilizza l interfaccia grafica del 2D Viewer per la visualizzazione e la navigazione del risultato ottenuto. Figura 28 MITO: processo di image fusion 42

52 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT II.3.4 Funzionalità 3D Le ricostruzioni 3D di studi bidimensionali possono essere ottenute attraverso 2 approcci differenti: Volume Rendering: visualizza a video le informazioni direttamente contenute nel dataset di partenza o Ray Casting o Maximum Intensity Projection Surface Rendering: è un metodo indiretto che visualizza a video le superfici estratte dal dataset iniziale in base a particolari criteri Secondo la tecnica Ray Casting, dopo aver emesso una serie di raggi paralleli che oltrepassano il volume, questi vengono campionati, composti in RGBA e poi proiettati su un piano di vista 2D. Figura 29 MITO: Volume Rendering Il Maximum Intensity Projection (MIP) è una variante del Ray Casting: non è effettuata alcuna composizione in RGBA, ma sul piano di vista sono proiettati tutti i voxel con la massima intensità che cadono lungo i percorsi dei raggi paralleli. Un utente può interagire con il volume ricostruito attraverso operazioni di modifica del window level/window width, traslazione, zoom, rotazione in senso orario e lungo i tre assi e applicazione di una CLUT. 43

53 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Il Surface Rendering è un metodo indiretto per ottenere un immagine da un volume che può essere scomposto in 2 fasi: Costruzione delle isosuperfici a partire da un valore definito dall utente (che può in tal modo decidere di estrarre ad es. solo le superfici che attraversano le ossa, la pelle, ecc.) Visualizzazione delle isosuperfici Si può interagire con il volume ricostruito attraverso operazioni di traslazione, zoom, rotazione in senso orario e lungo i tre assi. Figura 30 MITO: Surface Rendering Un volume ottenuto applicando una tecnica di Volume Rendering può essere opportunamente tagliato in modo da permettere ad un utente di potersi concentrare solo una porzione del volume di suo interesse. II.3.5 Funzionalità in realtà virtuale MITO può essere impostato in modalità realtà virtuale in modo da poter interagire con l ambiente in maniera molto più intuitiva. Un volume può essere visualizzato in stereoscopia (presentando due diverse immagini ai due occhi) secondo 3 modalità: Anaglifo 44

54 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Le due immagini vengono trattate con due filtri di colore complementari (rosso e ciano) e la stereoscopia è ottenuta indossando appositi occhiali. Figura 31 Occhiali anaglifici Polarizzazione passiva Le due immagini vengono proiettate sovrapposte sullo stesso schermo da 2 proiettori, con due distinti fasci di luce polarizzata. Sono necessari occhiali che abbiano per lenti 2 filtri polarizzatori passivi. Figura 32 Occhiali e proiettori per polarizzazione passiva Polarizzazione attiva Le 2 immagini vengono proiettate alternativamente sullo stesso monitor ad una frequenza elevata. Sono necessari occhiali speciali (shutter glasses) con lenti che si oscurano alternativamente. Figura 33 Shutter glasses per la polarizzazione attiva Un utente può interagire con l ambiente in maniera più naturale ricorrendo a dispositivi Wii, che possono essere utilizzati in 2 differenti modalità: per interagire con il volume (rotazione, traslazione, VOI, ) come dispositivi di puntamento 45

55 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT MITO consente anche un interazione multi-utente attraverso l uso combinato di più dispositivi Wii e gestisce automaticamente i conflitti del sistema. La piattaforma integra anche un interfaccia gesture-based che fa uso di Microsoft Xbox Kinect come unico dispositivo di input. Figura 34 Microsoft Xbox Kinect II.3.6 Confronto con OsiriX In figura 35 e 36 è mostrato un confronto del software descritto con l applicazione OsiriX. Come si evince dalle immagini, MITO dispone di alcune funzionalità non presenti nel suo diretto concorrente, come la fusione di immagini Wavelet-based, la stereoscopia mediante polarizzazione attiva e passiva e l interazione attraverso dispositivi Wii. Figura 35 Confronto con OsiriX (1) 46

56 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Figura 36 Confronto con OsiriX (2) II.4 API Open Source e Cross Platform Una Application Programming Interface (API) è un insieme di definizioni delle modalità grazie alle quali un software può mettere in comunicazione ogni parte di un elaboratore con un'altra. Con questo termine si indica ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per l'espletamento di un determinato compito all'interno di un certo programma. E' un metodo per raggiungere un'astrazione, di solito, ma non necessariamente, tra software di basso-livello e software di altolivello. Le API sono essenziali per le funzionalità di un computer come lo sono gli standard elettrici per una casa. Chiunque può inserire la spina del tostapane nella presa a muro della sua casa o di un suo vicino perché entrambe le case sono conformi ad uno standard. Se non ci fosse una interfaccia standard, occorrerebbe avere un generatore di corrente elettrica per fare un toast. Quanto detto, tuttavia, non vieta che possano esistere diversi tipi di interfacce diverse. Ad esempio un tostapane europeo non può funzionare negli Stati Uniti senza un trasformatore 47

57 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT come un programma scritto per Microsoft Windows non può essere eseguito direttamente su un sistema UNIX o Apple. II.4.1 Vantaggi dell'open Source e del Cross Platform Con l'avvento dei personal computer, l Informatica ha avuto una rapidissima diffusione ed ha modificato profondamente la vita personale e professionale delle persone. Questa velocità di sviluppo, tuttavia, ha fatto in modo che il settore dello sviluppo software fosse nelle mani di pochi grandi gruppi, che impongono i loro standard proprietari e guidano l'evoluzione in base alla loro convenienza piuttosto che al progresso della collettività. Come alternativa a tutto ciò è nato il movimento Open Source, divenuto popolare soprattutto grazie alla diffusione di Internet, che è stato ed è tuttora uno dei motori propulsivi dello sviluppo del web. Gran parte dell'infrastruttura tecnologica di Internet è basata su standard aperti e software open source, rilasciato con licenze non restrittive sia nella distribuzione che nell'uso, come GPL 21, LGPL 22, ecc [RALF]. Il più delle volte è utilizzabile gratuitamente, ma la cosa ancor più entusiasmante, soprattutto per i programmatori, è il codice, che può essere studiato, analizzato, modificato, ampliato ed esteso. Viene sviluppato in progetti collaborativi, che spesso coinvolgono sviluppatori da tutto il mondo, provenienti dalle esperienze più diverse. In molti casi questo tipo di software risulta essere più affidabile, e funzionale dell'analogo software proprietario e commerciale. Quale sia la piattaforma verso la quale gli utenti si indirizzeranno nei prossimi anni è una questione aperta. Al giorno d'oggi, la maggior parte degli utenti possiede prodotti Microsoft; allo stesso tempo però c'è la tendenza, oramai irreversibile, a sfruttare le applicazioni multi-piattaforma Open 21 GPL (General Public License) garantisce la libertà di condividere e modificare il software libero [GPL]. 22 LGPL (Lesser General Public License) è una licenza pubblica meno generale e usata soprattutto per le librerie [LGPL]. 48

58 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Source, soprattutto per ragioni di costi. Questa tendenza porterà probabilmente ad accantonare l'idea di un sistema operativo proprietario. Si può affermare quindi che il multi-piattaforma nasce come conseguenza dei software Open Source e che l'avvento di nuove piattaforme ha richiesto sempre più al software di essere multipiattaforma. Lo sviluppo condiviso del software permette di realizzare programmi di ottima qualità grazie al continuo testing che sviluppatori ed utilizzatori eseguono durante il ciclo di vita del progetto. Il software condiviso offre la possibilità di visionare il codice sorgente del programma. Questo consente ai programmatori di rilevare eventuali bug e segnalare possibili migliorie al codice. Molto frequentemente succede che, all'interno delle comunità di sviluppo, un programmatore identifichi un errore e lo segnali tempestivamente al responsabile del progetto con allegato il codice corretto. Questo meccanismo permette, quindi,la visione del codice a più persone contemporaneamente e contribuisce a produrre programmi di qualità. Del resto difficilmente chi ha scritto il programma o parti di esso è anche un buon tester del programma. Ecco perché chi sviluppa software all'interno di comunità Open Source oltre che disporre di buone competenze tecniche e di programmazione, accetta e condivide di buon grado la possibilità che altri programmatori possano segnalare errori o miglioramenti al programma che lui ha scritto. Nel modello Open Source, diversamente da quanto avviene nello sviluppo di software commerciale/proprietario, chi definisce le caratteristiche e l'evoluzione del software sono gli utenti della comunità di sviluppo. Questo implica che le applicazioni Open Source sono estremamente concrete in quanto devono rispondere a requisiti specifici segnalati dagli utilizzatori stessi del programma. Non esiste alcun vincolo di dover rendere disponibili nuovi aggiornamenti per 49

59 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT giustificare una nuova versione del software a pagamento o un eventuale aumento del costo delle licenze. Le comunità di sviluppo sono spesso di respiro internazionale e a volte raggiungono dimensioni molto ampie. La comunità di sviluppo che riguarda il sistema operativo Linux, ad esempio, oltre ad essere una comunità di notevoli dimensioni, in pochi anni è riuscita a produrre uno dei sistemi operativi più affidabili e performanti, utilizzato in tutto il mondo da milioni di utenti. Il meccanismo proprio del modello Open Source è un ulteriore estensione di garanzie e diritti: il diritto di non essere soggetti alle scelte altrui, ma solo alle proprie [OPENSOURCE]. II.4.2 Caratteristiche comuni di ITK e VTK ITK (Insight Toolkit) è un toolkit software che offre funzionalità di segmentazione e registrazione, VTK (The Visualization Toolkit) offre funzionalità prettamente orientate alla visualizzazione delle immagini e dei modelli tridimensionali. Entrambi sviluppati in C++, Open Source e Cross Platform, utilizzano processi di wrapping per generare l'interfaccia tra C++ ed altri linguaggi interpretati quali Tcl, Java e Python. I toolkit forniscono, quindi, un supporto alla programmazione di basso e alto livello. Nella programmazione ad alto livello si costruiscono l'interfaccia dell'applicazione e la pipeline. Quest'ultima è composta usando le classi di VTK e ITK come blocchi elementari; a questo scopo si può usare un linguaggio interpretato senza compromettere le prestazioni. Nella programmazione di basso livello Per soddisfare particolari esigenze le librerie possono essere estese inserendo nuove classi. I due toolkit, inoltre, presentano alcune caratteristiche funzionali in comune. Alcuni algoritmi di segmentazione, ad esempio, sono implementati in entrambi i software. Altri algoritmi per l'elaborazione delle immagini, quali la rotazione, il ridimensionamento, i filtri per lo 50

60 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT smoothing, ecc. sono implementati in entrambi i pacchetti. Oltre ad offrire funzionalità comuni, essi presentano anche caratteristiche architetturali del tutto identiche. In particolare, la gestione del flusso dei dati, presenta un'architettura a pipeline di seguito descritta. Le pipeline supportano la programmazione multithreading 23 e consentono di lavorare in streaming 24. Questa caratteristica consente di utilizzare al meglio, ovvero nel modo più efficiente, la memoria e le risorse dell'elaboratore. II Architettura Pipeline Una pipeline è costituita da una serie di process objects che operano su uno o più data objects. Contrariamente all'uso comune nella programmazione object oriented, in VTK ed ITK si è scelto di separare i dati dalle procedure che li elaborano. I dati sono incapsulati nei data objects, le procedure nei process objects. I data objects costituiscono le informazioni di partenza, pertanto il loro trattamento è particolarmente delicato, in quanto può dar luogo ad eliminazione o aggiunta di informazioni e può essere solo effettuato mediante metodi formali 25. Questo approccio è particolarmente importante nei sistemi in cui la riservatezza dei dati e la sicurezza sono determinanti e assicura che non siano introdotti errori nel processo di definizione delle specifiche, in quello di sviluppo, nel controllo dei risultati e nella progettazione dei benchmark. I dati differiscono in funzione della loro rappresentazione interna, che è influenzata dai metodi mediante i quali sono raccolti,memorizzati ed elaborati, e dai processi che interagiscono con gli stessi. I dati di partenza, pertanto, possono essere impiegati per ottenere rappresentazioni diverse o di diversa efficacia rappresentativa. 23 Il multithreading è una tecnica che permette di avere più flussi di esecuzione contemporanei (thread) di uno stesso programma in esecuzione, su CPU differenti o sulla stessa. 24 Lo streaming consente di suddividere, in modo trasparente, i dati in parti più piccole, che una volta elaborate, possono essere riassemblate per ottenere il risultato finale. 25 Tecniche basate sulla definizione matematica di specifiche, sviluppo e verifica di sistemi. 51

61 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT I process objects si dividono in source, filter e sink objects in base alla presenza di uno o più input od output, come illustrato in Figura 37 [SCKR]. Figura 37 Tipi di Process Object nella pipeline di ITK E VTK I source objects sono oggetti che producono un data object leggendolo da un file (reader) oppure costruendolo mediante una procedura (procedural source). Gli oggetti di tipo filter possono avere più input e produrre più output, un singolo output può essere usato come input da più filtri (multiple fan out). I sink objects esportano data objects su di un file (writer) oppure verso il mapper che consente di esportare i dati verso altri sistemi. In Figura 38 sono illustrate alcuni esempi di molteplicità degli oggetti filter. Figura 38 Molteplicità degli ingressi e delle uscite delle pipeline di ITK e VTK 52

62 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT La connessione tra due process object avviene di solito tramite l'istruzione: Filtro2->SetInput(Filtro1->GetOutput()); Per filtri con più entrate o uscite esistono forme di sintassi analoghe. Le connessioni sono tipizzate, si possono agganciare solo process object che si scambiano un data object di tipo compatibile. Anche la pipeline produca il risultato atteso occorre che tutti i process objects siano mandati in esecuzione, l'intero processo è chiamato esecuzione della pipeline. II Esecuzione della Pipeline Realizzata la pipeline, è necessario eseguire un processo che consente ad ogni process object di operare sui data objects. Il processo completo è chiamato execution. L'esecuzione delle varie istruzioni, che costituiscono la pipeline, è iterata più di una volta, per esempio quando devono essere modificati i parametri di input o di un process object, cosa che è spesso operata dall'interazione dell'operatore. In alcune reti di visualizzazione vi possono essere rami paralleli che non sono eseguiti se gli oggetti sono modificati localmente, per esempio in Figura 39 si può notare che se avviene un cambiamento dell'oggetto D, che è a valle della pipeline, devono essere eseguiti gli oggetti D, E e F, mentre C e G non sono eseguiti. Figura 39 Esecuzione parziale di una pipeline L'esecuzione delle reti di visualizzazione può essere o demand driven oppure event driven a seconda che il controllo avviene su richiesta 53

63 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT dell'operatore o meno. La metodologia dell'event driven se, da una parte tiene costantemente aggiornato il sistema, appesantisce molto la computazione, invece il demand driven riduce la computazione ed è più interattivo. Poiché l'esecuzione deve avvenire solo quando tutti i process objects sono aggiornati, occorre disporre di un controllo di sincronizzazione che può essere esplicito o implicito. Nel caso di controllo esplicito, un sistema centrale executive controlla i cambiamenti dei parametri e degli input di ciascun object e i susseguenti cambiamenti della topologia della rete. Il vantaggio di quest approccio, particolarmente valido se si vuole scomporre la rete per parallel computing o distribuire l'esecuzione su una rete di computer, consiste principalmente nel fatto che l'analisi di sincronizzazione e il metodo di aggiornamento, sono locali rispetto al singolo object e inoltre si possono sviluppare dependency graphs e analisi di flusso dati, ogni volta che serva. Lo svantaggio consiste nel fatto che ogni process object diventa dipendente dal sistema executive, a cui deve comunicare ogni cambiamento. Questo approccio può essere demand driven oppure event driver, in quest'ultimo caso ad ogni cambiamento segue un esecuzione, nel primo caso i cambiamenti sono accumulati e, solo quando avviene la richiesta esplicita dell'utilizzatore avviene l'esecuzione. Nel caso di controllo implicito, l'esecuzione di un process object avviene solo quando si ha un cambiamento dell'input locale o dei parametri, attraverso due passaggi. Nel primo, quando è richiesto un output da un particolare object, lo stesso richiede gli input dai suoi input object e questo processo è ripetuto in maniera ricorsiva finché non s incontrano source objects, questi ultimi vanno in execute se essi stessi oi loro input hanno subito modifiche. Al passo successivo, il processo ricorsivo si svolge a ritroso in modo che ogni process object esamini gli input e decida se eseguire e il processo si ripete fino a quando il requesting object iniziale non passi in esecuzione e termini il processo. Questi due passi sono denominati update ed execution. L'esecuzione implicita è implementata normalmente 54

64 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT utilizzando il controllo demand driver, ma può anche essere richiesta dal verificarsi di un evento (per esempio la variazione di un object parameter). Il vantaggio del controllo implicito consiste nella semplicità dovuta al fatto che ogni object deve conservare la sua storia, in compenso, lo svantaggio consiste nella difficoltà di distribuire l'attività su più computer o realizzare strategie più complesse. II.4.3 wxwidgets wxwidgets è una libreria C++ gratuita e Open Source che consente agli sviluppatori di creare applicazioni per Windows, OS X, Linux e UNIX su architetture a 32-bit e 64-bit e per diverse piattaforme mobili, tra cui Windows Mobile, iphone SDK e embedded GTK+. A differenza di altri toolkit Cross Platform che simulano l interfaccia grafica, wxwidgets da alle sue applicazioni un look nativo perché utilizza API native della piattaforma [WXWIDGETS]. La libreria wxwidgets è stata sviluppata per fornire un modo economico e flessibile per massimizzare gli investimenti nello sviluppo di applicazioni GUI. Prima dello sviluppo di questa applicazione esistevano diverse librerie commerciali per lo sviluppo Cross Platform, ma nessuna di queste aveva un prezzo economico, la disponibilità del codice sorgente, una certa semplicità di programmazione e un supporto per una vasta gamma di compilatori. Dopo il rilascio di wxwidgets, sono emersi molti framework GUI gratuiti o semi-gratuiti ma nessuno ha la gamma di funzionalità, la flessibilità, la documentazione e il team di sviluppo ben consolidato che ha questa libreria. wxwidgets ha diversi vantaggi rispetto ai suoi concorrenti commerciali perché ha beneficiato di commenti, idee, correzioni di bug e miglioramenti continui dovuti all'entusiasmo degli utenti. L'apertura e la disponibilità del codice sorgente sono particolarmente importanti quando il futuro di migliaia di righe di codice di un applicazione dipendono dalla longevità della libreria delle classi base. L'importanza 55

65 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT di utilizzare una libreria di classi indipendente dalla piattaforma non può essere sottovalutata, in quanto lo sviluppo di applicazioni GUI richiede molto in termini di tempo, e la popolarità di una particolare GUI non può essere garantita. In questo modo il codice può diventare rapidamente obsoleto se si affronta la piattaforma o il pubblico sbagliato. Sebbene la libreria wxwidgets non può essere adatta per ogni applicazione, aiuta ad isolare il programmatore da questi cambiamenti e fornisce l'accesso alla maggior parte delle funzionalità che un programma con interfaccia grafica richiede normalmente. Inoltre, questa libreria, fornisce molti extra come la programmazione di rete, PostScript, e il rendering HTML e può ovviamente essere estesa a seconda delle esigenze. II.5 Porting di MITO su piattaforme mobili In questa sezione, dopo aver analizzato diverse strategie per il porting della piattaforma MITO su dispositivi mobili e aver scelto quella più conveniente secondo le esigenze, si confronteranno le metodologie per implementare le interazioni touch. II.5.1 Analisi e scelta della piattaforma In questo paragrafo, presa visione del rapporto tecnico N. RT- ICAR-NA Studio tecnologico per il porting di MITO (Medical Imaging TOolkit) su dispositivi mibili - [ICAR20128], si analizzeranno diverse soluzioni per il porting dell applicativo su alcune piattaforme mobili e per l implementazione di una GUI per interazioni touch. Verranno prese in considerazione strategie implementative su tablet Windows 8/Windows 8 RT based e dispositivi android/ios. II Sistemi Microsoft Windows 8/Windows 8 RT based Esistono in commercio tablet windows 8 e tablet windows 8 RT e bisogna fare una distinzione fra i due sistemi operativi. Windows RT, 56

66 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT noto durante lo sviluppo come Windows on ARM o WOA, è la nuova edizione progettata per l'architettura ARM. Windows 8 supporta la maggior parte dei software compatibili con le precedenti versioni di Windows sui processori x86/x64. Windows 8 RT, al contrario, non supporta la portabilità delle esistenti applicazioni desktop x86/x64 sui processori ARM. La versione del sistema operativo RT supporta solo le applicazioni già incluse con il sistema, fornite tramite Windows Update o acquistate tramite Windows Store (Con Windows RT è possibile installare app direttamente da Windows Store, ma non è possibile installare le applicazioni desktop utilizzate con le versioni precedenti di Windows) [STVSDT]. II Porting come Desktop app di Windows 8 Su un tablet windows 8 con driver grafici aggiornati è possibile utilizzare la maggior parte delle librerie del software esistente. Per usufruire delle funzionalità intuitive di una GUI per interazioni touch, invece, bisognerà aggiornare una parte del codice e integrare una tecnica di codifica del touch. Ci sono tre modi per integrare l input touch e i gesti in una Windows 8 Desktop app: WM_POINTER è il più semplice e supporta la più ricca serie di gesti, ma funziona solo su Windows 8. WM_GESTURE è compatibile con Windows 7, ma ha alcune limitazioni nei gesti implementabili. WM_TOUCH è compatibile con Windows 7, ma richiede più codice, perché è necessario scrivere il proprio gesto e i propri riconoscitori di manipolazione di Touch Events di basso livello. 57

67 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Figura 40 Windows 8 Desktop app gesture Si può valutare, inoltre, se ridefinire l interfaccia grafica Windows Form secondo i nuovi requisiti. Di seguito si riportano i vantaggi di questa soluzione: - E la soluzione migliore per recuperare quanto più codice possibile e utilizzare la maggior parte delle librerie già implementate. - Supporto per la libreria grafica OpenGL per Desktop apps - Il porting, in questo caso, può essere visto come un upgrade del software esistente atto a renderelo facilmente utilizzabile anche su dispositivi mobili con controllo Touch. - Il software potrà essere utilizzato, oltre che su tablet, anche su computer desktop con schermo sensibile al tocco. Sarà disponibile un solo applicativo funzionante sia su computer desktop che su tablet. In questo modo, si incrementa notevolmente la portabilità del software e si rende più semplice la sua manutenzione. Di seguito si riportano gli svantaggi di questa soluzione: - Windows 8, ad oggi, non è il sistema operativo più diffuso sul mercato dei tablet. Negli ultimi rilevamenti di Strategy Analytics [STRATEGY] relativi ai primi tre mesi del 2013, la quota di Microsoft è pari solo al 7,5% (Android 43,4%, IOS 48,2%). Questa valutazione potrebbe inibire la diffusione del software nel settore. 58

68 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT II Porting come app Metro Style di Windows Store Il nuovo standard di sviluppo Microsoft per app di Windows Store mira a ridefinire delle applicazioni basate su un input utente sensibile al tocco e ai gesti. Le app sviluppate per essere acquistate su Windows Store saranno disponibili sia per Windows 8 che Windows 8 RT. Ridefinire MITO e renderla disponibile all interno di Windows Store richiede di ristrutturare il software secondo gli standard delle applicazioni WinRT. Ci sono due opzioni per implementare un app per il nuovo Windows Store: DirectX or XAML. Lo standard OpenGL e gli standard OpenGL ES non sono supportati. Per ovviare a questa problematica bisognerà riscrivere il codice in questione oppure prevedere l utilizzo di una libreria che implementi una versione delle API che instradi le chiamate a OpenGL ai loro equivalenti DirectX [GL2DX]. In alternativa si può utilizzare OpenGL for Windows Store Apps [OGLWST]. Figura 41 Windows Store Di seguito si riportano i vantaggi di questa soluzione: - Il software sarà disponibile sia per i dispositivi Windows 8 che per i dispositivi Windows 8 RT. - Si può abbandonare il Windows Form in favore di una interfaccia ottimizzata per una vera e propria app WinRT. 59

69 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Di seguito si riportano gli svantaggi di questa soluzione: - Le app Metro Style di Windows Store non supportano gli standard OpenGL né OpenGL ES. Per questo si rende necessario riscrivere del codice o utilizzare API di conversione. - La piattaforma Windows RT ha un mercato, ad oggi, ancora più limitato di quello del settore tablet di Windows 8 (A causa degli scarsi risultati commerciali, alcune recenti indiscrezioni sul nuovo sistema operativo RT dichiarano una possibile retrocessione di Microsoft dal settore dei tablet con architetture ARM). II Sistemi Android/IOS based Per ipotizzare un porting su piattaforme mobili come Android e IOS bisogna pensare a come implementare librerie fondamentali per il rendering e la visualizzazione. Verranno prese in esame, per una prima analisi, le librerie VTK e DCMTK. La libreria VTK può essere sostituita da VES (VTK OpenGL ES Rendering Toolkit). Quest ultima, è una libreria di rendering per dispositivi mobili e utilizza OpenGL ES 2.0. Questa libreria è disponibile sia Per Android che per IOS e costituisce una comoda base di sviluppo. Per quanto riguarda il sistema operativo Android, in particolare, è possibile programmare applicazioni con il JDK utilizzando il linguaggio Java, oppure con l NDK per implementare codice C/C++. L IDE di default prevede l utilizzo del primo e integra un ADT plugin per Eclipse per facilitare la configurazione dell ambiente di sviluppo. Il sito disponibile per gli sviluppatori Android [DEVANDR] offre un notevole supporto per lo sviluppo di applicazioni in Java. Per lo sviluppo, invece, con linguaggio C/C++, offre un ridotto supporto e ne sconsiglia l utilizzo se non necessario. Per utilizzare la suddetta libreria bisognerà sviluppare con l ausilio dell NDK. 60

70 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Un discorso simile può essere fatto per la libreria DCMTK. Questa, come per la libreria VES, può essere usata tramite l NDK. Si può utilizzare, in alternativa, anche la libreria Java DCM4CHE (Open Source Clinical Image and Object Management) [DCM4CHE]. Quest ultima è una collezione di applicazioni Open Source per la visualizzazione di immagini medicali Figura 42 Esempio di GUI Android Di seguito si riportano i vantaggi di questa soluzione: - Maggiore diffusione delle piattaforme - Maggiore supporto per gli sviluppatori - Piattaforme pensate originariamente per l ambito mobile per l integrazione nativa di input utente sensibile al tocco Di seguito si riportano gli svantaggi di questa soluzione: - Si rende necessaria una ridefinizione dell analisi dei requisiti e del design dell intero software. - La maggior parte del codice dovrà essere riscritto. In questo modo, il codice riutilizzabile sarà soltanto una piccola parte. - Bisogna ripensare il software in funzione dell utilizzo di nuove librerie per la gestione delle immagini medicali e del rendering. - L interfaccia deve essere necessariamente riscritta completamente. 61

71 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT II Scelte implementative Porting di MITO come Vantaggi Svantaggi Desktop app di Windows 8 - Riutilizzo del codice esistente - Supporto per OpenGL - Porting come upgrade del Software - Un solo applicativo per desktop e tablet app Metro Style - Software disponibile di Windows Store sia per Windows 8 che per Windows RT - Ridefinizione completa interfaccia e applicazione standard WinRT app Android/IOS - Maggiore diffusione delle piattaforme - Maggiore supporto per gli sviluppatori - Piattaforme progettate originariamente per l ambito mobile - Scarsa diffusione del Sistema Operativo per tablet - Mancato supporto per OpenGL e OpenGL ES - Scarsa diffusione de Sistema Operativo per tablet con architettura ARM - Ridefinizione analisi dei requisiti e design dell intero software - Riscrittura di gran parte del codice - Utilizzo di nuove librerie - Ridefinizione dell interfaccia utente Figura 43 Porting di MITO: scheda riassuntiva 62

72 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Lo studio tecnologico, in questa sede affrontato, analizza diverse strategie per il porting del software su piattaforme mobili e mette in luce le proprietà delle soluzioni trattate. Scegliere di realizzare una nuova applicazione nativa per Android/IOS implicherebbe una riprogettazione completa del software e della sua architettura. I tempi di progettazione, sviluppo e testing, in questo caso, sarebbero notevolmente lunghi. Rendere disponibile il software su una di queste piattaforme, però, contribuirebbe notevolmente alla sua diffusione in ambito mobile. Sviluppare un applicazione seguendo il nuovo standard Windows Store sarebbe preferibile nel caso in cui si voglia assicurare una compatibilità con le due versioni del sistema operativo Windows 8. In questo modo, inoltre, l applicativo entrerebbe a far parte del nuovo ambiente windows progettato principalmente per l ambito mobile. Aggiornare il software con una versione che ne integri le funzionalità proprie di una GUI per interazioni touch è sicuramente la scelta da preferire per riutilizzare quanto più codice possibile. I tempi di sviluppo e in questo caso sono inferiori alle altre soluzioni proposte e si ha il vantaggio, inoltre, di disporre di un unica applicazione integrata con desktop e tablet che rende meno costosa la sua manutenzione. Per queste motivazioni è stato scelto di portare l applicazione su sistemi Windows 8. II.5.2 Implementazione di interazioni touch su Windows 8 Come già accennato, ci sono tre modi per implementare l'input touch e le gesture in una applicazione Microsoft Windows 8. Si possono infatti utilizzare i messaggi WM_POINTER, WM_GESTURE o WM_TOUCH. In questo paragrafo si analizzeranno alcuni codici di esempio. WM_POINTER è il più semplice da implementare e supporta la più ricca serie di gesti, ma funziona solo su Windows 8. WM_GESTURE è facile da implementare, ed è compatibile con 63

73 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Windows 7, ma ha alcune limitazioni nel set delle gesture disponibili. WM_TOUCH è anch esso compatibile con Windows 7, ma richiede molto codice in quanto è necessario scrivere il proprio gesto e i riconoscitori di eventi touch di basso livello. II WM_POINTER I messaggi WM_POINTER sono la scelta consigliata da Microsoft per gestire l input touch per Windows 8 e comprendono messaggi come WM_POINTERDOWN e WM_POINTERUP. Questi messaggi sono supportati solo su Windows 8 e, di conseguenza, se si richiede la compatibilità con Windows 7, sarà necessario scegliere una delle altre due tecniche di implmentazione disponibili. I messaggi WM_POINTER forniscono un accesso ad alto livello agli eventi touch e sono integrati con la gestione degli eventi del sistema operativo. Questa tecnica di implementazione non ha bisogno di alcun codice di inizializzazione in quanto ogni applicazione è nativamente abilitata alla ricezione di messaggi WM_POINTER. Solo nel caso in cui si desideri utilizzare il mouse come dispositivo input touch, sarà necessario chiamare questa funzione. //Enable mouse to be pointer type EnableMouseInPointer(TRUE); Questa chiamata permette al mouse di generare messaggi WM_POINTER e, consentendo una gestione unificata dei messaggi relativi agli eventi di input, rappresenta un notevole vantaggio. Un applicazione che utilizza WM_POINTER riceve molteplici eventi gesture. Solitamente la sequenza parte da un singolo messaggio WM_POINTERDOWN seguito da un certo numero di messaggi WM_POINTERUPDATE ed un unico messaggio WM_POINTERUP alla fine. Ci sono, inoltre, altri messaggi come ad esempio 64

74 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT WM_POINTERCAPTURECHANGED che viene utilizzato dal sistema per indicare che una finestra ha perso il possesso del suo pointer. All interno della funzione WndProc, il codice per gestire i messaggi inizia con una chiamata a GetPointerInfo che inizializza una struttura POINTER_INFO. Quest ultima contiene informazioni per descrive una touch gesture. Di seguito si mostra un esempio per il messaggio WM_POINTERDOWN. case WM_POINTERDOWN: // Get frame id from current message if (GetPointerInfo(GET_POINTERID_WPARAM(wParam), &pointerinfo)) { // Iterate over objects, respecting z-order: from the one at // the top to the one at the bottom. for (int i = 0; i < DRAWING_OBJECTS_COUNT; i++) { int iz = g_zorder[i]; if (g_objects[iz].hittest(pointerinfo.ptpixellocation)) { // Object was hit, add pointer so Interaction Context can process hr = ddpointerinteractioncontext (g_objects[iz].getinteractioncontext(), GET_POINTERID_WPARAM(wParam)); if (SUCCEEDED(hr)) { // Bring the current object to the front MoveToFront(iz); g_objects[iz].addpointer(get_pointerid_wparam(wparam)); ProcessPointerFrames(wParam, pointerinfo, iz); break; else if (i == DRAWING_OBJECTS_COUNT-1) { // No objects found in hit testing. // Assign this pointer to background. hr = ddpointerinteractioncontext (g_background.getinteractioncontext(), GET_POINTERID_WPARAM(wParam)); if (SUCCEEDED(hr)) { g_background.addpointer(get_pointerid_wparam(wparam)); ProcessBackgroundPointerFrames(wParam, pointerinfo); break; Se un oggetto viene toccato, si utilizza AddPointerInteractionContext per aggiungerlo ad una lista di interazione. Una volta individuato un oggetto, teniamo traccia dell'id touch da GET_POINTERID_WPARAM (wparam). 65

75 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Le funzioni ProcessPointerFrames e ProcessBackgroundPointerFrames controllano se il touch è già stato gestito, ottengono l elenco di tutti gli eventi touch in un pointer frame e li elaborarano con ProcessPointerFramesInteractionContext. II WM_GESTURE Il sistema basato su messaggi WM_GESTURE fornisce un accesso ad alto livello agli eventi touch supportati dal sistema. Questo è stato implementato originariamente per Windows 7 e portato successivamente su Windows 8. Ha un set di gesture limitato rispetto a quello di WM_POINTER ed è possibile lavorare su un solo oggetto alla volta. Il sistema richiede una configurazione iniziale dei gesti da riconoscere. Di seguito si riporta un esempio di inizializzazione: // WM_GESTURE configuration DWORD panwant = GC_PAN GC_PAN_WITH_SINGLE_FINGER_VERTICALLY GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY GC_PAN_WITH_INERTIA; GESTURECONFIG gestureconfig[] = { { GID_PAN, panwant, GC_PAN_WITH_GUTTER, { GID_ZOOM, GC_ZOOM, 0, { GID_ROTATE, GC_ROTATE, 0, { GID_TWOFINGERTAP, GC_TWOFINGERTAP, 0, { GID_PRESSANDTAP, GC_PRESSANDTAP, 0 ; SetGestureConfig(hWnd, 0, 5, gestureconfig, sizeof(gestureconfig)); WM_GESTURE rappresenta il modo più semplice di implementare un supporto per l input touch su windows 8 che sia retro compatibile con windows 7. Inoltre, questo sistema supporta nativamente l inerzia. Nella funzione WndProc, le informazioni sulla gesture vengono scaricate tramite GetGestureInfo. GESTUREINFO gestureinfo; ZeroMemory(&gestureInfo, sizeof(gestureinfo)); gestureinfo.cbsize = sizeof(gestureinfo); GetGestureInfo((HGESTUREINFO)lParam, &gestureinfo); 66

76 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Con queste informazioni siamo in grado di controllare i dettagli della gesture. Come succede con altri sistemi per la gestione delle touch gesture, viene inviato un messaggio iniziale, una sequenza di messaggi intermedia e un messaggio finale. switch(gestureinfo.dwid) { case GID_BEGIN: p.x = gestureinfo.ptslocation.x; p.y = gestureinfo.ptslocation.y; to for (int i=0; i<drawing_objects_count; i++) { int iz = g_zorder[i]; if (g_objects[iz].hittest(p)) { MoveToFront(iz); g_objects[iz].addpointer (gestureinfo.dwinstanceid); break; else if (i == DRAWING_OBJECTS_COUNT-1) { // No objects found in hit test, assign break; // background g_background.addpointer (gestureinfo.dwinstanceid); II WM_TOUCH WM_TOUCH fornisce una soluzione completa per la gestione delle touch gesture ma richiede una discreta quantità di codice in più rispetto ai due sistemi analizzati in precedenza. A differenza di questi, non utilizza notifiche per le gesture in quanto richiede una implementazione di basso livello. Per ricevere messaggi WM_TOUCH bisogna registrare la finestra con RegisterTouchWindow. Se si omette questa chiamata il sistema operativo invierà messaggi WM_GESTURE or WM_POINTER. Di seguito si mostra un codice di esempio per creare un processo di manipolazione ed inerzia. 67

77 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT hr = CoCreateInstance(CLSID_ManipulationProcessor, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (VOID**)(&g_pIManipulationProcessor[i])); hr = CoCreateInstance(CLSID_InertiaProcessor, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (VOID**)(&g_pIInertiaProcessor[i])); g_pinertiaeventsink[i] = new CManipulationEventSink( g_piinertiaprocessor[i], hwnd, &g_objects[i], NULL); g_pmanipulationeventsink[i] = new CManipulationEventSink( g_pimanipulationprocessor[i] g_piinertiaprocessor[i], g_pinertiaeventsink[i], hwnd, &g_objects[i], NULL); Nella funzione WndProc, una volta ricevuto un messaggio WM_TOUCH, bisogna chiamare GetTouchInput per conoscere il set completo di tutti i contatti touch. Durante la manipolazione, viene chiamato ManipulationStarted che farà partire un timer per poter rilevare quando un input touch è stato trattenuto abbastanza da poter essere ritenuto in hold (impostato a 1000 millisecondi o 1 secondo). I dettagli di tale manipolazione sono fatte con ManipulationDelta, che uccide ogni timer hold esistente. Con ManipulationCompleted viene segnalato che una manipolazione è terminata [TOUCHCOD]. II Scelte implementative Dopo aver analizzato le alternative disponibili ed averle confrontate come è mostrato in Figura 44, al fine di implementare un supporto per interazioni touch, si preferisce utilizzare WM_GESTURE. Questa scelta è legata, oltre che alle esigenze di retro compatibilità con windows 7, alla sufficiente disponibilità di gesture implementabili. 68

78 CAPITOLO II MITO MEDICAL IMAGING TOOLKIT Figura 44 Confronto tra i diversi tipi di messaggi 69

79 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Capitolo III Analisi e progettazione dell applicazione In questo capitolo, si analizzeranno gli aspetti funzionali della nuova applicazione, si descriveranno le classi coinvolte e si progetterà l aspetto grafico della nuova GUI con l ausilio di mockup. III.1 Introduzione Al fine di rendere disponibile la piattaforma MITO su dispositivi tablet, è necessaria una riprogettazione dell interfaccia grafica preesistente secondo le nuove esigenze. Gli eventi che gestiscono l interazione con la nuova GUI dovranno poi essere integrati ed ottimizzati per riceve ed elaborare interazioni touch che modifichino la visualizzazione delle immagini. Dopo aver definito i requisiti funzionali attraverso i diagrammi dei casi d uso e i relativi template di Cockburn, si individueranno le classi coinvolte. Una progettazione visuale attraverso mockup definirà l aspetto e le caratteristiche della nuova GUI in fase di sviluppo. III.2 Requisiti funzionali In questo paragrafo sono formalizzati i requisiti funzionali dell'applicazione. I diagrammi dei casi d'uso sono il punto di partenza della fase di analisi per la progettazione del nuovo software e vengono utilizzati per comprendere i requisiti del sistema e definire il dominio applicativo, le funzionalità che deve offrire e gli attori coinvolti. 70

80 ANALISI E PROGETTAZIONE DELL APPLICAZIONE III.2.1 Diagramma dei casi d uso L utente finale deve poter utilizzare il considerevole numero di funzionalità preesistenti e poter disporre di una nuova modalità di interazione semplice ed intuitiva attraverso il touch. Per questo scopo, saranno definiti i diagrammi dei casi d uso relativi ad ogni interfaccia grafica principale: Main GUI, 2D GUI, Volume Rendering GUI, Surface Rendering GUI. Ogni diagramma dei casi d uso sarà poi descritto attraverso i template di Cockburn definiti, per motivo di spazio, solo per alcuni casi rilevanti. Main GUI Figura 45 Diagramma dei casi d uso: Main GUI Use case #1 Goal in Context Precondition Success and Condition Importa uno studio Importare un nuovo studio Il sistema mostra un messaggio di errore Un nuovo studio è stato importato Failed and Condition Primary Actor Utente 71

81 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Trigger L'Utente seleziona il bottone per importare uno studio Descrizione Step # Utente Sistema 1 Seleziona il bottone per importare un nuovo studio 2 Mostra la dialog realtiva alla scelta di un file o una cartella 3 Seleziona un file o una cartella e preme il bottone OK Subvariation A : bottone cancella 4 Mostra la dialog realtiva al caricamento 5 Mostra lo studio caricato e i dati relativi e visualizza nuovi bottoni Step # Utente Sistema 3a Seleziona il bottone cancella 4a Torna allo stato iniziale Use case #2 Goal in Context Interroga e recupera immagini da un PACS Recuperare uno studio da un PACS Precondition Success and Condition Un nuovo studio è stato recuperato da un PACS Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone Query/Retrieve Descrizione Step # Utente Sistema 1 Seleziona il bottone Query/Retrieve 2 Mostra la dialog realativa al download da PACS 72

82 ANALISI E PROGETTAZIONE DELL APPLICAZIONE 3 Seleziona uno studio da scaricare e preme il bottone download Extension A: 4 Mostra la dialog realtiva al caricamento 5 Mostra lo studio caricato e i dati relativi e visualizza nuovi bottoni Step # Utente Sistema Impossibile stabilire una connessione Subvariation A : bottone query Subvariation A : bottone cancella 4a Mostra a video un messaggio di errore e torna allo stato iniziale Step # Utente Sistema 3a 4a 5a 6a Seleziona il bottone query Imposta l interrogazione e preme il bottone OK Mostra la dialog relativa all interrogazione Mostra la dialog realtiva al caricamento 7 Mostra lo studio caricato e i dati relativi e visualizza nuovi bottoni 3b Seleziona il bottone cancella 4b Torna allo stato iniziale Use case #3 Goal in Context Invia immagini a un PACS Inviare immagini a un PACS 73

83 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Precondition Success and Condition Failed and Condition Primary Actor Trigger Le immagini sono state inviate al PACS Il sistema mostra un messaggio di errore Utente L'Utente seleziona il bottone Send to PACS Descrizione Step # Utente Sistema 1 Seleziona il bottone Send to PACS Extension A: Impossibile stabilire una connessione Subvariation A : bottone cancella 2 Mostra la dialog realativa all upload a PACS 3 Seleziona il bottone Choose a series 4 Mostra la dialog realtiva alla scelta di un file o una cartella 5 Seleziona un file o una cartella e preme il bottone OK 6 Ritorna alla dialog realtiva all upload 7 Seleziona il bottone Send 8 Il sistema invia lo studio al PACS e torna allo stato iniziale Step # Utente Sistema 8a Mostra a video un messaggio di errore e torna allo stato iniziale Step # Utente Sistema 3a Seleziona il bottone cancella 4a Torna allo stato iniziale 74

84 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Use case #4 Goal in Context Utilizza funzione Image Fusion Fondere immagini e visualizzarle Precondition Success and Condition Il sistema mostra il 2D Viewer con le immagini fuse Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone Image Fusion Descrizione Step # Utente Sistema 1 Seleziona il bottone Image Fusion 2 Mostra la dialog realtiva alla fusione delle immagini 3 Seleziona l algoritmo di fusione, le serie e il peso e preme il bottone OK Extension A: Immagini non selezionate 4 Mostra la dialog realtiva caricamento 5 Apre il visualizzatore 2D con le immagini fuse Step # Utente Sistema 3a Preme il bottone OK Subvariation A : bottone cancella Mostra a video il messaggio di errore Step # Utente Sistema 3a Seleziona il bottone cancella 4a Torna allo stato iniziale 75

85 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Use case #5 Goal in Context Cancella uno studio Cancellare uno studio Precondition Success and Condition Uno studio è stato cancellato Failed and Condition Primary Actor Trigger Utente L'Utente seleziona uno studio e preme il bottone cancella Descrizione Step # Utente Sistema 1 Seleziona uno studio e preme il bottone cancella 2 Mostra la dialog realtiva alla scelta 3 Preme il bottone OK Subvariation A : bottone cancella Cancella lo studio dall hard drive Step # Utente Sistema 3a Seleziona il bottone NO Subvariation A : bottone cancella 4a Cancella lo studio dall album Step # Utente Sistema 3a Seleziona il bottone Annulla 4a Chiude la dialog relativa alla scelta e torna allo stato iniziale Use case #6 Goal in Context Precondition Success and Condition Vai al 2D Viewer Aprire il 2D Viewer L utente ha selezionato una serie Il sistema apre il 2D Viewer Failed and Condition 76

86 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Primary Actor Trigger Utente L'Utente seleziona il bottone 2D Viewer Descrizione Step # Utente Sistema 1 Seleziona il bottone 2D Viewer 2 Apre il 2D Viewer con le immagini della serie selezionata Viene descritto solo il caso d uso Vai al 2D Viewer perché Vai alla Volume Rendering GUI e Vai alla Surface Rendering GUI si riducono perfettamente al caso descritto. Use case #7 Goal in Context Precondition Success and Condition Failed and Condition Primary Actor Trigger Esporta uno studio L'utente risulta loggato L utente ha selezionato una serie Uno studio è stato esportato Il sistema mostra un messaggio di errore Utente L'Utente seleziona il bottone per esportare uno studio Descrizione Step # Utente Sistema 1 Seleziona il bottone per esportare uno studio 2 Mostra la dialog relativa alla scelta di una cartella 3 Seleziona una cartella e preme il bottone OK 4 Esporta la serie Subvariation A : bottone cancella Step # Utente Sistema 3a Seleziona il bottone Annulla 77

87 ANALISI E PROGETTAZIONE DELL APPLICAZIONE 4a Chiude la dialog relativa alla scelta e torna allo stato iniziale Use case #8 Goal in Context Precondition Success and Condition Utilizza funzione Anonymize Anonimizzare una serie L utente ha selezionato una serie Una serie è stata anonimizzata Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone Anonymize Descrizione Step # Utente Sistema 1 Seleziona il bottone Anonymize 2 Mostra la dialog relativa all anonimizzazio ne 3 Seleziona i campi da anonimizzare e preme OK 4 Mostra la dialog relativa alla scelta di una cartella 5 Sceglie una cartella e preme il bottone OK Subvariation A : bottone cancella 6 Anonimizza e salva la serie Step # Utente Sistema 3a Seleziona il bottone Annulla 4a Chiude la dialog relativa all anonimizzazio ne e torna allo stato iniziale Subvariation B : Step # Utente Sistema 78

88 ANALISI E PROGETTAZIONE DELL APPLICAZIONE bottone cancella 3a Seleziona il bottone Annulla 4a Chiude la dialog relativa alla scelta e torna al passo 2 2D GUI Figura 46 Diagramma dei casi d uso: 2D GUI Use case #1 Goal in Context Precondition Success and Condition Torna alla Home di MITO Tornare alla pagina principale 2D Viewer è aperto Il sistema ritorna alla pagina principale Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone MITO Descrizione Step # Utente Sistema 1 seleziona il bottone MITO 2 Chiude il 2D Viewer e ritorna alla pagina principale 79

89 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Use case #2 Goal in Context Precondition Success and Condition Effettua una touch gesture Fondere immagini e visualizzarle Il 2D Viewer è aperto Il sistema modifica la visualizzazione dell immagine Failed and Condition Primary Actor Trigger Utente L'Utente effettua una gesture Descrizione Step # Utente Sistema 1 Effettua una gesture (pinch to zoom, pan, rotate) 2 Modifica la visualizzazione dell immagine Use case #3 Goal in Context Precondition Success and Condition Crea una ROI Creazione di una ROI Il 2D Viewer è aperto Il sistema mostra una ROI Failed and Condition Primary Actor Trigger Utente L'Utente seleziona un bottone per la creazione delle ROI Descrizione Step # Utente Sistema 1 Seleziona un bottone per la creazione delle ROI 2 Modifica la modalità di interazione 3 Crea la ROI 4 Visualizza la ROI 80

90 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Volume rendering GUI Figura 47 Diagramma dei casi d uso: Volume Rendering GUI Use case #1 Goal in Context Precondition Success and Condition Seleziona la modalità di rendering Seleziona La Volume Rendering GUI è aperta Il sistema Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il box relativo alla scelta della modalità di rendering Descrizione Step # Utente Sistema 1 Seleziona il box relativo alla scelta della modalità di rendering 2 Mostra le possibili scelte 3 Seleziona una opzione 4 Visualizza la ricostruzione secondo il tipo di rendering impostato 5 Imposta la qualità 81

91 ANALISI E PROGETTAZIONE DELL APPLICAZIONE 6 Visualizza la ricostruzione secondo la qualità impostata Use case #2 Goal in Context Precondition Success and Condition Effettua uno shading Seleziona La Volume Rendering GUI è aperta Il sistema visualizza le immagini con lo shading Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone change Descrizione Step # Utente Sistema 1 Seleziona il bottone change 2 Mostra la dialog relativa alla configurazione dello shading 3 Configura lo shading e preme il bottone Apply 4 Visualizza la ricostruzione secondo il tipo di shading impostato 5 Imposta la qualità Subvariation A : bottone cancella 6 Visualizza la ricostruzione secondo la qualità impostata Step # Utente Sistema 3a Seleziona il bottone Close 4a Chiude la dialog relativa alla configurazione dello shading e torna al visualizzatore 82

92 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Use case #2 Goal in Context Precondition Success and Condition Seleziona tissue Visualizzare tissue La Volume Rendering GUI è aperta Il sistema visualizza le immagini elaborate Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il box relativo al CLUT Descrizione Step # Utente Sistema 1 Seleziona il box relativo al CLUT 2 Mostra le possibili scelte 3 Seleziona una opzione 4 Visualizza la ricostruzione secondo il tipo di CLUT impostato 5 Seleziona il bottone WL/WW Trascina il dito sullo schermo per impostare i parametri 6 Visualizza la ricostruzione secondo i nuovi parametri 83

93 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Surface Rendering GUI Figura 48 Diagramma dei casi d uso: Surface Rendering GUI Use case #2 Goal in Context Precondition Success and Condition Imposta le proprietà del Surface Rendering Seleziona La Surface Rendering GUI è aperta Il sistema visualizza le immagini con le proprietà impostate Failed and Condition Primary Actor Trigger Utente L'Utente seleziona il bottone change Descrizione Step # Utente Sistema 1 Seleziona il bottone change 2 Mostra la dialog relativa alla configurazione del Surface Rendering 3 Configura le proprietà e preme il bottone Apply Subvariation A : bottone cancella 4 Visualizza la ricostruzione secondo le proprietà impostate Step # Utente Sistema 3a Seleziona il bottone Close 84

94 ANALISI E PROGETTAZIONE DELL APPLICAZIONE 4a Chiude la dialog relativa alla configurazione dello shading e torna al visualizzatore III.3 Classi individuate In questo paragrafo sono trattate le classi fondamentali utilizzate per lo sviluppo della nuova GUI e delle nuove funzionalita di interazione touch. III.3.1 Interfaccia grafica La classe wxmitoapp in Figura 49 deriva direttamente da wxapp e si occupa della creazione della nuova applicazione. Figura 49 Class Diagram: wxmitoapp 85

95 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Figura 50 Class Diagram: wxmaingui 86

96 ANALISI E PROGETTAZIONE DELL APPLICAZIONE La classe wxmaingui in Figura 50 si occupa della creazione e gestione della nuova interfaccia utente principale. Figura 51 Class Diagram: wx2dgui La classe wx2dgui si occupa della crezione e gestione del nuovo visualizzatore 2D. 87

97 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Figura 52 Class Diagram: wxvolumerenderinggui 88

98 ANALISI E PROGETTAZIONE DELL APPLICAZIONE La classe wxvolumerenderinggui si occupa della creazione e gestione della nuova interfaccia per la ricostruzione tramite il Direct Volume Rendering. Figura 53 Class Diagram: wxsurfacerenderinggui 89

99 ANALISI E PROGETTAZIONE DELL APPLICAZIONE La classe wxsurfacerenderinggui si occupa della creazione e gestione della nuova interfaccia per la ricostruzione tramite il Direct Volume Rendering. III.3.2 Interazioni touch Le touch gesture disponibili per la nuova interazione saranno tre: pinch to zoom, pan e rotate. Attraverso questi semplici comandi gestuali sarà possibile comandare le funzioni di image processing del 2D Viewer, della Volume Rendering GUI e della Surface Rendering GUI. In Figura 54 sono illustrate le touch gesture da implementare. Il Panning with Inertia, che in figura è rappresentato sia con un dito che con due dita, sarà configurato per funzionare esclusivamente con 2 dita. Questa scelta è dovuta alla necessità di riservare la gesture ad un solo dito per altre funzionalità di image processing del sistema. Figura 54 Touch gesture La classe appwxvtkinteractor si occupa dell interazione dell interfaccia grafica con la libreria VTK responsabile della visualizzazione delle immagini medicali. deriva da appwxvtkrenderwindowintercator 90

100 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Figura 55 Class Diagram: appwxvtkinteractor 91

101 ANALISI E PROGETTAZIONE DELL APPLICAZIONE III.4 Mockup dell interfaccia grafica La nuova interfaccia grafica dovrà essere ottimizzata per un utilizzo su dispositivi tablet e quindi sarà rinnovata e semplificata. In aggiunta alle interfacce grafiche già descritte, sarà creato uno splash screen da visualizzare all avvio dell applicazione. Uno splash screen è l'immagine che viene visualizzata quando un'applicazione è in fase di caricamento. Figura 56 Mockup: splash screen Figura 57 Mockup: Main GUI (1) 92

102 ANALISI E PROGETTAZIONE DELL APPLICAZIONE Figura 58 Mockup: Main GUI (2) La Main GUI presenta a sinistra gli strumenti disponibili e a destra l album. Inizialmente, come in Figura 58 sono presenti solo 5 bottoni. Successivamente, dopo aver selezionato una serie, come in Figura 59, vengono visualizzati altri 5 bottoni relativi alle operazioni effettuabili su una serie. Figura 59 Mockup: 2D GUI La 2D GUI presenta a sinistra le funzionalità disponibili e a destra il visualizzatore di immagini medicali. Toccando l icona di MITO è possibile tornare alla Main GUI. 93

Cosa dovrebbero sapere i genitori sulla sicurezza delle radiazioni per uso medico

Cosa dovrebbero sapere i genitori sulla sicurezza delle radiazioni per uso medico Cosa dovrebbero sapere i genitori sulla sicurezza delle radiazioni per uso medico Gli esami radiologici consentono ai medici di effettuare la diagnosi e decidere il corretto iter terapeutico dei loro pazienti.

Dettagli

PET. Radionuclidi più utilizzati nella PET. Elemento prodotto T 1/2 in minuti primi B5 20 C6 10 N7 2 F 9 O8 110

PET. Radionuclidi più utilizzati nella PET. Elemento prodotto T 1/2 in minuti primi B5 20 C6 10 N7 2 F 9 O8 110 PET L acronimo PET sta per Positron Emission Tomography. Come per la SPECT, anche in questo caso si ha a che fare con una tecnica tomografica d indagine di tipo emissivo in quanto la sorgente di radiazione

Dettagli

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA SVILUPPO DI METODI DECONVOLUTIVI PER L INDIVIDUAZIONE DI SORGENTI INDIPENDENTI

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis 2 Intervento immediato con Bosch Intelligent Video Analysis Indipendentemente da quante telecamere il sistema utilizza, la sorveglianza

Dettagli

Dipendente pubblico tempo indeterminato - Settore Sanità - Tecnico Sanitario di Radiologia Medica Cat. D - R 3

Dipendente pubblico tempo indeterminato - Settore Sanità - Tecnico Sanitario di Radiologia Medica Cat. D - R 3 Curriculum Vitae Informazioni personali Cognome Nome DI LECCE GIOVANNI Indirizzo Via Lancisi, 137 61121 PESARO (PU) - ITALIA - Telefono Casa: 0721201445 cell. 3396173661 E-mail giangidile@libero.it Cittadinanza

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16 Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre

Dettagli

AZIENDA SANITARIA DI NUORO

AZIENDA SANITARIA DI NUORO AZIENDA SANITARIA DI NUORO REGIONE AUTONOMA DELLA SARDEGNA UNIONE EUROPEA Fondi POR FESR Sardegna 2007 2013. Programmazione economie più risorse aggiuntive a valere sull asse II: Inclusione, servizi Sociali,

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI. T.A.C o meglio T.C.

Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI. T.A.C o meglio T.C. Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI T.A.C o meglio T.C. Gentili Pazienti in modo molto semplice vogliamo fornirvi alcune informazioni utili per

Dettagli

Le interfacce aptiche per i beni culturali

Le interfacce aptiche per i beni culturali Le interfacce aptiche per i beni culturali Massimo Bergamasco 1, Carlo Alberto Avizzano 1, Fiammetta Ghedini 1, Marcello Carrozzino 1,2 1PERCRO Scuola Superiore Sant Anna, Pisa 2IMT Institude for Advanced

Dettagli

Guida all'installazione ed uso dell'app RXCamLink

Guida all'installazione ed uso dell'app RXCamLink Guida all'installazione ed uso dell'app RXCamLink Questa guida riporta i passi relativi all'installazione ed all'utilizzo dell'app "RxCamLink" per il collegamento remoto in mobilità a sistemi TVCC basati

Dettagli

Il portafoglio VidyoConferencing. Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi

Il portafoglio VidyoConferencing. Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi Il portafoglio VidyoConferencing Tutto ciò di cui avete bisogno per realizzare videoconferenze HD di qualità, accessibili e a costi vantaggiosi La qualità HD di Vidyo mi permette di vedere e ascoltare

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

Dipartimento Immagini Strutture Complesse e Semplici Dipartimentali

Dipartimento Immagini Strutture Complesse e Semplici Dipartimentali Dipartimento Immagini Strutture Complesse e Semplici Dipartimentali S.C. Fisica Sanitaria S.C. Medicina Nucleare Pietra Ligure S.C. Neuroradiologia Diagnostica ed Interventistica S.C. Radiologia Diagnostica

Dettagli

La radiochirurgia tramite Gamma Knife Informazioni per i pazienti

La radiochirurgia tramite Gamma Knife Informazioni per i pazienti La radiochirurgia tramite Gamma Knife Informazioni per i pazienti La radiochirurgia tramite Gamma Knife è un metodo ampiamente diffuso per il trattamento di un area selezionata del cervello, detta bersaglio.

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

TeamViewer 8 Manuale Meeting

TeamViewer 8 Manuale Meeting TeamViewer 8 Manuale Meeting Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni

Dettagli

Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI RISONANZA MAGNETICA

Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI RISONANZA MAGNETICA Prof. Giuseppe Scotti OPUSCOLO INFORMATIVO PER I PAZIENTI CHE DEVONO SOTTOPORSI A UN ESAME DI RISONANZA MAGNETICA Gentili Pazienti, desideriamo fornirvi alcune informazioni utili per affrontare in modo

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

RELAZIONE DI FINE TIROCINIO

RELAZIONE DI FINE TIROCINIO Dipartimento di Ingegneria Civile Laura Magistrale in Ingegneria Civile per la Protezione dai Rischi Naturali A.A. 2014-2015 RELAZIONE DI FINE TIROCINIO INTRODUZIONE ALL'USO DEL SOFTWARE GIS UDIG Tirocinante:

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

Le novità di QuarkXPress 10

Le novità di QuarkXPress 10 Le novità di QuarkXPress 10 INDICE Indice Le novità di QuarkXPress 10...3 Motore grafico Xenon...4 Interfaccia utente moderna e ottimizzata...6 Potenziamento della produttività...7 Altre nuove funzionalità...10

Dettagli

SCUOLANEXT, è l'esclusivo e rivoluzionario sistema informatizzato con cui far interagire docenti, studenti e famiglie in tempo reale!

SCUOLANEXT, è l'esclusivo e rivoluzionario sistema informatizzato con cui far interagire docenti, studenti e famiglie in tempo reale! SCUOLANET, è l'esclusivo e rivoluzionario sistema informatizzato con cui far interagire docenti, studenti e famiglie in tempo reale! SCUOLANET consente la piena digitalizzazione della scuola: completa

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni:

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni: Passepartout Mexal BP è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente flessibile, sia dal punto di vista tecnologico sia funzionale. Con più di

Dettagli

Corso di Laurea Magistrale in. Ingegneria civile per la protezione dai rischi naturali D.M. 270. Relazione di fine tirocinio A.A.

Corso di Laurea Magistrale in. Ingegneria civile per la protezione dai rischi naturali D.M. 270. Relazione di fine tirocinio A.A. Corso di Laurea Magistrale in Ingegneria civile per la protezione dai rischi naturali D.M. 270 Relazione di fine tirocinio A.A. 2013-2014 Analisi Strutturale tramite il Metodo agli Elementi Discreti Relatore:

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

Seagate Access per Personal Cloud Manuale utente

Seagate Access per Personal Cloud Manuale utente Seagate Access per Personal Cloud Manuale utente 2015 Seagate Technology LLC. Tutti i diritti riservati. Seagate, Seagate Technology, il logo Wave e FreeAgent sono marchi depositati o marchi registrati

Dettagli

nasce il futuro v secolo a. c. agorà virtuale

nasce il futuro v secolo a. c. agorà virtuale dell e-learning nasce il futuro v secolo a. c. Con Agorà, nell antica Grecia, si indicava la piazza principale della polis, il suo cuore pulsante, il luogo per eccellenza di una fertilità culturale e scientifica

Dettagli

Guida rapida Vodafone Internet Key K4607-Z. Progettata da Vodafone

Guida rapida Vodafone Internet Key K4607-Z. Progettata da Vodafone Guida rapida Vodafone Internet Key K4607-Z Progettata da Vodafone Benvenuti nel mondo della comunicazione in mobilità 1 Benvenuti 2 Impostazione della Vodafone Internet Key 4 Windows 7, Windows Vista,

Dettagli

explora consulting s.r.l. Via Case Rosse, 35-84131 SALERNO - tel 089 848073 fax 089 384582 www.exploraconsulting.it info@exploraconsulting.

explora consulting s.r.l. Via Case Rosse, 35-84131 SALERNO - tel 089 848073 fax 089 384582 www.exploraconsulting.it info@exploraconsulting. explora consulting s.r.l. Via Case Rosse, 35-84131 SALERNO - tel 089 848073 fax 089 384582 www.exploraconsulting.it info@exploraconsulting.it Procedura di gestione per Laboratori di Analisi Cliniche Pag.

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

GESTIONE ATTREZZATURE

GESTIONE ATTREZZATURE SOLUZIONE COMPLETA PER LA GESTIONE DELLE ATTREZZATURE AZIENDALI SWSQ - Solution Web Safety Quality srl Via Mons. Giulio Ratti, 2-26100 Cremona (CR) P. Iva/C.F. 06777700961 - Cap. Soc. 10.000,00 I.V. -

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale

Prof. Caterina Rizzi Dipartimento di Ingegneria Industriale RUOLO DELLA MODELLAZIONE GEOMETRICA E LIVELLI DI MODELLAZIONE PARTE 2 Prof. Caterina Rizzi... IN QUESTA LEZIONE Modelli 2D/3D Modelli 3D/3D Dimensione delle primitive di modellazione Dimensione dell oggettoy

Dettagli

LA REFERTAZIONE DELLA PET-TC ONCOLOGICA con 18F-FDG: istruzioni pratiche per un referto standardizzato e di qualità

LA REFERTAZIONE DELLA PET-TC ONCOLOGICA con 18F-FDG: istruzioni pratiche per un referto standardizzato e di qualità LA REFERTAZIONE DELLA PET-TC ONCOLOGICA con 18F-FDG: istruzioni pratiche per un referto standardizzato e di qualità Maria Lucia Calcagni, Paola Castaldi, Alessandro Giordano Università Cattolica del S.

Dettagli

MODALITA DI VALUTAZIONE DELLA DOSE EFFICACE PER I LAVORATORI ESPOSTI

MODALITA DI VALUTAZIONE DELLA DOSE EFFICACE PER I LAVORATORI ESPOSTI MODALITA DI VALUTAZIONE DELLA DOSE EFFICACE PER I LAVORATORI ESPOSTI Premessa La presente relazione fornisce i criteri e le modalità mediante i quali verranno valutate le dosi efficaci per lavoratori dipendenti,

Dettagli

Sistema di telecomunicazione per le piccole e medie imprese.

Sistema di telecomunicazione per le piccole e medie imprese. Sistema di telecomunicazione per le piccole e medie imprese. Sistema di telecomunicazione Promelit ipecs MG. Descrizione del Sistema: L azienda di oggi deve saper anche essere estesa : non confinata in

Dettagli

TECNOLOGIA LCD e CRT:

TECNOLOGIA LCD e CRT: TECNOLOGIA LCD e CRT: Domande più Frequenti FAQ_Screen Technology_ita.doc Page 1 / 6 MARPOSS, il logo Marposs ed i nomi dei prodotti Marposs indicati o rappresentati in questa pubblicazione sono marchi

Dettagli

Gestire le informazioni con un sorriso sulle labbra

Gestire le informazioni con un sorriso sulle labbra Gestire le informazioni con un sorriso sulle labbra Enterprise Content Management vi semplifica la vita Enterprise-Content-Management Gestione dei documenti Archiviazione Workflow www.elo.com Karl Heinz

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

1 Congresso Nazionale ANFeA Roma, Auditorium ISPRA 1 e 2 dicembre 2011

1 Congresso Nazionale ANFeA Roma, Auditorium ISPRA 1 e 2 dicembre 2011 1 Congresso Nazionale ANFeA Roma, Auditorium ISPRA 1 e 2 dicembre 2011 DETERMINAZIONE DEI PARAMETRI DI CAPTAZIONE DEI NUCLEI DELLA BASE DA ESAME DATSCAN CON I 123 TRAMITE SOFTWARE BASAL GANGLIA MATCHING

Dettagli

La suite Dental Trey che semplifica il tuo mondo.

La suite Dental Trey che semplifica il tuo mondo. La suite Dental Trey che semplifica il tuo mondo. impostazioni di sistema postazione clinica studio privato sterilizzazione magazzino segreteria amministrazione sala di attesa caratteristiche UNO tiene

Dettagli

Creazione di un disegno realistico con CorelDRAW

Creazione di un disegno realistico con CorelDRAW Creazione di un disegno realistico con CorelDRAW Hugo Hansen L'autore L'autore Hugo Hansen vive appena fuori dalla splendida città di Copenhagen. Esperto professionista nell'ambito del design grafico,

Dettagli

La PET/CT. con. Gallio-DOTATOC ( 68 Ga-DOTATOC) Informazione per pazienti. Dipartimento Oncologico e Tecnologie Avanzate Medicina Nucleare

La PET/CT. con. Gallio-DOTATOC ( 68 Ga-DOTATOC) Informazione per pazienti. Dipartimento Oncologico e Tecnologie Avanzate Medicina Nucleare Informazione per pazienti La PET/CT con Gallio-DOTATOC ( 68 Ga-DOTATOC) Dipartimento Oncologico e Tecnologie Avanzate Medicina Nucleare Dott. Annibale Versari - Direttore INDICE Cos è e come funziona la

Dettagli

Assessorato regionale dell'agricoltura, dello sviluppo rurale e della pesca mediterranea Dipartimento della pesca mediterranea

Assessorato regionale dell'agricoltura, dello sviluppo rurale e della pesca mediterranea Dipartimento della pesca mediterranea Assessorato regionale dell'agricoltura, dello sviluppo rurale e della pesca mediterranea Dipartimento della pesca mediterranea Ufficio del Responsabile Unico della Regione Sicilia per il Cluster Bio-Mediterraneo

Dettagli

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

COME USARE Local Cloud

COME USARE Local Cloud COME USARE Local Cloud Apri i file presenti sul tuo computer direttamente da iphone e ipad. designed and developed by Benvenuto! Questa guida rapida ti illustrerà come: Apri i file presenti sul tuo computer

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

AUTOLIVELLI (orizzontalità ottenuta in maniera automatica); LIVELLI DIGITALI (orizzontalità e lettura alla stadia ottenute in maniera automatica).

AUTOLIVELLI (orizzontalità ottenuta in maniera automatica); LIVELLI DIGITALI (orizzontalità e lettura alla stadia ottenute in maniera automatica). 3.4. I LIVELLI I livelli sono strumenti a cannocchiale orizzontale, con i quali si realizza una linea di mira orizzontale. Vengono utilizzati per misurare dislivelli con la tecnica di livellazione geometrica

Dettagli

GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY

GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY GUIDA ALLE BEST PRACTICE PER MOBILE DEVICE MANAGEMENT E MOBILE SECURITY Con Kaspersky, adesso è possibile. www.kaspersky.it/business Be Ready for What's Next SOMMARIO Pagina 1. APERTI 24 ORE SU 24...2

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Istituto per l Energia Rinnovabile. Autori: David Moser, PhD; Daniele Vettorato, PhD. Bolzano, Gennaio 2013

Istituto per l Energia Rinnovabile. Autori: David Moser, PhD; Daniele Vettorato, PhD. Bolzano, Gennaio 2013 Istituto per l Energia Rinnovabile Catasto Solare Alta Val di Non Relazione Versione: 2.0 Autori: David Moser, PhD; Daniele Vettorato, PhD. Coordinamento e Revisione: dott. Daniele Vettorato, PhD (daniele.vettorato@eurac.edu)

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

Ottimizzazione della gestione del data center con Microsoft System Center Ottimizzazione della gestione del data center con Microsoft System Center Declinazione di responsabilità e informazioni sul copyright Le informazioni contenute nel presente documento rappresentano le conoscenze

Dettagli

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale !"$#%!" #% Nella prima lezione... Definizione di Informatica Cosa è una soluzione algoritmica Esempi di algoritmi cicalese@dia.unisa.it 2 Prima parte: Società dell informazione Ma cosa vuol dire società

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

esame di stato 2012 seconda prova scritta per il liceo scientifico di ordinamento

esame di stato 2012 seconda prova scritta per il liceo scientifico di ordinamento RTICL rchimede 4 esame di stato seconda prova scritta per il liceo scientifico di ordinamento Il candidato risolva uno dei due problemi e risponda a 5 quesiti del questionario PRBLEM Siano f e g le funzioni

Dettagli

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo

white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo white paper La Process Intelligence migliora le prestazioni operative del settore assicurativo White paper La Process Intelligence migliora le prestazioni operative del settore assicurativo Pagina 2 Sintesi

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Software per l archiviazione e la gestione conforme delle email

Software per l archiviazione e la gestione conforme delle email MailStore Server 7 Software per l archiviazione e la gestione conforme delle email MailStore Server Lo standard nell archiviazione delle email MailStore Server consente alle aziende di trarre tutti i vantaggi

Dettagli

TELECOMUNICAZIONI (TLC) Generico sistema di telecomunicazione (TLC) Trasduttore. Attuatore CENNI DI TEORIA (MATEMATICA) DELL INFORMAZIONE

TELECOMUNICAZIONI (TLC) Generico sistema di telecomunicazione (TLC) Trasduttore. Attuatore CENNI DI TEORIA (MATEMATICA) DELL INFORMAZIONE TELECOMUNICAZIONI (TLC) Tele (lontano) Comunicare (inviare informazioni) Comunicare a distanza Generico sistema di telecomunicazione (TLC) Segnale non elettrico Segnale elettrico TRASMESSO s x (t) Sorgente

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP

NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP NAS 208 WebDAV Un'alternativa sicura per la condivisione di file su FTP Eseguire il collegamento al NAS tramite WebDAV A S U S T O R C O L L E G E OBIETTIVI DEL CORSO Al termine di questo corso si dovrebbe

Dettagli

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Tobia Castaldi Alessandro Amirante Lorenzo Miniero Simon Pietro Romano Giorgio Ventre 02/10/2009 GARR 2009 "Network

Dettagli

Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it

Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it Corso di laurea magistrale in Ingegneria delle Telecomunicazioni Metodi e Strumenti per la Caratterizzazione e la Diagnostica di Trasmettitori Digitali RF ing. Gianfranco Miele g.miele@unicas.it Trasmettitore

Dettagli

Introduzione al GIS (Geographic Information System)

Introduzione al GIS (Geographic Information System) Introduzione al GIS (Geographic Information System) Sommario 1. COS E IL GIS?... 3 2. CARATTERISTICHE DI UN GIS... 3 3. COMPONENTI DI UN GIS... 4 4. CONTENUTI DI UN GIS... 5 5. FASI OPERATIVE CARATTERIZZANTI

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

Strumenti 3D per SMART Notebook 11.1. Manuale dell'utente

Strumenti 3D per SMART Notebook 11.1. Manuale dell'utente Strumenti 3D per SMART Notebook 11.1 Manuale dell'utente Registrazione del prodotto Se si registra il prodotto SMART, si verrà informati delle nuove funzionalità e aggiornamenti software disponibili. Registrazione

Dettagli

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA

CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA CATTURARE LO SCHERMO INTERO O LA FINESTRA ATTIVA Supponiamo di voler eseguire una istantanea del nostro desktop, quella che in gergo si chiama Screenshot (da screen, schermo, e shot, scatto fotografico).

Dettagli

Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64

Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64 Le telecamere Installate verranno connesse ad Unità di elaborazione multiplexer per la gestione e la verifica di gruppi omogenei di 4-8-16-32-48-64 telecamere. I sistemi di acquisizione ed archiviazione

Dettagli

È nata una nuova specie di avvocati. Liberi.

È nata una nuova specie di avvocati. Liberi. È nata una nuova specie di avvocati. Liberi. LIBERI DI NON PENSARCI Basta preoccupazioni per il back-up e la sicurezza dei tuoi dati. Con la tecnologia Cloud Computing l archiviazione e la protezione dei

Dettagli

ADS-2100e Scanner desktop ad alta velocità per l'ufficio

ADS-2100e Scanner desktop ad alta velocità per l'ufficio ADS-2100e Scanner desktop ad alta Alimentatore automatico documenti da 50 fogli Alta qualità di scansione Velocità di scansione 24 ppm automatica fronte-retro Caratteristiche: Alta qualità Lo scanner ad

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

Percorso formativo ECM/ANCoM all interno del progetto IMPACT

Percorso formativo ECM/ANCoM all interno del progetto IMPACT Percorso formativo ECM/ANCoM all interno del progetto IMPACT Fabrizio Muscas Firenze, 1 Luglio 2011 ANCoM chi rappresenta? 8 Consorzi regionali 98 Cooperative di MMG 5000 Medici di Medicina Generale (MMG)

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

V11. Release 1. New Devices. New Features. More Flexibility.

V11. Release 1. New Devices. New Features. More Flexibility. V11 Release 1 New Devices. New Features. Highlights dell innovaphone PBX Versione 11 Release 1 (11r1) Con il software Versione 11 dell innovaphone PBX la soluzione di telefonia IP e Unified Communications

Dettagli

Campioni atomici al cesio

Campioni atomici al cesio Campioni atomici al cesio Introduzione Gli orologi con oscillatore a cristallo di quarzo, che si sono via via rivelati più affidabili e precisi degli orologi a pendolo, hanno iniziato a sostituire questi

Dettagli

Guida rapida. Cos è GeoGebra? Notizie in pillole

Guida rapida. Cos è GeoGebra? Notizie in pillole Guida rapida Cos è GeoGebra? Un pacchetto completo di software di matematica dinamica Dedicato all apprendimento e all insegnamento a qualsiasi livello scolastico Riunisce geometria, algebra, tabelle,

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

Software per la gestione di palestre, centri benessere e sportivi

Software per la gestione di palestre, centri benessere e sportivi Software per la gestione di palestre, centri benessere e sportivi Applicazione gestionale progettata per gestire tutti gli aspetti di palestre, centri sportivi e centri benessere Sicuro Personalizzabile

Dettagli