Therac-25 era uma máquina de radioterapia controlada por computador, muito moderna para sua época, por permitir a utilização do mesmo equipamento para a aplicação de diversas doses de radiação nos pacientes. Houve uma série de pelo menos 6 acidentes entre 1985 e 1987, nos quais os pacientes receberam overdose de radiação. Pelo menos cinco mortes aconteceram devido aos acidentes, causados por erros no software que controlava a máquina. Este acidente mostrou o perigo que reside em softwares que controlam operações de segurança. thumb|Interface de programação de parâmetros do Therac-25

Descrição do Problema A máquina trabalhava com dois modos de tratamento: Terapia de feixe de Elétrons direto, que aplicava desde baixas energias (5 MeV) até energias altas,por exemplo 25 MeV, durante um curto período de tempo; Terapia com Raios X, que usava o feixe de elétrons de 25 MeV passando por um alvo de tungstênio que o convertia em Raios X.

Quando operava no modo de Feixe de Elétrons direto, um raio de elétrons de baixa intensidade era emitido diretamente da máquina, e então era espalhado para uma concentração segura usando magnetos. Quando operava em modo de Raios X, a máquina havia sido desenhada para rotacionar três componentes no caminho do feixe de alta intensidade emitido, para moderar sua força e modelar seu formato: um target que convertia o feixe de elétrons em Raios X, um filtro, que modelava estes raios e uma câmara de íons, que media a intensidade dos raios.

Os acidentes aconteciam quando o feixe de alta intensidade era ativado sem o target ter sido rotacionado para seu lugar; o software da maquina não detectava que isto havia acontecido e não podia detectar que o paciente estava recebendo uma dose letal de radiação, ou evitar que isso ocorresse. O feixe de alta intensidade atingindo diretamente os pacientes causava a sensação de um forte choque elétrico e a ocorrêcia de queimaduras. Em alguns casos, os pacientes morreram pouco depois devido a exposição excessiva à radiação.

Causas Pesquisadores que investigaram os acidentes encontraram diversas causas que contribuíram para os acidentes acontecerem. Entre elas, estavam alguns erros de desenvolvimento que poderiam ter sido evitados, como:

O código do software não havia sido revisado/testado independentemente; O projeto do software não havia sido documentado com detalhes suficientes para permitir o entendimento dos erros A documentação do sistema fornecida aos usuários não explicava o significado dos códigos de erro que a máquina retornava A primeira reação dos funcionários da AECL (fabricante da máquina) foi negar a existência de erros.

Os pesquisadores também encontraram diversos problemas de engenharia:

O projeto não continha travas de hardware para prevenir que o feixe de elétrons de alta intensidade fosse aplicado sem o filtro estar em seu lugar; O software de modelos mais antigos havia sido reutilizado sem se considerar as diferenças no hardware; Os modelos antigos possuíam travas de hardware, quando o defeito se manifestava nestes modelos, eles reiniciavam, o que sempre havia sido visto como algo perturbador, mas nunca foi investigado; O software considerava que os sensores sempre funcionavam corretamente, e não havia como verificar isto; O sistema de controle não operava sincronizado com a interface usada pelo operador da máquina, e caso o operador mudasse a configuração da máquina muito rapidamente, o sistema não atribuía os valores digitados para os controles (o que levava a aplicação das doses letais); Overflows podiam fazer o software não executar procedimentos de segurança;

O caso de Therac-25, suas causas e consequências, é hoje um tema de estudo constante na história da computação e da medicina.

Ver também Defeito de software Engenharia de software Radiologia Medicina nuclear

Ligações externas Os Acidentes de Therac-25 (PDF em inglês), por Nancy Leveson (versão completa do relato do caso)

Categoria:Engenharia de software Categoria:Radiologia Categoria:Radiação