Therac25 Fehler in medizinischen Gerten Therac25 Co Guy

  • Slides: 35
Download presentation
Therac-25 Fehler in medizinischen Geräten Therac-25 & Co Guy Kuam Markus Rieger Christian Trübswetter

Therac-25 Fehler in medizinischen Geräten Therac-25 & Co Guy Kuam Markus Rieger Christian Trübswetter 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 1

Therac-25 Die Therac-Serie • Therac-25 war die 3. Baureihe von medizinischen Linearbeschleunigern, Betrieb ab

Therac-25 Die Therac-Serie • Therac-25 war die 3. Baureihe von medizinischen Linearbeschleunigern, Betrieb ab 1983 – Strahlentherapie bei Krebspatienten • Vorgänger: Therac-6, Therac-20 – elektro-mechanische Geräte – Einstellungen direkt am Gerät – mechanische Verriegelung („Hardware Interlocks“) als Schutzvorrichtung • Hersteller: AECL Medical (Atomic Energie of Canada Limited), staatlich, heute privat • Elf Geräte in USA und Canada 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 2

Therac-25 Grundlegende Funktionsweise • Therac-25 Dual Mode: – Röntgen- und Elektronenstrahlung • Bei Geweben

Therac-25 Grundlegende Funktionsweise • Therac-25 Dual Mode: – Röntgen- und Elektronenstrahlung • Bei Geweben an der Oberfläche: Elektronenmodus • Bei tieferen Geweben: Röntgenmodus Bündelung der Energie – Ablenkmagneten und verschiedene Filter 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 3

Therac-25 Konflikt: So viel Strahlung wie nötig, so wenig wie möglich !! • Unterschied

Therac-25 Konflikt: So viel Strahlung wie nötig, so wenig wie möglich !! • Unterschied Röntgenmodus – Elektronenmodus: – Bei Röntgenmodus: Platte zwischen Patient und Beschleuniger • dadurch wird Energie absorbiert und fokussiert (punktuelle Bestrahlung) • deutlich mehr Ausgangsenergie nötig (vielfaches) Problem, wenn Platte bei Röntgenmodus an falscher Stelle 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 4

Therac-25 04. 12. 2002 Der Behandlungsraum Therac-25 Kuam, Rieger, Trübswetter 5

Therac-25 04. 12. 2002 Der Behandlungsraum Therac-25 Kuam, Rieger, Trübswetter 5

Therac-25 04. 12. 2002 Drehteller Therac-25 Kuam, Rieger, Trübswetter 6

Therac-25 04. 12. 2002 Drehteller Therac-25 Kuam, Rieger, Trübswetter 6

Therac-25 Drehtellerpositionierung • Richtige Position entscheidend – Bei Röntgenposition und Elektronenstrahlung: Dosis zu niedrig

Therac-25 Drehtellerpositionierung • Richtige Position entscheidend – Bei Röntgenposition und Elektronenstrahlung: Dosis zu niedrig – Bei Elektronenstrahlposition Und Röntgenstrahlung: Überdosis • Computergesteuerte Drehtellerposition – Computer kontrolliert Drehung – Drei Sensorendaten aufgezeichnet – Software überprüft die Werte und vergleicht sie Dadurch Verriegelungen überflüssig 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 7

Therac-25 Bedienung des Gerätes • Typischer Ablauf einer Behandlung – – – – Behandlungsraum

Therac-25 Bedienung des Gerätes • Typischer Ablauf einer Behandlung – – – – Behandlungsraum betreten Patienten auf dem Behandlungstisch positionieren Energie einstellen, Drehteller positionieren, Platten, Filter einfügen, Magneten einstellen Behandlungsraum verlassen Patientendaten eingeben, nochmals Therac-25 Einstellungen eingeben Übereinstimmung überprüfen: „VERIFIED“ Behandlung beginnen 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 8

Therac-25 04. 12. 2002 User Interface Therac-25 Kuam, Rieger, Trübswetter 9

Therac-25 04. 12. 2002 User Interface Therac-25 Kuam, Rieger, Trübswetter 9

Therac-25 Benutzerfreundlichkeit verbessern • Pro Operator bis zu 30 Patienten pro Tag • Datensatz

Therac-25 Benutzerfreundlichkeit verbessern • Pro Operator bis zu 30 Patienten pro Tag • Datensatz zweimal eingeben dauerte zu lange Lösung: neues Feature Durch Eingeben von „Enter“ existierenden Eintrag übernehmen 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 10

Therac-25 Überwachung des Patienten • Kommunikation des Operators kommuniziert mit dem Patienten per Videoübertragung

Therac-25 Überwachung des Patienten • Kommunikation des Operators kommuniziert mit dem Patienten per Videoübertragung • Bei Unstimmigkeiten Unterbrechung: – „Treatment suspend“: Behandlung von vorne beginnen – „Treatment pause“: mit „p“ geht‘s weiter – Wiederaufnahme der Behandlung nach Unterbrechung bis zu fünf mal 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 11

Therac-25 Die Fehlermeldungen • Systementwickler legte keinen Wert auf Implementierung von Fehlermeldungen • Sie

Therac-25 Die Fehlermeldungen • Systementwickler legte keinen Wert auf Implementierung von Fehlermeldungen • Sie waren – Kryptisch („MALFUNCTION 54“) – Nicht dokumentiert – Traten ständig auf (bis zu 50 Mal pro Tag) • Fehlermeldungen alltäglich, aber nicht wichtig, denn – Maschinenservice macht Fehlerbehebung – Verhinderung einer Überbestrahlung durch verschiedenste andere eingebaute Sicherheitsmechanismen 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 12

Therac-25 Das Unglück Sechsmal (1985 – 1987) trat eine massive Überdosierung auf 1987 wurde

Therac-25 Das Unglück Sechsmal (1985 – 1987) trat eine massive Überdosierung auf 1987 wurde Therac-25 zurückgerufen 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 13

Therac-25 1. Fall: Marietta, Georgia, Juni 1985 • Behandlung einer 61 -Jährigen Frau •

Therac-25 1. Fall: Marietta, Georgia, Juni 1985 • Behandlung einer 61 -Jährigen Frau • Bestrahlung der Lymphknoten im Elektronenmodus • Überdosis (15 000 rad statt 200 rad): – Brust entfernt – Lähmung von Schulter und Arm • Fall nicht untersucht • AECL schließt Fehler ihrerseits aus 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 14

Therac-25 2. Fall: Hamilton, Ontario, Juli 1985 • • • Patient mit Gebärmutterhalskrebs Dosis

Therac-25 2. Fall: Hamilton, Ontario, Juli 1985 • • • Patient mit Gebärmutterhalskrebs Dosis von 200 rad Maschinenstop mit „HTILT“-Fehler Konsolenanzeige „NO DOSE“ Fortsetzten der Behandlung – Fortsetzung nach einem Fehler war die Regel • Gleicher Fehler • Fortsetzung noch viermal wiederholt, dann automatischer Reset • Patient stirbt fünf Monate später • Geschätzte Überdosis: 15 000 rad 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 15

Therac-25 3. Fall: Yakima, Washington, Dez. 1985 • AECL bessert Fehler aus – Defekter

Therac-25 3. Fall: Yakima, Washington, Dez. 1985 • AECL bessert Fehler aus – Defekter Microswitch bewirkt 1 -Bit-Fehler – Switch kann falsche Positionsdaten an Therac-25 liefern – Zusätzliche Kontrollsoftware für Microswitch • Drei Monate später: – – Patient erleidet Verbrennung der Hüfte AECL gesteht Fehler nicht ein Offiziell: „Cause unknown“ Patient lebt heute mit steifer Hüfte 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 16

Therac-25 4. Fall: Texas, März 1986 (I) • Patient mit Tumor im Rücken, 180

Therac-25 4. Fall: Texas, März 1986 (I) • Patient mit Tumor im Rücken, 180 rad Elektronentherapie • Operatorin gibt versehentlich „x“ für „X-Ray“ ein – Mit zurück und Eintrag „x“ in „e“ für geändert – Kein anderer Parameter geändert • Behandlungsunterbrechung mit „MALFUCTION 54“ – Undokumentiert, Dosis zu niedrig oder zu hoch • Gerät stoppt mit „UNDERDOSE“ • Behandlung fortgesetzt, stoppt mit gleichem Fehler • Patient ruft um Hilfe 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 17

Therac-25 4. Fall: Texas, März 1986 (II) • Nach der ersten Dosis: – Patient

Therac-25 4. Fall: Texas, März 1986 (II) • Nach der ersten Dosis: – Patient spürt einen „Schock“ im Rücken – ruft Operatorin • Videodisplay ausgesteckt und Audiosystem zur Zeit kaputt • Patient verlässt Behandlungstisch, genau als die zweite Dosis kommt • Tod nach fünf Monaten wegen Komplikationen aufgrund Überdosis • Geschätzte Überdosis ca. 20 000 rad 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 18

Therac-25 5. Fall: Texas, April 1986 • Patient mit Hautkrebs am Gesicht, 180 rad,

Therac-25 5. Fall: Texas, April 1986 • Patient mit Hautkrebs am Gesicht, 180 rad, Elektron • Gleiche Operatorin, gleicher Fehler • Operatorin gibt Daten ein und bemerkt, „x“ statt „e“ – Wieder „ “ und „Enter. . . “ – Andere Parameter gleich • Behandlung startet, hält mit „MALFUNCTION 54“ an • Operatorin hört Patienten schreien (Audio repariert) • Tod 20 Tage später wegen Überbestrahlung des rechten Schläfenlappen • Geschätzte Überdosis: 20 000 rad 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 19

Therac-25 Untersuchung der Texas-Fälle • Operatorin des Krankenhauses versucht, zusammen mit einem Physiker des

Therac-25 Untersuchung der Texas-Fälle • Operatorin des Krankenhauses versucht, zusammen mit einem Physiker des Krankenhauses, das Problem zu rekonstruieren – Ergebnis: schnelle Eingabegeschwindigkeit Ursache für „MALFUNCTION 54“ • Rekonstruktion des Fehlers auch an Therac-20 – Sicherheit nicht beeinträchtigt wegen „Hardware Interlocks“ • Lösung: und werden auf den Keyboards entfernt 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 20

Therac-25 Analyse des Systems • Betriebssystem: Eigenbau-Echtzeitsystem auf 32 K PDP 11/23 • Präemptives

Therac-25 Analyse des Systems • Betriebssystem: Eigenbau-Echtzeitsystem auf 32 K PDP 11/23 • Präemptives Scheduling von kritischen und nichtkritischen tasks – Serielle Ausführung der Tasks, gewichtet nach ihrer Criticality – Keine Synchronisationsoperationen (außer „test&set“) • Vier Hauptkomponenten der Software – – Gespeicherte Daten (Maschinensetup und Patientenbehandlungsdaten) Interrupt Handler Kritische Tasks Nicht kritische Tasks • Keine Dokumentation der Software • Keine Softwaretests (2700 Stunden in Betrieb) • Risk Analysis ohne Software 1983 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 21

Therac-25 04. 12. 2002 Texas Bug Therac-25 Kuam, Rieger, Trübswetter 22

Therac-25 04. 12. 2002 Texas Bug Therac-25 Kuam, Rieger, Trübswetter 22

Therac-25 Texas Bug: Code Magnet: Datent: Set bending magnet flag begin repeat calculate table

Therac-25 Texas Bug: Code Magnet: Datent: Set bending magnet flag begin repeat calculate table index Set next magnet repeat call Ptime fetch parameter if mode/energy has changed, then exit output parameter until all magnets are set point to next parameter return until all parameters set call Magnet Ptime: if mode/energy changed then return repeat end if bending magnet flag is set then if data entry is complete then set Tphase to 3 if editing taking place then if data entry is not complete then if mode/energy has changed then exit if reset command entered then set Tphase to 0 until hysteresis delay has expired Clear bending magnet flag return 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 23

Therac-25 6. Fall: Yakima, Washington Jan, 1987 • Vorfall – Brust eines Patienten verbrannt

Therac-25 6. Fall: Yakima, Washington Jan, 1987 • Vorfall – Brust eines Patienten verbrannt – Tod im April – Vermutlich Hamilton Fehler, der gefixt sein sollte • Erkenntnis: – Oft kein einzelner Fehler, Zusammenhang zwischen technischen und menschlichen Fehlern – Zu starkes Vertrauen in Software • Beitragende Faktoren: – Keine mechanische Verriegelung – Unrealistische Risikobewertung 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 24

Therac-25 Washington Bug (I) • Fehler nur unter ganz bestimmten Vorraussetzungen • Einstellvorgang –

Therac-25 Washington Bug (I) • Fehler nur unter ganz bestimmten Vorraussetzungen • Einstellvorgang – – – – Eingeben der Parameter an Konsole Meldung auf Konsole: „UNVERIFIED“ Anschließend Feineinstellung direkt am Gerät Konsolenmeldung: „VERIFIED“ (aller relevanten Parameter) Operator drückt „SET“: Gerät bringt sich in gewünschte Position Eingabe verifizieren Änderung der Kontrollvariable „Tphase“ „SET-UP-TEST“-Routine aufrufen Bei jedem Aufruf: setzen einer „shared variable“ („Class 3“) 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 25

Therac-25 Washington Bug (II) • Behandlung einer Inkonsistenz – Wenn „Class 3“ ungleich 0:

Therac-25 Washington Bug (II) • Behandlung einer Inkonsistenz – Wenn „Class 3“ ungleich 0: • Vorliegen einer Inkonsistenz – Wenn „Class 3“ gleich 0: • alle relevanten Parameter konsistent • Strahl nicht unterbrochen wird – Nachdem „Class 3“ gesetzt, Überprüfung einer weiteren „Shared variable“ („F$mal“) • signalisiert Fehlfunktionen im System – Falls „F$mal“ ungleich 0: • Fehlfunktion „SET-UP-TEST“ wird erneut aufgerufen 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 26

Therac-25 Washington Bug (III) • Rekonstruktion des Fehlers – Während der Einstellung des Geräts:

Therac-25 Washington Bug (III) • Rekonstruktion des Fehlers – Während der Einstellung des Geräts: • „SET-UP-TEST“ mehrere 100 Mal durchlaufen • ruft sich selber bei jeder Änderung erneut auf – Bei jedem Durchlauf von „SET-UP-TEST“ Inkrementierung der Variablen „Class 3“ – Größe von „Class 3“ Variable: ist 1 Byte groß Overflow bei 256: „Class 3“ wird 0 trotz Bestehen des Fehlers bei jedem 256. Aufruf: Fehler nicht entdeckt – Wenn der Operator genau zu diesem Zeitpunkt „SET“ drückt, kommt es zur Überdosis, da Gerät falsche Position hat • Lösung: Anstatt Inkrementeller Variable Bool-Variable 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 27

Therac-25 Fazit (I) • Verhinderung rechtzeitiger Diagnose durch Gleichgültigkeit, Selbstzufriedenheit • Sinn von Fehlermeldungen

Therac-25 Fazit (I) • Verhinderung rechtzeitiger Diagnose durch Gleichgültigkeit, Selbstzufriedenheit • Sinn von Fehlermeldungen muss klar sein • Grundursache beseitigen – Echtes Problem nicht durch Fix des vermuteten Bugs zu beheben • Hardware-Überwachung in der Regel sicherer als Softwareüberwachung (aber kostenintensiver) • Größere Sicherheit bei Verwendung eines kommerziellen Betriebssystems 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 28

Therac-25 Fazit (II) • Risikobewertung – Therac-25 hatte Risk analysis (aber nicht die Software)

Therac-25 Fazit (II) • Risikobewertung – Therac-25 hatte Risk analysis (aber nicht die Software) • Angemessene Untersuchung und Folgeuntersuchung • Software Engineering Praktiken – Kritische Software muss einfach und testbar sein • Schwer einschätzbare Probleme bei Wiederverwendung von bestehenden Softwareteilen • Sicheres vs. benutzerfreundliches Benutzerinterface 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 29

Therac-25 Konsequenzen • Erster großer Fehler in einem radiologischen Gerät • Center for Devices

Therac-25 Konsequenzen • Erster großer Fehler in einem radiologischen Gerät • Center for Devices and Radiological Health (CDRH) eingeschaltet • Softwareprozesse vieler Hersteller nicht ausgereift Fix sehr schwierig • Reformen bei FDA/CDRH – Stärkerer Fokus auf Software(prozesse) – Höhere verbindliche „Reporting Requirements“ 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 30

Therac-25 Sonstige Fehler (I) • 19. September 1989 – Überlauf einer 2 -Byte Integervariablen

Therac-25 Sonstige Fehler (I) • 19. September 1989 – Überlauf einer 2 -Byte Integervariablen in einem Krankenhaus in Washington DC – den Absturz eines Notfallgerätes – Ersatz durch manuelle Behandlung • Frau dreht durch – Mord an ihrer Tochter – versuchte sich selbst und ihren Sohn umzubringen , – Falsche Diagnose aufgrund eines Softwarefehlers: unheilbare Krankheit 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 31

Therac-25 Sonstige Fehler (II) • Ein System für Überwachung mehrere Patienten – Verwechslung der

Therac-25 Sonstige Fehler (II) • Ein System für Überwachung mehrere Patienten – Verwechslung der Patienten – Sofortiger Rückruf • Absturz eines programmierbaren Herzschrittmachers während der Justierung • Vorrichtung für das Zuführen des Insulins – Fehler in der Regelungssoftware 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 32

Therac-25 London Ambulance Service, 1992 (I) • Umstelleung des London Ambulance Service auf ein

Therac-25 London Ambulance Service, 1992 (I) • Umstelleung des London Ambulance Service auf ein Computer Aided Despatch (CAD) System – Empfang der Notrufe für Krankenwagen – Verteilung der Krankenwagen zu den Einsatzorten – Automatisierung des Verwaltungsprozesses • CAD Software – – Nicht ausgereift Nicht komplett implementiert Komponenten nicht richtig abgestimmt Nicht völlig getestet 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 33

Therac-25 London Ambulance Service, 1992 (II) • Probleme mit dem Datenaustausch des Systems •

Therac-25 London Ambulance Service, 1992 (II) • Probleme mit dem Datenaustausch des Systems • Personal nicht ausreichend ausgebildet – Krankenwagenfahrer: ungewohnte und nicht vollständig funktionierende Kommunikation per Spracheingabe – Verwaltungspersonal in neuen Positionen, komplett ohne Papierarbeit • Das System wurde drei Tage lang benutzt – Am 26. 10, 27. 10 und am 4. 11. 1992 • Stilllegung nach massiven öffentlicher Beschwerden und großer Aufmerksamkeit der Medien • Kosten: 11 000€ 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 34

Therac-25 Das war‘s Danke für‘s zuhören Fragen? Andere Fehler in medizinischen Geräten? Markus zeigt

Therac-25 Das war‘s Danke für‘s zuhören Fragen? Andere Fehler in medizinischen Geräten? Markus zeigt Web-Site 04. 12. 2002 Therac-25 Kuam, Rieger, Trübswetter 35