Skip to content

A Python port of the C implementation of the Therac-25 interface (and bugs)

License

Notifications You must be signed in to change notification settings

amstelchen/Therac-25

Repository files navigation

Documentation Status Python package

Therac-25

A Python port of the C implementation of the Therac-25 interface (and bugs)

Introduction

The imfamous Therac-25, produced by Atomic Energy of Canada Limited (AECL) in 1982 after the Therac-6 and Therac-20 units, was a computer-controlled radiation therapy machine that between 1985 and 1987, gave six patients massive overdoses of radiation, of which three of them died.

This repository holds my port of the original C source code found on MIT's Hands-on 3b of 6.033 - Computer System Engineering onto the Python scripting language.

Installation

Steps assume that python (>= 3.8) and pip are already installed.

Install dependencies (see sections below)

Then, run:

$ pip install therac-25

or from the wheel:

$ pip install therac_25-0.1.1-py3-none-any.whl

Install directly from github:

$ pip install git+https://github.com/amstelchen/Therac-25#egg=Therac-25

When completed, run it with:

$ therac-25

or

$ therac

Quick start commands

BEAM TYPE:

  • (empty)
  • "X": Megavolt X-ray
  • "E": Electron-beam therapy

("field light" mode was supposely not implemented in the C source code)

COMMAND:

  • "b" or "B" - Start treatment
  • "q" or "Q" - Quit program

Dependencies

None, except curses which will come pre-installed with any Linux distro.

On Windows, you are on your own, using UniCurses with PDCurses might work (not tested).

Reporting bugs

If you encounter any bugs or incompatibilities, or deaths, please report them here.

Screenshot

TBD

Future plans / TODO

TBD, (see TODO.md)

Changelog

  • 0.1.0: initial version
  • 0.1.1: removed logging

Licences

Therac-25 Python port is licensed under the MIT license.

The original C implementation is licensed under the MIT license as well.

About

A Python port of the C implementation of the Therac-25 interface (and bugs)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published