Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CAMPUS DI CESENA
SCUOLA DI INGEGNERIA E ARCHITETTURA
Tesi in
Bioimmagini LM
Relatore Presentata da
Correlatori
2
3
Introduzione
Nel presente lavoro si affronterà il tema del software medicale, che negli ultimi anni, grazie alle
innovazioni tecnologiche, ha avuto un impatto sempre maggiore in termini di impiego terapeutico.
Nella prima parte si introdurrà il concetto di Software Medicale inteso come dispositivo medico e le
sue relative peculiarità. Successivamente si tratterà la validazione del software medicale all’interno
di contesti internazionali come il contesto europeo e degli Stati Uniti d’America, Verranno
approfonditi i concetti di verifica e validazione di un software medicale ed il processo di sviluppo del
software medicale, per garantire una progettazione sicura ed affidabile del software in ambito clinico.
La seconda parte del lavoro va invece ad utilizzare i concetti studiati nella prima parte per applicarli
ad un progetto innovativo. Il progetto Chromo4Vis è un dispositivo progettato per trattare una
patologia degenerativa della cornea, il cheratocono. Dopo una breve introduzione alla patologia, verrà
mostrata la tecnica più efficace per contrastarlo, il cross-linking corneale. Successivamente, verrà
dapprima introdotta la parte HW/SW del dispositivo per poi concentrarsi sulla validazione di un
requisito software, la valutazione della concentrazione della riboflavina durante il trattamento di
cross-linking corneale. Tale valutazione sarà effettuata tramite la creazione di una classe in C# che
conterrà il metodo per il calcolo della concentrazione ed un’altra classe per il test del metodo.
Quest’ultima classe, in particolare, implementerà lo Unit Test necessario a validare il corretto
funzionamento del metodo di calcolo.
3
4
4
5
Indice
Introduzione ...................................................................................................................................................... 3
Capitolo 1 .......................................................................................................................................................... 7
Capitolo 2 ........................................................................................................................................................ 33
Capitolo 3 ........................................................................................................................................................ 54
Capitolo 4 ........................................................................................................................................................ 79
5
6
6
7
Capitolo 1
La Direttiva europea 93/42/CEE [1] sui dispositivi medici, definisce come dispositivo medico (DM)
o medical device (MD):
“qualunque strumento, apparecchio, impianto, software, sostanza o altro prodotto, utilizzato da solo
o in combinazione, compreso il software destinato dal fabbricante ad essere impiegato
specificatamente con finalità diagnostiche o terapeutiche e necessario al corretto funzionamento del
dispositivo, destinato dal fabbricante ad essere impiegato sull’uomo a fini di diagnosi, prevenzione,
controllo, terapia o attenuazione di una malattia; di diagnosi, prevenzione, controllo, terapia,
attenuazione o compensazione di una ferita o di un handicap, di studio, sostituzione o modifica
dell’anatomia o di un processo fisiologico, di intervento sul concepimento, il quale prodotto non
eserciti l’azione principale, nel o sul corpo umano, cui è destinato, con mezzi farmacologici o
immunologici né mediante processo metabolico ma la cui funzione possa essere coadiuvata da tali
mezzi.”
7
8
utilizzato da solo o in combinazione, destinato dal fabbricante ad essere impiegato in vitro per
l’esame di campioni provenienti dal corpo umano al fine di fornire informazioni sugli stati
fisiologici o sugli stati sanitari o di malattia o anomalia congenita;
3. Dispositivo medico (in genere): qualunque altro dispositivo medico che non ricade nelle prime
due categorie
I dispositivi medici, in base alla vulnerabilità del corpo umano e tenendo conto dei rischi potenziali
connessi, sono suddivisi dalla Direttiva europea 93/42/CEE [1], nelle seguenti classi di rischio:
Classe I: dispositivi non sterilizzati/non per misure e sterilizzati/per misure; sono dispositivi
a basso rischio e non invasivi come medicazioni non-sterili per ferite o stetoscopi;
Classe IIa: sono dispositivi a medio rischio, non invasivi, come tubi tracheali e bisturi;
Classe IIb: sono dispositivi a medio rischio, spesso chirurgicamente invasivi a lungo termine,
come dispositivi di registrazione di immagini diagnostiche ottenute con raggi X (Tubi
radiogeni, TAC, PET), nonché lenti intraoculari, sacche per il sangue e laser chirurgici;
Classe III: sono dispositivi a più alto rischio, ed invasivi, tra cui tutti i dispositivi impiantabili
attivi come pacemaker e defibrillatori, ma anche valvole cardiache e stent vascolari.
Le classi elencate in precedenza sono stabilite sulla base della Durata e dell’Invasività.
Temporanea: destinata ad essere utilizzata di norma per una durata continua inferiore a 60
minuti;
Breve termine: destinata ad essere utilizzata di norma per una durata continua inferiore a 30
giorni;
Lungo termine: destinata ad essere utilizzata di norma per una durata continua superiore a 30
giorni;
L’Invasività riguarda invece dispositivi che penetrano parzialmente o interamente nel corpo tramite
un orifizio o una superficie corporea. Con “orifizio del corpo” si intende qualsiasi apertura naturale
del corpo, compresa la superficie esterna del globo oculare, oppure qualsiasi apertura artificiale e
8
9
Le regole di classificazione appena elencate servono come guida per poter individuare la classe di
appartenenza del dispositivo. In aggiunta, è bene sottolineare che, se un dispositivo è destinato ad
essere utilizzato in combinazione con un altro dispositivo, le regole di classificazione devono
applicarsi separatamente a ciascun dispositivo.
Compreso questo, qualunque sia la tipologia del dispositivo medico si ha che:
La classificazione dei dispositivi medici negli USA consta, per l’appunto, di sole 3 classi:
Classe I: all’interno di questa classe rientrano dispositivi medici che possiedono le seguenti
caratteristiche: rischio minimo, dispositivo non-sterile e pratiche di produzione semplici,
comuni. Alcuni esempi di dispositivi che presentano queste caratteristiche sono: abbassalingua,
9
10
Classe II: all’interno di questa classe rientrano dispositivi medici che possiedono le seguenti
caratteristiche: rischio moderato, dispositivi che possiedono Software (SW), Firmware (FW) e
dispositivi diagnostici. Alcuni esempi di dispositivi che presentano queste caratteristiche sono:
glucometri digitali, monitor per segnali vitali, strumenti elettrici chirurgici o di misura,
macchine ad ultrasuoni e diagnostiche in vitro;
Classe III: All’interno di questa classe rientrano dispositivi medici che possiedono le seguenti
caratteristiche: rischio elevato; dispositivi impiantabili (>30 giorni), dispositivi che trasportano
grandi quantità di energia. Alcuni esempi di dispositivi che presentano queste caratteristiche
sono: pacemaker impiantabili, protesi mammarie, protesi d’anca e di ginocchio, ventricoli
artificiali, protesi valvolari cardiache e stent aortici;
Con l’aumentare della classe del dispositivo aumenta contemporaneamente anche il rischio per la
salute del paziente. [1]
Ad oggi, il software medicale riveste sempre più un ruolo rilevante nella pratica clinica.
Come per ogni tecnologia che si innova e cambia il suo ruolo nel tempo, anche per il software
medicale, nella pratica clinica, bisogna considerare sia i rischi che i benefici. Lo stato dell’arte della
tecnologia software, da un lato, offre oggi grandi possibilità di applicazione dei software medicali nei
più diversi ambiti clinici. Questo comporta, dall’altro lato, anche rischi derivanti da possibili minacce
informatiche provenienti dalla rete interna, ma anche dall’esterno, soprattutto nelle tecnologie
wireless. In questo capitolo andiamo a delineare alcuni tra i possibili ambiti di applicazione dei
software medicali, cercando di evidenziare i potenziali rischi a fronte, ovviamente, dei benefici
apportati.
I software di apparecchiature di Imaging come TAC1 e RMN2, impiegati normalmente per
l’acquisizione di immagini digitali a scopo diagnostico, giocano un ruolo ancora più importante se
tali apparecchiature vengono impiegate in fase intra-operatoria, ossia per l’esecuzione di interventi
1
La Tomografia Computerizzata detta anche TAC (Tomografia Assiale Computerizzata), è una tecnica diagnostica che fa uso dei raggi X, questi vengono posti in
rotazione attorno alla testa o al corpo del paziente, i raggi X penetrano e vengono catturati da un rivelatore della radiazione, il processo permette di ottenere tante immagini
anatomiche del paziente [2]
2
La Risonanza Magnetica Nucleare detta anche RM (Risonanza Magnetica), è una tecnica diagnostica non invasiva basata sull’analisi di segnali provenienti da nuclei di H
caratterizzati da spin non nulli, soggetti ad intensi campi magnetici posti in condizioni di risonanza, il processo consente di ottenere tante immagini anatomiche ad alata
definizione di sezioni del corpo umano [2]
10
11
chirurgici guidati dalle immagini, si parla in questo caso di chirurgia software-guided ovvero
chirurgia guidata dal software (Figura 1). Negli ultimi due decenni, infatti, medici e ingegneri hanno
collaborato nello sviluppo e realizzazione di sistemi di Imaging intra-operatorio finalizzati al
perfezionamento degli interventi di neurochirurgia. Ecco perché i maggiori ospedali neurochirurgici
sempre più spesso sono dotati di sale operatorie polifunzionali, ovvero che incorporano scanner RMN
e TAC multistrato, per fornire ai chirurghi immagini ed informazioni in tempo reale durante la
procedura di intervento chirurgico.
Perché questa tipologia di informazione sta prendendo sempre più piede? Dai dati raccolti da questi
ospedali si è evidenziato come nel 40% degli interventi il chirurgo abbia modificato l’approccio
operatorio in base alle informazioni aggiuntive acquisite mediante Imaging intraoperatorio.
Prima dello sviluppo di queste tecnologie, le informazioni di questo tipo erano disponibili solamente
dopo il completamento della procedura chirurgica. In molti casi, la RMN intraoperatoria ha permesso
di visualizzare ed identificare residui di tessuto tumorale ed ha permesso quindi una resezione
completa, che altrimenti non sarebbe stata possibile se non sottoponendo il paziente ad un ulteriore
intervento. La tecnologia e l’innovazione permettono oggi di avere sul mercato anche software per la
pianificazione chirurgica 3D, già da tempo impiegati nell’implantologia dentale. In questa branca si
sfruttano software molto evoluti che riescono a manipolare i dati della TAC, trasformandoli in
strutture anatomiche digitali, è possibile quindi eseguire preventivamente l’intervento in modo
virtuale. Nell’implantologia dentale è possibile, inoltre, decidere diametro e lunghezza degli impianti
che supporteranno la protesi fissa, la loro esatta posizione, la qualità e lo stato dell’osso in cui essi
dovranno essere inseriti (Figura 2).
11
12
Parliamo quindi di un vero e proprio intervento virtuale che permette una pianificazione nei minimi
dettagli di quello che poi sarà l’intervento reale.
L’esecuzione di interventi pianificati attraverso software di ricostruzione 3D permette inoltre di
ottenere risultati post-operatori migliori, quindi una miglior riuscita dell’impianto.
La pianificazione chirurgica mediante software interviene anche in situazioni differenti dalla classica
implantologia, ad esempio, può aiutare l’odontoiatria anche in situazioni di estrazioni molto
complicate di denti, complicate in quanto tali denti sono contigui a strutture anatomiche delicate,
quali nervi o importanti vasi sanguigni.
I software di pianificazione chirurgica oggi trovano sempre più ampia applicazione anche in ambito
ortopedico, per esempio per interventi di endoprotesi d’anca (Figura 3).
Un altro esempio è il software in grado di pianificare un’osteotomia correttiva femorale o tibiale con
osteotomie semplici o multiple. Vengono automaticamente rilevate posizioni sbagliate degli assi e
corrette automaticamente o manualmente. Per questa tipologia di interventi componenti idonei per
osteosintesi come chiodi, piastre, viti ecc. possono essere selezionati da una banca dati. Parliamo ora
dei software diagnostici, ovvero quei software impiegati per la creazione di dati o immagini,
analogiche o digitali, mediante i quali il medico fornisce la diagnosi per il paziente.
Il trattamento delle immagini, coniugato a tecniche di riconoscimento automatico, è una disciplina
che ha assunto via via maggiore importanza nei campi più svariati. In particolare, in ambito clinico,
queste metodologie consentono di realizzare sistemi software in grado di riconoscere in maniera
automatica o semiautomatica la presenza di patologie nelle immagini diagnostiche, e possono quindi
12
13
essere di ausilio per il medico nella usuale pratica clinica o in caso di screening. Una delle metodiche
digitali di diagnostica per immagini più diffuse è sicuramente la TAC, fondamentale per la diagnosi
e ormai largamente diffusa data la sua possibile applicazione in tutti i distretti corporei.
Inoltre, grazie a software dedicati, essa permette l’elaborazione tridimensionale delle immagini
acquisite, ponendosi come metodica ottimale per lo studio anche di complesse strutture anatomiche.
La tomografia computerizzata (Figura 4) risulta essere un esame vantaggioso in quanto, nonostante
sia poco invasivo, è in grado di evidenziare bene i dettagli anatomici, i rapporti tra le strutture
anatomiche, di definire la densità degli organi interni e di stabilire la natura delle lesioni.
Ad esempio, la dotazione di software dedicati alla diagnostica delle ischemie cerebrali, esame molto
frequente per una TAC di pronto soccorso, consente al medico radiologo di accertare in brevissimo
tempo se il paziente soffre di deficit vascolari neurologici, responsabili delle ischemie3 (Figura 5).
3L’ischemia o ictus ischemico è un tipo di ictus che si verifica quando le arterie cerebrali vengono ostruite dalla graduale formazione di una placca aterosclerotica e/o da un
coagulo di sangue, che si forma sopra la placca arteriosclerotica (ictus trombotico) o che proviene dal cuore o da un altro distretto vascolare (ictus trombo-embolico). Circa
l’80% di tutti gli ictus è ischemico. [4]
13
14
Tale servizio promuove una gestione più oculata ed un trattamento meno asincrono rispetto all’attuale
pratica ambulatoriale. Il software infatti raccoglie e mostra, attraverso una specifica interfaccia,
l’evoluzione dell’andamento glicemico nel tempo, permettendo al medico di correggere più
rapidamente il trattamento insulinico prescritto migliorando, in tal senso, anche la programmazione
delle visite di controllo periodiche.
Sono ormai di uso comune e consolidato nella pratica clinica i sistemi di monitoraggio di parametri
fisiologici e vitali dei pazienti. Si tratta, in particolare, di piattaforme hardware e software per il
monitoraggio al posto letto del paziente, ma anche di sistemi wireless che consentono di monitorare,
in pazienti non ospedalizzati, parametri fisiologici quali pressione, temperatura, frequenza cardiaca e
altri. Alcuni software al posto letto, oltre al monitoraggio vero e proprio, offrono anche la possibilità
al medico di interagire con tutte le valutazioni funzionali, di laboratorio e diagnostiche fino alla
gestione della cartella clinica.
Talvolta, quindi, per permettere questa duplice funzionalità, i sistemi di monitoraggio sono costituiti
da due monitor separati, uno per le funzioni di monitoraggio e una per la gestione delle informazioni
14
15
e dei dati del paziente (Figura 7). In alternativa, esistono anche sistemi che permettono entrambe le
funzionalità sullo stesso monitor. In caso di rilevazione di condizioni cliniche critiche per il paziente,
il sistema di monitoraggio permette l’invio di segnali di allarme alla centrale di monitoraggio,
consentendo così un più pronto intervento ed una migliore assistenza da parte del personale sanitario.
Tali sistemi di monitoraggio sono inoltre collegati alla rete sanitaria aziendale, pertanto si
interfacciano con altri applicativi software impiegati all’interno della struttura sanitaria.
È chiaro però che attacchi informatici, virus o altro che dovessero colpire il software del sistema, e
quindi la cartella clinica elettronica, potrebbero minare la sicurezza del paziente. In caso di sistemi di
monitoraggio connessi tramite rete wireless, il rischio di minacce informatiche è ancora più alto, è
quindi necessario per questi software dotarsi di sistemi di sicurezza efficaci e adeguati alla tipologia
di dato che i software stessi gestiscono.
Un ulteriore innovazione tecnologica è data dalla telemedicina la quale eroga dei servizi di assistenza
sanitaria in situazioni in cui il professionista della salute ed il paziente, o due professionisti, non si
trovano nella stessa località. La telemedicina quindi comporta la trasmissione di informazioni e dati
di carattere medico al fine di effettuare prevenzione, diagnosi, trattamento e il successivo controllo
dei pazienti. Con la telemedicina si può parlare addirittura di “ricovero virtuale” in quanto è l’ospedale
che va a domicilio del malato. Il vantaggio è che il paziente può pertanto continuare a svolgere le sue
quotidiane attività anche durante il ricovero, il che minimizza lo spostamento del paziente, il tempo
di attesa, i relativi costi e migliora notevolmente il trasferimento delle informazioni.
Un’ultima tecnologia che ha preso sempre più piede negli ultimi anni riguarda la “mobile health”
(mHealth), tale espressione include tutto un insieme di tecnologie definite “mobili”, ossia che
sfruttano comunicazioni wireless applicate all’ambito medico-sanitario.
15
16
Si tratta certamente di tecnologie con enormi potenzialità migliorative per la salute pubblica
ed individuale. Tuttavia, a fronte di questi benefici, il comitato nazionale di Bioetica ha evidenziato
alcune problematiche relativamente alla sicurezza ed efficacia, alla dipendenza e vulnerabilità
tecnologica e all’autogestione della salute. Alcuni esempi di applicazioni (App) permettono il
collegamento con dispositivi medici al fine di pilotare il dispositivo stesso o visualizzare, salvare,
analizzare o trasmettere i dati del paziente provenienti dal dispositivo medico. Altre App medicali
invece trasformano smartphone o tablet in dispositivi medici regolati usando funzioni quali
telecamera, flash, accelerometri etc. In particolare, queste tecnologie includono:
Dispositivi composti da sonde per ecografia addominali, cardiache, tiroidee e per alcuni esami
prenatali, interfacciabili tramite USB al dispositivo mobile (Figura 9);
16
17
Da quanto sopra enunciato si può dedurre come il software sia ormai un elemento imprescindibile nel
settore sanitario; ovviamente, tanto più è evoluta la tecnologia software, tanto maggiori saranno i
benefici che si riescono ad ottenere, sia in termini di prestazioni cliniche, che in termini di risultati
per il paziente. Tuttavia, con i benefici cresceranno di pari passo anche i rischi per il paziente nel caso
in cui il software sia soggetto a minacce informatiche esterne. [3]
Le applicazioni del software nella pratica clinica e le conseguenti implicazioni per la sicurezza e
protezione dei dati informatici non possono prescindere da ciò che il legislatore europeo ha
disciplinato in materia di software all’interno delle Direttive sui dispositivi medici e sui dispositivi
medico-diagnostici in vitro. [3]
Il termine “Software as a Medical Device” (SaMD) ovvero Software come Dispositivo Medico, è
definito come: “un software destinato ad essere utilizzato per uno o più scopi medici, ed esegue questi
scopi senza essere parte di un dispositivo medico hardware”.
Inoltre, un SaMD può anche fornire:
17
18
La definizione di software in ambito medicale è stata ridefinita dalla Direttiva 2007/47/CE [6] di
emendamento alla Direttiva 90/385/CEE sui dispositivi medici impiantabili attivi [7] e alla Direttiva
93/42/CEE sui dispositivi medici [1]. La Direttiva 2007/47/CE ha infatti modificato la definizione di
dispositivo medico contenuta nell’articolo 1 richiamato, come segue:
Che non eserciti nel o sul corpo umano l’azione principale cui è destinato con mezzi farmacologici,
immunologici o mediante processi metabolici, ma la funzione possa essere coadiuvata da tali mezzi”.
La distinzione principale tra le due tipologie è che il software embedded o integrato costituisce una
parte del dispositivo medico, mentre il software standalone non è incorporato in un dispositivo
medico al momento della sua immissione sul mercato e non necessita dell’hardware, ovvero il
componente fisico di una periferica o di una apparecchiatura elettronica di un dispositivo medico;
quindi è esso stesso un dispositivo medico. [5]
Secondo la Direttiva 2007/47/CE [6]:
18
19
“è necessario chiarire che il software a sé stante, quando specificatamente destinato dal fabbricante
ad essere impiegato per una o più delle finalità mediche stabilite nella definizione di DM, è un
dispositivo medico”. [6]
Il software standalone che possiede quindi uno scopo medico è considerato, ai fini della sua
classificazione ai sensi dell’allegato IX della Direttiva 93/42/CEE [1], come dispositivo medico
attivo4, cioè come dispositivo dipendente per il suo funzionamento da una fonte di alimentazione.
Che approccio usare per classificare il software come dispositivo medico (DM)?
1. Se il SaMD è un programma per computer in ambito medicale, allora può essere un DM. Se
il software non è un programma per computer medicale, non è un DM;
2. Se il software è integrato in un DM, piuttosto che SaMD, deve essere considerato come parte
di questo DM in un processo di certificazione;
3. Se il software non esegue un'azione sui dati o esegue un'azione limitata allo stoccaggio,
archiviazione, comunicazione o semplice ricerca non è un DM;
4. Se il fabbricante intende il software da utilizzare per uno degli scopi di cui all'Articolo 1 bis
della Direttiva 93/42/CEE [8], il software deve essere qualificato come un DM. [9]
4
non va confuso il DM attivo dal dispositivo impiantabile attivo, quest’ultimo difatti presenta caratteristiche peculiari trattate dalla specifica normativa 90/385/CE. I DM
invece trattati dalla normativa 93/42 /CEE possono essere sia passivi, ad esempio stetoscopi, sia attivi ovvero che necessitano di un’alimentazione elettrica per poter
funzionare, ad esempio i SaMD [1]
19
20
START
Il software è un
No programma per
computer?
No Il software è incorporato in un
dispositivo medico?
SaMD
Si
È un software Si
che esegue
valutazioni Il comando in esecuzione porterà
statistiche, No qualche beneficio ai singoli pazienti?
studi clinici,
epidemiologici
o registri
Si
È un accessorio di
un dispositivo
medico?
No
Si
Si
Ad esempio Il
software esegue un In quanto software, Il software fa parte di un
comando monitora e segue o dispositivo medico
riguardante rimborsi influenza la performance
finanziari, gestione di un dispositivo medico
dello staff, senza fini
medici
Figura 11: Diagramma di flusso relativo alla classificazione del software come DM [9]
20
21
Il primo passo è confermare che il prodotto sia effettivamente classificabile come Software as
a Medical Device (SaMD), in conformità con la Direttiva in essere:
o Il prodotto dovrà riportare il fine medico nella destinazione d’uso (come da Direttiva
93/42/CEE, la MEDDEV 2.1/6 [9] è lo strumento idoneo da seguire);
In seguito, il software standalone che ha uno scopo medico è allora considerato un DM attivo
La Direttiva 2007/47/CE [6] non ha invece emendato la Direttiva 98/79/CE sui dispositivi medico-
diagnostici in vitro [10]. La definizione di dispositivo IVD quindi non include, ad oggi, alcun
riferimento specifico al software. Tuttavia, la MEDDEV 2.1/6 [9], ovvero la linea guida sulla
classificazione del software standalone, specifica che il software standalone, nel momento della sua
immissione in commercio o della sua messa in servizio, può essere qualificato come dispositivo
medico-diagnostico in vitro, a condizione che esso soddisfi la definizione di dispositivo IVD.
Per cui la MEDDEV sopra citata fornisce criteri per qualificare il software come dispositivo medico-
diagnostico in vitro, sulla base delle informazioni fornite dal software stesso. [9]
Che approccio usare per classificare il software come dispositivo medico diagnostico in vitro?
Utilizzando il diagramma di flusso seguente (Figura 12), il quale dice che il software standalone viene
classificato secondo la stessa classe di rischio di un IVD o di un loro accessorio posto che rispondano
ai requisiti delle relative direttive:
Se le informazioni fornite dal software si basano solo su dati ottenuti da un dispositivo IVD,
il software è un dispositivo IVD e ricade nella disciplina della Direttiva 98/79/CE [10];
Se le informazioni fornite dal software si basano solo su dati ottenuti da un dispositivo medico,
il software è un dispositivo medico e ricade nella disciplina della Direttiva 93/42/CEE [1];
Se le informazioni fornite dal software si basano sia su dati ottenuti da un dispositivo medico
che da un dispositivo IVD, il software è un dispositivo IVD e ricade nella disciplina della
Direttiva 98/79/CE. [10] [9]
21
22
Ne segue che, nell’Unione Europea, ogni fabbricante deve assegnare a ciascun software una specifica
classe di sicurezza, simile a quella vista in precedenza sui DM, in relazione ai possibili effetti che
potrebbero nuocere sul paziente. Vi sono tre diverse classi di sicurezza, elencate di seguito:
Classe A: il software non è suscettibile di produrre alcuna lesione o danno alla salute;
Classe B: il software è suscettibile di causare lesioni non gravi;
Classe C: il software è suscettibile di causare morte o lesioni gravi; [11]
Negli Stati Uniti, tuttavia, si utilizza un approccio differente al problema. La documentazione cui fa
capo questo approccio è contenuta nella guida chiamata: “Guidance for the Content of Premarket
22
23
Submissions for Software Contained in Medical Devices” [12]. Essa fornisce informazioni ai
fabbricanti di dispositivi medici e medici software circa la documentazione da includere all’interno
della commissione pre-market5, dei dispositivi medici software, inclusi i software standalone ed i
dispositivi hardware che incorporano il software.
La politica adottata dalla guida si basa su un principio denominato “The Least Burdensome
Approach” che sta per “approccio meno oneroso”. Difatti è un approccio quantomeno consigliato
dall’FDA per chi intenda classificare il proprio dispositivo come software per immetterlo in seguito
sul mercato. In particolare, FDA consiglia che la documentazione da includere in una richiesta pre-
market sia adeguata al cosiddetto "Level of Concern", ovvero alla classe di rischio del dispositivo.
Il “Level of Concern” del dispositivo mira a stimare la severità del rischio che un dispositivo potrebbe
provocare, sia direttamente che indirettamente, su un paziente od un operatore come risultato di una
falla del dispositivo stesso, difetti progettuali, o semplicemente in virtù del normale impiego del
dispositivo per i suoi specifici usi.
A tal fine FDA raccomanda di descrivere il ruolo che il suddetto software ha nel causare, controllare,
e/o mitigare il rischio che potrebbe convergere in un danno al paziente o all'operatore, cioè su come
le operazioni del software associate al funzionamento del dispositivo possano affliggere il paziente o
l'operatore. Questo è un fattore fondamentale nella determinazione di un appropriato “Level of
Concern” per il dispositivo. Bisogna specificare tuttavia che il “Level of Concern” viene definito
solo per essere utilizzato in questo contesto specifico e non è relazionato alla classificazione del
dispositivo (Classe I, II o III) o all'analisi del rischio.
FDA raccomanda che si debba determinare il “Level of Concern” prima di qualsiasi tentativo di
mitigazione di rischi rilevanti. In altre parole, la determinazione del “Level of Concern” dovrebbe
essere guidata dalle analisi di rischio in assenza di mitigazioni, indipendentemente dagli effetti delle
mitigazioni sui rischi individuali. Infine FDA raccomanda che venga descritto specificatamente come
si sia arrivati a quel determinato “Level of Concern”.
I “Level of Concern” sono tre: Maggiore (Major), Moderato (Moderate) e Minore (Minor):
5
Rappresenta la procedura necessaria al fine di poter immettere un dispositivo sul mercato, le commissioni pre-market sono: 510(k) (Pre-market Notification), PMA (Pre-
market Approval Application), IDE (Investigational Device Exemption) e HDE (Humanitarian Device Exemption) [12]
23
24
Il “Level of Concern” è considerato Moderato, nel caso in cui, un guasto o un danno latente,
possano direttamente/indirettamente risultare in un danno minore al paziente o all'operatore,
anche attraverso l'incorretta o ritardata informazione;
Come viene determinato quindi quale sia lo specifico “Level of Concern”? L’FDA ha messo a
disposizione delle tabelle, ognuna per quel preciso “Level of Concern”, contenente degli specifici
quesiti ai quali bisogna rispondere. Qualora la risposta a qualsiasi domanda sia “No”, si deve
continuare verso la domanda successiva:
Se la risposta a qualsiasi domanda seguente è SI, il “Level of Concern” per quel dispositivo
software è probabile sia quello Maggiore:
1. Il dispositivo software è qualificato come un dispositivo software per le analisi del
sangue?
(Un dispositivo software per le analisi del sangue è definito come prodotti software
intesi per essere usati nella manipolazione del sangue e dei suoi relativi componenti o
per il mantenimento dei dati che il personale del sistema di analisi del sangue usa nel
prendere decisioni riguardo l’adeguatezza dei donatori ed il rilascio del sangue o dei
suoi componenti per la trasfusione o altre manipolazioni)
2. Il dispositivo software è inteso che venga usato in combinazione con farmaci o liquidi
biologici?
3. Il dispositivo software è un accessorio di un dispositivo medico che ha un livello di
interesse maggiore?
4. Prima di mitigare i rischi, può un guasto del dispositivo software risultare nella morte
o in un danno serio, sia al paziente o ad un utente del dispositivo? Esempi di ciò
includono le seguenti domande:
24
25
Se le risposte a tutte le domande relative alle Tabelle 1 e 2 di sopra sono NO, probabilmente
il livello di interesse appropriato è quello Minore
25
26
Col termine “uso previsto” si intende lo scopo, specificato dal fabbricante, di utilizzo del prodotto,
processo o servizio come stabilito nelle specifiche, istruzioni e informazioni fornite dal fabbricante.
In particolare per categorizzazione si intende la “classificazione” dei dispositivi medici software
tramite dei principi riferiti al suo uso specifico al fine di individuare la classe e la relativa procedura
di registrazione. Ci sono molti aspetti da tenere in considerazione nell’utilizzo in ambito clinico che
possono aumentare o ridurre la probabilità di creare situazioni rischiose ai pazienti.
Esempi di questi aspetti sono:
Sebbene molti di questi aspetti possono influenzare l’importanza del dato in uscita dal SaMD, solo
alcuni possono essere identificati dall’uso previsto del SaMD. Generalmente, questi aspetti possono
essere raggruppati all’interno dei seguenti due fattori principali che forniscono una descrizione
adeguata dell’uso previsto del SaMD:
A. Importanza del dato fornito dal SaMD nei confronti della decisione clinica, e
B. La dichiarazione della situazione o condizione dell’assistenza sanitaria
26
27
Il primo di questi fattori identifica lo scopo medico specifico del SaMD. La dichiarazione dovrebbe
spiegare come il SaMD incontri uno o più scopi descritti nella definizione di dispositivo medico.
Il secondo fattore, invece, identifica la situazione o la condizione dell’assistenza sanitaria per il quale
il SaMD è destinato. Quando questi fattori sono inclusi nella descrizione dell’uso prevista del
fabbricante, essi possono essere utilizzati per “categorizzare” il SaMD.
In particolare, i due fattori “A” e “B” sopraelencati aiutano lo sviluppatore a determinare la categoria
del SaMD nel quadro della categorizzazione. Infine, esiste un ulteriore fattore chiamato “C”, il quale
serve per aiutare i fabbricanti nella gestione delle modifiche del SaMD che possono convergere verso
modifiche della categoria. In particolare esso descrive le funzionalità di base del SaMD e identifica
le sue funzioni critiche, ciò è essenziale per la destinazione d’uso delle informazioni fornite dal SaMD
nei confronti delle decisioni cliniche in una specifica situazione o condizione di assistenza sanitaria.
La destinazione d’uso dell’informazione fornita dal SaMD nella gestione clinica possiede significati
differenti verso l’azione presa dall’utente.
Guidare la gestione clinica: per aiutare nel trattamento tramite la fornitura di un supporto alla
salute migliore e l’uso efficace dei prodotti medicinali o di un dispositivo medico. Per aiutare
nella diagnosi tramite l’analisi delle informazioni rilevanti, per aiutare a predire il rischio di
una condizione o malattia o come aiuto per produrre una diagnosi definitiva ed infine per
identificare segni precoci di una condizione o malattia;
Dare informazioni sulla gestione clinica: per informare circa le opzioni di trattamento,
diagnosi, prevenzione, o mitigazione di una condizione o di una malattia; per fornire
l’informazione clinica tramite l’aggregazione di informazioni pertinenti, come ad esempio
malattia, medicine, dispositivi medici, popolazione etc.;
27
28
Situazioni o condizioni non serie: si intendono situazioni o condizioni dove una diagnosi
accurata ed il trattamento è importante ma non critico per interventi di mitigazione delle
conseguenze irreversibili nel lungo termine sullo stato di salute di un singolo paziente o di
salute pubblica. Il SaMD è considerato essere utilizzato in una situazione o condizione non
seria quando:
28
29
Si enuncia ora un approccio per categorizzare o classificare i SaMD in base ai fattori identificati nelle
dichiarazioni precedenti. I seguenti principi sono quelli ritenuti necessari da utilizzare nell’approccio
di categorizzazione del SaMD:
Le quattro categorie, I, II, III e IV, si basano sul livello di impatto sul paziente o sulla sanità
pubblica, dove le informazioni accurate fornite dal SaMD per trattare o diagnosticare, guidare
o informare la gestione clinica è vitale per evitare la morte, disabilità a lungo termine o altri
seri deterioramenti della salute;
Quando la definizione della dichiarazione del SaMD del fabbricante indica può essere
utilizzato in diverse situazioni o condizioni di assistenza sanitaria, esso è categorizzato alla più
alta categoria in base alle informazioni incluse nella definizione della dichiarazione del SaMD;
Quando un fabbricante effettua delle modifiche al SaMD durante il ciclo di vita, il quale risulta
nella modifica della definizione della dichiarazione, la categorizzazione del SaMD dovrebbe
essere rivalutata appropriatamente. Il SaMD è categorizzato secondo le informazioni incluse
nella modifica della definizione della dichiarazione del SaMD;
29
30
Il SaMD avrà la sua categoria secondo la sua definizione di dichiarazione anche se un SaMD
si interfaccia con altri SaMD, altri dispositivi medici hardware, o utilizzati come modulo di un
sistema più ampio;
Seria III II I
Non-seria II I I
Vediamo più nel dettaglio i criteri per la determinazione della categoria del SaMD:
i. il SaMD che fornisce informazioni per trattare o diagnosticare una malattia in una
situazione o condizione critica appartiene alla categoria IV ed è considerato essere di
grande impatto;
i. il SaMD che fornisce informazioni per trattare o diagnosticare una malattia in una
situazione o condizione seria appartiene alla categoria III ed è considerato essere di
grande impatto;
ii. Il SaMD che fornisce informazioni per guidare la gestione clinica di una malattia in una
situazione o condizione critica appartiene alla categoria III ed è considerato essere di
grande impatto;
30
31
i. il SaMD che fornisce informazioni per trattare o diagnosticare una malattia in una
situazione o condizione non seria appartiene alla categoria II ed è considerato essere di
medio impatto;
ii. Il SaMD che fornisce informazioni per guidare la gestione clinica di una malattia in una
situazione o condizione seria appartiene alla categoria II ed è considerato essere di medio
impatto;
iii. Il SaMD che fornisce informazioni per informare la gestione clinica per una malattia in
una situazione o condizione critica appartiene alla categoria II ed è considerato essere di
medio impatto.
i. Il SaMD che fornisce informazioni per guidare la gestione clinica di una malattia o di
condizioni in una situazione o condizione non seria appartiene alla categoria I ed è
considerato essere di basso impatto;
ii. Il SaMD che fornisce informazioni per informare la gestione clinica per una malattia o
condizioni in una situazione o condizione seria appartiene alla categoria I ed è
considerato essere di basso impatto;
iii. Il SaMD che fornisce informazioni per informare la gestione clinica per una malattia in
una situazione o condizione non seria appartiene alla categoria I ed è considerato essere
di basso impatto. [5]
Vediamo infine alcuni esempi relativi all’applicazione del quadro di regolarizzazione ampiamente
enunciato in precedenza su alcuni dispositivi medici utilizzati nella pratica clinica (Tabella 6):
31
32
Un SaMD che esegue l’analisi di immagini diagnostiche Questo SaMD sfrutta il criterio della categoria IV,
per produrre decisioni sul trattamento in pazienti con in quanto l’informazione fornita dal SaMD è
ictus acuto, dove una veloce ed accurata differenziazione utilizzata per trattare un paziente fragile in una
tra ictus ischemico ed emorragico è cruciale al fine di condizione critica poiché in pericolo di vita, può
IV scegliere una precoce inizializzazione della terapia richiedere un importante intervento terapeutico, ed
tromboembolica intravenosa di salvataggio della massa è sensibile al tempo.
cerebrale od un intervento di rivascolarizzazione
32
33
Capitolo 2
Nel presente capitolo verranno trattati gli aspetti regolatori necessari a convalidare un software
medicale all’interno dell’Unione Europea, le caratteristiche di applicabilità e le relative peculiarità.
In particolare, verrà analizzata la normativa CEI EN 62304 [11], in cosa consiste e come viene
applicata al fine di validare il software medicale.
6
Infatti IEC 82304-1:2016 fa riferimento a IEC 62304 e interseca il suo ambito, ma definisce i requisiti a livello di sistema / prodotto (cioè requisiti di prodotto,
validazione del prodotto, identificazione del prodotto e istruzioni per l'uso, attività post-market)
33
34
In particolare, in riferimento all’appendice A dello standard, esso definisce un gruppo di processi che
devono essere seguiti nello sviluppo e mantenimento di un dispositivo medico software e che la scelta
di tali processi sia appropriata e commisurata al rischio verso il paziente o terzi, ad esempio medici o
altro personale sanitario.
Nel tempo, purtroppo, sono avvenuti diversi incidenti connessi al servizio o alla manutenzione di
sistemi di dispositivi medici, includendo aggiornamenti e miglioramenti software inappropriati, per
questo motivo il processo globale di mantenimento del software è considerato essere così
importante, quanto il processo di sviluppo del software vero e proprio.
L’appendice A dello standard, spiega come la norma consenta di migliorare:
L’affidabilità del software richiedendo dettagli e rigore durante le singole fasi di progettazione,
test o verifica;
La sicurezza del dispositivo medico software;
Sviluppo;
Manutenzione del software, quando:
o esso stesso è un dispositivo medico;
o esso è integrato nel dispositivo medico finale;
La norma CEI EN 62304:2006 [11] deve essere utilizzata insieme ad altri standard, laddove
appropriati, nello sviluppo di un dispositivo medico, tali relazioni sono mostrate nell’appendice C
dello standard.
Gli standard sulla gestione dei dispositivi medici come gli standard internazionali ISO 14971:2012
“Application of risk management to medical devices” [13] e ISO 13485:2016 “Quality management
systems - Requirements for regulatory purposes” [14] forniscono un’ambiente di gestione che delinea
le basi per sviluppare un dispositivo medico.
In particolare, è molto importante che il fabbricante applichi un processo di gestione del rischio che
sia conforme alla norma ISO 14971:2012 [13]. È obbligatorio infatti, all’interno della
documentazione di processo, inserire un’opportuna analisi del rischio redatta in conformità alla norma
sopracitata all’ultima revisione, la quale, deve includere i pericoli che possono essere causati, anche
indirettamente, dal software stesso.
34
35
Il fabbricante dovrà quindi identificare i componenti software che potrebbero contribuire ad una
situazione pericolosa (classi B, C).
In particolare il fabbricante prenderà in considerazione le potenziali cause, tra cui:
Perciò, per uno sviluppo ed una manutenzione sicura del dispositivo medico software è necessario
stabilire una gestione del rischio in conformità con la ISO 14971:2012 [13], integrata ad un sistema
di gestione della qualità conforme alla ISO 13485:2016 [14], delineando un quadro complessivo da
affiancare all’applicazione di appropriate tecniche ingegneristiche. La combinazione di questi tre
concetti porta il fabbricante del dispositivo medico a seguire un processo decisionale chiaramente
strutturato, chiaro e ripetibile al fine di promuovere la sicurezza del dispositivo medico software.
Altri standard sulla sicurezza come gli standard “Medical electrical equipment” CEI EN 60601:2006
[15] e CEI EN 61010-1:2010 “Safety requirements for electrical equipment for measurement,
control, and laboratory use - Part 1: General requirements” [16] si prefiggono come obiettivo quello
di creare dispositivi medici sicuri.
Quando il software è parte integrante di un dispositivo medico, lo standard CEI EN 62304:2006 [11]
fornisce una guida più dettagliata su cosa sia richiesto per sviluppare e mantenere in sicurezza un
dispositivo medico software. Molti altri standard come gli standard ISO/IEC/IEEE 12207:2017
“Systems and software engineering -- Software life cycle processes” [17], IEC 61508:2010
“Functional safety of electrical/electronic/programmable electronic safety-related systems” [18] e
ISO/IEC 90003:2014 “Software engineering -- Guidelines for the application of ISO 9001:2008 to
computer software” [19] possono essere visti come una fonte di metodi, strumenti e tecniche che
possono essere utilizzate per implementare i requisiti della CEI EN 62304:2006 [11].
7
SOUP sta per “Software Of Unknown Provenience”, esso è un Software Item che è già stato sviluppato e disponibile, ma che non è stato sviluppato per essere
incorporato in un dispositivo medico o in un software precedentemente sviluppato per il quale non sono disponibili registrazioni adeguate dei processi di sviluppo, è
conosciuto anche col nome di: “Off-Th-Shelf Software”.[ 11]
35
36
In figura 13 sono mostrate le relazioni con i vari standard sopracitati, e come questi si interfaccino tra
loro. [11]
Figura 13: relazione della norma CEI 62304 con altri standard [11]
Nel capitolo precedente si è parlato dell’importanza della validazione del software, importanza
considerata alla stregua della progettazione del software stesso. A tal proposito, anche se non implica
direttamente la relazione con la norma CEI EN 62304:2006 [11], questa considerazione sulla
validazione del software è stata recepita a livello normativo con la modificazione all’interno della
Direttiva 93/42/CEE [1], in particolare all’Allegato I dei requisiti essenziali, che recitava:
“12.1. I dispositivi che contengono sistemi elettronici programmabili devono essere progettati in
modo tale da garantire la riproducibilità, l’affidabilità e le prestazioni di questi sistemi
conformemente all’uso cui sono destinati. […]” [1]
Nei confronti della successiva modifica della Direttiva 93/42/CEE (con recepimento della
2007/47/CE) [8], che recita:
36
37
“12.1. I dispositivi che contengono sistemi elettronici programmabili devono essere progettati in
modo tale da garantire la riproducibilità, l’affidabilità e le prestazioni di questi sistemi
conformemente all’uso cui sono destinati. […]
12.1 bis. Per i dispositivi che incorporano un software o costituiscono in sé un software medico, il
software è convalidato secondo lo stato dell’arte, tenendo conto dei principi del ciclo di vita dello
sviluppo, della gestione dei rischi, della validazione e della verifica.” [8]
Questa modifica sottolinea ancora meglio come una buona e rigorosa progettazione del software
medicale scongiuri da eventuali rischi di ogni tipo. Ovviamente è bene sottolineare anche come non
esista un metodo che garantisca al 100% la sicurezza per ogni tipo di software, bensì tale norma
fornisce delle valide metodologie da seguire per progettare il software medicale secondo i criteri più
stringenti, esaurienti ed efficaci in funzione della sua futura utilità.
Il software è spesso parte integrante della tecnologia del dispositivo medico. Stabilire la sicurezza e
l’efficacia di un dispositivo medico contenente software richiede la conoscenza di ciò che il software
è tenuto a svolgere nonché dimostrare che l’uso del software soddisfi quegli specifici obiettivi senza
causare alcun rischio inaccettabile. Si è accennato in precedenza che la norma CEI EN 62304:2006
fornisce un quadro dei processi del ciclo di vita del software, dove ogni Processo del ciclo di vita è
ulteriormente diviso in diverse Attività, e queste ulteriormente divise in diverse Funzioni.
Per prima cosa è bene specificare che tre sono i termini che identificano le diverse parti da cui può
essere composto un software. Vediamoli più nel dettaglio:
Il livello più alto della decomposizione è costituito quindi dal Software System, mentre il livello più
basso non ulteriormente scomponibile è la Software Unit. Tutti i livelli di composizione, compresi i
livelli superiore e inferiore, possono essere chiamati Software Item. Un Software System, quindi, è
composto da uno o più Software Item e ciascun Software Item è composto da una o più Software
Unit o Software Item decomponibili. La responsabilità di fornire la definizione e la granularità dei
Software Item e delle Software Unit è lasciata al fabbricante.
37
38
Vediamo adesso più nel dettaglio, cosa si intende con i vari stadi di decomposizione software, relativi
al processo del ciclo di vita dello stesso:
Per cui, il processo di sviluppo del software consta di un certo numero di attività (Figura 15):
Customer needs Activities outside the scope of this standard Customer needs
satisfied
7 SW RISK MANAGEMENT
8 SW configuration management
9 SW problem resolution
Figura 15: panoramica sul processo di sviluppo del software con relative attività e funzioni [11]
38
39
Andiamo un po' più nel dettaglio dello standard CEI EN 62304:2006. In base all’appendice A della
norma CEI EN 62304:2006, il requisito principale che si riscontra è che una serie di processi devono
susseguirsi nello sviluppo e manutenzione del dispositivo medico software e, che la scelta dei processi
sia appropriata ai rischi verso il paziente e verso terzi. Ciò deriva dalla convinzione che il test del
software non sia sufficiente per determinare che il software sia effettivamente sicuro durante il suo
normale funzionamento.
I Processi richiesti dallo standard ricadono all’interno di due categorie:
1. Processi richiesti per determinare i rischi provenienti dall’operazione di ogni software item
all’interno del software;
2. Processi richiesti per raggiungere una probabilità appropriatamente bassa di errore del software
per ogni software item, scelto sulla base della determinazione di questi rischi;
Lo standard CEI EN 62304:2006 richiede che venga eseguita la prima categoria per tutto il
dispositivo medico software e la seconda categoria per i software item selezionati.
Tutte le attività che sono richieste come parte della prima categoria di processi sono identificate con
la dicitura “(classe A, B, C)”, la quale indica che sono richieste indipendentemente dalla
classificazione del software a cui si applicano.
Le Attività necessarie durante il ciclo di vita del software, nelle classi di sicurezza A, B e C, e che
devono essere documentate, sono:
L’attività che produce un piano relativo alla gestione dei rischi o alla classificazione della
sicurezza del software;
L’attività che produce un’uscita che è un input per la gestione del rischio o classificazione di
sicurezza del software;
L’attività che è una parte della gestione del rischio o della classificazione di sicurezza del
software;
L'attività che stabilisce un sistema di amministrazione, documentazione o sistema di
conservazione dei registri che supporti la gestione del rischio o la classificazione di sicurezza
del software;
L’attività che si svolge normalmente quando la classificazione del relativo software è
sconosciuta;
39
40
L'attività che può causare una modifica che potrebbe invalidare l'attuale classificazione di
sicurezza del software associato. Ciò include la scoperta e l'analisi dei problemi relativi alla
sicurezza dopo il rilascio.
Le attività necessarie durante il ciclo di vita del software, nelle classi di sicurezza B e C, e che devono
essere documentate, sono:
L'attività che accresce l'affidabilità del software richiedendo maggiori dettagli o più rigore nel
design, test o altra verifica;
L'attività amministrativa che supporta un'altra attività richiesta per le classi B o C;
L'attività che supporta la correzione di problemi legati alla sicurezza;
L'attività che produce documenti di progettazione, implementazione, verifica e rilascio di
software relativamente alla sicurezza.
Le attività necessarie durante il ciclo di vita del software, nella classe di sicurezza C, e che devono
essere documentate, sono:
L'attività che migliora ulteriormente l'affidabilità del software richiedendo maggiori dettagli, o
più rigore, o ancora, attenzione a problemi specifici nella progettazione, test o altra verifica;
In base a quanto visto nel capitolo precedente circa la classificazione del software, è bene che il
fabbricante assegni ad ogni Software System una classe di sicurezza, in accordo con i possibili effetti
o rischi sul paziente, sull’operatore, o altro personale nei confronti del quale il Software System può
contribuire. Come già accennato le classi di sicurezza del software devono inizialmente essere
assegnate in funzione della severità, come segue:
Se il rischio dovesse sorgere da una falla del Software System, la probabilità di quel danno deve essere
assunta al valore 100 %.
Tuttavia:
Se il rischio di morte o di un grave danno, causato da una falla del software, è successivamente
ridotto ad un livello accettabile (come definito dalla norma ISO 14971:2012 [13]) ad esempio
40
41
tramite una misura hardware di controllo del rischio, o riducendo le conseguenze del danno o
la probabilità di morte derivante da quella falla, la classificazione di sicurezza del software
potrebbe essere ridotta da C a B;
Se il pericolo di un infortunio di natura non grave, causato da una falla del software, è allo
stesso modo ridotto ad un livello accettabile da una misura hardware di controllo del rischio,
la classificazione di sicurezza del software potrebbe essere ridotta da B ad A.
In questo esempio il fabbricante conosce, per il tipo di dispositivo medico software in fase di sviluppo,
che la classificazione preliminare di sicurezza del software per il Software System, è la classe C.
Durante la progettazione dell’architettura software il costruttore ha deciso di suddividere il sistema,
come mostrato in figura, in tre Software Items: X, W e Z.
Il fabbricante è in grado di aggregare all’interno del Software Item Z tutte le parti del Software System
che potrebbero causare la morte o lesioni gravi e segregare tutti i contributi del Software System, dai
pericoli che potrebbero causare la morte o lesioni gravi, che potrebbero risultare in un danno di natura
non grave, all’interno del Software Item W. Il Software Item W è classificato come classe di sicurezza
41
42
del software B ed il Software Item Z si trova nella classe di sicurezza del software C. Il Software Item
Y pertanto deve essere classificato come classe C. Il Software System è anch’esso in una classe di
sicurezza del software C per questo requisito. Il Software Item X è stato classificato in una classe di
sicurezza del software A. Il fabbricante è in grado di documentare una logica a favore della
separazione tra Software Item X e Y, così come tra Software Item W e Z, per assicurare l'integrità
della segregazione. Se il partizionamento non fosse possibile i Software Item X e Y devono essere
classificati nella classe di sicurezza del software C.
Lo standard CEI EN 62304:2006, come già accennato, non richiede un particolare modello di ciclo
di vita per lo sviluppo del software, esso però implica dipendenze tra processi, in quanto gli input di
un processo sono generati da un altro processo. Per esempio, la classificazione sulla sicurezza del
sistema software dovrebbe essere completata dopo che il processo di analisi del rischio ha stabilito
quale danno potrebbe esserci da un difetto del sistema software.
Il modello del ciclo di vita dello sviluppo del software è una struttura concettuale che abbraccia tutta
la vita del software, dalla definizione dei suoi requisiti, al suo rilascio per la produzione, il quale:
Identifica i processi, le attività e le funzioni coinvolte nello sviluppo del Prodotto Software;
Descrive la sequenza e la dipendenza tra attività e funzioni;
Identifica le tappe fondamentali nelle quali viene verificata la completezza dell’output
dell’attività e/o funzione richiesta;
A causa della logica dipendenza tra processi, è più facile descrivere questi ultimi tramite una
sequenza, il che implica un ciclo di vita “waterfall” o “once-through”, ma possono essere usati anche
altri cicli di vita. Alcune di queste strategie di sviluppo, come definite dallo standard CEI ISO IEEE
12207 [17], includono:
Waterfall: è chiamata anche strategia “Once-through”, ad ogni modo tale strategia consiste
nell’esecuzione del processo di sviluppo una sola volta. Più precisamente: si determinano le
necessità dell’utente, vengono definiti i requisiti, viene progettato il sistema, viene
implementato, viene testato, sistemato ed infine viene distribuito;
42
43
Evolutionary NO SI SI
Tabella 7: modelli di ciclo di vita, come definite nella norma ISO CEI 12207 [17]
Qualunque sia il modello di ciclo di vita scelto è necessario mantenere le logiche dipendenze tra gli
output dei processi, come specifiche, documenti di progetto e software. Il modello del ciclo di vita
waterfall raggiunge questi obiettivi ritardando l’inizio del processo sino a che gli input per quel
processo sono completi ed approvati. Altri cicli di vita, in particolare i cicli di vita evolutivi,
consentono di produrre l’output di un processo prima che siano disponibili tutti gli input per quel
processo. Ad esempio, un nuovo Software Item può essere specificato, classificato, implementato e
verificato prima che l'intera architettura software sia stata ultimata. Tali cicli di vita portano con sé il
rischio che un cambiamento o uno sviluppo in un output di un processo invalidi l’output di un altro
processo.
In seguito possiamo vedere i principi più importanti riguardo il modello del ciclo di vita dello sviluppo
software:
Tutti gli output di un processo devono essere mantenuti in uno stato coerente, ogni volta che
l’output di un processo viene creato o modificato, tutti gli output correlati a quel processo
dovrebbero essere aggiornati per mantenere sia la loro coerenza con gli altri output sia tutte
le dipendenze esplicite o implicite richieste dallo standard;
43
44
Tutti gli output dei processi devono essere disponibili quando necessari come input per lavori
futuri sul software;
Prima ancora del rilascio di qualunque dispositivo medico software, tutti gli output di un
processo devono essere coerenti tra loro e tutte le dipendenze, tra gli output di processo
espliciti ed impliciti richiesti dallo standard, dovrebbero essere stati osservati;
Il processo di mantenimento del software è molto simile a quello del suo sviluppo. Esso è mostrato
in Figura 17.
Maintenance
Activities outside the scope of this standard Request
request
satisfied
7 SW RISK MANAGEMENT
8 SW configuration management
9 SW problem resolution
Figura 17: panoramica sul processo di mantenimento del software e relative funzioni [11]
Come si può notare dalla figura precedente, questo standard identifica due processi aggiuntivi,
considerati essenziali per lo sviluppo di dispositivi medici software sicuri. Essi sono il processo di
gestione della configurazione del software (clausola 8) ed il processo di risoluzione dei problemi del
software (clausola 9).
44
45
Processo di gestione della configurazione del software: è un processo che applica procedure
tecniche ed amministrative durante il ciclo di vita del software al fine di identificare e definire
i Software Items, includendo la documentazione, modifiche di controllo e rilascio degli Items
e delle richieste di modifiche. La gestione della configurazione di sistema è necessaria per
ricreare un Software Item, identificare le sue parti costituenti, e provvedere alla creazione di
una storia sulle modifiche apportate. Le richieste di modifica approvate sono rese tracciabili
rispetto alle modifiche effettive ed alla verifica del software. Per cui, l’obiettivo di utilizzare
un sistema di gestione della configurazione è quello di garantire che tutti gli output di un
processo siano portati ad uno stato coerente e le loro dipendenze mantenute;
Processo di risoluzione dei problemi del software: è un processo usato per analizzare e
risolvere i problemi, qualunque sia la loro natura o la loro fonte, includendo quelli scoperti
durante l’esecuzione dello sviluppo, manutenzione, o durante altri processi. L’obiettivo è
quello di fornire un mezzo tempestivo, responsabile, e documentato per garantire che i
problemi rilevati vengano analizzati e risolti;
Nei prossimi verranno trattati i compiti che il fabbricante del software dovrà soddisfare in relazione
alla norma CEI EN 62304:2006 [11].
45
46
Il modello del ciclo di vita di sviluppo del software deve essere completamente definito o essere
referenziato nel piano (o nei piani) di sviluppo.
Il piano dovrà contenere dunque le seguenti informazioni:
Input di sono l'interpretazione delle esigenze del cliente trasformate in requisiti, formalmente
progettazione documentati, del dispositivo medico
46
47
Quando appropriato per il software del dispositivo medico, il fabbricante deve includere nei requisiti
del software:
47
48
a) Implementi il sistema ed i requisiti del software includendo quelli legati al controllo del rischio;
b) Supporti le interfacce tra Software Item e questi ultimi e l’hardware;
c) Supporti il corretto funzionamento di qualsiasi item SOUP, (classe B, C).
a) Rifinire l’architettura software fino al dettaglio delle singole Software Unit (classe B, C);
b) Sviluppare delle specifiche dettagliate di progetto delle singole Software Unit (classe C);
c) Sviluppare specifiche dettagliate di progetto per le interfacce, sia hardware che software
(classe C);
d) Verificare e documentare che le specifiche dettagliate di progetto del software implementino
l’architettura e non contengano alcune contraddizioni con la stessa (Classe C);
48
49
Questa attività richiede che il fabbricante scriva e verifichi il codice per le Software Unit.
Lo sviluppo dettagliato deve essere tradotto in codice sorgente, il codice rappresenta infatti il punto
in cui la decomposizione delle specifiche finisce e la composizione del software eseguibile
comincia. Il fabbricante dovrà quindi implementare e verificare le singole Software Unit, i moduli e
l’intero sistema, nonché definire il protocollo di prove da utilizzare nella fase di verifica del codice,
queste attività sono da svolgere solamente per le classi di sicurezza del software B e C. Il protocollo
di prove dovrà contenere il criterio di accettabilità della singola Software Unit.
Alcuni criteri di accettabilità riguardano la verifica:
Il fabbricante inoltre deve eseguire la verifica delle unità software e documentarne i risultati. Questa
attività è da svolgere solamente per le classi di sicurezza del software B e C.
Questa attività richiede al fabbricante di pianificare ed eseguire l'integrazione delle Software Unit in
Software Item aggregati, nonché l'integrazione di Software Item in Software Item aggregati più
elevati, e per verificare che i Software Item risultanti si comportino come previsto.
I test di integrazione del software si concentrano sul trasferimento dei dati e sul controllo attraverso
le interfacce interne ed esterne dei Software Item. Le interfacce esterne sono quelle con altri software,
incluso il software del sistema operativo e l'hardware del dispositivo medico.
In questa fase perciò il fabbricante deve:
49
50
Il test “White-box”, noto anche come glass box test, structural test, clear box test e open-box test, è
una tecnica di prova in cui vengono utilizzate le conoscenze esplicite del funzionamento interno del
Software Item per selezionare i dati di test. Il test White-box utilizza una conoscenza specifica del
Software Item per esaminare le uscite. Il test è accurato solo se il tester sa ciò che il Software Item
dovrebbe fare e può quindi verificare se il Software Item si discosta o meno dall'obiettivo prefissato.
Il test White-box non può tuttavia garantire che la specifica completa sia stata implementata poiché si
concentra sulla verifica dell'implementazione del Software Item.
Il test “Black-box”, noto anche come test Closed-box, si concentra sul test delle specifiche funzionali
e non può garantire che tutte le parti dell'implementazione siano state testate. Pertanto, il test Black-
box testando la specifica scoprirà i difetti di omissione, indicando che parte della specifica non è stata
soddisfatta. Il test White-box invece testando l'implementazione, ne scoprirà i guasti, indicando che
parte dell'implementazione è difettosa. Per testare completamente un prodotto software potrebbero
essere richiesti dunque sia test White-box che test Black-box.
Inoltre il fabbricante deve:
Queste attività sono da svolgere solamente per le classi di sicurezza del software B e C.
50
51
È la fase di verifica chiamata “Black-box”, descritta in precedenza, e deve essere in grado di coprire
i seguenti aspetti di verifica:
La verifica deve essere eseguita tramite un protocollo di prove redatto nella fase della definizione
dell’architettura. Deve essere svolta sul dispositivo finale tenendo conto di tutte le possibili varianti
del dispositivo stesso. Le prove devono essere svolte sia in condizioni normali di funzionamento che
in condizioni di funzionamento improprio, ma altresì probabile, del dispositivo. Il risultato della
verifica deve essere documentato in modo da validare la revisione emessa.
Qualora venisse scoperto un funzionamento anomalo, si dovrà procedere nei seguenti modi:
Correggere l’anomalia e definire quali parti del software devono essere riverificate, tramite
Regression Testing. Non è sufficiente infatti verificare solo la correzione dell’anomalia ma
occorre verificare anche che la modifica non abbia generato un non corretto funzionamento in
altre parti del software. La profondità della verifica deve essere concordata e pianificata a
seconda della criticità della modifica stessa;
Decidere di non procedere con la modifica verificando che tale azione non abbia nessuna
conseguenza sul controllo del rischio, ma documentando presenza ed effetto dell’anomalia;
Il risultato della procedura di “validazione” deve essere documentato, solo per le classi di sicurezza
del software B e C, e deve contenere le seguenti informazioni:
A questo punto, si passa alla fase di rilascio vero e proprio del software. Tuttavia prima del rilascio
del software in produzione, il fabbricante deve:
Assicurarsi che la verifica del software sia stata completata ed i risultati valutati;
51
52
Il fabbricante, a questo punto, dovrà utilizzare il processo stabilito per implementare le modifiche e
rilasciare il software così modificato, secondo le procedure definite per il rilascio del software. [11]
52
53
In definitiva, il ciclo di vita dello sviluppo del software può essere visto attraverso il seguente
V-model (figura 18):
Figura 18: rappresentazione del ciclo di vita del software tramite V-model
53
54
Capitolo 3
Purtroppo, nel corso del normale funzionamento del dispositivo medico, ci possono essere delle
problematiche che a volte costringono i produttori ad effettuare i cosiddetti “recalls” (richiami).
Questi contribuiscono, in relazione alla funzione sicura e qualitativa dei dispositivi medici, ad evitare
incidenti che potrebbero causare lesioni e morte a pazienti ed utilizzatori.
Negli Stati uniti, sono stati analizzati dati provenienti dal database dei recalls FDA tra il 2009 e il
201; i risultati rivelano che in media più di un dispositivo medico su tre, che sfrutta un software per
le sue operazioni, è stato richiamato a seguito di “fallimento” del software stesso. All’interno del
range mostrato in Figura 19 si può notare come ci sia dapprima una crescita notevole del numero di
richiami dovuti al software e poi un assestamento ma sempre su valori elevati. Questo denota un
incremento della consapevolezza circa l’importanza del software nel quadro medicale. [20]
500
400
324
283 294
300 258 244
221 222 224
180
200
107
100
0
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
YEARS
Figura 19: Richiami di dispositivi medici e medici software da parte dell’FDA nel periodo 2009-2018 [20]
In Figura 20 è possibile in particolare notare le varie tipologie di recalls attribuibili al SW. Si nota un
forte spostamento dei dati nei confronti dei recalls dovuti a SW Design che quindi risulta essere la
54
55
parte più delicata in termini di importanza all’interno delle fasi di progettazione SW.
200 166
RECALLS
150
103
100 10 13
9 14
4
41 10 11
15
0 20 10 14
50 12
0 22 26 10 8 4
3
6
2
0 9
0 4
19 4 9
12 0
4
4 13 13 1
5 10 13
0 11
0 0 0 0
0
2009 2010 2011 2012 2013 2014 2015 2016 2017 2018
ANNI
SW Design Change SW Manufacturing/ SW Deployment
SW Change Control SW Design (Manufacturing Process)
SW Use Environment SW Design
Infine in quest’ultimo grafico (Figura 21) è mostrato l’andamento dei recalls dovuti al SW in funzione
delle tre classi di rischio del SW, anche in questo caso vi è un forte spostamento verso la classe 2 che
a livello numerico rappresenta la maggior parte dei dispositivi medici e medici SW.
1000
800
600
400
200 94 69 90 42 43 82 39
0 0 1 5 0 7 1 3 2 0
0
SW Design SW SW Change SW Design SW Design SW use
Change Manufacturing/ Control (Manufacturing Environment
SW Deployment Process)
Classi di rischio per Categoria
Figura 21: Recall dell’FDA in funzione della classe di rischio del dispositivo medico SW [20]
55
56
Questa guida espone i principi che FDA considera essere essenziali ai fini della validazione del
software medicale. Questa guida viene applicata a software:
8
I PLC (Programmable Logic Controller) sono dei controllori logici usati per automatizzare dei processi industriali, in questi controllori l’elaborazione è effettuata sulla
base di un algoritmo di controllo espresso tramite un programma. [22]
56
57
Inoltre la guida fornisce utili informazioni e raccomandazioni ai seguenti individui che interagiscono
con il SaMD:
Persone facenti parte del sistema di regolazione della qualità dei dispositivi medici;
Persone responsabili della progettazione, sviluppo, o produzione del dispositivo medico
software;
Persone responsabili della progettazione, sviluppo, produzione, o approvvigionamento di
strumenti automatizzati usati nella progettazione, sviluppo, o produzione dei dispositivi
medici o di strumenti software usati per implementare il sistema di qualità stesso;
Investigatori FDA;
Funzionari di conformità della FDA;
Revisori scientifici della FDA
Lo scopo della guida è un po’ più ampio rispetto allo scopo della validazione in senso stretto.
In questa guida infatti sono discusse attività come pianificazione, verifica, test, tracciabilità,
configurazione ed altri aspetti circa la buona progettazione ingegneristica del software e risultano
essere importanti attività che, tutte insieme, aiutano a supportare la validazione finale del software.
La prima cosa importante che tale guida mette in evidenza è il tipo di approccio che essa utilizza.
L’FDA infatti si basa su quello che considera essere l'approccio meno oneroso in tutte le aree della
regolamentazione dei dispositivi medici, tale approccio è denominato: “The Least Burdensome
Approach”, in parte già discusso nel primo capitolo. Questa guida riflette l’attenta revisione messa in
atto sui requisiti legali e scientifici rilevanti e su come sfruttare tale approccio per andare incontro a
questi requisiti.
Entriamo ora, però, nel dettaglio di cosa intenda l’FDA con i termini Verifica e Validazione del
software. Il sistema di regolazione della qualità è armonizzato con la normativa ISO 8402:19949, la
quale tratta la “verifica” e la “validazione” come termini distinti e separati. Dall’altro lato, molti
articoli e giornali vertenti sull’ingegneria del software usano i termini “Verifica” e “Validazione”
come se fossero interscambiabili, o in molti casi si riferiscono alla “Verifica, Validazione e Test” del
software come se questo fosse un singolo concetto, senza distinzione tra i tre termini, si parla infatti
di “VV&T”. In particolare, si ha:
9
È una normativa internazionale vigente dal 31 dicembre 1995 al 31 dicembre 2000, la quale stabiliva i termini e le definizioni fondamentali relativi alla qualità, ai sistemi
qualità ed agli strumenti e alle tecniche per tenerla sotto controllo. È stata rimpiazzata dalla normativa UNI EN ISO 9000. [23]
57
58
Verifica del Software: fornisce prove oggettive che gli output del progetto di una particolare
fase del ciclo di vita di sviluppo del software incontrano tutti i requisiti specifici per quella
fase. La verifica del software ricerca la consistenza, completezza, e correttezza del software e
della sua documentazione di supporto, come viene sviluppato, e fornisce supporto per la
successiva fase di validazione del software. Il test del software è una delle tante attività di
verifica, intesa a confermare che gli output di sviluppo del software incontrano i requisiti di
input. Altre attività di verifica includono svariate analisi statiche e dinamiche, ispezioni del
codice e di documenti, procedure dettagliate, ed altre tecniche;
Validazione del Software: è una parte della validazione del dispositivo finito, ma non è
definita separatamente nel sistema di regolazione della qualità, bensì ne fa parte. L’FDA
considera la validazione del software essere: “la conferma tramite ispezione e fornitura di
evidenze oggettive che le specifiche software sono conformi ai bisogni dell’utente ed ai suoi
usi previsti, e che i particolari requisiti implementati attraverso il software possono essere
completamente soddisfatti”. La validazione software può aumentare l'utilizzabilità e
l'affidabilità del dispositivo, convergendo in una diminuzione dei fallimenti, ridotti richiami
e azioni correttive, minor rischio per il paziente e utenti, e ridotta responsabilità ai fabbricanti
di dispositivi. La validazione software può anche ridurre i costi a lungo termine, ed una
modifica del software meno costosa ed affidabile;
La verifica e validazione del software possono essere procedure delicate, in quanto uno sviluppatore
non può testare il software per sempre, ed è difficile sapere “quanta evidenza” è effettivamente
sufficiente. In larga misura, la validazione del software è un modo di sviluppare un “livello di
confidenza” in cui il dispositivo incontra tutti i requisiti e le aspettative dell’utente circa le funzionalità
del software. Misure come l’identificazione di difetti nella documentazione delle specifiche, la stima
dei difetti rimanenti, la copertura dei test, ed altre tecniche vengono utilizzate per sviluppare un livello
accettabile di confidenza prima che il prodotto sia venduto.
È ovvio che il livello di confidenza, e perciò il livello della validazione, verifica e test necessari del
software, varieranno dipendentemente dal rischio di sicurezza imposto dal funzionamento automatico
del dispositivo. Per molti anni, sia l’FDA che le industrie regolamentate hanno tentato di definire la
validazione del software all’interno della terminologia: processo di validazione.
Per esempio, altre guide dell’FDA a volte descrivono la validazione del software nel sito di utenza in
termini di qualifica di installazione (IQ), installazione, documentazione e controlli di sicurezza,
58
59
qualifica operativa (OQ), completo controllo del sistema, test funzionali, calibrazione, funzionalità
SW e qualifica delle prestazioni (PQ), test applicativi, ri-calibrazione ed aggiustamento della
configurazione, continua manutenzione e contratti di servizio.
Sebbene, la terminologia IQ/PQ/OQ abbia servito al meglio i suoi scopi, ed è uno dei molti modi per
organizzare i compiti della validazione del software nel sito di utenza, tale terminologia non è stata
compresa al meglio tra gli svariati professionisti del software, e per questo non ci soffermiamo oltre.
Un ultimo decisivo step di cui si avvale l’intero processo di sviluppo del dispositivo medico software
è la revisione. Le revisioni della progettazione sono esami documentati, completi e sistematici del
progetto per valutarne l’adeguatezza, ovvero la capacità del progetto di incontrare quei requisiti,
nonché identificarne eventuali problemi.
La revisione del progetto è uno strumento fondamentale per la gestione e la valutazione dei progetti
di sviluppo. Durante le revisioni formali del progetto, le risposte ad alcune domande chiave
dovrebbero essere documentate, ed includono:
Sono stati dimostrati i compiti, risultati attesi ed output per ogni attività del ciclo di vita del
software?
I task, i risultati attesi o gli output di ciascuna attività del ciclo di vita del software:
o Soddisfano i requisiti delle altre attività del ciclo di vita del software in termini di
correttezza, completezza, consistenza ed accuratezza?
o Soddisfano gli standard, le pratiche, e le convenzioni di quella attività?
o Costituiscono una corretta base per l’inizializzazione dei compiti per la successiva
attività del ciclo di vita?
Queste sono solo alcune delle possibili domande che ci si pone in fase di revisione del software.
Lo sviluppo del software è una fase che va di pari passo con l’implementazione fisica del dispositivo
medico ed è tipica dello stadio di progettazione del sistema.
Ci sono bisogni dell'utente ed usi specifici per un dispositivo ultimato, ma gli utenti tipicamente non
specificano se quei requisiti sono riscontrati dall'hardware, software o da una combinazione di
entrambi. Perciò, la validazione del software deve essere considerata parte integrante del contesto
complessivo della validazione del progetto del sistema. Una descrizione documentata dei requisiti
rappresenta i bisogni dell’utente ed i relativi usi specifici da cui il dispositivo è prodotto.
59
60
La maggioranza dei problemi software sono riconducibili ad errori fatti durante il processo di
progetto e di sviluppo. Mentre la qualità del prodotto hardware dipende fortemente dal
progetto, sviluppo ma anche dalla fabbricazione, cosa che nel software c’è in minima parte;
A differenza dell’hardware, il software non è un’entità fisica e non si consuma, in quanto
viene continuamente modificato ed aggiornato ed i suoi componenti non subiscono i danni
del tempo;
Una caratteristica del software è data dalla velocità e facilità con la quale è possibile
aggiornarlo, a differenza dell’hardware in cui è necessario un tempo più lungo;
A causa della sua complessità, il processo di sviluppo del software dovrebbe essere ancora più
strettamente controllato rispetto a quello hardware, al fine di evitare problemi che non possono
essere facilmente riscontrabili in seguito nel processo di sviluppo. Per queste, ed altre ragioni,
l’ingegneria del software necessita di un livello ancor più grande di scrupolosità nella gestione e nel
controllo rispetto all’ingegneria hardware. [21]
Come già visto nel capitolo precedente riguardo allo standard IEC 62304:2006+AMD1:2015 [11],
anche questa guida raccomanda un’integrazione sulla gestione del ciclo di vita del software, ed in
particolare, un’attività di quality management, in accordo con i current Good Manufacturing
Processes (cGMP’S) noti anche come FDA 21 CFR Part 82010 [24] [25]. Infatti la validazione del
software è un requisito del regolamento del sistema di qualità. In particolare, in accordo con la 21
CFR 820.30 [13] si ha che:
10
Per garantire la sicurezza ed efficacia dei dispositivi medici, l’FDA regola i cosiddetti cGMP’s (current Good Manufacturing Processes) conosciuti anche come FDA 21
CFR Part 820, una serie di definizioni che consentono di regolare il sistema qualità dei dispositivi medici, in armonia con la ISO 13485:1996 basata sulla ISO 9001:1994
[24]
60
61
I requisiti di validazione sono applicati ai software citati ad inizio capitolo. Ovviamente anche gli
altri controlli sul dispositivo quali pianificazione, input, verifica e revisione sono requisiti richiesti
dai cGMP’s. Sempre in accordo con i cGMP’s, in particolare la 21 CFR 820.70(i) [25] si ha che:
qualunque software utilizzato per progettare, automatizzare, testare, distribuire, etichettare, produrre
e confezionare qualsiasi parte del processo di produzione del dispositivo o qualunque parte del
sistema di qualità deve essere validato per i suoi specifici usi. In aggiunta a quanto sopra, i computer
sfruttati per creare, modificare e mantenere la documentazione elettronica e per gestire le firme
elettroniche sono anch’essi soggetti ai requisiti di validazione secondo la 21 CFR 11.10(a) [26], al
fine di essere validati in maniera da garantire l’accuratezza, consistenza ed affidabilità. [25]
Analogamente alla CEI EN 62304:2006 [11], anche questa guida non raccomanda uno specifico
modello di ciclo di vita o uno specifico metodo, bensì raccomanda che le attività di validazione e
verifica siano condotte durante tutto il ciclo di vita del software.
Una particolarità che alcuni di questi software sopra descritti possiedono è che spesso sono sviluppati
o dalla casa madre o tramite contratto, infatti, il software viene spesso acquistato Off-The-Shelf 11per
un particolare uso specifico, L'uso di questa tipologia di software nei dispositivi medici automatizzati,
nella produzione automatizzata e nelle operazioni di regolazione del sistema di qualità è in aumento.
Il software Off-The-Shelf può avere molte funzionalità, tuttavia solo alcune di queste sono necessarie
al fabbricante del dispositivo. I fabbricanti sono responsabili dell'adeguatezza del software utilizzato
nei loro dispositivi o utilizzato per produrre tali dispositivi. Quando i produttori di dispositivi medici
acquistano software Off-The-Shelf, devono assicurarsi che funzionino come previsto nell'applicazione
prescelta. L’importanza di quest’ultima considerazione è tale che l’FDA ha messo a disposizione dei
fabbricanti una guida che fornisce loro i dettagli necessari per assicurare tali disposizioni di sicurezza
sui loro dispositivi. Tale guida è denominata: “Guidance for Industry, FDA Reviewers, and
Compliance on Off-The-Shelf Software Use in Medical Devices” [27].
In questo paragrafo si introdurranno un po' più nel dettaglio i principi generali che dovrebbero essere
considerati per la convalida o validazione del software:
Requisiti: una documentata specifica dei requisiti software fornisce una linea base sia per la
validazione che per la verifica del software. Per cui, il processo di validazione del software
11
Tale termine indica un software “pronto all’uso”. Tutti i software di sistema di produzione e/o di qualità, anche se acquistati in commercio, devono presentare requisiti
documentati che definiscono completamente l'uso specifico e le informazioni su quali risultati di test ed altre prove possono essere confrontati, per dimostrare che il
software è convalidato per la sua destinazione d'uso [21]
61
62
non può essere completato senza una precisa specificazione dei requisiti software come
definito nella 21 CFR 820.30 [28];
Prevenzione dei difetti: la garanzia della qualità del software urge focalizzarsi sul prevenire
l’introduzione di difetti all’interno del processo di sviluppo del software e non sul tentare di
“testare la qualità all’interno del codice software dopo essere stato scritto”. Il test del
software è in parte limitante nella sua abilità di far riaffiorare tutti i difetti latenti del codice
software, tuttavia risulta essere un’attività assolutamente necessaria, anche se in molti casi
non è sufficiente a stabilire che il software sia adatto per i suoi specifici compiti. Al fine di
ottenere tale sicurezza, gli sviluppatori software dovrebbero usare un mix di metodi e tecniche
per prevenire ed identificare gli errori del software che si presentano. Il “miglior mix” di
metodi dipende da molti fattori includendo ambiente di sviluppo, applicazione, dimensione
del progetto, linguaggio e rischio. Ovviamente questo processo richiede tempo e fatica; per
questa ragione la preparazione per la validazione del software dovrebbe cominciare in
anticipo, durante la pianificazione dello sviluppo e degli input di progettazione. La
conclusione finale che il software è stato validato dovrebbe basarsi sulle evidenze collezionate
dagli sforzi pianificati e condotti durante tutto il ciclo di vita del software;
Ciclo di vita del software: la validazione del software prende posto all’interno dell’ambiente
di un ben preciso ciclo di vita. Il ciclo di vita del software contiene i task di ingegneria del
software e la documentazione necessaria a supportare lo sforzo di validazione del software.
In aggiunta, il ciclo di vita del software contiene task specifici di convalida e verifica che sono
appropriati per lo scopo specifico del software;
Procedure: il processo di validazione del software, come avveniva anche nella normativa IEC
62304:2006+AMD1:2015 [11], viene anche qui eseguito attraverso l’uso di procedure. Queste
procedure stabiliscono “come” condurre il processo validazione del software. Le procedure
62
63
dovrebbero identificare le azioni specifiche o la sequenza di azioni che devono essere prese
per completare singole attività di convalida e task;
Validazione del software dopo una modifica: a causa della complessità del software, un
cambiamento apparentemente localizzato potrebbe avere un impatto significativo sull’intero
sistema. Quando un qualsiasi cambiamento, anche se piccolo, è fatto al software, è necessario
ristabilire lo stato di validazione del software. Ogni volta che il software viene modificato,
dovrebbe essere condotta un’analisi della validazione non tanto per la modifica in sé, ma
anche per determinare l’estensione e l’impatto di quella modifica sull’intero sistema
software. In base a questa analisi, lo sviluppatore software dovrebbe condurre un appropriato
test di regressione del software per mostrare che le immutate ma vulnerabili porzioni del
sistema non sono state accidentalmente colpite. I controlli sulla progettazione ed i test di
regressione appropriati forniscono la consapevolezza che il software è validato in seguito ad
una modifica dello stesso;
63
64
La validazione del software è compiuta attraverso una serie di attività e task che sono pianificati ed
eseguiti a vari stadi dello sviluppo del ciclo di vita del software. Questi task possono essere occorrenze
singole o possono essere iterate più volte, a seconda del modello di ciclo di vita utilizzato ed allo
scopo delle modifiche eseguite con il progredire del progetto software. In questo paragrafo ci andremo
ad occupare di quelle attività che costituiscono parte integrante del modello di ciclo di vita del
software, tali attività copriranno il software dalla sua nascita sino al suo ritiro. In Figura 22 sono
esposte le tipiche attività che fanno parte del ciclo di vita del software:
Pianificazione
della qualità
Definizione dei
Ritiro requisiti di
sistema
Specifiche
Manutenzione dettagliate dei
requisiti software
Specifiche di
Installazione progetto del
software
Programmazione
Test
del codice
Figura 22: Tipici task inclusi nello sviluppo del ciclo di sviluppo del software
Durante ognuna di queste attività dovrebbe essere condotta la verifica di ognuno dei task effettuati in
figura a supporto della validazione del software. Lo scopo del modello del ciclo di vita del software
ha il compito di organizzare queste attività di sviluppo in vari modi e di fornire un quadro per
monitorarne e controllarne il progetto.
64
65
formali di progettazione. Dovrebbe essere identificato il modello di ciclo di vita del software
e le sue attività associate, così come quei task necessari per ogni attività del ciclo di vita del
software. Il piano dovrebbe includere:
In particolare, i task tipici che stanno all’interno della pianificazione della qualità sono:
65
66
Più nello specifico, i task tipici che stanno all’interno dei requisiti sono:
Progettazione: nel processo di progettazione, gli specifici requisiti software vengono tradotti in
una rappresentazione logica e fisica del software, al fine di poter essere implementato.
La specifica di progetto del software è una descrizione di ciò che il software dovrebbe fare e come
dovrebbe farlo. Le specifiche complete di progettazione del software vincolano il programmatore
66
67
a stare all’interno dei limiti concordati nei requisiti di progetto. La sicurezza e le problematiche
di usabilità del dispositivo dovrebbero essere considerate quando si sviluppano diagrammi di
flusso, diagrammi di stato, strumenti di prototipazione e test. Dovrebbero essere eseguiti anche le
analisi dei task e delle funzioni, le analisi dei rischi, i test dei prototipi e le revisioni nonché test
completi sull’usabilità.
In particolare, le specifiche di progetto del software dovrebbero includere:
Da notare come i primi quattro elementi sopra riportati di solito sono documenti preesistenti e separati
che sono inclusi come riferimento nelle specifiche di progettazione del software precedenti.
Tipicamente le procedure di sviluppo scritte fungono da guida per l'organizzazione mentre le
procedure di programmazione scritte fungono da guida per i singoli programmatori.
In particolare i task tipici che stanno all’interno della progettazione sono:
67
68
Ogni elemento delle specifiche di progettazione del software è stato implementato nel
codice;
I moduli e le funzioni implementate nel codice possono essere ricondotte ad un
elemento nelle specifiche software di progettazione e analisi del rischio;
I test per i moduli e le funzioni nel codice sono ricondotti ad un elemento nella
progettazione del software e analisi del rischio;
I test per moduli e funzioni possono essere tracciati al codice sorgente per gli stessi
moduli e funzioni;
Analisi di tracciabilità:
68
69
Test del software: il test del software comporta l’esecuzione del software sotto condizioni note
con input definiti e risultati documentabili che possono essere confrontati con le aspettative
prestabilite. È un’attività avida di tempo, difficoltosa ed imperfetta, perciò è necessaria una
precisa programmazione anticipata in maniera tale da essere più efficiente. Si dovrebbero
identificare i programmi, gli ambienti, le risorse, personale, strumenti, le metodologie, input,
procedure, risultati attesi, la documentazione ed i criteri di segnalazione.
Un processo di testing del software dovrebbe basarsi su principi che effettuano l’ispezione del
prodotto software. Principi di test del software applicabili includono:
Una volta che i compiti prerequisiti, ad esempio l’ispezione del codice, sono stati completati con
successo, il test del software può cominciare. Esso inizia con il test a livello della Software Unit
e si conclude con il test del Software System. Potrebbe esserci un distinto livello di integrazione
dei test. Un prodotto software deve essere contestato con casistiche di test basati sulla sua
struttura interna e con casistiche di test basati sulle sue specifiche esterne. Questi test dovrebbero
fornire un esame approfondito e rigoroso circa la conformità del prodotto software con le sue
definizioni e requisiti funzionali, prestazionali e di interfaccia.
69
70
Test basati sul codice sono conosciuti col nome di test White-Box, già introdotti nel capitolo
precedente, e sono chiamati test strutturali. Essi identificano casistiche di test basati sulla
conoscenza ottenuta dal codice sorgente, specifica dettagliata di progetto ed altri documenti di
sviluppo. I test strutturali possono identificare la presenza di codice “morto” cioè che non
viene mai eseguito quando il programma è in esecuzione. I test strutturali vengono eseguiti
principalmente con test di livello unitario (modulo), ma possono essere estesi ad altri livelli di
test del software. Il livello del test strutturale può essere valutato sfruttando metriche che sono
progettate per mostrare quale percentuale della struttura software è stata valutata durante il test.
Le principali metriche di copertura strutturale sono:
70
71
I test basati su definizioni o su specifiche sono anche noti come test funzionali o test "Black-Box",
anche in questo caso introdotti nel capitolo precedente. Essi identificano test basati sulla definizione
di cosa il prodotto software è destinato a fare. Questi test mettono in discussione l’uso o la
funzionalità di un programma, e le interfacce interne ed esterne del programma stesso.
Vediamo come i seguenti tipi di test del software hanno un livello di sforzo crescente:
71
72
Si è visto come i test funzionali e strutturali del software identifichino delle tecniche che forniscono
degli specifici input per il test. Una debolezza di queste tecniche è data dalla difficoltà nel collegare
criteri di perfezionamento dei test funzionali e strutturali all’affidabilità del prodotto software. Test
del software più avanzati come i test statistici, possono essere impiegati per fornire l’ulteriore
garanzia che un prodotto software è affidabile. I test statistici utilizzano dati di test generati
casualmente da una ben definita distribuzione in base ad un preciso profilo di lavoro, come ad
esempio uso specifico, uso rischioso o uso nefasto del prodotto software. Tuttavia è bene
sottolineare come i test funzionali e strutturali siano dei prerequisiti necessari per i test statistici
del prodotto software.
In particolare i tipici task di test sono:
Installazione: il test nel sito di utenza è una parte essenziale della validazione del software.
Il sistema di regolazione della qualità richiede procedure di installazione e di ispezione così come
di documentazione dell’ispezione e del test per dimostrare la corretta installazione, come riportato
dalla 21 CFR 820.17 [25]. La terminologia riguardante il test nel sito di utenza può essere confusa.
Termini come beta test, sito di validazione, test di accettazione dell’utente, verifica
dell’installazione e test d’installazione sono tutti termini utilizzati per descrivere il test nel sito di
utenza. Questi test dovrebbero avvenire sul sito di utenza in presenza di hardware e software
72
73
effettivi, che faranno parte della configurazione del sistema installato. Alcune delle valutazioni
che sono state di fatto eseguite in precedenza dallo sviluppatore software, dovrebbero essere
ripetute nel sito di utenza. Queste possono includere test per la valutazione dell’elevato volume
di dati, test e messaggi di errore ed implementazione dei requisiti di sicurezza.
I task tipici di installazione svolti sul sito di utenza sono:
Quando vengono fatte delle modifiche al Software System, o durante lo sviluppo iniziale o durante
il rilascio post-manutenzione, dovrebbero essere condotte analisi di regressione per dimostrare
che le porzioni del software non coinvolte nelle modifiche non erano inavvertitamente impattanti.
In aggiunta ai task di verifica e validazione, i quali sono parte del processo di sviluppo standard
del software, è necessario affrontare le seguenti attività di manutenzione aggiuntive:
73
74
Revisione del piano di validazione del software: per il software che è stato
precedentemente validato, il piano di validazione del software esistente dovrebbe
essere revisionato in modo tale da supportare la validazione del software revisionato;
Valutazione delle anomalie: i produttori software mantengono frequentemente
documentazione, come rapporti sui problemi del software, che descrivono le
anomalie scoperte nel software e le specifiche azioni correttive prese al fine di
eliminare ogni anomalia. Troppo spesso, tuttavia, sono ripetuti errori a causa degli
sviluppatori che non prendono in considerazione lo step successivo, ovvero
quello di determinare la radice della causa dei problemi e non fanno le dovute
modifiche procedurali necessarie per evitare la ricorrenza del problema. Un’analisi
sulla radice della causa delle anomalie può identificare le specifiche carenze
qualitative nel sistema. Laddove vengono identificati trend che riportano la
ricorrenza di anomalie simili, devono essere implementate appropriate azioni
correttive e preventive nonché un’opportuna documentazione per evitare ulteriori
ricorrenze di problematiche qualitativamente similari;
Identificazione del problema e tracciamento della risoluzione: qualsiasi
problema riscontrato durante la manutenzione del software dovrebbe essere
documentato e la risoluzione di ogni problema tracciata;
Proposta di valutazione delle modifiche: tutte le modifiche proposte,
miglioramenti, o aggiunte dovrebbero essere valutate per determinare l’effetto che
ciascuna modifica potrebbe avere sul sistema;
Iterazione dei task: per le modifiche del software approvate, dovrebbero essere
eseguiti tutti i task di verifica e validazione per garantire che le modifiche
pianificate sono state implementate correttamente;
Aggiornamento della documentazione: la documentazione dovrebbe essere
revisionata attentamente per determinare quali documenti hanno subito un
impatto maggiore dalla modifica; [21]
74
75
La gestione del rischio, o più comunemente chiamata Risk Management, è una pratica ingegneristica
che si riferisce all’applicazione metodica delle norme, delle procedure e delle pratiche che hanno il
fine di identificare, analizzare, monitorare ed infine contenere il rischio dovuto ad un dispositivo
medico e medico software. La norma di riferimento per questo tipo di processo è la norma ISO
14971:2012 [13]. Essa fa parte di una serie di standard internazionali edita dall’ISO (International
Organization for Standardization), la più importante organizzazione a livello mondiale per la
definizione di norme tecniche. In particolare l’ISO 14971:2012 [13], definisce i principi e le pratiche
di gestione del rischio ed è richiamata da una serie di importanti standard sui dispositivi medici.
È importante quindi per prima cosa capire cosa si intenda per “rischio”.
Se con riferimento a un determinato guasto indichiamo con S(t) la sicurezza che il guasto non
avvenga in uno specifico tempo t, con d l’entità del danno ad esso associato e con k la probabilità
che il danno si verifichi in presenza di un guasto, per rischio intendiamo il seguente prodotto:
𝑟(𝑡) = [1 − 𝑆(𝑡)] ∙ 𝑘 ∙ 𝑑
Dove 𝑘 ∙ 𝑑 è il danno probabile. Il rischio è perciò la probabilità che sia raggiunto il limite potenziale
di danno di un determinato fattore nelle condizioni di impiego o di esposizione.
A parità di sicurezza il rischio assume valori molto diversi in relazione al danno probabile, ciò
significa che a un danno maggiore non necessariamente corrisponde un rischio maggiore. Per cui, il
piano di gestione del rischio rappresenta il documento più importante del processo di gestione del
rischio. Si tratta di un vero e proprio “piano d’azione”, ovvero dell’insieme di documenti che
chiariscono la programmazione e la descrizione di tutte le attività di gestione del rischio da
parte del costruttore. Il piano di gestione del rischio può essere sia un documento separato sia
integrato nell’altra documentazione prodotta dal costruttore. Ovviamente l’ulteriore documentazione
presentata dal costruttore rende il piano di gestione del rischio più completo ed accessibile.
Il piano, al fine di soddisfare i requisiti imposti dalla norma ISO CEI 14971:2012 [13], deve includere
almeno quanto segue:
1. Lo scopo delle attività predisposte di gestione del rischio: l’identificazione del dispositivo
medico o delle fasi del ciclo di vita per le quali è applicabile ciascun elemento del piano;
2. Assegnazione delle responsabilità ed identificazione delle autorità preposte: nel piano di
gestione del rischio è necessaria infatti l’identificazione del personale responsabile di
qualunque attività specifica all’interno del processo di gestione del rischio, quali il revisore,
l’esperto, lo specialista di verifica o il responsabile di comprovata autorevolezza;
75
76
3. I requisiti per il riesame delle attività di gestione del rischio: indicano come e quando
debbano essere eseguiti i riesami da parte della direzione per un determinato requisito medico
di un dispositivo, essi potrebbero far parte di altri requisiti di riesame del sistema della qualità;
4. I criteri per l’accettabilità del rischio: sono scelti a discrezione dal costruttore per la
determinazione del rischio accettabile, inclusi quelli quando la probabilità del verificarsi del
danno non possa essere stimata. Questi criteri possono essere comuni per categorie simili di
dispositivi medici;
5. Le attività di verifica: deve essere specificato il modo in cui sono portate a termine le due
distinte attività di verifiche richieste dalla ISO 14971:2012 [13]. La prima misura di verifica
è richiesta al fine di accertarsi che la misura di controllo del rischio sia stata implementata
nella progettazione finale, la seconda invece è richiesta per accertarsi che la misura attuata
riduca effettivamente il rischio;
6. Le attività connesse alla raccolta ed al riesame delle informazioni pertinenti di
produzione e post-produzione: è compito del costruttore definire procedure generiche per
la raccolta di informazioni da diverse fonti quali ad esempio gli utilizzatori o da rapporti di
incidenti e informazioni di feedback da parte dei clienti. I metodi per ottenere informazioni
post-produzione pertinenti con il rischio relativo all’uso di un determinato dispositivo medico
possono essere parte di procedure definite del sistema di gestione della qualità;
Inoltre occorre considerare che qualora il piano cambiasse durante il ciclo di vita del dispositivo deve
essere conservata una annotazione delle modifiche nella documentazione di gestione del rischio. In
generale il livello di dettaglio del piano, secondo la norma, dovrebbe essere commisurato al livello di
rischio associato al dispositivo medico.
Ogni elemento del processo di gestione del rischio andrebbe mappato in base al ciclo di vita del
prodotto definito dal costruttore. Alcuni elementi del processo si attuano durante le fasi di
realizzazione del prodotto stabilite dal costruttore, come ad esempio il controllo della progettazione
e dello sviluppo, mentre gli ulteriori elementi si attuano durante le altre fasi di ciclo di vita del
prodotto fino alla sua dismissione. Infine, nonostante si debbano pianificare tutte le attività relative
alla gestione del rischio, il costruttore può redigere diversi piani che coprono le differenti parti del
ciclo di vita del dispositivo. Infine, il piano di gestione del rischio dovrebbe documentare le decisioni,
basate sull’analisi del rischio, su quale tipo di monitoraggio post-commercializzazione sia appropriato
per il dispositivo, per esempio, se sia adeguato il monitoraggio reattivo o se siano necessari studi
proattivi. [13]
La figura 23 mostra una rappresentazione schematizzata del processo di gestione del rischio che si
conclude con le informazioni di produzione e post-produzione appena descritte:
76
77
77
78
A conclusione del capitolo possiamo vedere l’intero processo di VV&T del software tramite uno
schema waterfall che racchiude i principali step necessari alla convalida del dispositivo medico
software (Figura 24):
Figura 24: schema waterfall sull’ applicazione degli step necessari al processo di controllo e
pianificazione del dispositivo medico software. [28]
78
79
Capitolo 4
Il progetto Chromo4Vis o anche detto C4V mira a trattare efficacemente la distrofia corneale, detta
anche cheratocono, una malattia degenerativa della cornea. In particolare, il sistema deve garantire il
trattamento della distrofia corneale sfruttando una tecnica non invasiva basata sull’applicazione della
riboflavina catalizzata tramite l’emissione di luce UV-A, con densità superficiale di potenza
opportunamente controllata.
4.2 Il Cheratocono
Figura 25: sezione trasversale dell'occhio umano in cui si evidenziano gli strati corneali e la
disposizione delle fibrille di collagene all’interno dello stroma [6]
79
80
I Cheratociti sono le cellule principali dello stroma, essi giocano un ruolo importante nel preservare
la trasparenza e la stabilità meccanica della cornea. Sono responsabili della sintesi e del mantenimento
del componente collagene e della matrice extracellulare. Diversi studi riguardo la cornea
cheratoconica hanno rivelato cambiamenti nella morfologia dei cheratociti, diminuzione della densità
dei cheratociti, nonché un aumento dell’apoptosi. Le cause dell’assottigliamento corneale nel
cheratocono non sono ancora chiare. Takahashi et al. videro che il numero di lamelle nella cornea
cheratoconica era significativamente più basso rispetto alla cornea normale, ma lo spessore delle
lamelle risultava inalterato. Inoltre diversi studi non hanno mostrato differenze nella spaziatura tra le
fibre delle cornee cheratoconiche e quelle di controllo, dimostrando che lo spessore dello stroma
corneale nel cheratocono non è il risultato di uno stretto impacchettamento delle fibrille, bensì è
dovuto alla progressiva perdita di lamelle dallo stroma. È stato anche riportato che l’orientamento
delle fibrille di collagene all’interno delle lamelle risultava essere alterato nel cheratocono,
suggerendo che la perdita di integrità strutturale potrebbe giocare un ruolo importante nella
patogenesi della malattia.
In Figura 26, ottenuta tramite microscopio SHG12, è possibile vedere la disposizione delle fibre di
collagene all’interno di una cornea sana e di una che presenta il cheratocono. La cornea normale, è
caratterizzata da numerose fibre sottili nello stroma ed uno strato di Bowman intatto, mentre la cornea
cheratoconica possiede regioni con un ridotto ammontare di lamelle di collagene (*) e regioni
interrotte nello strato di Bowman (Freccia). [15]
Figura 26: immagine da microscopio SHG che mostra le fibre di collagene in una cornea normale
(sinistra) ed in una cornea cheratoconica (destra) [15]
L’ezio-patologia del cheratocono è di tipo multifattoriale, infatti una predisposizione genetica è ben
documentata, con una incidenza che si attesta tra il 6% ed il 23% dei casi.[1][2]
Oltre l’eterogeneità genetica del cheratocono, oggi si enfatizza anche l’importanza di vari fattori
ambientali e non (UV, atopia, usura delle lenti a contatto, sfregamento cronico dell’occhio, carenza
di magnesio) nella patogenesi della malattia, che siano in grado di scatenare o accelerare la
12
SHG (Second-Harmonic generation) è un processo ottico non lineare in cui due fotoni con la stessa frequenza interagiscono con un materiale non
lineare, sono "combinati" e generano un nuovo fotone con il doppio dell'energia dei fotoni iniziali (equivalentemente, il doppio della frequenza e metà
della lunghezza d'onda). È un caso speciale di generazione di somma-frequenza. Il microscopio SHG è stato stabilito essere un meccanismo di
contrasto vitale per l'imaging della struttura e della funzione cellulare e tissutale.
80
81
Ad oggi l’esatta causa scatenante del cheratocono è ancora incerta, anche se si suppone che sia
associata ad una anormale attività degli enzimi all’interno della cornea. [2]
Le tecniche classiche per il trattamento refrattivo del cheratocono si avvalgono dell’uso di occhiali
e/o lenti a contatto. Gli occhiali possono garantire una sufficiente correzione durante i primi stadi di
cheratocono. Tuttavia, per gli stadi successivi, quando la cornea si modifica assumendo una forma
anormale, l’astigmatismo irregolare non può più essere corretto e diventano necessarie le lenti a
contatto. Le lenti a contatto, possono infatti adattarsi alla forma anormale dell’occhio fornendo una
nuova normale superficie rifrangente, correggendo effettivamente l’astigmatismo irregolare.
L’uso di lenti a contatto è uno dei più semplici modi di correggere leggeri cheratoconi e rappresenta
circa il 90% dei trattamenti. La tipologia di lenti a contatto dipende dalla severità della malattia, negli
81
82
stadi precoci ad esempio, sono più adeguate lenti morbide. Verso stadi più avanzati della patologia,
quando la stabilità biomeccanica della cornea diminuisce drasticamente, l’utilizzo di lenti rigide
possono essere più adeguate e fornire un miglior supporto biomeccanico. Lenti ibride sono
un’opzione popolare, esse risultano essere rigide nel mezzo e più morbide sui bordi, conferendo
perciò il comfort delle lenti più morbide. Riguardo gli svantaggi delle lenti a contatto nel trattamento
del cheratocono, vi sono diverse complicazioni associate. Lo svantaggio principale riguarda il fatto
che la cornea può cambiare forma nel tempo, limitando la durata in cui le lenti mantengono una buona
visione. Altre complicazioni includono inadeguata lubrificazione e abrasioni corneali, i quali possono
causare visione distorta e fastidi. Alcune di queste complicazioni possono essere ridotte
dipendentemente dal design della lente a contatto stessa. [6]
Il trattamento chirurgico del cheratocono, invece, include il cross-linking corneale e, nei casi più
avanzati, il trapianto di cornea, sia esso lamellare profondo o a tutto spessore.
A causa della giovane età di insorgenza, il cheratocono ha un impatto negativo notevole sulla qualità
della vita delle persone che ne sono affette. Nonostante l’uso continuo di lenti a contatto consenta alla
maggior parte dei pazienti un’adeguata qualità visiva, tuttavia non ha nessuna capacità di rallentare
la progressione della malattia. Numerosi studi clinici hanno dimostrato una differente rigidità e
viscoelasticità tra la cornea normale e quella affetta da cheratocono, la quale risulta incapace di
resistere al normale carico applicato dalla pressione intraoculare, tendendo a sfiancarsi. [6]
Recentemente, è stato sviluppato un nuovo metodo per il trattamento del cheratocono progressivo: il
cross-linking del collagene corneale, il quale aumenta la rigidezza della cornea sfruttando i raggi
UV-A e la riboflavina fotosensibilizzante.
In particolare, il cross-linking corneale ha come scopo l'incremento della forza meccanica del tessuto
corneale mediante la generazione di nuovi legami chimici tra le proteine dello stroma, secondo un
processo chimico denominato foto-polimerizzazione. La formazione di nuovi e ulteriori legami
crociati covalenti tra le proteine dello stroma corneale, stabilizza la struttura e le proprietà meccaniche
del tessuto [7]. Numerosi studi, affermano che il cross-linking del collagene possa ritardare o fermare
la progressione del cheratocono, migliorando la forma della cornea e producendo una miglior qualità
della visione [6].
L’intervento di cross-linking corneale consiste nell’instillare gocce di riboflavina (vitamina B2) sulla
cornea e nell’irradiare il tessuto imbibito della molecola terapeutica con luce ultravioletta (UV-A).
82
83
La riboflavina intra-corneale, che assorbe la radiazione UV-A, innesca una serie di reazioni
fotochimiche che generano specie reattive di ossigeno, le quali a loro volta inducono la formazione
di legami chimici covalenti tra le proteine stromali. L'intervento di cross-linking corneale viene
eseguito in regime ambulatoriale in anestesia topica (tramite gocce di collirio). Dopo l’intervento, al
paziente è prescritta una terapia medica topica con colliri antibiotici, anti-infiammatori e lubrificanti,
per alcune settimane o mesi.
Il cross-linking corneale è eseguito sin dall’anno 2003, dapprima negli stati Europei quindi nei Paesi
ad economia emergente, ed infine negli Stati Uniti (2016); ogni anno sono eseguiti decine di migliaia
di trattamenti. Il cross-linking corneale non pregiudica l’uso della lente a contatto, che può essere re-
indossata dopo un adeguato periodo di tempo dall’intervento. Almeno la metà dei pazienti riferisce
un netto miglioramento della qualità della propria vita dopo il trattamento di cross-linking corneale.
Il cross-linking corneale è una valida terapia per arrestare la progressione del cheratocono e ridurre
drasticamente la necessità di sottoporre a cheratoplastica molti giovani pazienti.
I risultati di laboratorio concordano nel presentare il cross-linking corneale con riboflavina e UV-A,
come una tecnica chirurgica in grado di migliorare le proprietà biomeccaniche del tessuto corneale
umano, ed incrementare la sua rigidità meccanica. Kamaev et al. hanno dimostrato che il meccanismo
principale del trattamento di cross-linking corneale consista nell'interazione diretta tra le triplette di
riboflavina ed i gruppi reattivi delle proteine stromali, che porta alla generazione di nuovi legami
chimici covalenti tra le proteine stromali attraverso reazioni radicaliche [11].
Lombardo et al., hanno dimostrato in diversi studi, il cui scopo è stato quello di analizzare il
comportamento biomeccanico della cornea umana a differenti scale di osservazione (da quella
molecolare a quella tissutale), come il cross-linking corneale con riboflavina/UV-A induca sia un
irrigidimento dello stroma corneale (misurato come incremento del modulo elastico di Young) che
una significativa riduzione delle proprietà viscoelastica (misurato come riduzione dell’isteresi),
confermando come la formazione di legami covalenti avvenga tra le proteine del collagene e le
proteine della matrice stromale [13][14]. Traslando i risultati sperimentali alla clinica, la formazione
di nuovi legami chimici covalenti tra le proteine dello stroma corneale, contribuisce all’effetto di
stabilizzazione della progressione del cheratocono a causa della maggior resistenza del tessuto alle
normali pressioni esercitate su di esso (per es. pressione intraoculare); verosimilmente vi sono altri
meccanismi biologici che contribuiscono a migliorare l’efficacia del trattamento nel lungo termine,
83
84
quali ad esempio la produzione di proteine collagene e di componenti della matrice stromale più
regolari da parte dei cheratociti stromali, rigenerati dopo il trattamento [15].
In base alla letteratura scientifica, il protocollo standard di cross-linking è efficace, dove l’efficacia
è indicata come stabilizzazione o appiattimento della curvatura corneale massima, mediamente nel
70% dei casi trattati, con un tasso di insuccesso, ovvero necessità di trapianto di cornea, variabile
dall’8% al 33% ad un anno dall’intervento.
Negli ultimi anni, perciò, un numero sempre crescente di chirurghi ha optato per protocolli che
consentono un risparmio di tempo, come ad esempio l’impiego di densità di potenza maggiori a 10
mW/cm2 per 9 minuti o 9 mW/cm2 per 10 minuti, i quali rilasciano comunque un’energia totale di
5.4 J/cm2 al tessuto corneale. In ogni caso, gli svantaggi della tecnica rimangono gli stessi ed il limite
è quello di non poter intervenire su cornee con spessore inferiore a 400 µm a causa del rischio di
danneggiare l’endotelio corneale.
Per ovviare ai limiti ed alle complicanze del protocollo standard, sono stati sviluppati e sono tuttora
in via di sviluppo nuovi protocolli, che evitano la rimozione dell’epitelio e che, per tale motivo, sono
stati denominati protocolli di cross-linking corneale transepiteliale. Tuttavia, gli studi clinici di
confronto tra il protocollo standard ed il primo protocollo transepiteliale, che faceva uso di soluzioni
di riboflavina arricchite di destrano al 15%, hanno dimostrato una sua minore efficacia nell’arrestare
la progressione del cheratocono rispetto al protocollo standard. Il tasso di insuccesso di questo primo
84
85
protocollo transepiteliale, oggi in disuso, raggiungeva il 70% ad 1 anno dal trattamento. La causa
dell’insuccesso è stata riferita alla ridotta penetrazione della riboflavina, in soluzione con destrano,
nel tessuto corneale attraverso l’epitelio integro.
Negli ultimi anni, sono stati sviluppati nuovi protocolli di cross-linking transepiteliale, tra cui quello
assistito dalla iontoforesi corneale chiamato per l’appunto cross-linking transepiteliale con
iontoforesi. Esso dimostra, a 2 anni dal trattamento, di essere efficace nel 90% dei casi trattati senza
alcuna induzione di complicanze severe, seppure il numero di trattamenti sia ancora decisamente
inferiore a quello dei protocolli standard.
In uno studio clinico randomizzato, Lombardo et al. hanno analizzato 35 occhi di 25 pazienti, in
particolare sono stati trattati con Cross-Linking Transepiteliale con Iontoforesi (CLT-ionto) 22
pazienti e 22 occhi mentre tramite Cross-Linking classico (CL) su 10 pazienti e 12 occhi.
I dati sulla popolazione ed i valori dei loro parametri funzionali, prima del trattamento sono mostrati
nella Tabella 9:
Tabella 9: caratteristiche demografiche e cliniche di gruppi di occhi trattati tramite (CL T-Ionto) e di
controllo (CL)
Rispetto alla baseline dei pazienti trattati mostrata nella tabella precedente, è stato dimostrato un
appiattimento medio del valore cheratometrico Massimo (Kmax) di -0.52±1.30 D e -0.82±1.20 D
rispettivamente a 1 anno dal trattamento transepiteliale con iontoforesi in 22 occhi e con protocollo
di Dresda in 12 occhi. L’acuità visiva corretta (CDVA) è migliorata in media di -0.10±0.12 logMAR
e -0.03±0.06 logMAR rispettivamente e la refrazione manifesta è migliorata in media di +0.71±1.44
D e +0.21±0.76 D rispettivamente. [27]
85
86
In un altro studio clinico Vinciguerra et al. hanno dimostrato un appiattimento medio dell’indice Kmax
di -0.31±1.87 D e di -1.05±1.51 D rispettivamente ad 1 anno dal trattamento transepiteliale con
iontoforesi in 20 occhi e con protocollo di Dresda in 20 occhi. Sono stati trovati miglioramenti
significativi nell’acuità visiva corretta (CDVA) e nella refrazione manifesta (CTTP) 12 mesi dopo il
cross-linking con iontoforesi. I parametri raggiunti hanno suggerito che il trattamento transepiteliale
con iontoforesi possa essere comparato a quello standard nello stabilizzare la progressione della
patologia degenerativa. In aggiunta, un rapido miglioramento dei parametri funzionali è stato
riscontrato nel gruppo trattato con il cross-linking transepiteliale con iontoforesi. [26]
In un altro studio clinico retrospettivo, Cantemir et al., hanno comparato i risultati di pazienti trattati
con cross-linking epiteliale con iontoforesi e trattati col protocollo di Dresda, a 3 anni dall’intervento.
I risultati, per quanto riguarda l’acuità visiva, sono mostrati nelle Figure 29 e 30:
Figura 29: acuità visiva media non corretta nel Figura 30: acuità visiva media corretta nel
gruppo trattato con iontoforesi (verde) ed in quello gruppo trattato con iontoforesi (verde) ed in
trattato col protocollo standard (rosso) quello trattato col protocollo standard (rosso)
L’acuità visiva non corretta (UDVA) (Figura 29) cominciò a migliorare rapidamente nel gruppo
trattato con iontoforesi già dal terzo mese post-operatorio, ed è diventata significativamente più alta
nei primi 24 mesi di follow-up (p=0.022). A 36 mesi di follow-up, il valor medio di acuità visiva non
corretta è aumentato di 1.7 nella tabella di Snellen, nel gruppo trattato con iontoforesi, rispetto a 1.1
86
87
nella tabella di Snellen, nel gruppo trattato col protocollo standard. A questo punto la differenza tra i
due gruppi non risultava più essere significativa dal punto di vista statistico (p=0.064).
L’acuità visiva corretta (CDVA) (Figura 30) si sviluppò in maniera differente all’interno dei due
gruppi trattati. Essa rimase stabile nei primi 3 mesi di follow-up con una crescita statisticamente
significativa a partire dal 6° mese di follow-up (p=0.037) nel gruppo trattato con Iontoforesi. Dopo
un declino iniziale, un mese dopo l’operazione, l’acuità visiva cominciò a migliorare a partire dal 6°
mese di follow-up nel gruppo trattato col protocollo di Dresda (p=0.038). L’acuità visiva corretta
continuò a migliorare durante tutti i restanti follow-up in entrambi i gruppi. Il trend dell’acuità visiva
corretta, valutato dal modello lineare generale, era significativamente più alto nel gruppo trattato col
protocollo di Dresda a 36 mesi di follow-up (p=0.001).
Per quanto riguarda i valori di cheratometria e pachimetria, essi sono mostrati nelle Figure 31 e 32:
Figura 31: Kmax (Maximum Keratometry Values) Figura 32: CTTP (Corneal Thickness at the
nel gruppo trattato con Iontoforesi e nel gruppo Thinnest Point) nel gruppo trattato con Iontoforesi
trattato con protocollo di Dresda. D = diottrie e nel gruppo trattato con protocollo di Dresda.
Dallo studio cheratometrico (Figura 31) è emersa una diminuzione del Kmax in entrambi i gruppi
trattati. L’appiattimento della cornea è continuato durante tutto il follow-up, senza alcuna differenza
statisticamente significativa tra i due gruppi, ad ogni step del follow-up. A 36 mesi dall’operazione,
il valore del Kmax si attestò a 1.2 D per il gruppo trattato col protocollo di Dresda e 0.9 per il gruppo
trattato col iontoforesi, senza alcuna differenza significativa (p=0.283).
87
88
Per quanto riguarda la pachimetria (Figura 32) entrambi i gruppi hanno mostrato una significativa
riduzione del CTTP a 3 mesi dall’intervento, successivamente i valori pachimetrici ritornarono a
livelli preoperatori a 12 mesi dall’intervento, mentre un incremento statisticamente significativo si
evinse nel gruppo trattato col protocollo di Dresda (p=0.012) e nel gruppo trattato con iontoforesi
(p=0.02). [29]
In ultimo, Zhang et al., hanno eseguito una meta-analisi che sintetizza e confronta i risultati clinici di
sei studi controllati randomizzati pubblicati sull’archivio ClinicalTrials.gov. Dall’analisi degli studi,
sono stati inclusi 183 occhi nel gruppo di partecipanti trattati con protocolli di cross-linking corneale
transepiteliale e 161 occhi inclusi nel gruppo di partecipanti trattati con cross-linking standard
(protocolli di Dresda); la durata dei follow-up variava da 6 a 24 mesi, l'età media dei partecipanti
variava da 22.3 a 31.0 anni. La procedura di cross-linking transepiteliale era differente nei 6 studi, in
due dei quali includeva la iontoforesi come metodo di somministrazione della riboflavina e tra gli
studi l'irradiazione variava da 3 a 10 mW/cm2. Gli autori della meta-analisi non hanno riscontrato
differenze clinicamente significative né differenze significative nelle variazioni medie dell’indice
topografico di cheratometria simulata dell’apice del cono (Kmax) tra i gruppi trattati con cross-linking
standard e transepiteliale, sebbene siano state riscontrate differenze significative nei valori della
cheratometria media e nei valori di spessore della cornea centrale tra i gruppi. [33]
Per quanto riguarda la sicurezza, nella maggior parte dei casi, le complicanze (incidenza media 12%)
dopo il trattamento di cross-linking sono lievi e transitorie. La rimozione dell’epitelio è il fattore
predisponente alle più frequenti e principali complicanze nel protocollo standard, come ad esempio
la cheratite infettiva, la formazione di infiltrati corneali sterili e la formazione di opacità corneali.
Un ulteriore fattore di rischio nel protocollo standard è rappresentato dal trattamento di cornee con
spessore inferiore a 400 μm, a causa del rischio di indurre un danno foto-tossico alle strutture
endoteliali [40]. Non rimuovere l’epitelio corneale, riduce drasticamente la frequenza e l’intensità di
complicanze, a qualsiasi età e per qualsiasi stadio di cheratocono. Favorire una maggiore penetrazione
della riboflavina, ed una maggiore concentrazione stromale della molecola terapeutica nei protocolli
transepiteliali, consentirebbe quindi di aumentare ulteriormente la sicurezza del trattamento di cross-
linking, mantenendone l’efficacia clinica.
Concludendo, gli studi hanno dimostrato come entrambe le tecniche siano in grado di arrestare la
progressione del cheratocono ai suoi primi stadi, senza mostrare grosse differenze significative nei
principali parametri funzionali (Kmax, CTTTP, UDVA, CDVA) e nemmeno variando la procedura di
trattamento in termini di durata e potenza utilizzata. Entrambe le tecniche sono state in grado di
conferire un buon grado di sicurezza al paziente ed una rapida guarigione.
88
89
Il dispositivo C4V (Chromo4Vis), come già introdotto ad inizio capitolo, fornisce una metodologia
non invasiva per arrestare la progressione del cheratocono, tramite una terapia guidata dalla
diagnostica per immagini (teranostica)13.
Il sistema nel suo complesso viene per semplicità suddiviso, in quattro aree tematiche:
1. Meccanica
2. Ottica
3. Elettronica
4. Software
Tutti i sotto-assiemi elencati in precedenza, sono mostrati in una rappresentazione schematica del
dispositivo in Figura 33:
13
Il dispositivo nasce da un’idea sviluppata all’interno dell’azienda Vision Engineering Italy
89
90
A livello progettuale, è molto importante anche andare a capire come avverrà l’intervento vero e
proprio, in questo caso ambulatoriale, effettuato dal medico chirurgo. La rappresentazione schematica
precedente, è stata utilizzata per andare a simulare lo scenario operatorio. In Figura 34, infatti, è
possibile vedere, da diverse angolazioni, il rendering della simulazione:
Figura 34: rendering dello scenario operatorio: lateral view (9 B), Top view (9 A), ISO View (9 C, 9 D)
Come si evince dalla Figura 34, il dispositivo C4V verrà posizionato affianco al lettino del paziente.
Il medico chirurgo oculista, potrà in questo modo, impugnare la testa ottica che, tramite il braccio
snodabile, conferirà una certa mobilità è consentirà al medico di direzionare al meglio il fascio UV-
A nella cornea del paziente, sottoposto ad intervento di cross-linking.
90
91
La testa ottica è il componente principale di C4V, dato che rappresenta l’elemento che finalizza
l’applicazione della radiazione UV-A sulla superficie corneale del paziente.
Vediamo, più nel dettaglio, il funzionamento della testa ottica. In figura 35 è mostrato il rendering
della testa Ottica, realizzato tramite software CAD Creo®:
Figura 25: rendering della testa ottica e dei suoi componenti interni
Il fascio UV-A viene indirizzato nella prima ottica, la quale presenta una lente necessaria a collimare
il fascio. Il fascio collimato, a questo punto, attraversa l’Iride ovvero un componente che è in grado
di eliminare la parte spuria del raggio UV-A ed inoltre ridurre la parte di fascio collimata che non
risulta essere perfettamente a fuoco. Il fascio UV-A, a questo punto, va incontro ad un ulteriore
collimazione attraverso una seconda ottica, questa in particolare ha il compito di focalizzare il fascio
sullo specchio.
Lo specchio, a sua volta, riflette il fascio UV-A e lo indirizza verso un filtro interferenziale o filtro
dicroico. Questo, avendo banda passante di 410nm, riflette il fascio UV-A, indirizzandolo verso la
cornea del paziente. Il fascio UV-A verrà assorbito dalla riboflavina intra-corneale, questa a sua volta
91
92
emetterà un segnale nella banda del verde (550 nm), questo segnale di fluorescenza viene letto dalla
camera RGB (poiché essendo > 410 nm passerà attraverso il dicroico). A questo punto interviene il
fotodiodo. Questo componente controlla che la gran parte di potenza della luce UV-A, il 90% per la
precisione, si diriga verso la cornea del paziente e solo il restante 10% della potenza si diriga verso
la camera. Un ulteriore controllo, davvero molto importante, viene effettuato dal LED di fissazione.
Questo LED infatti “spara” un fascio verde con λ=550 nm verso uno specchio, esso riflette il fascio
verso il basso e lo indirizza verso il paziente. Tale fascio, infatti, serve per l’allineamento dell’asse
visivo dell’occhio del paziente col raggio UV-A utilizzato per effettuare l’intervento. In particolare
se i 2 raggi risultassero shiftati anche di poco il dispositivo si spegnerebbe automaticamente, per
evitare che l’operazione non avvenga nell’opportuna sede della cornea. La scheda elettronica della
camera RGB sarà collegata infine con la scheda elettronica tramite porta USB, scheda che si trova
nel lato opposto della testa ottica.
Per concludere, la testa ottica dispone di due ulteriori controlli dati dai LED blu e rossi.
In particolare:
L3
LASER
DRIVER
RED
PC
Figura 36: funzionamento schematico della testa ottica
92
93
Perciò il compito di questi de LED è quello, sostanzialmente, di garantire che il fascio UV-A, una
volta uscito dalla testa ottica, sia perfettamente a fuoco rispetto al piano corneale del paziente ma
inoltre consentono anche di evidenziare meglio la zona irradiata dal fascio UV-A.
Il sistema dovrà integrare inoltre un monitor 14/15” Touch Screen capacitivo/resistivo, per la
visualizzazione dell’interfaccia utente.
Figura 37: Integrazione della Single Board Computer e della Child Board allo schermo
LCD in diverse viste
93
94
La SBC sarà collegata al microcontrollore, che si troverà dall’altro lato della piastra della testa ottica
vista nel rendering, tramite collegamento seriale. Mentre le immagini dell’intervento, provenienti
dalla camera RGB a monitor, verranno trasmesse tramite collegamento USB tra la SBC e la camera
RGB situata nella testa ottica.
Una parte importante del dispositivo C4V è ovviamente il Software, ed in particolare la Graphic User
Interface (GUI) o Interfaccia Utente, realizzata a livello di prototipo, in LabView14. Essa consente
all’utente di lavorare facilmente sul dispositivo, fornisce informazioni a schermo sull’intervento, sul
paziente, sulla cornea ed inoltre consente di stampare le suddette informazioni. La schermata iniziale
del menù si presenta come in figura 38:
Dalla finestra precedente, il chirurgo avvia la fase di inizializzazione. Infatti, se la macchina è al suo
primo utilizzo, sarà necessaria una calibrazione da parte del tecnico, sul sito dell’utente.
In particolare sarà necessaria la calibrazione della densità di potenza del fascio UV-A e del tempo di
esposizione del paziente al fascio. Questi parametri sono molto importanti al fine di garantire una
buona riuscita dell’intervento sia in termini di risultati attesi, dal punto di vista clinico, sia in termini
di sicurezza verso il paziente. La calibrazione si divide in 4 fasi:
14
Il prototipo in LabView è stato realizzato interamente all’interno dei laboratori di Vision Engineering Italy, esso
servirà da supporto per progettare il dispositivo HW/SW commerciabile, grazie alla collaborazione con Visia Imaging
94
95
3. Misurazione dei valori di densità di potenza UV-A predefiniti (3, 5, 10, 15, 20 mW/cm2)
4. Infine si varia sia la densità di potenza che il valore di esposizione della camera. Si ha
l’inserimento del campione di fluorescenza pre-calibrato (eccitazione a 365 nm ed emissione
sui 540-560 nm) e regolando i valori di esposizione, si modificano i valori di intensità dei
pixel verdi, per cui tale procedura consiste nel far variare i valori di densità di potenza e di
esposizione in modo tale che eccitando il campione pre-calibrato, si ottiene sempre lo stesso
valore dei pixel verdi ottenuto eccitandolo con la densità di potenza pre-calibrata (figura 39)
Una volta completata l’inizializzazione, si può tornare al menu principale. Da qui è possibile inserire
le informazioni relative ad un nuovo paziente che dovrà sottoporsi al trattamento. In figura 40 è
mostrata la maschera che il chirurgo compila, inserendo i parametri del paziente ed il tipo di
trattamento che andrà a fare. C’è la possibilità di poter caricare dal database già le informazioni e/o
salvarle.
95
96
Una volta inseriti i dati si passa all’esecuzione di un nuovo trattamento sul paziente. Il trattamento si
divide in tre fasi, la fase di cornea background, la fase di cornea soaking e la fase di UV-A irradiation.
In figura 41 è mostrata la schermata iniziale, in cui, a seconda dello stato del trattamento (cornea
background, cornea soaking, UV irradiation) si attivano e disattivano i LEDs UV-A/blu in modo
automatico e/o manuale tale da consentire al medico di poter intervenire durante il trattamento.
Questa schermata serve inizialmente per centrare l’area della cornea da trattare. In questa fase, il
medico va manualmente a spostare la lampada in modo da centrare il tessuto corneale, inteso come
ROI (Region Of Interest) ed accendere il puntatore laser rosso per facilitare il posizionamento
dell’occhio sul piano focale ed il led blu per il corretto centramento dell’occhio all’interno della ROI
di processamento.
Cornea Background: è una procedura automatica in cui, per ogni trattamento, è necessario
misurare la fluorescenza di background del tessuto nativo (senza riboflavina), necessario per
valutare la concentrazione durante il trattamento nelle fasi successive. La procedura è la
seguente:
a) Accensione per uno/due sec della lampada UV-A con densità di potenza predefinita
per il trattamento in oggetto;
96
97
b) Rilevazione dell’intensità media emessa dal tessuto corneale nel canale del verde della
camera RGB, 𝑰𝒃𝒂𝒄𝒌_𝒈𝒓𝒆𝒆𝒏 e memorizzazione di tale valore.
Cornea Soaking: è una procedura manuale, il medico andrà ad instillare la giusta quantità di
riboflavina nella cornea del paziente. Per capire quale sia questo valore di concentrazione, il
sistema dovrà valutare la concentrazione in real-time, ogni 30s, durante l’intervento.
La procedura consta di diversi passi:
a) Accensione del LED UV-A con densità di potenza predefinita per il trattamento
b) Misurazione dei valori di intensità dei pixel verdi, 𝑰𝒈𝒓𝒆𝒆𝒏 (𝒙,𝒚) , all’interno della ROI e
calcolo del valore di intensità media sempre all’interno della ROI, 𝑰𝒈𝒓𝒆𝒆𝒏
c) Calcolo dell’intensità media dentro la ROI, dovuta alla sola informazione della
riboflavina presente nel tessuto corneale, servendosi del valore di intensità di
background trovato nella fase 1: 𝑰 = 𝑰𝒈𝒓𝒆𝒆𝒏 − 𝑰𝒃𝒂𝒄𝒌_𝒈𝒓𝒆𝒆𝒏
97
98
Figura 43: presentazione finale dell'interfaccia utente, al termine del trattamento di cross-linking
corneale
98
99
Infine, una volta terminato il trattamento, viene mostrata una maschera, questa viene compilata
automaticamente dal sistema, dove però il chirurgo può aggiungere delle note, salvare i dati a fine
trattamento e stampare il report da consegnare al paziente (Figura 45).
99
100
In conclusione, il dispositivo Chromo4Vis può essere impiegato con ogni tipologia di protocollo
chirurgico, per il trattamento del cheratocono (standard o protocollo di Dresda, transepiteliale e
transepiteliale con iontoforesi) sia esso di entità moderata o grave. Il dispositivo ha il compito di
guidare il chirurgo ad eseguire l’intervento in maniera efficace e sicura sul singolo paziente, a
prescindere quindi dal protocollo di trattamento scelto. Il C4V è il primo dispositivo di teranostica al
mondo, in cui è possibile seguire in real-time l’avanzamento del trattamento e quindi la sua efficacia
a differenza di altri dispositivi laser in cui è necessario un follow-up sul paziente a distanza di mesi
dall’intervento.
Visia Imaging, è un’azienda che si occupa della progettazione del software all’interno del progetto
Chromo4Vis (C4V).
L’azienda sfrutta un particolare context per lo sviluppo del software chiamato DevOps, dalla
contrazione inglese di “Development” e “Operations”. Il context di sviluppo DevOps punta alla
comunicazione, collaborazione ed integrazione tra gli sviluppatori del software, al fine di aiutare a
sviluppare in modo più rapido ed efficiente prodotti e servizi software.
All’interno di questo context di sviluppo, per poter andare a progettare un software bisogna affidarsi
ai cosiddetti modelli di sviluppo del ciclo di vita del software, i quali consentono di organizzare al
meglio il ciclo di vita del prodotto software. Da questo punto di vista la metodologia di sviluppo
adottata dall’azienda, per sviluppare i suoi progetti, è la metodologia AGILE.
Il termine “AGILE”, coniato nel 2001, è un termine utilizzato per descrivere un gruppo di metodi di
sviluppo software nei quali la progettazione evolve attraverso la collaborazione tra i vari team di
sviluppo. Esso promuove un approccio basato sulla pianificazione adattiva, sviluppo evolutivo,
apprendimento continuo, ed incoraggia una rapida e flessibile risposta alle modifiche.
I metodi agili, spesso definiti framework, sono approcci globali alle fasi del ciclo di vita dello
sviluppo del software: pianificazione, esecuzione e consegna. [1]
In particolare, la metodologia agile è una tipologia di sviluppo usata per descrivere la progettazione
software in maniera iterativa. Lo sviluppo di software in maniera iterativa, accorcia il ciclo di vita
dello sviluppo del software. I team di sviluppo agili, eseguono l'intero ciclo di vita dello sviluppo del
software tramite piccoli incrementi, solitamente chiamati sprint. Gli sprint durano in genere 1-4
settimane. Lo sviluppo agile è spesso in contrasto con lo sviluppo tradizionale o waterfall, in cui
progetti più grandi sono pianificati in anticipo ed eseguiti contro tale piano. Produrre un codice di
qualità ad ogni sprint richiede che il team di sviluppo agile rispecchi il ritmo accelerato. Tutti i codici,
i test e la verifica della qualità devono essere eseguiti ad ogni singolo sprint. [2]
100
101
Per quanto riguarda la gestione della progettazione l’azienda, come già accennato nel paragrafo
precedente, sfrutta Azure DevOps. In seguito è possibile visualizzare la gestione relativa al progetto
C4V:
Azure Boards: fornisce una serie di strumenti “Agili” da utilizzare per pianificare e tenere
traccia del progetto ed eventuali problemi. Al suo interno si hanno:
o Work Items (WITs): sono gli elementi di lavoro del progetto. Ogni Work Item
rappresenta un oggetto memorizzato nell'archivio dati dei Work Items. Ogni Work Item
è basato su uno specifico tipo e gli è assegnato un ID che lo contrassegna
univocamente all’interno dell’organizzazione o del team di progetto (Figura 47).
Figura 46: Esempi di WITs in cui è possibile notare l'ID, l'assegnazione, lo stato ed
il titolo [2]
101
102
Figura 48: Portflio Backlog che mostra come i vari backlog sono gerarchicamente
definiti, l'assegnamento, lo stato ed il titolo [2]
o Sprints: forniscono una visione filtrata della lista di WITs (backlog) che il team ha
assegnato ad uno specifico percorso, detto Sprint. Gli Sprint sono definiti per un
progetto dal team di lavoro. Ogni WIT assegnato ad uno specifico Sprint, deve essere
ultimato dal membro del team entro il tempo specificato dallo Sprint (Figura 49).
102
103
Figura 49: Filtro dei backlog che mostra i WITs rimanenti assegnati ed i giorni
rimanenti per completare lo Sprint [2]
o Queries: sono liste filtrate di WITs. Le query consentono di trovare gruppi di WITs
che hanno qualcosa in comune, in questo modo si possono smistare un set di WITs al
fine di modificarne la priorità o assegnarli (Figura 50).
Figura 50: Esempio di query per filtrare WITs accomunati tra loro [2]
Repository: al suo interno viene inserito il codice sorgente vero e proprio del progetto.
In particolare il codice sorgente viene scritto all’interno di un editor di sviluppo professionale,
come Visual Studio. Qui tramite una procedura denominata archiviazione, il codice sorgente
apparirà all’interno della cartella Repos in DevOps.
103
104
All’interno della metodologia AGILE, i WITs si presentano all’interno della struttura mostrata in
figura 51:
Figura 51: Struttura dei WITs all'interno del processo Agile [2]
Vediamo più nel dettaglio a cosa si riferisce ogni elemento evidenziato nell’immagine:
User Story: sono riferite alle necessità specifiche dell’utente da inserire all’interno del
prodotto SW. In particolare le User Stories rappresentano i cosiddetti Software Requirements
Specification (SRS) di un progetto SW. Essi contengono i requisiti che il dispositivo software
deve soddisfare
104
105
Visia Imaging presenta una sua procedura di sviluppo software ben definita, questa procedura
operativa fornisce una linea guida sulla gestione del ciclo di vita delle Applicazioni (ALM) per i
dispositivi medici progettati dall’azienda, in particolar modo orientata alla progettazione e lo sviluppo
del software. La procedura di sviluppo software è stata redatta in accordo con le principali direttive
internazionali:
I documenti guida e gli standard richiedono che i fabbricanti dei dispositivi medici software scelgano
e definiscano il loro Modello di sviluppo del Ciclo di vita del Software (SDLC) rispettando le
attività che un processo software deve osservare.
Visia Imaging, sotto questo punto di vista, ha deciso di utilizzare un modello di sviluppo del ciclo di
vita del software Incrementale/Evolutivo con una personalizzazione del classico modello di
105
106
sviluppo del ciclo di vita del software AGILE, necessario per poter sviluppare in un contesto di
dispositivo medico regolamentato.
Questo modello di sviluppo, segue il modello Incrementale in funzione di come la definizione ampia
del prodotto viene suddivisa in piccoli pezzi sul Backlog, con quei pezzi ulteriormente definiti,
progettati, codificati e testati, una Story alla volta, effettuo dei brevi incrementi. Il modello di sviluppo
segue, inoltre, il modello Evolutivo nel modo in cui esso consente la definizione del prodotto evolva
nel tempo, a volte effettuando attività di progettazione, coding e testing in maniera dinamica.
I pezzi sono integrati attraverso procedure di integrazione e validazione per dimostrare che le parti
aggiunte al sistema sono consistenti e non influiscono sulle funzionalità del sistema completo.
Figura 52: schema concettuale del processo di sviluppo del software presso Visia Imaging [1]
In base a quanto visto nella CEI EN 62304:2006, esso è uno standard che definisce una lista dei
processi del ciclo di vita del software con le attività ed i task necessari per la progettazione ed il
mantenimento dei dispositivi medici in totale sicurezza. Per quanto riguarda gli Stati Uniti, il 21 CFR
820 stabilisce una serie di procedure interconnesse le quali devono essere incorporate nel progetto e
sviluppo del dispositivo medico. Non viene specificato però nessun ciclo di vita per lo sviluppo del
software così come non vengono specificati controlli e task che devono essere integrati nel processo
di sviluppo del fabbricante. In base a questi standard, le attività del ciclo di vita del software, sono le
seguenti:
106
107
1. SW Development Planning
2. SW Requirements Analysis
3. SW System Design
4. SW Unit Implementation and Verification
5. SW Integration and Integration Testing
6. SW System Testing
7. SW Release
Il modello del ciclo di vita è composto da quattro layers of abstraction, in cui sono eseguite le attività:
1. Project Layer
2. Release Layer
3. Incremental Layer
4. Story Layer
Le attività ed il modello del ciclo di vita descritto in precedenza sono mostrati in Figura 53:
Figura 53: Modello del ciclo di vita del Software utilizzato da Visia Imaging [1]
107
108
Vengono analizzati ora, più nel dettaglio, i layer of abstraction citati in precedenza:
1. Project Layer: il ruolo del Project Layer è quello di fornire un set completo di attività
necessarie a consegnare un prodotto software ultimato
2. Release Layer: il ruolo del Release Layer è quello di fornire le attività eseguite per creare un
prodotto utilizzabile. Un progetto è fatto di una o più versioni, dipendentemente dal piano del
progetto, una versione può generare un prodotto che è o può essere venduto, oppure generare
una serie di funzionalità destinate solamente ad un uso interno
3. Incremental Layer: il ruolo del Incremental Layer è quello di fornire le attività per creare un
set di funzionalità utili, tuttavia non necessariamente un prodotto software completo. Una
versione è fatta di uno o più incrementi
4. Story Layer: il ruolo dello Story Layer è quello di fornire le attività per creare piccoli pezzi
funzionali, tuttavia non necessariamente un set completo. Un incremento è fatto di una o più
stories.
Infine viene dato un ulteriore dettaglio delle relative attività del ciclo di vita del software in accordo
col modello Incrementale/Evolutivo mostrato in figura 53:
108
109
Figura 54: SRS visti come una collezione di User story [1]
Software Unit Implementation and Verification: per ogni Software Unit viene scritto il
codice sorgente, in questa fase finisce la decomposizione dei requisiti software ed inizia
l’implementazione dei Software Item, ed infine vengono definiti i protocolli di testing da
utilizzare per verificare il codice sorgente prodotto
Risk Management: similmente alle altre attività del processo di sviluppo software, non tutti i
rischi sono conosciuti all’inizio del progetto bensì molti di questi si presentano man mano che
il dispositivo evolve. In questa fase vengono identificate potenziali cause di pericolo del
software come Bug del software, incompleta definizione delle funzioni da implementare ecc.
I risultati del processo di gestione del rischio sono documentati dal Project Manager durante
15
Col termine Refactoring si intende il miglioramento della struttura interna del codice sorgente di un programma esistente, preservandone tuttavia il
comportamento esterno
109
110
l’intero processo di sviluppo del software all’interno del Risk Management File (RMF)
Software Design Change: durante questa analisi, modifiche al software devono essere
valutate per l’impatto che queste hanno sul funzionamento del software stesso e le attività
devono essere identificate e ripetute, anche nella misura della riclassificazione della classe di
sicurezza del software
Traceability: dal momento che il PRD è il documento di controllo per quanto concerne ciò
che il dispositivo necessita di fare sia da un punto di vista hardware che software, il Project
Manager mantiene una tracciabilità tra le caratteristiche descritte, ad alto livello, nel PRD e
le user Stories descritte nel SRS, come mostrato in Figura 55: [1]
110
111
Il test del software è una procedura che viene fatta a “basso livello” consentendo di verificare la
funzionalità del nostro codice sorgente. Nel capitolo 2 e 3 sono state introdotte due tipologie principali
di test, i test Black-Box ed i test White-Box, rispettivamente dei test strutturali e funzionali. In questo
capitolo l’attenzione si sposta verso le varie metodologie di questi test accennati già nel capitolo 3.
Il test White-Box è un particolare tipo di test che viene effettuato per rilevare errori in uno o più
componenti (parte di codice, metodo, funzione, classe, programmi, ecc.) di un sistema software.
Il suo funzionamento si basa su alcuni criteri che hanno lo scopo di trovare dati di test che consentano
di percorrere tutto il programma. Per trovare un errore nel codice, infatti, bisogna usare dei dati che
“percorrono” la parte erronea del programma. Per testare una parte di programma si introduce il
concetto di cammino: una sequenza di istruzioni attraversata durante un'esecuzione. Naturalmente
non esiste un criterio in grado di testare ogni singolo cammino dato l'elevato numero di questi ultimi
(soprattutto in presenza di cicli), tuttavia, è possibile trovare un numero finito di cammini
indipendenti che combinati tra loro forniscano tutti, o per lo meno la maggior parte, i restanti
cammini. Se eseguito correttamente e senza particolari eccezioni, il test può coprire fino al 90% delle
istruzioni.
Statement Code Coverage: è un test nel quale bisogna dare una certa copertura di controllo ai
vari statement del codice sorgente. Lo Statement Code Coverage è una tecnica di White-Box
testing che implica l'esecuzione di tutte le istruzioni eseguibili nel codice sorgente almeno una
volta. L’obiettivo del test Statement Code Coverage è quello di misurare il numero di
istruzioni nel codice sorgente che possono essere eseguite in base ai requisiti.
Uno statement non è altro che una riga di codice, terminante col “;”. La copertura in
particolare, viene data in % ed in genere una buona copertura si aggira intorno all’80%.
Ovviamente perché ci sia una copertura del 100% dovrò fare in modo di dare dei parametri in
input che mi consentano di controllare ogni statement, ovvero ogni espressione del mio codice
sorgente, almeno una volta.
111
112
Branch Code Coverage: è un test in cui bisogna avere come requisito che, per ciascun ramo
nel programma, ad esempio, istruzioni if/else o cicli, ogni ramo sia stato eseguito almeno
una volta durante il test. A volte viene anche detto che ogni condizione del ramo deve essere
stata “vera” almeno una volta e “falsa” almeno una volta durante il test.
In questo modo si riesce a garantire che ogni possibile ramo, da ogni condizione di decisione,
venga eseguito almeno una volta.
(𝑁𝑢𝑚𝑒𝑟𝑜 𝑑𝑖 𝐵𝑟𝑎𝑛𝑐ℎ𝑒𝑠)
𝐵𝑟𝑎𝑛𝑐ℎ 𝐶𝑜𝑑𝑒 𝐶𝑜𝑣𝑒𝑟𝑎𝑔𝑒 = ∙ 100
(𝑇𝑜𝑡𝑎𝑙 𝑁𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝐵𝑟𝑎𝑛𝑐ℎ𝑒𝑠)
È quindi un test nel quale il codice sorgente deve rispettare entrambe le condizioni del branch
almeno una volta. In questo caso verranno forniti due input differenti che vadano a testare
l’efficacia/inefficacia del branch (Figura 56).
Branch Condition Code Coverage: è un test nel quale vengono valutate, almeno una volta, le
singole espressioni logiche dei branch. A volte, infatti, le condizioni dipendono da diverse
condizioni più piccole, queste singole espressioni logiche più piccole sono chiamate
condizioni atomiche logiche. Una condizione atomica logica è una condizione che non ha
operatori logici come AND, NOT, OR ma che include i simboli <, > o =.
Una condizione a sua volta, potrà essere formata da diverse condizioni atomiche
logiche. La copertura del codice sorgente dovrà rispettare entrambe le condizioni del branch,
TRUE o FALSE, almeno una volta (figura 57).
112
113
Infine la Branch Condition Code Coverage è una copertura meno debole rispetto alla
Statement Code Coverage ed alla Branch Coverage in quanto non è richiesto eseguire ogni
dichiarazione o statement.
Il test Black-Box è un particolare tecnica di test del software nel quale la funzionalità del software
viene testata senza guardare alla struttura interna del codice, i dettagli di implementazione e la
conoscenza delle parti interne del software. Questo tipo di test si basa interamente sui requisiti e le
specifiche del software. Nel test Black-Box ci si focalizza dunque sugli input ed output del sistema
senza preoccuparsi della conoscenza interna del programma software, come si evince dalla figura 58:
Vi sono diverse tipologie di test Black-Box, tuttavia le seguenti sono le più importanti:
Functional testing: questa tipologia di test Black-Box è relazionata ai requisiti funzionali del
sistema ed è eseguita dai software tester
Non-Functional testing: questa tipologia di test Black-Box non è relazionata a testare una
specifica funzionalità del software, bensì ai requisiti non-funzionali quali performance,
scalabilità ed usabilità
Regression Testing: questa tipologia di test Black-Box viene effettuata dopo aver terminato
la correzione del codice, aggiornamenti o qualsiasi altra manutenzione del sistema per
controllare che il “nuovo codice” non abbia influito sul codice esistente
113
114
Tra i requisiti fondamentali per la corretta applicazione, in termini di efficacia, che il trattamento di
cross-linking corneale deve avere vi è sicuramente il calcolo della concentrazione di riboflavina
durante il trattamento. In relazione alle tre fasi del trattamento di cross-linking cornale, la valutazione
della concentrazione in real-time durante l’intervento è fondamentale, per andare a stabilire la reale
efficacia che il trattamento ha nei confronti della cornea del paziente.
In particolare, la fase in questione è la fase di UV-A irradiation, ovvero la fase del trattamento in cui
si verifica il processo di fotoreazione tra il fascio UV-A e le molecole di riboflavina, somministrate
al paziente, con la formazione di nuovi ponti di collagene nello stroma corneale, riportando lo
spessore corneale ai valori fisiologici, contrastando in questo modo lo sfiancamento della cornea a
causa della patologia.
Al fine di andare a studiare come varia la concentrazione della riboflavina durante il trattamento, si
sfrutta una funzione, che fa corrispondere la lettura dei livelli di verde della camera RGB alla
concentrazione della riboflavina incognita. Nello specifico ad ogni istante il sistema registra la lettura
dei livelli di verde della camera RGB, questo livello di intensità viene pesato tramite dei coefficienti
e risulta essere proporzionale, in quel preciso istante, con la concentrazione di riboflavina presente a
livello corneale. In questo, in ogni istante del trattamento è possibile monitorare in real-time,
l’andamento della concentrazione in maniera tale che il medico chirurgo possa arrestare il processo
qualora tale concentrazione risultasse inferiore ad una soglia di sicurezza del trattamento.
La funzione dell’intensità (fluorescenza) dei livelli di verde in funzione della concentrazione della
riboflavina è la seguente:
𝐶 = 𝑝1 ∙ 𝐼 + 𝑝2 ∙ 𝐼 2 (16)
In cui:
16
All-Optical Method to Assess Stromal Concentration of Riboflavin in Conventional and Accelerated UV-A Irradiation of the Human Cornea,
Investigate Ophtalmology & Visual Science, M. Lombardo, G. Lombardo
114
115
La validazione dei requisiti software è stata implementata all’interno del software Visual Studio,
tramite la creazione di una classe in C# in cui viene implementato il calcolo della concentrazione
della riboflavina in accordo con la legge spiegata nel capitolo precedente. Al fine di validare il
requisito è stato poi implementato uno Unit Test riferito proprio a tale classe, in cui si è messo in
evidenza in funzionamento della classe sia in condizioni ottimali che non ottimali, riscontrando perciò
anche eventuali errori nella procedura.
Per prima cosa è stata implementata una classe in C# su Visual Studio, di nome
CrossLinkingCalculator all’interno di essa viene implementato il metodo per il calcolo della
concentrazione di Riboflavina. Il metodo prende come input l’intensità (intensity) e i due parametri
di fit p1 e p2, in particolare l’intensità è di tipo uint (uninsigned int) in quanto non può avere un valore
negativo. Tale classe è mostrata in Figura 59:
A questo punto è stato fatto il test, lo schema AAA (Arrange, Act, Assert) è un modo comune per
scrivere unit test per un metodo da testare.
La sezione Arrange di un metodo di Unit Test inizializza oggetti e imposta il valore dei dati
passati al metodo da testare
115
116
Figura 60: classe in C# che implementa lo Unit Test del metodo CrossLinkingCalulator
Nel primo pezzo di codice vado a testare il metodo di calcolo della concentrazione, quando al doppio
dell’intensità mi aspetto il doppio della concentrazione. Nell’Arrange vado quindi a creare una nuova
classe CrossLinkingCalculator per inizializzare il test, nell’Act vado a creare due variabili double
dove, richiamando il metodo CalculateConcentration, gli passo i tre parametri (intensità, p1 e p2) ed
eseguo il calcolo. La prima variabile calcola la concentrazione mentre la seconda calcola il doppio
della concentrazione (in quanto li passerò 2 volte il valore dell’intensità). A questo punto si passa
all’Assert in cui si verifica che il metodo funzioni correttamente e quindi verifico effettivamente che
concentration_double_intensity > 2 * concentration.
Nel secondo pezzo di codice vado a testare il metodo di calcolo della concentrazione, quando non
ho nessun valore di intensità e mi aspetto perciò una concentrazione nulla. Nell’Arrange vado quindi
a creare una nuova classe CrossLinkingCalculator per inizializzare il test, nell’Act vado a creare una
variabile double dove, richiamando il metodo CalculateConcentration, gli passo i tre parametri
(intensità, p1 e p2), di cui però intensità ha valore nullo, ed eseguo il calcolo. A questo punto si passa
116
117
all’Assert in cui si verifica che il metodo funzioni correttamente e quindi verifico effettivamente che
la concentrazione trovata sia nulla, ovvero concentration < Double.Epsilon.
Al fine di eseguire il test è stato utilizzato un tool di Visual Studio denominato AxoCover (Figure 61
e 62):
Figura 61: risultato dello Unit Test della classe CrossLinkingCalculator tramite AxoCover
Figura 62: risultato dello Unit Test del metodo Calculator tramite AxoCover
117
118
Infine il report del test (Figura 63), è stato generato dal tool AxoCover di Visual Studio, utilizzato per
implementare il test. Nella parte in alto è mostrato un sommario, che riassume i risultati del test, ed
in basso, per ogni classe, gli statement coperti, non coperti e totali, la percentuale di statement coperti
(la colonna Line coverage) inclusi i branches (la colonna Branch coverage) (notare come i branches
li ho solo nella prima classe in quanto ho l’if sull’intensità). Si può notare come la copertura del test
risulta essere del 100%, tuttavia in un caso più “reale” una buona copertura sfiora circa l’80%-85%.
118
119
Conclusioni
119
120
120
121
Bibliografia
[1] Consiglio delle Comunità Europee, “Attuazione Della Direttiva 93/42/CEE, concernente i
Dispositivi Medici” 1993.
[3] Thema-Med, “Cybersecurity: una nuova sfida per la sicurezza del paziente.” 2016.
[5] IMDRF Software as a Medical Device (SaMD) Working Group, “Software as a Medical
Device: possible Framework for Risk Categorization and Corresponding Considerations”
2014.
[6] Consiglio delle Comunità Europee, “Attuazione della Direttiva 2004/CE del Consiglio del 5
settembre 2007 che modifica la direttiva 90/385/CEE del Consiglio per il ravvicinamento
delle legislazioni degli Stati membri relative ai dispositivi medici impiantabili attivi, la
direttiva 93/42/ 2007".
[7] Consiglio delle Comunità Europee, “Attuazione della direttiva 90/385/CEE del Consiglio del
20 giugno 1990 concernente i dispositivi medici impiantabili attivi” 1990.
[10] Consiglio delle Comunità Europee, “Attuazione della direttiva 98/79/CE relativa ai dispositivi
medico-diagnostici in vitro” 2000.
[11] C. Comitato Elettrotecnico Italiano, “Software per dispositivi medici - Processi relativi al
ciclo di vita del software.”
[12] Food and Drug Administration, “Guidance for the Content of Premarket Submissions for
121
122
[14] I. O. for standardization ISO, “Medical devices -Quality management systems - Requirements
for regulatory purposes” 2016.
[15] C. Comitato Elettrotecnico Italiano, “Medical electrical equipment -- Part 1-8: General
requirements for basic safety and essential performance -- Collateral standard: General
requirements, tests and guidance for alarm systems in medical electrical equipment and
medical electrical systems” 2006.
[16] C. Comitato Elettrotecnico Italiano, “Safety requirements for electrical equipment for
measurement, control, and laboratory use - Part 1: General requirements” 2010.
[20] U.S Food and Drug Administration (FDA), “Database FDA recalls.”
[21] U.S Food and Drug Administration (FDA), “General Principles of Software Validation;
Final Guidance for Industry and FDA Staff (Document issued on: January 11, 2002)” FDA
Guid., p. 47, 2002.
[24] U.S Food and Drug Administration (FDA), “FDA Medical Device Regulations.”:
https://www.fda.gov/medicaldevices/deviceregulationandguidance/postmarketrequirements/q
122
123
ualitysystemsregulations/.
[25] U.S Food and Drug Administration (FDA), “CFR - Code of Federal Regulations Title 21.” :
https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?CFRPart=820.
[26] U.S Food and Drug Administration (FDA), “CFR – Code of Federal Regulations Title
11.10.”: https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?fr=11.10.
[27] U.S Food and Drug Administration (FDA), “Guidance for Industry - FDA Reviewers and
Compliance on Off-The-Shelf Software Use in Medical Devices” Change, p. 29, 1999.
[30] Y. Joshua Wheeler, Michael A. Hauser, Natalie A. Afshari, R. Rand Allingham and Liu, “The
Genetics of Keratoconus: A Review” vol. 45, no. 6, pp. 788–802, 2008.
[31] A. S. G. Nallathambi Jeyabalan, Rohit Shety1, Anuprita Ghosh2, Venkata Ramana Anandula
and G. Kumaramanickavel, “Genetic and genomic perspective to understand the molecular
pathogenesis of keratoconus” Indian J. Ophthalmol., vol. 61, no. 8, p. 384, 2013.
[32] C. N. Mcghee, “Keratoconus: The arc of past, present and future” Clinical and Experimental
Optometry, vol. 96, no. 2, pp. 137–139, 2013.
[33] R. Ambekar, K. C. Toussaint, and A. Wagoner Johnson, “The effect of keratoconus on the
structural, mechanical, and optical properties of the cornea” J. Mech. Behav. Biomed.
Mater., vol. 4, no. 3, pp. 223–236, 2011.
[34] M. H. and T. S. EBERHARD SPOERL, “Induction of Cross-links in Corneal Tissue” no. May
1997, pp. 97–103, 1998.
123
124
[41] E. Spoerl, M. Mrochen, D. Sliney, S. Trokel, and T. Seiler, “Safety of UVA-riboflavin cross-
linking of the cornea” Cornea, vol. 26, no. 4, pp. 385–389, 2007.
[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][22][23][24][25][26][27
][28][29][30][31][32][33][34][35][36][37][38][39][40][41][42][43]
124