El Therac-25 era una máquina de radioterapia controlada por computadora producida por Atomic Energy of Canada Limited (AECL) en 1982 después de las unidades Therac-6 y Therac-20 (las unidades anteriores se habían producido en asociación con la CGR de Francia ).
Estuvo involucrado en al menos seis accidentes entre 1985 y 1987, en los que los pacientes recibieron sobredosis masivas de radiación . [1] : 425 Debido a errores de programación concurrentes (también conocidos como condiciones de carrera), a veces administraba a sus pacientes dosis de radiación que eran cientos de veces mayores de lo normal, lo que provocaba la muerte o lesiones graves. [2] Estos accidentes destacaron los peligros del control de software de sistemas críticos para la seguridad, y se han convertido en un caso de estudio estándar en informática de salud e ingeniería de software . Además, el exceso de confianza de los ingenieros [1] : 428y la falta de la debida diligencia para resolver los errores de software informados se destacan como un caso extremo en el que el exceso de confianza de los ingenieros en su trabajo inicial y el hecho de no creer en las afirmaciones de los usuarios finales causaron repercusiones drásticas.
Diseño
La máquina ofrecía dos modos de radioterapia : [3]
- Terapia directa con haz de electrones , en la que se escaneó un haz estrecho de baja corriente de electrones de alta energía (5 MeV a 25 MeV) sobre el área de tratamiento mediante imanes;
- Terapia de rayos X (o fotones) de megavoltios , que entregó un haz de rayos X de ancho fijo , producido al colisionar un haz estrecho de electrones de 25 MeV con un objetivo, luego pasando los rayos X emitidos a través de un filtro de aplanamiento y un colimador .
También incluía un modo de "luz de campo", que permitía que el paciente se posicionara correctamente al iluminar el área de tratamiento con luz visible.
Descripción del problema
Los seis accidentes documentados ocurrieron cuando el haz de electrones de alta corriente generado en modo de rayos X se entregó directamente a los pacientes. Dos fallas de software fueron las culpables. [3] Uno, cuando el operador seleccionó incorrectamente el modo de rayos X antes de cambiar rápidamente al modo de electrones, lo que permitió que el haz de electrones se configurara para el modo de rayos X sin que el objetivo de rayos X estuviera en su lugar. Una segunda falla permitió que el haz de electrones se activara durante el modo de luz de campo, durante el cual no había ningún escáner de haz activo ni ningún objetivo en su lugar.
Los modelos anteriores tenían enclavamientos de hardware para evitar tales fallas, pero el Therac-25 los había eliminado, dependiendo en cambio de las comprobaciones de seguridad del software.
El haz de electrones de alta corriente golpeó a los pacientes con aproximadamente 100 veces la dosis de radiación prevista y sobre un área más estrecha, administrando una dosis potencialmente letal de radiación beta . El paciente Ray Cox describió la sensación como "una intensa descarga eléctrica", lo que le hizo gritar y salir corriendo de la sala de tratamiento. [4] Varios días después, aparecieron quemaduras por radiación y los pacientes mostraron síntomas de intoxicación por radiación ; en tres casos, los pacientes heridos fallecieron posteriormente como consecuencia de la sobredosis. [5]
Causas fundamentales
Una comisión atribuyó la causa principal al diseño de software y las prácticas de desarrollo deficientes en general, en lugar de a errores de codificación específicos. En particular, el software se diseñó de modo que fuera realmente imposible probarlo de forma limpia y automatizada . [3] : 48 [se necesitan citas adicionales ]
Los investigadores que investigaron los accidentes encontraron varias causas contribuyentes. Estos incluyeron las siguientes causas institucionales:
- AECL no hizo que el código de software se revisara de forma independiente y optó por confiar en el código interno, incluido el sistema operativo.
- AECL no consideró el diseño del software durante su evaluación de cómo la máquina podría producir los resultados deseados y qué modos de falla existían, enfocándose exclusivamente en el hardware y afirmando que el software estaba libre de errores.
- El personal de AECL aseguró a los operadores de máquinas que las sobredosis eran imposibles, lo que los llevó a descartar al Therac-25 como la posible causa de muchos incidentes. [1] : 428
- AECL nunca había probado el Therac-25 con la combinación de software y hardware hasta que fue ensamblado en el hospital.
Los investigadores también encontraron varios problemas de ingeniería :
- Varios mensajes de error simplemente mostraban la palabra "MAL FUNCIONAMIENTO" seguida de un número del 1 al 64. El manual del usuario no explicaba ni abordaba los códigos de error, ni daba ninguna indicación de que estos errores pudieran representar una amenaza para la seguridad del paciente.
- El sistema distinguió entre errores que detuvieron la máquina, requiriendo un reinicio, y errores que simplemente pausaron la máquina (lo que permitió a los operadores continuar con la misma configuración presionando una tecla). Sin embargo, algunos errores que ponían en peligro al paciente simplemente detenían la máquina, y la frecuente aparición de errores menores provocaba que los operadores se acostumbraran a desconectar la máquina habitualmente.
- Ocurrió una falla cuando se ingresó una secuencia particular de pulsaciones de teclas en el terminal VT-100 que controlaba la computadora PDP-11 : si el operador presionaba "X" para seleccionar (erróneamente) el modo fotón de 25 MeV, entonces usa "cursor arriba" para editar la entrada a "E" para seleccionar (correctamente) el modo Electrón de 25 MeV, luego "Enter", todo dentro de los ocho segundos de la primera pulsación de tecla, dentro de la capacidad de un usuario experimentado de la máquina. [3]
- El diseño no tenía ningún enclavamiento de hardware para evitar que el haz de electrones funcionara en su modo de alta energía sin el objetivo en su lugar.
- El ingeniero había reutilizado software de Therac-6 y Therac-20, que usaba enclavamientos de hardware que enmascaraban sus defectos de software. Esos dispositivos de seguridad de hardware no tenían forma de informar que se habían activado, por lo que se pasaron por alto los errores preexistentes.
- El hardware no proporcionaba ninguna forma de que el software verificara que los sensores funcionaban correctamente. El sistema de posición de la mesa fue el primero en estar implicado en las fallas de Therac-25; el fabricante lo revisó con interruptores redundantes para verificar su funcionamiento.
- El software establece una variable de bandera incrementándola, en lugar de establecerla en un valor fijo distinto de cero. Ocasionalmente se producía un desbordamiento aritmético , lo que provocaba que la bandera volviera a cero y que el software pasara por alto las comprobaciones de seguridad.
Leveson señala que una lección que se puede extraer del incidente es no asumir que el software reutilizado es seguro: [6] "A menudo se hace una suposición ingenua de que la reutilización del software o el uso de software comercial estándar aumentará la seguridad porque el software se han ejercido extensamente. La reutilización de módulos de software no garantiza la seguridad en el nuevo sistema al que se transfieren ... " [3] Esta fe ciega en paradigmas codificados por software mal entendidos se conoce como programación de culto de carga . En respuesta a incidentes como los asociados con Therac-25, se creó el estándar IEC 62304 , que introduce estándares de ciclo de vida de desarrollo para software de dispositivos médicos y una guía específica sobre el uso de software de pedigrí desconocido . [7]
Ver también
- IEC 62304
- Radiación ionizante
- Lista de accidentes de radiación civiles
- Accidentes nucleares y radiológicos
- Protección de radiación
Notas
- ↑ a b c Baase, Sara (2008). Un regalo de fuego . Pearson Prentice Hall.
- ^ Leveson, Nancy G .; Turner, Clark S. (julio de 1993). "Una investigación de los accidentes de Therac-25" (PDF) . Computadora IEEE . 26 (7): 18–41. doi : 10.1109 / MC.1993.274940 . Archivado desde el original (PDF) el 28 de noviembre de 2004.
- ^ a b c d e Leveson, Nancy (1995). "Safeware: seguridad del sistema y computadoras. Apéndice A: Dispositivos médicos: Therac-25" (PDF) . Addison-Wesley.
- ^ Casey, Steven. Poner phasers en aturdimiento: diseño y error humano . Compañía Editorial del Egeo. págs. 11-16.
- ^ Rose, Barbara Wade. "Fatal Dose - Muertes por radiación vinculadas a errores informáticos AECL" . www.ccnr.org . Consultado el 14 de junio de 2016 .
- ^ Leveson, NG (noviembre de 2017). "El Therac-25: 30 años después" . Computadora . 50 (11): 8-11. doi : 10.1109 / MC.2017.4041349 . ISSN 1558-0814 .
- ^ Hall, Ken (1 de junio de 2010). "Desarrollo de software de dispositivos médicos según IEC 62304" . MDDI - Industria de dispositivos médicos y diagnóstico . Consultado el 12 de diciembre de 2016 .
Otras lecturas
- Gallagher, Troy. THERAC-25: Radioterapia computarizada . Archivado desde el original el 12 de diciembre de 2007. (breve resumen de los accidentes de Therac-25)