Therac -25 - Therac-25

Therac-25 byl počítačově řízený radiační terapie stroj vyrábí Atomic Energy of Canada Limited (AECL) v roce 1982 poté, co Therac-6 a Therac-20 jednotek (dřívější jednotky byly vyrobeny ve spolupráci s CGR z Francie ).

Byl zapojen do nejméně šesti nehod v letech 1985 až 1987, při nichž byli pacienti masivně předávkováni zářením . Kvůli souběžným programovacím chybám (známým také jako závodní podmínky) někdy dával svým pacientům dávky radiace, které byly stokrát vyšší než normálně, což mělo za následek smrt nebo vážné zranění. Tyto nehody zdůraznily nebezpečí softwarového řízení systémů kritických pro bezpečnost a staly se standardní případovou studií v oblasti zdravotní informatiky a softwarového inženýrství . Nadměrná důvěra techniků a nedostatek náležité péče při řešení hlášených softwarových chyb jsou navíc zdůrazňovány jako extrémní případ, kdy přílišná důvěra inženýrů v jejich počáteční práci a neschopnost uvěřit tvrzením koncových uživatelů způsobily drastické důsledky.

Design

Stroj nabízel dva režimy radiační terapie :

Jeho součástí byl také režim „polního světla“, který umožňoval správné umístění pacienta osvětlením ošetřované oblasti viditelným světlem.

Popis problému

Simulované uživatelské rozhraní Therac-25

Šest zdokumentovaných nehod se stalo, když byl silnoproudý elektronový paprsek generovaný v rentgenovém režimu dodán přímo pacientům. Mohly za to dvě softwarové chyby. Za prvé, když operátor před rychlou změnou na elektronový režim nesprávně zvolil rentgenový režim, což umožnilo nastavit elektronový paprsek pro rentgenový režim, aniž by byl na místě rentgenový cíl. Druhá chyba umožnila aktivaci elektronového paprsku v režimu světelného pole, během kterého nebyl aktivní žádný paprskový skener nebo nebyl na místě cíl.

Předchozí modely měly hardwarová blokování, aby se předešlo takovým chybám, ale Therac-25 je odstranil, v závislosti na tom, zda software kontroluje bezpečnost.

Vysokoproudý elektronový paprsek zasáhl pacienty přibližně 100násobkem zamýšlené dávky záření a v užší oblasti poskytl potenciálně smrtelnou dávku beta záření . Pacient Ray Cox tento pocit popsal jako „intenzivní elektrický šok“, který způsobil, že křičel a vyběhl z ošetřovny. O několik dní později se objevily radiační popáleniny a pacienti vykazovali příznaky radiační otravy ; ve třech případech zranění pacienti později zemřeli na předávkování.

Kořenové příčiny

Komise přisoudila primární příčinu spíše obecným špatným postupům při navrhování a vývoji softwaru, než jednotlivým specifickým chybám v kódování. Software byl zejména navržen tak, aby bylo realisticky nemožné jej otestovat čistým automatizovaným způsobem.

Výzkumníci, kteří vyšetřovali nehody, našli několik přispívajících příčin. Jednalo se o následující institucionální příčiny:

  • Společnost AECL nenechala nezávisle zkontrolovat softwarový kód a rozhodla se spoléhat na vlastní kód, včetně operačního systému.
  • AECL při posuzování, jak by stroj mohl dosahovat požadovaných výsledků a jaké režimy selhání existovaly, nezohlednil návrh softwaru, přičemž se zaměřil čistě na hardware a tvrdil, že software neobsahuje chyby.
  • Obsluha strojů byla personálem AECL ujištěna, že předávkování není možné, což je přimělo odmítnout Therac-25 jako potenciální příčinu mnoha incidentů.
  • AECL nikdy netestoval Therac-25 s kombinací softwaru a hardwaru, dokud nebyl sestaven v nemocnici.

Vědci také zjistili několik technických problémů:

  • Několik chybových zpráv pouze zobrazilo slovo „PORUCHA“ následované číslem od 1 do 64. Uživatelská příručka chybové kódy nevysvětlila a ani je neřešila, ani neposkytla žádné informace o tom, že by tyto chyby mohly představovat hrozbu pro bezpečnost pacientů.
  • Systém rozlišoval chyby, které zastavily stroj, vyžadující restart, a chyby, které stroj pouze pozastavily (což operátorům umožnilo pokračovat ve stejném nastavení pomocí stisknutí klávesy). Některé chyby, které ohrožovaly pacienta, však stroj pouze pozastavily a častý výskyt drobných chyb způsobil, že si operátoři zvykli na pravidelné vypínání stroje.
    • K jedné chybě došlo, když byla na terminálu VT-100, který ovládal počítač PDP-11, zadána určitá sekvence úhozů : pokud by obsluha stiskla „X“, aby (omylem) zvolila režim fotonu 25 MeV, pak použijte „kurzor nahoru“ upravte vstup na „E“ a (správně) vyberte režim 25 MeV Electron, poté „Enter“, vše do osmi sekund od prvního stisknutí klávesy, a to v rámci možností zkušeného uživatele stroje.
  • Konstrukce neměla žádná hardwarová blokování, která by zabránila tomu, aby elektronový paprsek fungoval ve svém vysokoenergetickém režimu bez cíle na místě.
  • Inženýr znovu použil software z Therac-6 a Therac-20, který používal hardwarová blokování, která maskovala jejich softwarové vady. Tyto hardwarové bezpečnosti nemohly žádným způsobem hlásit, že byly spuštěny, takže již existující chyby byly přehlédnuty.
  • Hardware neposkytoval softwaru žádný způsob, jak ověřit, zda senzory fungují správně. Systém polohování stolu byl první, který byl zapleten do selhání Therac-25; výrobce jej zrevidoval nadbytečnými přepínači, aby zkontroloval jejich provoz.
  • Software nastavil proměnnou příznaku jejím zvýšením, nikoli nastavením na pevnou nenulovou hodnotu. Občas došlo k aritmetickému přetečení , což způsobilo, že se vlajka vrátila na nulu a software obešel bezpečnostní kontroly.

Leveson poznamenává, že poučením z této události je nepředpokládat, že opakovaně používaný software je bezpečný: „Často se naivně předpokládá, že opětovné použití softwaru nebo používání komerčního softwaru na běžném trhu zvýší bezpečnost, protože software bude uplatněn Opětovné použití softwarových modulů nezaručuje bezpečnost v novém systému, do kterého jsou přeneseny ... "Tato slepá víra ve špatně pochopená paradigmata kódovaná softwarem je známá jako programování kultu nákladu . V reakci na incidenty, jako jsou ty související s Therac-25, byla vytvořena norma IEC 62304 , která zavádí standardy životního cyklu vývoje softwaru zdravotnických prostředků a specifické pokyny k používání softwaru neznámého původu .

Viz také

Poznámky

Další čtení