Therac-25: как программная ошибка убила трех человек 40 лет назад

Опубликовал Олександр Федоткін

Иногда ошибки в программном обеспечении приводят не только к техническим неудобствам и финансовым потерям, но и к летальному исходу. Один из таких известных случаев произошел в период с 1985 по 1987 годы, когда аппарат лучевой терапии Therac -25 из-за ошибок в софте привел к облучению шести человек дозами радиации, в 100 раз превышающими допустимые нормы. Из-за этого три человека погибли.

В 1985 году Therac-25 был очень перспективным для врачей, поскольку предлагал революционный на тот момент комплекс из двух режимов лечения в одном компактном аппарате. Therac-25 можно было использовать для лечения заболеваний поверхностных тканей, например, рака кожи. Второй режим работы предлагал мегавольтную рентгеновскую терапию. В этом режиме высоковольтный электронный луч мог воздействовать на глубоко расположенные ткани. 

Аппарат Therac-25 стал одним из первых, который перешел исключительно на программное обеспечение. До этого в подобных аппаратах использовались электромеханические аппаратные блокировки для предотвращения облучения повышенными дозами радиации. По словам ряда экспертов, Therac-25 имел те же программные ошибки, которые были у его предшественника Therac-20, однако аппаратное обеспечение Therac-20 блокировало любые опасные условия работы, даже если программное обеспечение давало сбои.

Впоследствии студентка магистратуры по информатике Калифорнийского государственного университета Энн Мари Поррелло подробно описала причины программного сбоя Therac-25 в шести известных случаях, когда от этого пострадали пациенты. Обычно к появлению сбоя приводил неправильно выбранный оператором режим работы, который после этого быстро пытались исправить. Опытный оператор мог так быстро изменить параметры обработки, что программа пропускала проверку безопасности из-за пребывания в «состоянии гонки» между обработчиком входных данных и логикой пучка излучения. 

Therac -25 необходимо было около 8 секунд, чтобы сменить режим пучка излучения, следовательно, ловкие операторы могли запутать программное обеспечение входными данными за это время. Первый подобный зафиксированный случай произошел в июне 1985 года, а последний — в январе 1987 года. 

Воспроизведение ошибки «Malfunction 54» (интерфейс на испанском)

В частности, 3 июня 1985 года, первая пациентка в результате терапии на Therac-25 в Джорджии в США потеряла руку и вынуждена была пережить операцию по удалению груди. Буквально через месяц в канадской провинции Онтарио сеанс лучевой терапии на Therac-25 закончился для пациента необходимостью полной замены тазобедренного сустава. 

6 января 1986 года в США еще один пациент после терапии на Therac-25 получил незначительную инвалидность и рубцы. Через несколько месяцев, 21 марта, в Техасе зафиксировали первый смертельный случай. 11 апреля в Техасе после терапии на Therac-25 умер еще один человек. Последний смертельный случай был зафиксирован в Вашингтоне, 17 января 1987 года. 

Компания-производитель Therac-25 AECL на протяжении первых нескольких месяцев отвергала все обвинения, а тщательное расследование обстоятельств началось только весной 1986 года. К тому времени расследованием аварий занялось также Управление санитарного надзора за качеством пищевых продуктов и медикаментов (FDA).

После ряда смертей, связанных с терапией на Therac-25, начали появляться призывы к формальной верификации, тщательному тестированию и улучшению документации для всего медицинского программного обеспечения. Проблемы с Therac-25 стали часто преподаваемой историей предосторожности в компьютерных науках.

Источник: Tom’sHardware

Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.

Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.