sabato 24 aprile 2010

Bad Medicine (II parte): The Bug

Le macchine ed il progresso tecnologico hanno aiutato enormemente la medicina e le sue applicazioni.
Basti pensare ad uno dei mezzi che ogni giorno aiutano i medici a capire e curare: la diagnostica per immagini.

Un vero miracolo, guardare all'interno del corpo senza toccarlo: ci siamo abituati ma riflettiamoci, è meraviglioso.
Le radiazioni hanno permesso questo ed altro.
Sono state utilizzate per esempio a scopo terapeutico. I danni che i raggi causano alle cellule sono stati concentrati sulle cellule malate, nei tumori ad esempio, così da danneggiarle e distruggerle.
La radioterapia ha questo scopo. "Piegare" un effetto dannoso e renderlo vantaggioso, è la tecnologia che aiuta l'uomo. La radioterapia ha dei limiti e degli effetti collaterali che vengono minimizzati il più possibile con adeguate precauzioni.
Ma quante volte la tecnologia si è fidata troppo ed a torto delle proprie capacità?
Nella prima parte di questa serie ho raccontato la storia del Thorotrast un mezzo di contrasto utilizzato in radiologia per le sue proprietà ma poi rivelatosi una pericolosissima e dannosa bomba radioattiva che ha fatto (e continua a fare!) tante vittime.
Questa invece è la storia di un disastro informatico che ha avuto come effetto un disastro medico.

In un certo senso, l'incubo degli scrittori di fantascienza si è avverato: gli esseri umani perdono il controllo delle macchine con risultati catastrofici.
Eppure è accaduto, colpa umana non delle macchine che per quanto "intelligenti" e sicure sono sempre progettate e costruite dall'uomo ma (soprattutto oggi, epoca nella quale affidiamo tante nostre risorse al controllo delle macchine) forse per questo si tratta di un episodio che ha fatto scuola...
Diciamo che la superficialità degli uomini ha permesso alla macchina di danneggiare degli altri uomini, errori nella compilazione di un programma informatico hanno permesso ad un apparecchio diagnostico di danneggiare invece di aiutare una persona.
Come se un errore di ortografia decidesse della vita di uno di noi.
Questa è la storia di un bug.


Il bug del Therac-25


Il Therac-25 era un macchinario per radioterapia costruito da una società italo-francese, preceduto dai modelli Therac-6 e 20 attorno alla metà degli anni 80. Il modello 25 era molto più compatto, più semplice da utilizzare e più versatile delle versioni precedenti.
La radioterapia ha l'obiettivo di colpire con dei fasci sottilissimi di radiazioni una zona del corpo umano che sia sede di tumore con lo scopo di distruggere il più possibile la massa tumorale.
Naturalmente, vista la potenza e la pericolosità delle radiazioni, è importante, per quanto possibile, concentrare al massimo il fascio solo nella zona da trattare, cercare di schermare le zone adiacenti che possono rischiare di essere danneggiate e limitare nel tempo il più possibile l'esposizione ai raggi.

Il Therac in particolare offriva l'opportunità di utilizzare sia i raggi X che un fascio di elettroni. I raggi X servivano a colpire i tessuti più profondi mentre gli elettroni colpivano quelli più superficiali, era una comodità, un modo per adattare la terapia alle varie situazioni e per preservare il più possibile dal danno i tessuti sani.

Il passaggio da una modalità all'altra si svolgeva con un meccanismo elettronico (comandato manualmente da un operatore) che trasformava il fascio di elettroni in raggi X cambiando anche (di tanto) l'energia che veniva irradiata sul corpo del paziente da trattare.
La modalità ad elettroni prevedeva una bassa potenza, quella a raggi X un'alta potenza che veniva "diluita" da particolari diffusori.
Furono installati cinque macchinari negli Stati Uniti e sei in Canada.

Avvennero degli incidenti molto gravi.
Al momento di utilizzare il fascio a raggi X alcuni pazienti ebbero dei malesseri.
Accusarono un fastidio immediato, riferirono una sensazione simile ad una forte scarica elettrica, alcuni si alzarono dal lettino sul quale erano sdraiati per il dolore e la sopresa.
Quasi tutti si accorsero subito che qualcosa non andava. Sul punto di irradiazione la pelle era ustionata e dolorante, una decina di pazienti erano in condizioni critiche.
Dopo pochi giorni alcune delle persone trattate accusarono un'intossicazione da radiazioni (uno stato di malessere e spossatezza importante, nausea, vomito, febbre, astenia) alcuni presentavano gravi lesioni cutanee e tre di loro morirono.
Una paziente racconta che appena finita l'irradiazione urlò al tecnico di radiologia: "Mi avete bruciata!" lui entrando nella stanza le rispose che non era possibile e la toccò sulla zona trattata, si accorse che era bollente.
Il macchinario, in caso di errore (come quello che avvenne) prevedeva una spia con la scritta "malfunction" seguita da un numero, ma non vi era nemmeno un manuale con l'elenco degli errori o che collegasse il numero ad un preciso problema. Avvenne così che gli operatori, non ritenendolo un problema importante premessero un tasto che faceva ripartire il macchinario. In un caso in Ontario uno degli operatori riferì che il macchinario subito dopo aver iniziato la procedura mostrò il segnale NO DOSE come se avesse smesso di irradiare, seguito dalla scritta TREATMENT PAUSE.

Raccontò poi che nei precedenti modelli di Therac questo succedeva spesso e bastava far ripartire la macchina per risolvere il problema.
Così fece, dopo qualche minuto fece ripartire la macchina ma questa riportò di nuovo la scritta NO DOSE.
Ci riprovò per quattro volte. Alla fine chiamò un tecnico che non rilevò nulla di anomalo. Ma il macchinario non "ripartiva" più.
La paziente, nel pomeriggio, accusò dolori, senso di bruciore e malessere. Si rivolse all'ospedale che l'aveva trattata e si accorse che assieme a lei vi erano altri pazienti con la stessa sintomatologia.
Dopo tre giorni la macchina fu messa fuori servizio.


La notizia si sparse ed anche gli altri centri che avevano il Therac installato riferivano gli stessi problemi. Anche negli altri ospedali i macchinari furono spenti.
Con procedura di urgenza furono avvisate le unità di rischio che si occupano di incidenti sanitari. Gli operatori non si spiegavano l'accaduto: si pensò subito naturalmente ad un malfunzionamento della macchina e così iniziò un'inchiesta.
Si scoprì che fu azionato diverse volte il fascio a raggi X senza utilizzare il diffusore che avrebbe dovuto diminuire la potenza del fascio di elettroni. Succedeva così che sul corpo del paziente arrivava un fascio ad altissima potenza, fino a 100 volte quella normale e prevista. Quello che era accaduto era incredibile.

Si pensi a qualche numero: in una normale dose di radiazioni a scopo terapeutico si emettono circa 200 rad (il rad è l'unità di misura della dose di radiazioni assorbita), una dose di 1˙000 rad che colpisse l'intero corpo può essere fatale dato che è stato calcolato che una dose di 500 rad in tutto il corpo ucciderebbe il 50% delle persone esposte, nel caso del Therac furono emesse in una delle vittime una o due dosi da 15˙000-20˙000 rad!. Le prime segnalazioni di problemi legati alle sedute di terapia furono sottovalutate. In un caso l'arrossamento della cute fu interpretato come normale conseguenza dell'irradiazione e la paziente fu invitata a continuare le sedute con il macchinario. Un'altra paziente perse l'uso di un braccio e soffrì di intensi dolori ma anche questo (un medico inviò una relazione alla casa costruttrice) fu sottovalutato: l'industria produttrice avvisò che avrebbe provveduto ad un controllo.
Uno dei pazienti colpiti si spense dopo meno di un mese dall'incidente, ufficialmente per il suo cancro ma l'autopsia scoprì che erano tante le lesioni subìte, che la morte era stata accelerata (molto dolorosamente) da quello che era successo. Le sue ossa del bacino erano praticamente state distrutte dalle radiazioni.

L'inchiesta stabilì che non esisteva nessun sistema di controllo, nessuna spia, nessun blocco automatico che permettesse all'operatore di capire il tipo di errore e che bloccasse la macchina immediatamente.
Nel corso delle indagini fu scoperto che alcuni degli errori di programmazione presenti in questo modello erano presenti anche nei modelli precedenti utilizzati in altri ospedali ed in alcuni casi ancora in funzione.
Gli operatori non si spiegavano sul momento il problema (tutti i dispositivi medici di una certa importanza hanno dei dispositivi di sicurezza automatici, se vi è un errore serio il macchinario si blocca automaticamente). Fu controllato allora il software che controllava tutte le funzioni del macchinario. Si scoprì qualcosa di drammaticamente incredibile.

Il programma era scritto male. Tutto era dovuto ad uno stupido errore di programmazione. Il linguaggio utilizzato era l'Assembly, furono riscontrati diversi errori di sviluppo del programma ma l'errore fatale fu uno: la macchina non era capace di svolgere nessuna operazione di controllo o test automatico.
In pratica non esisteva nessuno strumento che bloccasse un errore o un problema del macchinario. Un bug.
Si cercò allora il programmatore che compilò il software e... sorpresa... non esisteva. Nonostante le ricerche infatti, nessuno mai riuscì ad identificare o scoprire il reale autore del programma. Non solo si trattava di un'unica persona (in genere un programma molto complesso viene compilato da più persone, anche per ridurre gli errori con un controllo incrociato) ma il software definitivo non aveva una firma. Qualcuno sospettò che l'azienda costruttrice modificò semplicemente i programmi delle versioni precedenti senza servirsi di un progetto ben preciso da parte di esperti, usò in pratica la via più semplice ed economica... ma la più stupida.

Fu scoperto poi che i produttori (AECL) non avevano mai fatto controllare il programma prima di commercializzarlo e non avevano mai testato il macchinario se non al momento del montaggio in ospedale. La stessa azienda inoltre provvedeva a sostituire parti considerate malfunzionanti dopo la segnalazione di vari incidenti ma non fece mai un controllo generale né approfondito della macchina. In particolare il software fu considerato sicuro fino alla fine.
Ma più l'inchiesta andava a fondo più si svelava il disastro.

Esistevano anche errori di progettazione: comandi che non corrispondevano a quelli descritti dai manuali, macchinario che non rispondeva come previsto ed addirittura la possibilità che la macchina facesse delle operazioni impreviste quando si premevano dei tasti a caso.
Se si digitava troppo velocemente sulla tastiera della macchina il software non riusciva a rispondere correttamente arrivando pure a saltare tutte le procedure iniziali di sicurezza all'accensione dell'apparecchiatura.
Insomma un disastro.
Le vittime decedute accertate a causa del macchinario difettoso furono tre (le altre avevano subìto danni o erano decedute per altre cause), si parla di sei pazienti in totale danneggiati ma le richieste di risarcimento furono una decina.
L'inchiesta concluse che l'azienda produttrice aveva una colpa gravissima nell'incidente ed il processo fece risarcire le vittime decedute e viventi per i danni subìti.
Gli operatori non furono considerati colpevoli in quanto, rassicurati dal funzionamento elettronico dell'apparecchiatura, non avevano prestato attenzione ai segnali di allarme pur evidenti.


Una brutta storia che fu definita come "il peggior incidente radiologico degli ultimi 35 anni". Fu un caso storico, ancora oggi la lezione del Therac è ben presente nelle menti di molti progettisti software è stato un errore madornale ed imperdonabile.
Speriamo sia servito a qualcosa.
Dalla vicenda sono stati tratti dei romanzi, ed una commedia teatrale poi diventata film si è ispirata alla storia di una delle donne decedute in seguito all'incidente anche se adattata per l'occasione.
A chi interessasse approfondire la storia ed i particolari tecnici, c'è un PDF che racconta (in 49 pagine) gli avvenimenti (in lingua inglese) e fornisce molti dati che incuriosiranno chi si occupa di questo tipo di tecnologie. Un ampio riassunto sempre in inglese del lavoro della stessa autrice del precedente è rintracciabile qui.
Un pensiero va anche alle vittime di questa tragedia.


Alla prossima.

17 commenti:

  1. Sapevo la storia per sommi capi, ma è assolutamente agghiacciante. Grazie dottore.

    RispondiElimina
  2. Sembra incredibile. Davvero.
    La domanda sorge spontanea: al di là delle oggettive (e ciclopiche) responsabilità del produttore, non esistono delle normative e delle procedure di approvazione e valutazione di questo tipo di macchinari? Tipo quelle in uso per l'adozione dei farmaci, per intenderci?

    RispondiElimina
  3. "il peggior incidente radiologico degli ultimi 35 anni"

    sarei proprio curioso di sapere cosa sia successo 35 anni fa...

    ad ogni modo ammettilo: questo articolo era un pretesto per dire che cose così accadono solo una volta ogni taaaaaaaaaaaanto! E quindi questi macchinari sono da considerare sicuri?

    alla prossima!

    RispondiElimina
  4. concordo con brain, non c'è (o, forse, non c'era) un controllo qualità?
    diamine, i macchinari diagnostici di medicina di laboratorio sono controllati giornalmente, e quelli per la terapia non se li filava nessuno?

    RispondiElimina
  5. non esistono delle normative e delle procedure di approvazione e valutazione di questo tipo di macchinari

    La valutazione dei macchinari è in genere affidata alle stesse aziende che, all'atto della partecipazione ad una gara di appalto ad esempio, devono fornire tutte le certificazioni necessarie. Esiste poi una certificazione "indipendente" che ormai è abituale ed è affidata ai vari organismi come il TUV.
    Con queste due certificazioni (la prima obbligatoria, la seconda facoltativa ma ormai routine, senza la quale non accetta nessuno la tua partecipazione agli appalti) la ditta può presentare il suo macchinario.
    Poi c'è un ultimo "test": al momento dell'eventuale fornitura del macchinario, prima dell'installazione c'è la certificazione dell'installatore (che è un uomo dell'azienda) che certifica che tutto sia in regola.

    Credo non sia comunque un problema di test quanto del fatto che (ora un po' di meno) ci si fosse fidati *troppo* di un software tanto che al momento delle segnalazioni hanno controllato e sostituito di tutto tranne il software...
    Penso ci sia un radioterapista "in sala", chissà se sa qualcosa di più...

    E quindi questi macchinari sono da considerare sicuri?

    Sono sicuri, questo posso dirlo perchè hanno una diffusione ed un uso enorme in tutto il mondo e l'incidente non è terribile per i numeri del dramma ma per la banalità dell'errore.
    Non so se conosci la storia dell'incidente aereo dell'Aeroflot 593 , ecco, lo paragono a quell'incidente, aerei ne cadono, ci mancherebbe, ma così...

    RispondiElimina
  6. Ogni tanto mi sento fortunato ad essere nato alla fine del ventesimo secolo...

    RispondiElimina
  7. Ma il TÜV, oltre a verificare che una azienda operi secondo certi criteri di qualità (e non so fino a che punto questi criteri di qualità siano obbligatori), si occupa anche di verificare che i dispositivi medici costruiti dall'azienda siano conformi alle direttive europee (e la conformità ad una direttiva europea è obbligatoria per una macchina che sia messa in funzione su suolo europeo), o no?
    Cioè, una macchina, per poter essere messa in funzione in Europa, deve sottostare ad una o più direttive CE. Il TÜV, si occupa di accerta che queste direttive siano verificate; una volta fatto ciò, comunica alla autorità competente per l'omologazione, i propri risultati: ed è l'autorità competente che ala fine rilascia l'omologazione , senza la quale una macchina non può essere commercializzata e messa in funzione su suolo europeo.

    Giusto? Oppure ho detto delle bischerate?

    RispondiElimina
  8. Giusto? Oppure ho detto delle bischerate?

    Giustissimo. Ma non bisogna rivolgersi obbligatoriamente al TUV. L'azienda ha bisogno di una omologazione, può farla "chiunque" (relativamente, chiunque sia autorizzato, naturalmente) ma oggi quasi tutti i dispositivi medici sono autorizzati dal TUV per la sua diffusione ed importanza, tanto da diventare praticamente un passaggio obbligato almeno per gli strumenti più delicati ed importanti. Per fare un esempio, un ecografo non è detto sia certificato dal TUV ma spesso da un'azienda di certificazione sconosciuta in Italia alla quale si è rivolta la ditta costruttrice.

    Però anche il TUV qualche "guaietto" l'ha combinato, anche nei mesi scorsi...con qualche vittima...

    RispondiElimina
  9. Ma non bisogna rivolgersi obbligatoriamente al TUV.
    Esatto, questo passaggio non lo avevo sottolineato (l'ho dato, per scontato)

    Però anche il TUV qualche "guaietto" l'ha combinato, anche nei mesi scorsi...con qualche vittima...

    Questo mi interessa. E parecchio: era il TÜV SÜD Italia o un'altra "filiale"?
    Si possono avere dati più precisi? Anche link in privato, se preferisci (sempre se puoi)

    RispondiElimina
  10. PS : piccola precisazione: il TÜV (o qualsiasi altro ente tecnico preposto) non rilascia nessuna omologazione. Gli enti preposti al rilascio dell'omologazione sono i ministeri competenti dei vari stati dell'Unione Europea.
    Se, ad esempio, la ditta Pinco Pallino, con sede in Spagna, vuole omologare un auto in Gran Bretagna, servendosi dei servizi del TÜV della Germania, lo può fare tranquillamente.
    Prima contatta il TÜV, al quale chiede di verificare che la propria auto rispetti le varie direttive UE pertinenti, se tutto va bene il TÜV contatta il VCA (praticamente il ministero dei trasporti britannico) al quale chiede, previa consegna di documentazione attestante che l'auto è conforme ai requisiti richiesti, di rilasciare l'omologazione.
    Il VCA, controlla la documentazione e se la documentazione è corretta, rilascia l'omologazione.

    Con l'omologazione, la ditta Pinco Pallino, può vendere le proprie auto in tutta la UE.

    RispondiElimina
  11. io sono di parte, ma i programmatori/spacciatori di software che non testano massicciamente li appenderei per i testicoli ad un alto pennone, o semplicemente li cospargerei di pece e li ricoprirei di piume, fossero anche colpevoli di non aver testato l'interfaccia di un forum o il layout di un sito. d'altra parte io darei fuoco ad ogni ditta che non fornisca un adeguato manuale tecnico ai suoi prodotti, perchè sono intollerante per certe cose.
    ma se posso dire la mia, anche l'utente che quando qualcosa non funziona spegne e riaccende per forzare il blocco (se non ho capito male è questo che il macchinario ha fatto ad un certo punto con il "no dose error"), è da fustigare per manifesta incompetenza nell'uso del proprio cervello. se il timer per il mio esplosivo per demolizioni conta alla rovescia alternando la sequenza di fibonacci ai numeri primi con un numero dispari di cifre, non spengo e riaccendo per poi piazzare la carica, glielo ficco in gola a chi me lo ha venduto.
    va bene fidarsi della ditta che ti ha venduto il macchinario, ma quando le cose (vendita, installazione e assistenza) vengono fatte alla cazzo di cane si nota.

    RispondiElimina
  12. va bene fidarsi della ditta che ti ha venduto il macchinario

    E' vero. Però i tecnici sono stati tratti in inganno dal fatto che nella precedente versione della macchina bastava ripetere le procedure e riaccendere. Una bestialità, ma si sa che quando una cosa deve andare male...
    E' anche abbastanza comune, uno sbaglia e gli altri sbagliano come lui, l'ho visto succedere diverse volte, come un black out del cervello contagioso.

    @ yos: ti ho risposto in mp nel forum di Crono, non sapevo come rintracciare un tuo contatto...
    ;)

    RispondiElimina
  13. Per la precisione, sembra che il problema fosse teoricamente presente in ogni precedente versione del macchinario. La differenza fondamentale stava nella presenza di blocchi hardware (pezzi di ferro che si spostavano e bloccavano tutto, per dirlo in modo rozzo) in caso di sospetti problemi. Tali blocchi furono rimossi, confidando nel software.

    RispondiElimina
  14. Non ero a conoscenza di questa cosa terribile, ma non mi stupisce affatto la superficialità di molte persone e mi angoscia molto che questi episodi avvengano anche in campo medico. Dove gli errori, spesso, costano vite umane.

    RispondiElimina
  15. anche l'utente che quando qualcosa non funziona spegne e riaccende per forzare il blocco (se non ho capito male è questo che il macchinario ha fatto ad un certo punto con il "no dose error"), è da fustigare per manifesta incompetenza nell'uso del proprio cervello

    questa purtroppo è la conseguenza dell'uso prolungato di Windows come sistema operativo, che addestra l'utente al riflesso condizionato di: c'è un problema = riavvia senza provare a capire cos'è.

    windows ha una marea di sistemi che interagiscono tra di loro un pò a caso con tante contromisure che più o meno lo fanno andare avanti barcollando quando qualcosina si incasina, fino a che i problemi si accumulano e si pianta qualcosa, a quel punto l'utente è impossibilitato a capire cosa non vada ed a risolverlo, e spesso anche il supporto tecnico piuttosto che perdere tempo a cercade di capire il problema addestra l'utente a riaccendere la macchina, che tanto è probabile che poi va bene abbastanza bene per un pò...

    usando sistemi operativi seri capita moolto più di rado che si incasini qualcosa, ma a quel punto DEVI capire cosa è che non va e aggiustarlo, perchè al 99% è un problema vero e riavviando si ripresenta sempre uguale.

    RispondiElimina
    Risposte
    1. Decisamente no, nel senso che il fenomeno è accaduto ben prima della venuta di Windows. Semplicemente è un atteggiamento di accondiscendenza (e diciamo pure di omertà) dell'essere umano in società, che per non avere problemi non li solleva.
      Succede in ogni posto di lavoro, ogni giorno e per qualsiasi cazzata. Invece di dire "vaffanculo io non riavvio proprio un cazzo, scrivo due righe alla direzione e tiro su un polverone, non mi prendo la responsabilità", si limitano a recepire il messaggio da chi prima di loro ha imparato a fare una cosa sbagliata e gliela trasmette.
      Conseguenze? Gravissime direi. Perché se qualche radiologo avesse fatto notare che la macchina è molto, molto difettosa, probabilmente sarebbe stata contattata l'azienda produttrice, o esperti esterni. Basta aver voglia di scassare le balle, gli organi competenti ci sono su molti livelli e almeno un livello, di solito, ti sta ascoltare. Senza contare che puoi scrivere al giornale locale, che tanto si sa che la notizia fa più scalpore delle beghe interne a un reparto.

      Tutto questo senza giustificare la fabbrica, popolata da dei criminali senza precedenti a quanto pare.

      Elimina
    2. Semplicemente è un atteggiamento di accondiscendenza (e diciamo pure di omertà) dell'essere umano in società, che per non avere problemi non li solleva

      Insomma...diciamo che per non sollevare un problema così grave (se ti accorgi del problema e dell sua gravità, naturalmente) devi essere abbastanza inetto e superficiale e questo può accadere ad una persona, non ad una serie di persone. A me sembra che nel caso in oggetto si sia trattato semplicemente di scarsa conoscenza del mezzo informatico (siamo negli anni '80), cosa che oggi accadrebbe molto più difficilmente. Considera ad esempio che negli ospedali oggi, non solo devi segnalare eventuali anomalie o errori ma anche i "quasi errori", quei fatti cioè che senza conseguenze particolari, non sono andati come dovevano andare.
      Un esempio: tempo fa, durante l'utilizzo di un bisturi elettrico (sicuro ed affidabile, in uso da anni senza problemi), si notò che il bisturi funzionava normalmente ma non emetteva un suono (una sorta di "bip" prolungato) che segnalava il suo essere "acceso". Nonostante questa anomalia non condizionasse il funzionamento o l'uso dello strumento (e non fosse successo nulla oltre alla stranezza), lo strumento fu subito messo da parte e tutto segnalato a chi di dovere. Dopo due giorni arrivarono i tecnici che sistemarono il sistema, si trattava semplicemente di un circuito guasto che controllava solo il suono ma non il funzionamento dello strumento, nessun pericolo insomma.
      Questo per dire che qualsiasi "stranezza" DEVE essere segnalata, se poi non la segnalano una serie di persone consecutivamente è ovviamente una carenza imperdonabile...ma non è né normale né consentito.

      Elimina

I tuoi commenti sono benvenuti, ricorda però che discutere significa evitare le polemiche, usare toni civili ed educati, rispettare gli altri commentatori ed il proprietario del blog. Ti invito, prima di commentare, a leggere le regole del blog (qui) in modo da partecipare in maniera costruttiva ed utile. Ricorda inoltre che è proibito inserire link o indicare siti che non hanno base scientifica o consigliare cure mediche. Chi non rispetta queste semplici regole non potrà commentare.
I commenti che non rispettano le regole potranno essere cancellati, anche senza preavviso. Gli utenti che violassero ripetutamente le regole potranno essere esclusi definitivamente dal blog.

Grazie per la comprensione e...buona lettura!