1 / 35

Fehler in medizinischen Geräten

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

shaman
Download Presentation

Fehler in medizinischen Geräten

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

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

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

  7. 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

  8. 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

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

  10. 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

  11. Ü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

  12. 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

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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

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

  23. 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

  24. 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

  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“ („Class3“) Therac-25 Kuam, Rieger, Trübswetter

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

More Related