Стремление урезать издержки и экономить — похвальное стремление, в некотором роде способствующее прогрессу. Но иногда оптимизация оборачивается мелочностью, которая в одних случаях просто раздражает, а в других, если ей сопутствуют халатность и разгильдяйство, становится опасной для жизни.

Именно в такой смертоносный унисон однажды сложились факторы, повлёкшие знаменитую трагедию Therac-25.

Пролог трагедии

Апрель 1986 года. Улыбчивая девушка-технолог проводит дежурную процедуру в Центре по изучению онкологических заболеваний Восточного Техаса. Ей нужно откалибровать недавно привезённую из Канады махину со странным именем Therac, чтобы направить пучок электронов низкой энергии на ухо пациента: у 66-летнего Вердона Кидда, местного водителя автобуса, недавно диагностировали рак ушной кожи, и ему была прописана дистанционная лучевая терапия.

Therac-25. Источник: Wikipedia.

На Therac возлагались большие надежды — это был улучшенный образец медицинского линейного ускорителя, продуцирующего пучки электронов с энергией в диапазоне примерно 5–25 МэВ , способные успешно истреблять различные патологии, например келоиды.

Вердону выпала честь стать вторым пациентом Therac’а. Когда технолог ввела нужную последовательность команд, машина негромко зарокотала. А мгновение спустя раздался резкий вскрик: «Crap!» — обычно тихий Вердон выругался надтреснувшим голосом во всю глотку, на весь кабинет радиотерапии, а может, и на всю больницу. Как он потом описал, в этот миг, длившийся не дольше секунды, его ошпарило невидимым кипятком — и это описание более чем точное: он получил гигантскую дозу примерно от 15 000 до 25 000 рад. Для сравнения, выжить после дозы даже в 400 рад уже довольно проблематично.

Вердон, переживший Великую депрессию и Вторую мировую, умер 20 дней спустя. И его кончина указала на единственного и главного подозреваемого: аппарат Therac-25. Ну и попутно на корпорацию, его породившую.

Благие намерения, ведущие сами знаете куда

Therac-25 был логическим продолжением двух предыдущих ускорителей — Therac-6 и Therac-20, которые продуцировали 6 и 20 МэВ соответственно. Данная линейка появилась на свет в результате сотрудничества двух корп-гигантов, а именно: французской «Главной компании по радиологии» (CGR) и канадской компании «Атомная энергия Канады Лимитед» (AECL) — «корпорации Короны», как принято величать в краю конных полицейских, всё ещё состоящем в Содружестве, контролируемые государством компании.

Схема ускорителя Therac-20. Источник: carleton.ca.

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

Все три Therac’а работали на едином и почти неизменном легаси-коде, который начинался еще с самого первого устройства. Для каждой модели в преемственном порядке добавляли некоторые модификации на ассемблерном языке для PDP-11, и с кодом Therac-25 это и сыграло трагическую шутку.

Компьютер PDP-11/ Источник: Wikipedia.

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

Схематическое устройство Therac-25.

За счет всех модификаций он мог продуцировать как электронные, так и рентгеновские пучки, а это делало его привлекательнее в глазах госпиталей и лабораторий: не нужно было тратить деньги на два разных типа установок.

А ещё в нём были имплементированы три рабочих режима: «световое поле» для точного позиционирования коллиматора, прямая электронная терапия, использовавшая низкотоковый пучок электронов высокой энергии в диапазоне 5–25 МэВ, и мегавольтно-рентгеновская терапия, подававшая пучок рентгеновских фотонов с энергией 25 МэВ. Словом, это должен был быть монстр-аппарат с кучей конкурентных преимуществ.

Терракт-25

Но, по всей видимости, создать коммерческий продукт такого уровня без уступок и удешевления было нельзя. Ну или по крайней мере так казалось канадскому менеджменту.

Роковым отличием Therac-25 было то, что с него сняли физические системы блокировки, присутствовавшие на его «родственниках» — они нужны были на тот случай, если процедура пойдёт не по плану и машина окажется в опасной для пациента конфигурации: например, если стол с пациентом и насадки зафиксированы в запрещенном положении.

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

Пример использования ускорителя на практике. Источник: Wikipedia.

Как упоминалось, управление установкой строилось на мини-компьютере PDP‑11, который запускал несколько параллельных задач: обработку ввода с терминала, проверку готовности машины, настройку магнитов и поворотного стола, и в финальной части цикла выдачу луча. Эти задачи обменивались состоянием через общие переменные-флаги в памяти, но громоздкий процесс протекал без надёжной синхронизации.

В результате итоговое поведение зависело от тайминга нажатий оператора и скорости выполнения фоновых процедур. И это привело к первой беде в Кеннестонском региональном центре онкозаболеваний: неизвестный (или, вернее, оставшийся неназванным) технолог перепутал команды и по ошибке включил рентгеновский режим лечения, но потом быстро перевёл машину в режим электронов, щелкая на консоли управления стрелками «вверх» и «вниз».

Принцип вращения поворотного стола в Therac-25/ Источник: Wikipedia.

Эта последовательность и стала триггером для злосчастного состояния гонки данных и переполнения 8‑битного счётчика Class 3 — однобайтовой переменной памяти, которая переполнялась каждые 256 проходов во время тестирования настроек машины, непреднамеренно обходя критически важную проверку радиационной безопасности. Зато, наверное, это было дешевле.

Эта ошибка привела к тому, что Кэтрин Ярброу — первый пациент, пострадавший от неполадки в мозгах Therac-25, — получила в июне 1985 года стократную дозу радиации в сравнении с прописанными ей 200 радами. Машина выдавала 25 МэВ, но полагавшийся по программному протоколу металлический выравнивающий фильтр не был расположен в нужном месте — от шока и боли бедная 61-летняя женщина, проходившая лечение грудной опухоли, выбежала из процедурной полураздетая. Как она скажет потом, это ощущалось так, будто в её плечо вонзили раскалённую трубу.

Что интересно, увлечённая маникюрным ремеслом Кэтрин не стала первой жертвой, погибшей именно от неполадок Therac’а. Она получила страшный радиационный ожог, из-за которого долгое время была частично парализованной, а последующие приступы боли были настолько мучительны, что она могла спать только урывками по 30 минут. Но неким чудом ей удалось восстановиться и даже в итоге вернуться к более-менее нормальной жизни. Её дни оборвутся лишь несколько лет спустя после инцидента, в автокатастрофе.

Расследование и «Голубой огонёк»

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

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

Эффект Вавилова-Черенкова, зафиксированный во время эксперимента Фрица Хагера. Источник: kitv.com.

По его запросу в центр прибыли канадские инженеры с инспекцией, дабы проверить работу аппарата. Их вердикт был единогласным: всё в порядке, всё работает как надо. А доводы и предположения Хагера отвергались как беспочвенные спекуляции. А затем такая же история случилась с уже известным нам семьянином и водителем автобуса Верденом Киддом, и пазл начал неотвратимо складываться.

Хагер начал независимое расследование вместе со своим младшим ассистентом. Они поставили задачу повторить произошедшее с нуля, и всего за три часа их следственный эксперимент увенчался успехом:

«Компьютерная программа не полностью переключила все параметры и оставила систему в гибридном режиме, при котором на пациента лился душ из электронов высокой энергии. Это давало запредельную дозу облучения за одну десятую секунды — в районе 15 000 сантигреев, чего достаточно для лечения трёх пациентов за пять недель».

Еще один пример сияния Вавилова-Черенкова. Источник: Spacegid.com.

Для сравнения, жертвы Хиросимы, находившиеся в эпицентре взрыва, получили заряд в 946 сантигреев по результатам анализа челюстной кости пострадавших. Сделав замер радиации в ионизационной камере, Хагер лаконично заметил администратору центра: «Мы только что “убили” кого-то».

Эксперимент был проведен еще раз, уже на более профессиональном оборудовании при содействии Медицинского центра онкозаболеваний Андерсона. Когда они снова искусственно вызвали ошибку, монитор Therac’а резко погас, как перегоревшая лампочка. А затем присутствовавшие воочию увидели «голубой огонёк» — эффект Черенкова, который обычно можно наблюдать в ядерных реакторах бассейнового типа. Огонёк красиво прогорел 1/10 секунды, а индикаторы сняли дозу в 15 000 сантигреев.

Справедливость восторжествовала?

Как же закончилась вся эта эпопея? Против доказательств вины, в том числе предоставленных Фрицем Хагером с коллегами, идти было трудно. Первоначально канадская корпорация пыталась делать хорошую мину и настаивала, что с софтом всё в порядке. Вместо тщательной проверки они просто предложили отключить стрелку «вниз» на консоли управления.

Фриц Хагер. Источник: Reddit.

r/MedicalPhysics - New interview with the physicist who discovered the infamous Therac-25 failure condition

Но утаить произошедшее уже было невозможно. Хагер принялся активно обзванивать все учреждения, где имелся Therac-25, и объяснять сложившуюся ситуацию. Назревал серьезный скандал, от которого AECL не смогла бы уже, что называется, «отмахаться лопатой». В итоге канадские и американские регуляторы, в частности FDA — она же “Управление по санитарному надзору за качеством пищевых продуктов и медикаментов” — при Минздраве США, постановил прекратить использование Therac-25. По требованию всё того же FDA все машины на территории Штатов были отозваны и оборудованы механизмами безопасности, которые были установлены на предыдущих моделях.

На AECL посыпались иски от пострадавших и их родни. Всё было урегулировано в досудебном порядке, и компенсационные выплаты не разглашались, но по некоторым данным AECL в общей сложности пришлось выплатить порядка 150 миллионов долларов семьям пострадавших. Техасский центр по изучению онкологических заболеваний получил 1 миллион долларов и долгие сессии с психологом, которого наняли специально для сотрудников, всерьёз терзавшихся муками совести по поводу двух загубленных душ.

Что примечательно, установить автора злосчастного кода почему-то так и не удалось, хотя считается, что это был один человек, который писал скрипты для Therac-25 в течение нескольких лет. Он вошёл в историю бесчисленных разбирательств как «отдельно взятый программист».

АЭС Пойнт-Лепро, Канада. Источник: neutrons.ca.

В свете событий американским законодательством был принят Акт о безопасности медицинской техники (SMDA) в 1990 году, который обязывал производителей отслеживать работу своего оборудования до тех пор, пока оно используется.

Акт повлиял на международные нормы, и таким образом сформировалась современная практика «материовигилянс» (materiovigilance) — надзор за безопасностью медизделий. А в мире IT стали уделять более пристальное внимание проверке качества кода, особенно там, где речь заходит о жизни и смерти.

Из всех пострадавших сравнительно легко отделалась Дженис Тильман, проходившая терапию в госпитале города Якимы, штат Вашингтон. После критического облучения у неё начался частичный некроз кожи бедра, а также сильные боли, но по итогам операции она сумела успешно восстановиться, хотя и заработала лёгкую, но все же пожизненную инвалидность. Её текущий статус неизвестен.

Комментарии (2)


  1. Denis_Chernyshev
    11.09.2026 11:18

    "Cлабые пучки мегаэлектронов (МэВ)"... Стремительным домкратом падающих на пациента?


    1. DimaIam Автор
      11.09.2026 11:18

      Спасибо за корректировку!