350 likes | 597 Views
Fehler in medizinischen Geräten. Therac-25 & Co Guy Kuam Markus Rieger Christian Trübswetter. Die Therac-Serie. Therac-25 war die 3. Baureihe von medizinischen Linearbeschleunigern, Betrieb ab 1983 Strahlentherapie bei Krebspatienten Vorgänger: Therac-6, Therac-20
E N D
Fehler in medizinischen Geräten Therac-25 & Co Guy Kuam Markus Rieger Christian Trübswetter Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
Der Behandlungsraum Therac-25 Kuam, Rieger, Trübswetter
Drehteller Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
User Interface Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
Ü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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
Das Unglück Sechsmal (1985 –1987) trat eine massive Überdosierung auf 1987 wurde Therac-25 zurückgerufen Therac-25 Kuam, Rieger, Trübswetter
1. Fall: Marietta, Georgia, Juni 1985 • Behandlung einer 61-Jährigen Frau • Bestrahlung der Lymphknoten im Elektronenmodus • Überdosis (15 000rad statt 200rad): • Brust entfernt • Lähmung von Schulter und Arm • Fall nicht untersucht • AECL schließt Fehler ihrerseits aus Therac-25 Kuam, Rieger, Trübswetter
2. Fall: Hamilton, Ontario, Juli 1985 • Patient mit Gebärmutterhalskrebs • Dosis von 200rad • 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 000rad Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
4. Fall: Texas, März 1986 (I) • Patient mit Tumor im Rücken, 180rad 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 Therac-25 Kuam, Rieger, Trübswetter
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 000rad Therac-25 Kuam, Rieger, Trübswetter
5. Fall: Texas, April 1986 • Patient mit Hautkrebs am Gesicht, 180rad, 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 desrechten Schläfenlappen • Geschätzte Überdosis: 20 000rad Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
Analyse des Systems • Betriebssystem: Eigenbau-Echtzeitsystem auf 32K 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 Therac-25 Kuam, Rieger, Trübswetter
Texas Bug Therac-25 Kuam, Rieger, Trübswetter
Texas Bug: Code Magnet: Set bending magnet flag repeat Set next magnet call Ptime if mode/energy has changed, then exit until all magnets are set return Ptime: repeat if bending magnet flag is set then if editing taking place then if mode/energy has changed then exit until hysteresis delay has expired Clear bending magnet flag return Datent: begin calculate table index repeat fetch parameter output parameter point to next parameter until all parameters set call Magnet if mode/energy changed then return end if data entry is complete then set Tphase to 3 if data entry is not complete then if reset command entered then set Tphase to 0 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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“ („Class3“) Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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“ Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 Therac-25 Kuam, Rieger, Trübswetter
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 000€ Therac-25 Kuam, Rieger, Trübswetter
Das war‘s Danke für‘s zuhören Fragen? Andere Fehler in medizinischen Geräten? Markus zeigt Web-Site Therac-25 Kuam, Rieger, Trübswetter