ソフトウェアに起因した医療機器事故(Therac-25) 潟Cーコンプライアンス


ソフトウェアに起因した医療機器事故(1985〜1987年 Therac-25)

複数の医療施設で放射線治療装置が誤作動し、過大な放射線を浴びた患者に死傷者が出た。
Therac-25は2種類の放射線―低エネルギーの電子ビーム(ベータ粒子)とX線―を照射できるよう、既存の設計(Therac-20)に改良を加えた治療装置だった。
Therac-25では電子銃と患者の間に置かれた金属製のターゲットに高エネルギーの電子を打ち込み、X線を発生させていた。
Therac-25の改良点は、旧モデル『Therac20』の電気機械式の安全保護装置をソフトウェア制御に置き換えたことだった。
装置の開発者達が「機器の安全はソフトウェアでも十分に実現できる」と考え、経済性を優先させるためにハードウェアによる安全装置を外し、そのためハードウェアによる安全装置のために抑えられていたソフトウェアの不具合が発現した。
OSのバグが原因で、操作コマンドを素早く打ち込んだ場合、Therac-25ではX線用の金属製ターゲットをきちんと配置しないまま高エネルギーの放射線を照射する設定が可能になっていた。

このとき、なぜ過度なエネルギー照射が起こるのか原因を突き止めるのに長い時間がかかり、付け焼き刃の対策で装置の使用を止めなかったために、Therac-25による犠牲者は6名にまで拡大してしまった。

この事故を調査した現マサチューセッツ工科大学のNancy Leveson教授は、事故調査を終えて次のような教訓を書き残している。

Nancy Leveson 教授が語ったTherac-25の事故調査から導き出された組込みソフトウェアの安全に関する教訓は、20年以上経過した現在でも生き続けている。
というよりも、組込みソフトウェアの大規模・複雑化とCPUの統合化により、より危険性が加速されてきおり、組込みソフトエンジニアがソフトウェア開発を行っている際に常に考えていなければいけない重要な教訓となっている。

この事故を受けて、FDAはGeneral Principles of Software Validationを発行した。