- Therac-25
-
La Therac-25 era una máquina de radioterapia producida por la Atomic Energy of Canada Limited (AECL) después de las unidades Therac-6 y Therac-20 (las unidades anteriores fueron producidas en asociación con CGR de Francia). Estuvo envuelta en al menos seis accidentes entre 1985 y 1987, en los que los pacientes recibieron sobredosis masivas de radiación, de aproximadamente cien veces la dosis esperada. Tres de los seis pacientes murieron como consecuencia directa. Estos accidentes remarcaron los riesgos del control por software de sistemas de seguridad crítica, y estos se convirtieron en un caso de estudio típico de la informática médica y la ingeniería de software.
Contenido
Descripción del Problema
La máquina ofrecía dos modos de terapia por radiación:
- Terapia de haz de electrones directo, la cual entregaba bajas dosis de electrones de alta energía (5 MeV a 25 MeV) por cortos períodos de tiempo;
- Rayos X de Mega voltaje (Megavoltage X-Rays), la cual entregaba rayos X colisionando electrones de alta energía (25 Mev) en un objetivo.
Cuando operaba en el modo de haz de electrones, un haz de electrones de baja potencia era emitido directamente desde la máquina, que propagaba una concentración segura usando escáneres de magneto. En el modo de rayos X, la máquina estaba diseñada para rotar cuatro componentes en el camino del rayo de electrones: un objetivo, que convertía el haz de electrones en rayos X; un filtro difusor, que repartía el haz en un área más amplia; un juego de bloques movibles (también llamado colimador), que daba forma al haz de rayos X, y una cámara de iones de rayos X, que medía el poder del haz.
Los accidentes ocurrían cuando el haz de electrones de alta energía era activado en lugar del haz de baja energía y sin la placa difusora colocada en su lugar. El programa de la máquina no detectaba que esto estaba ocurriendo, y por lo tanto no prevenía que el paciente recibiera una dosis potencialmente letal de radiación. El haz de electrones alcanzaba a los pacientes con aproximadamente cien veces la dosis de radiación esperada, causando una sensación descrita por el paciente Ray Cox como "una intensa descarga eléctrica". Aquello provocó que gritara y huyera del cuarto de tratamiento. Varios días después aparecían quemaduras de radiación y los pacientes mostraban los síntomas de envenenamiento radiactivo. En tres casos, los pacientes afectados murieron por envenenamiento radiactivo. El defecto del programa se determinó como una condición de carrera.
Causas Originales
La comisión investigadora ha concluido que la razón primaria puede ser atribuida a las malas prácticas de desarrollo, un mal análisis de requerimientos y un mal diseño de software, y no explicitó si fueron encontrados varios errores de código. En particular, el programa fue diseñado de forma tal que era relativamente imposible de testear de forma automática.
Los investigadores de los accidentes encontraron varias causantes. Estas incluían las siguientes causas institucionales:
- AECL no tenía el código fuente revisado de forma independiente.
- AECL no consideró el diseño del software durante su evaluación de cómo la máquina produciría los resultados correctos y qué tipos de fallos existirían. Esto forma parte de las técnicas conocidas como ingeniería de la confiabilidad y gestión de riesgos.
- El sistema notificaba que algo andaba mal y detenía los rayos X, pero solamente mostraba la palabra "MALFUNCTION" seguida de un número del 1 al 64. El manual de usuario no explicaba ni mostraba los códigos de error, por lo tanto el operador presionaba la tecla P para saltar la advertencia y proceder con el proceso.
- El Personal de AECL, así como los operadores de las máquinas, inicialmente no creían en las quejas de los pacientes. Probablemente porque estaban muy confiados en la máquina.
- AECL no había probado la Therac 25 con la combinación de software y hardware antes de montarla en el hospital.
Los investigadores también encontraron problemas de ingeniería:
- El fallo sólo ocurría cuando una secuencia particular de teclas era ingresado en la terminal VT100 que controlaba la computadora PDP-11: la X que (erróneamente) seleccionaba el modo de fotones de 25MV, seguido de "cursor arriba", "E" que (correctamente) seleccionaba el modo de electrones de 25MeV y luego "Enter". Esa secuencia de pulsaciones era improbable, y por lo tanto el problema no ocurría muy seguido y fue desconocido por un largo tiempo.
- El diseño no contaba con un entrelazado de hardware que previniese que el haz de electrones operase en el modo de alta energía sin el objetivo en su lugar.
- La ingeniería había reutilizado software de modelos más antiguos, que contaban con entrelazados hardware que cubrían los defectos de software. Esos dispositivos de seguridad no tenían forma de reportar que habían sido disparado, por los que no había indicación de la existencia de comandos del software que fallen.
- El hardware no suministraba ninguna forma para que el software verifique que los sensores estaban funcionando correctamente (ver Lazo Abierto. El sistema de posicionamiento de la mesa fue el primero implicado en los fallos de la Therac-25; el fabricante lo revisó con conmutadores redundantes para verificar de forma cruzada la operación.
- La tarea del equipamiento de control no se sincronizaba de manera adecuada con la tarea de la interfase de operador, por ello ocurrían condiciones de carrera si el operador cambiaba la configuración demasiado rápido. Esto no se supo durante las pruebas, ya que los operadores necesitaban práctica para poder manejar la máquina velozmente para que ocurra el problema.
- El programa establecía una variable bandera incrementándola. Ocasionalmente ocurría un desbordamiento aritmético, causando que el software ignorara los chequeos de seguridad.
El programa estaba escrito en lenguaje ensamblador, que puede requerir más atención en las pruebas y en el buen diseño. No obstante, la elección del lenguaje por si misma no fue considerado como una causa primaria en el informe. La máquina además usaba su propio sistema operativo.
Véase también
Notas
Traducción de la Versión de Wikipedia en inglés
Referencias
- Baase, S (2008). "A Gift of Fire", Pearson Prentice Hall.
Enlaces externos
- The Therac-25 Accidents (PDF), by Nancy Leveson (the 1995 update of the IEEE Computer article mentioned below)
- Leveson, Nancy G., and Turner, Clark S. (July 1993). "An Investigation of the Therac-25 Accidents," Computer (IEEE), 26(7):18-41. (login required)
- Short summary of the Therac-25 Accidents
Categorías:- Instrumentos de medicina
- Oncología radioterápica
- Radiactividad
- Software
Wikimedia foundation. 2010.