• Non ci sono risultati.

Il Software 3D-VIPE

5.1 Generalità di 3D-VIPE

A seconda dei contenuti memorizzati nei files Dicom in ingresso, 3D-VIPE esegue delle differenti elaborazioni sui dati. Nello specifico, questi contenuti (gli IOD definiti nel capitolo 3) sono:

- RT Plan IOD. Gli attributi di questo IOD descrivono la geometria e direzione dei fasci, la posizione del lettino e del gantry, le energie dei fasci, la mappatura degli spot con il loro peso relativo in riferimento ai pencil beam, e altri parametri definiti in fase di pianificazione del trattamento dal TPS. 3D-VIPE raccoglie questi dati in un array di clu- ster (poiché sono diversi tipi di dato), dove ciascun cluster caratterizza completamente i parametri relativi a ciascun fascio del trattamento

racchiusi nel modulo RT Ion Beams. Inoltre, genera un grafico per ciascun fascio di trattamento, che rappresenta la mappatura degli spot sul piano su cui giace l’isocentro, che il fascio dovrà seguire durante l’erogazione della dose in modalità “quasi-discreta”. Questa mappa verrà inviata in ingresso al DDS e rappresenta dunque il mezzo per determinare se c’è una corrispondenza tra la posizione degli spot ero- gati nel trattamento che vanno al paziente e la posizione pianificata; in caso di discrepanze si andranno ad attivare dei meccanismi di sicu- rezza (interlock), che bloccano l’erogazione della dose al paziente; - RT Structure Set. Gli attributi di questo IOD su cui si concentra l’ela-

borazione da parte del software sono le coordinate dei vari contour delineati in fase di pianificazione del trattamento. 3D-VIPE raccoglie tutti questi punti in base alla struttura di appartenenza, avendo cura di riconoscere per ogni punto la slice CT di appartenenza (mediante l’attributo UID); in seguito va a generare anche in questo caso un ar- ray di cluster, dove ciascun cluster raccoglie i vari tipi di dato delle varie ROI del RT Structure Set. Le nuvole di punti vengono infine trattate mediante un algoritmo di rendering 3D, che ne consente la visualizzazione nello spazio rispetto ad un sistema di coordinate DI- COM Patient.

- Image CT. Gli attributi di questo IOD servono al software per otti- mizzare la visualizzazione delle immagini CT, salvate in formato bi- nario sotto l’attributo Pixel Data (7FE0,0010). Queste immagini ven- gono mandate in uscita attraverso un visualizzatore 2D, che rappre- senta le varie sezioni sui 3 piani anatomici: il piano trasverso che so- litamente è quello che si acquisisce mediante il tomografo, i cui pixel sono contenuti in Pixel Data; il piano sagittale e il piano coronale, in cui l’organizzazione dei pixel dell’immagine viene elaborata a poste- riori da parte di 3D-VIPE.

A fronte di queste funzionalità specifiche richieste, si doveva scegliere in quale ambiente di sviluppo si dovesse implementare 3DVIPE.

Esistono vari software specifici in grado di fornire le elaborazioni dei dati richieste; per quanto riguarda la codifica e lettura dei Dicom si va da semplici programmini come DICOMParser, passando per MicroDicom che consente an- che la visualizzazione delle immagini eventualmente memorizzate, fino ad arri- vare ai più complessi OsiriX o Slicer che consente anche la visualizzazione dei piani di trattamento (con le ROI segmentate, le distribuzioni di dose e le dire- zioni dei fasci); per la parte relativa al rendering grafico è da menzionare PCL (Point Cloud Library), un progetto open source che permette l’elaborazione e il processing di nuvole di punti 2D/3D, ed è basato su funzioni o librerie imple- mentate in C; infine si è considerato il MATLAB un ambiente per il calcolo nu- merico e l'analisi statistica scritto in C, che permette di interfacciarsi con molte- plici programmi.

Nonostante le potenzialità di questi programmi, alcuni di essi non danno la possibilità di esportare i dati elaborati. In altri casi ciò è possibile grazie alla pre- senza di pacchetti aggiuntivi o passando per altri programmi in modo da inficiare il requisito di compattezza richiesto al software finale. Inoltre è necessario che 3D-VIPE possa rendere fruibili i dati agli altri sottosistemi facenti parte di ERHA

Figura 50. Il sistema di controllo ECOS e i vari moduli da cui è composto. Nello schema sono evidenziati (ovale in rosso) i moduli che saranno implementati grazie a 3DVIPE.

e che sia completamente integrato all’interno del sistema di controllo dell’acce- leratore, ECOS [fig. 50].

Per questi motivi principali, la scelta riguardante l’ambiente di sviluppo di 3D-VIPE è ricaduta su LabVIEW (Laboratory Virtual Instrumentation Enginee- ring Workbench), su cui si basa il sistema di supervisione ECOS.

LabVIEW usa il linguaggio di programmazione grafico G, per creare pro- grammi sotto forma di diagrammi a blocchi. Il linguaggio G può essere conside- rato l’equivalente del codice sorgente nella programmazione tradizionale.

In breve, è un sistema di programmazione ad ampio spettro, ma comprende anche una serie di funzioni e strumenti di sviluppo designati appositamente per l’acquisizione di dati ed il controllo della strumentazione stessa. I programmi scritti in LabVIEW vengono chiamati Virtual Instrument (VI) poiché per la loro apparenza e funzionalità imitano e sostituiscono gli strumenti reali. Un VI non esiste sotto forma di testo, ma può essere salvato solo come un file binario che può essere aperto e compilato solo da LabVIEW, dal formato caratteristico .vi. Fondamentalmente un Virtual Instrument consiste in una interfaccia utente iterativa (Front Panel), un diagramma di flusso di dati che agisce come codice sorgente (Block Diagram), un’icona e dei connettori che permettono lo scambio di dati fra VI diversi.

Sul front panel si trovano controlli e indicatori. I controlli sono matrici, ma- nopole, potenziometri, pulsanti, quadranti e molti altri; simulano i dispositivi d'ingresso degli strumenti e forniscono dati allo schema a blocchi del VI. Gli indicatori sono grafici, tabelle, LED, termometri e molti altri; simulano i dispo- sitivi d'uscita degli strumenti e visualizzano i dati che lo schema a blocchi acqui- sisce o genera.

Tutti i vari Virtual Instrument creati possono essere usati gerarchicamente, allo stesso modo delle funzioni scritte in altri linguaggi. Infatti una volta creato un VI, esso può essere usato come un programma di massimo livello, oppure come sottoprogramma all’interno di Block Diagram di strumenti di un livello

devono associare i parametri grafici quali l’icona ed i connettori perché possa scambiare dati con altri subVI del VI di livello superiore.

A questo punto verrà esposta passo dopo passo la procedura sviluppata in LabVIEW per convertire l’informazione che si ottiene a partire dal TPS, in dati che saranno gestiti da ECOS, e saranno più facilmente comprensibili e visualiz- zabili graficamente mediante mappe di punti, immagini 2D o 3D. Segue lo schema del VI principale (il main nel linguaggio di programmazione), denomi- nato 3D-VIPE.vi [fig. 51].