セラック25
ユーザーマニュアルには、エラーコードについての説明やエラーの対処方法はなく、これらのエラーが患者の安全を脅かす可能性があることを示すものすらなかった。
システムは、マシンを停止させて再起動を必要とするエラーと、単にマシンを一時停止させただけのエラー(オペレータがキーを押して同じ設定を続行できる)を区別していた。しかし、患者を危険にさらすようなエラーの中には、単に機械を一時停止させただけのものもあり、軽微なエラーが頻発したため、オペレータは機械の一時停止を解除することに慣れてしまっていた。 問題の一つは、PDP-11コンピューターを制御するVT-100端末で特定のキーストロークシーケンスを入力した際に発生したものである。オペレータが「X」を押して(誤って)25 MeV光子モードを選択し、次に「カーソルアップ」で入力を編集して「E」を押して(正しく)25 MeV電子モードを選択し、「Enter」を押す。最初のキー操作から8秒以内にすべてのキーが入力される。これはマシンの経験豊富なユーザの能力の範囲内である。
この設計には、ターゲットが設置されていない状態で電子線が高エネルギーモードで動作するのを防ぐためのハードウェア・インターロックがなかった。
ソフトウェアの欠陥を隠すためにハードウェア・インターロックを使用していたセラック6とセラック20のソフトウェアを、技術者は再利用していた。これらのハードウェア安全装置にはトリガーされたことを報告する手段がないため、既存のエラーは見落とされていた。
セラック25はAECL社とCGR社によって、医療用線形加速器セラック6 (Therac-6) とセラック20 (Therac-20) の後継機として開発された。前者は6MeVまでのX線を、後者は20MeVのX線と電子線を生成することができた。セラック25はAECLによって新たに開発されたダブルパス技術を用いた電子加速機であり、従来機に比べてより小さなスペースで、より効率的に25MeVまでのX線と電子線を生成することができた。
これらの機器はいずれもPDP-11によってコンピュータ制御できるが、セラック25は従来機と違って、最初からコンピュータ制御を念頭においてデザインされていた。また、従来機ではハードウェアの監視装置は機器とは独立した電子回路で実装していたが、セラック25ではメンテナンス性のためにこれをソフトウェアで置き換えた。ソフトウェアにはCGR社が開発したセラック6用のコードが多く流用された。またセラック20用のコードもいくつか混入していたが、このコードにはバグがあり、後の事故を引き起こす一要因となった。セラック20にはハードウェアによる安全装置があったため事故は起こらず、このバグはセラック25の事故調査で判明することとなる。
1976年にはプロトタイプ機が製造され、1982年に商業的に販売された。1983年に危険性分析が行われたが、これはソフトウェアのバグの存在を仮定しない、不十分なものであった。