• Non ci sono risultati.

Il Software 3D-VIPE

5.4 Fase di riorganizzazione delle strutture

Giunti a questo punto, il software dispone di tutti i dati necessari per l’elabo- razione grafica. Tuttavia questi dati sono salvati all’interno delle strutture DI- COM Attributes e Tree, in formato ASCII. Il programma attuerà una trasforma- zione dal formato ASCII ai vari formati numerici al fine di rendere il dato uti- lizzabile dal sistema di controllo ECOS (che può compiere su di esso delle elabo- razioni) e per essere rappresentato nei vari plot, che sono indicatori di tipo nu- merico. Questa trasformazione avviene grazie alle librerie fornite da LabVIEW.

Seguendo il flusso di esecuzione il programma cerca tra i vari attributi quello che descrive la modalità che determina lo IOD (0008,0060) attraverso un subVI creato appositamente. In base al valore di questo attributo si delineano due di- versi modi di agire che porteranno alla riorganizzazione dei dati in strutture di diverso tipo; questi valori possono essere:

- “RTSTRUCT”, identificatore dell’oggetto RT Structure Set; - “RTPLAN”, identificatore dell’oggetto RT Plan;

si va a vedere come si comporta il programma quando i files Dicom appar- tengono ad una di queste due categorie.

5.4.1 L’indicatore StructureSet

Quando la modalità che determina lo IOD di un file Dicom è “RTSTRUCT”, le strutture DICOM Attribute e Tree vengono utilizzate dal programma Estrai RTStruct.vi, con l’obiettivo di creare l’indicatore contenente le informa- zioni di questo IOD utili alla visualizzazione delle strutture 3D e renderlo visua- lizzabile sul front panel. A livello operativo, questo subVI va ad effettuare una ricerca di alcuni Tag di interesse mostrati nella tabella 4 del cap. 4. Questa ricerca non è banale dal momento che, come si vede dalla figura 55, questo IOD è orga- nizzato in maniera molto articolata. Per cercare i Tag di interesse nei vari livelli della struttura gerarchica considera i paradigmi della programmazione a oggetti in riferimento ai Metodi del controllo Tree.

Questo programma memorizza, inoltre, gli UID relativi allo Studio, Serie, ecc. Se il loro valore è uguale a quello di altri oggetti che vengono creati dal TPS (tipicamente lo IOD RT Plan), il programma passa allo step finale dopo queste fasi di pre-elaborazione dei dati, senza dare nessun tipo di errore. Inoltra associa l’UID di una serie di punti del contour alla immagine CT su cui essi sono definiti, in modo da permettere in futuro la fusione dei due tipi di dato (CT e ROI) in una stessa figura.

La figura 56 mostra l’indicatore che si ottiene in uscita dal subVI, che è so- stanzialmente un array di cluster. Ogni cluster raccoglie varie tipologie di dati, ossia gli attributi utilizzati per descrivere una singola ROI. Si noti che c’è un altro array associato ad ogni singola ROI in cui sono raccolti i punti espressi me- diante triplette di coordinate (x,y,z) nel sistema di riferimento DICOM Patient. Tali punti si presentano in maniera ordinata, cioè andando a tracciare una linea che congiunge il primo punto al secondo, il secondo al terzo e così via fino a congiungere l’ultimo punto con il primo, si ottiene una superficie chiusa (in caso di geometria descritta dall’attributo “CLOSED_PLANAR”).

5.4.2 L’indicatore Ion Beam Sequence

Nel caso in cui la modalità che determina lo IOD di un file Dicom sia “RTPLAN” le strutture DICOM Attribute e Tree vengono utilizzate dal pro- gramma Estrai RTPlan.vi, con l’obiettivo di creare l’indicatore contenente le informazioni di questo IOD, ed in maniera più specifica quelle relative al mo- dulo Ion Beam, per renderlo visualizzabile sul front panel.

L’esecuzione di questo subVI consentirà nella fase successiva la visualizza- zione su uno grafico della mappa degli spot, organizzati in base all’energia del fascio pencil beam dell’acceleratore da mandare in ingresso al DDS. Sulla base di questa mappa, il DDS valuterà eventuali errori della posizione del fascio da de- stinare al paziente, in tempo reale. Anche in questo caso, il codice permette una ricerca dei Tag di interesse su più livelli, ma richiede una maggiore attenzione nella riorganizzazione dei dati. Nella parte dello standard Dicom PS3.3, relativa al modulo RT Ion Beam (sezione C.8.8.25), viene data una approfondita inter- pretazione agli attributi e della modalità in cui essi sono espressi, che è fonda- mentale per evitare una cattiva interpretazione di eventuali campi “vuoti”,

quando si è in presenza di strutture che si ripetono con un’elevata frequenza (prima tra tutte la Sequenza Ion Control Point).

Anche in questo caso, l’indicatore Ion Beam Sequence [fig. 57] è un array di cluster in cui ogni elemento rappresenta l’insieme dei parametri di setup o dei fasci di trattamento per la pianificazione del trattamento corrente. Nel caso cli- nico esaminato, andremo a considerare un trattamento di protonterapia con un singolo fascio esterno, per un paziente affetto da condrosarcoma.

All’interno di questo indicatore si trovano altre due sequenze descritte da appositi moduli; la prima è definita Ion Beam Attribute, che raggruppa i princi- pali settaggi relativi al fascio che rimarranno inalterati per tutto il trattamento; la seconda è la Sequenza Ion Control Point, un altro array di cluster che contiene tanti item quanti sono i control points e serve ad identificare le varie configura- zioni dell’acceleratore che descrivono il trattamento con protoni.

Per definire la sequenza Ion Control Point, e dunque il concetto stesso di punto di controllo, Dicom definisce delle regole:

- Tutti i parametri che variano in qualsiasi punto di controllo apparte- nente a un certo fascio, devono essere esplicitamente espressi per tutti i punti di controllo;

- Tutti i parametri di un segmento di irradiazione (cioè, con valori dell’attributo Cumulative Meterset Weigth (300A,0134) diversi all’inizio e alla fine del segmento) devono essere specificati in due se- parati punti di controllo che delimitano l’inizio e la fine del segmento. Ogni segmento di irradiazione è pertanto racchiuso da due punti di controllo;

- I parametri che variano all’interno di un segmento devono essere rap- presentati attraverso i loro valori differenti in questi punti di con- trollo. Viceversa, i parametri che rimangono invariati all’interno di un segmento devono essere rappresentati con valori uguali in en- trambe i punti di controllo (a meno che rimangono costanti per tutti

i punti del fascio). Per esempio, un trattamento con fascio che ri- chiede due segmenti di irradiazione indipendenti necessita di quattro punti di controllo per essere descritto. I punti di controllo 0 e 1 defi- niscono il primo segmento di irradiazione. Tra i punti di controllo 1 e 2, non viene fornita alcuna radiazione (il parametro Meterset ri- mane dunque costante), ma gli altri parametri potrebbero cambiare. Infine, il secondo segmento di irradiazione è definito tra i punti di controllo 2 e 3.

Questa definizione permette una determinazione inequivocabile ed esplicita dei parametri che variano nella fase di irradiazione, in opposizione a quei para- metri che variano invece tra segmenti di irradiazione. Con queste definizioni, non è dato conoscere il comportamento dei parametri dell’acceleratore tra punti di controllo specificati. La figura 58 illustra chiaramente il concetto di punto di controllo, alla luce di quanto appena detto.

Terminata la fase di riorganizzazione delle strutture in array di cluster, que- ste sono pronte per essere trasferite ai blocchi di elaborazione successivi che hanno la finalità di creare un’interfaccia utente interattiva.