Vous êtes sur la page 1sur 5

THERAC-25 (1985)

1. PROJECT AIM:
The Therac-25 was a medical linear particle
accelerator used for radiation therapy in cancer
patients. The machine accelerated electrons that
created energy beams that destroyed tumors.
Electrons were used for shallow penetration, and to
reach deeper tissue the beams were converted into
x-ray.

2.1. PROJECT BUDGJET:


The budget of this project was never clearly
stated; just that is was a million dollar machine.

2.2. HUMAN RESOURCES:


Atomic Energy of Canada (AECL) whom got their
technology from Compagnie Generale Radiologie
(CGR); a French radiology, after they had worked
together to develop the Therac-6 and Therac-20 in
the early 1970s, developed the Therac-25 in 1976. A
programmer from AECL wrote the software alone for
the machine over a period of several years

2.3. DEVELOPING ORGANIZATION:


In 1976 AECL developed the double pass
accelerator, which then led to the development of
the Therac-25. The software was written in PDP 11
assembly language, which evolved from the software
of the Therac-6 and contained some code from the
therac-20.
The Therac-25 had two main types of operation: a
low energy mode, which consisted of an electron
beam of 200 rads that was aimed at the patient
directly, and a high-energy mode, which used the

full power of the machine at 25 million electron volts.


When used on patients, a metal plate was inserted
between the beam and the patient, which would
transform the beam into an x-ray.
The manufacturer stated that the hardware and
software were tested and exercised separately and
together for several years
The Therac-25 software had a stand-alone, real
time 32K PDP 11/23 operating system. The software
had four main components, namely:
Stored Data which included calibration
parameters for the accelerator setup as well
as patient-treatment data
A Scheduler which controlled the
sequences of all non-interrupt eventsand
coordinates all concurrent processes
A Set of Critical and Noncritical Tasks
Interrupt Services, which included a clock
interrupt service routine, a scanning
interrupt service routine and so on.

3. DISASTER
In March 1983, AECL performed a safety
analysis, which did not include a software analysis
In June, 1985, Katie Yarborough, a 61 year old
woman, who had already undergone a surgery to
remove her tumor, went in for her 12th radiation
treatment, where she was overdosed with over
15,000 rads of radioactive energy because the
machine projected a beam of electrons without
spreading it properly as it was supposed to, which led
to a hole in her chest, two unsuccessful surgeries to
cover the wound, which later paralyzed her left arm.
In 1986, Ray Cox went into the clinic for his usual

radiation treatment in his shoulder. The technician


mistakenly typed "x" into the computer, which
signified x-ray beam, then immediately realizing the
error, changed the "x" into an "e" for electron beam,
and hit "enter", showing the machine that they were
ready to start treatment. The computer gave the
signal of "beam ready", and the technician pressed
"b" to deliver
the beam to the patient, but then the computer
responded with an error message. Usually this
message meant that the treatment had not been
delivered, so the technician repeated the process
and delivered another beam to the patient, and yet
again, an error message occurred. Meanwhile, Ray
felt sharp stabbing pains in his back, which was
much different than his usual treatments, and
removed himself after three shocking attempts. This
sequence occurred in less than 8 seconds (This
particular sequence, in this time frame, was never
tried in the original testing of the machine), and
because the commands were changed so fast, the
computer did not respond properly. Ray was
overdosed with blast of 25,000 rads with 25 million
volts of energy, which was 125 times more than his
regular dose, and his health deteriorated quickly and
he died 4 months later.
Apart from Katie and Ray, there were 4 other
incidents of where the patients were unknowingly
being exposed to many times the normal dosage of
radiation, leaving terminal effects.

4. CAUSE OF DISASTER:
Some of the possible causes of the failure of the
machine are lack of proper assessment of the
assessment when using it for new machinery, and
recurring problems were never fixed or understood.

However the main cause of the problem was a


software bug called a race condition, this is a
scenario where different threads of execution fail to
be properly synchronized, with the result being that
the software containing the race conditions can
actually make mistakes. The race condition in the
Therac-25 software involved the keyboard input to
the radiation therapy machine. If the operator typed
slowly, the bug was unlikely to be triggered. As
operators in the hospitals began to get better at
using the machine they began to type faster which
then triggered the software bug. Unfortunately, the
effect of the bug was to deliver massive radiation
overdoses to patients

REFERENCES
Felciano, R.M. Human Error: Designing for Error in Medical Information
Systems. Text version
of talk given at graduate seminar at Stanford University School of
Medicine. 1995-1997.
http://www.smi.stanford.edu/people/felciano/research/humanerror/hum
anerrortalk.html
Leveson, N., Turner, C.S. An Investigation of the Therac-25 Accidents.
Reprinted from IEEE
Computer, Vol.26, No.7, July 1993, pp.18-41.
http://ei.cs.vt.edu/~cs3604/lib/Therac_25/Therac_1.html
Leveson, N. Therac-25 Accidents: An Updated Version of the Original
Accident Investigation
Paper. In Adobe Acrobat format and downloaded from website.
http://www.cs.washington.edu/research/projects/safety/www/therac25.html
Lim, Joanne, An Engineering Disaster: Therac-25, (1998)
Paper. In Adobe Acrobat format and downloaded from website.
http://www.bowdoin.edu/~allen/courses/cs260/.../therac.pdf
Rose, Barbara Wade, FATAL DOSE Radiation Deaths Linked To AECL
Computer Errors, (1994)
http://www.ccnr.org/fatal_dose.html

Therac-25 software development and design


http://courses.cs.vt.edu/professionalism/Therac_25/Side_bar_1.html
Udacity, Software Testing: How To Make A Software Fail (2012)
https://www.udacity.com/course/software-testing--cs258
https://youtu.be/izGSOsAGIVQ
Wikipedia, Therac-25
https://en.wikipedia.org/wiki/Therac-25#Design

Vous aimerez peut-être aussi