Therac-25 - Therac-25
O Therac-25 era uma máquina de terapia de radiação controlada por computador produzida pela Atomic Energy of Canada Limited (AECL) em 1982 após as unidades Therac-6 e Therac-20 (as unidades anteriores foram produzidas em parceria com a CGR da França ).
Ele esteve envolvido em pelo menos seis acidentes entre 1985 e 1987, nos quais os pacientes receberam overdoses massivas de radiação . Por causa de erros de programação simultâneos (também conhecidos como condições de corrida), às vezes dava a seus pacientes doses de radiação centenas de vezes maiores do que o normal, resultando em morte ou ferimentos graves. Esses acidentes destacaram os perigos do controle de software de sistemas essenciais para a segurança e se tornaram um estudo de caso padrão em informática de saúde e engenharia de software . Além disso, o excesso de confiança dos engenheiros e a falta de devida diligência para resolver bugs de software relatados são destacados como um caso extremo em que o excesso de confiança dos engenheiros em seu trabalho inicial e a falta de acreditar nas reivindicações dos usuários finais causaram repercussões drásticas.
Projeto
A máquina oferece dois modos de terapia de radiação :
- Terapia direta por feixe de elétrons , na qual um feixe estreito de baixa corrente de elétrons de alta energia (5 MeV a 25 MeV) foi varrido sobre a área de tratamento por ímãs;
- Terapia de raios X de megavolt (ou fótons), que entregou um feixe de raios X de largura fixa , produzido pela colisão de um feixe estreito de elétrons de 25 MeV com um alvo de tungstênio , passando os raios X emitidos através de um filtro de achatamento e um colimador .
Também incluiu um modo de "luz de campo", que permitiu ao paciente ser posicionado corretamente iluminando a área de tratamento com luz visível.
Descrição do Problema
Os seis acidentes documentados ocorreram quando o feixe de elétrons de alta corrente gerado no modo de raio-X foi entregue diretamente aos pacientes. Duas falhas de software eram as culpadas. Um, quando o operador selecionou incorretamente o modo de raio-X antes de mudar rapidamente para o modo eletrônico, o que permitiu que o feixe de elétrons fosse definido para o modo de raio-X sem que o alvo de raio-X estivesse no lugar. Uma segunda falha permitiu que o feixe de elétrons fosse ativado durante o modo de luz de campo, durante o qual nenhum scanner de feixe estava ativo ou o alvo estava no lugar.
Os modelos anteriores tinham intertravamentos de hardware para evitar tais falhas, mas o Therac-25 os removeu, dependendo, em vez disso, das verificações de segurança do software.
O feixe de elétrons de alta corrente atingiu os pacientes com aproximadamente 100 vezes a dose de radiação pretendida e em uma área mais estreita, liberando uma dose potencialmente letal de radiação beta . A sensação foi descrita pelo paciente Ray Cox como "um choque elétrico intenso", que o fez gritar e sair correndo da sala de tratamento. Vários dias depois, apareceram queimaduras de radiação e os pacientes mostraram os sintomas de envenenamento por radiação ; em três casos, os pacientes feridos morreram posteriormente como resultado da overdose.
Raiz dos problemas
Uma comissão atribuiu a causa principal às práticas gerais de design e desenvolvimento de software deficientes, em vez de apontar erros de codificação específicos. Em particular, o software foi projetado de forma que fosse realisticamente impossível testá-lo de uma forma limpa e automatizada .
Os pesquisadores que investigaram os acidentes encontraram várias causas contribuintes. Estas incluíram as seguintes causas institucionais:
- A AECL não teve o código do software revisado de forma independente e optou por contar com o código interno, incluindo o sistema operacional.
- A AECL não considerou o design do software durante sua avaliação de como a máquina poderia produzir os resultados desejados e quais modos de falha existiam, focando puramente no hardware e afirmando que o software estava livre de bugs.
- Os operadores de máquinas foram tranquilizados pelo pessoal da AECL de que overdoses eram impossíveis, levando-os a rejeitar o Therac-25 como a causa potencial de muitos incidentes.
- A AECL nunca testou o Therac-25 com a combinação de software e hardware até que ele foi montado no hospital.
Os pesquisadores também encontraram vários problemas de engenharia :
- Várias mensagens de erro exibiam apenas a palavra "MALFUNCTION" seguida por um número de 1 a 64. O manual do usuário não explicava ou mesmo abordava os códigos de erro, nem dava qualquer indicação de que esses erros pudessem representar uma ameaça à segurança do paciente.
- O sistema distinguiu entre os erros que pararam a máquina, exigindo uma reinicialização, e os erros que apenas pausaram a máquina (o que permitiu que os operadores continuassem com as mesmas configurações pressionando uma tecla). No entanto, alguns erros que colocavam o paciente em perigo apenas faziam uma pausa na máquina, e a ocorrência frequente de pequenos erros fizeram com que os operadores se acostumassem a despausar habitualmente a máquina.
- Uma falha ocorreu quando uma sequência particular de pressionamentos de tecla foi inserida no terminal VT-100 que controlava o computador PDP-11 : se o operador pressionasse "X" para (erroneamente) selecionar o modo de fóton de 25 MeV, use o "cursor para cima" para editar a entrada para "E" para (corretamente) selecionar o modo 25 MeV Electron e, em seguida, "Enter", tudo dentro de oito segundos após o primeiro pressionamento de tecla, bem dentro da capacidade de um usuário experiente da máquina.
- O projeto não tinha nenhum bloqueio de hardware para evitar que o feixe de elétrons operasse em seu modo de alta energia sem o alvo no lugar.
- O engenheiro havia reutilizado o software do Therac-6 e do Therac-20, que usava intertravamentos de hardware que mascaravam seus defeitos de software. Esses dispositivos de segurança de hardware não tinham como informar que haviam sido acionados, portanto, erros preexistentes eram ignorados.
- O hardware não forneceu nenhuma maneira para o software verificar se os sensores estavam funcionando corretamente. O sistema de posição da mesa foi o primeiro implicado nas falhas do Therac-25; o fabricante o revisou com interruptores redundantes para verificar sua operação.
- O software define uma variável de sinalizador incrementando-a, em vez de defini-la como um valor fixo diferente de zero. Ocasionalmente , ocorria um estouro aritmético , fazendo com que o sinalizador voltasse a zero e o software ignorasse as verificações de segurança.
Leveson observa que uma lição a ser tirada do incidente é não presumir que o software reutilizado é seguro: "Uma suposição ingênua é freqüentemente feita de que reutilizar software ou usar software comercial de prateleira aumentará a segurança porque o software terá sido exercitado Reutilizar módulos de software não garante a segurança no novo sistema para o qual eles são transferidos ... "Essa fé cega em paradigmas codificados por software mal compreendidos é conhecida como programação de cultos de carga . Em resposta a incidentes como os associados ao Therac-25, foi criado o padrão IEC 62304 , que apresenta padrões de ciclo de vida de desenvolvimento para software de dispositivos médicos e orientações específicas sobre o uso de software de linhagem desconhecida .
Veja também
- IEC 62304
- Radiação ionizante
- Lista de acidentes de radiação civil
- Acidentes nucleares e de radiação
- Proteção contra Radiação
Notas
Leitura adicional
- Gallagher, Troy. THERAC-25: Radioterapia computadorizada . Arquivado do original em 12/12/2007. (breve resumo dos acidentes Therac-25)