University of Washington


Update: All the Prism source code is now officially available under the LLGPL. See Source Code here to download.

University of Washington's "Prism," Helps Radiation Oncologists
Assess Best Treatment Plans for Cancer Patients

Clinicians at the Radiation Oncology Department of Seattle's University of Washington are using an Allegro CL-based system called Prism to find the best radiation treatment plan for patients at the university's cancer clinic. Used to plan treatments for patients since 1994, the Prism radiation treatment planning system (RTP) provides a dynamic simulation environment that clinicians can use to assess, plan, and optimize radiation treatments for their patients. Prism incorporates new knowledge-based tools as well as state-of-the-art graphic display and networking technologies.

According to Dr. Ira Kalet, Professor Emeritus, Radiation Oncology, joint with Medical Education and Biomedical Informatics, there are billions of possible treatments one might consider in a patient's treatment plan. "The goal," says Kalet, "is to define among all of those possibilities, what is the good one for the patient. The clinician needs to be able to manipulate the beams in an interactive simulation," continues Kalet, "before actually treating the patient." In a typical complex radiation treatment, the patient receives radiation from approximately six to twenty different directions using the same machine turned on and off as the patient and the machine turns. Prism shows all of the radiation beams and their directions at once. Prism provides tools for easy and dynamic user-visualization-and-manipulation in a very complex design task.

Allegro CL's Dynamic Object-Oriented Design Essential for Building Flexible & Direct Interface

In the Prism system, "the patient, the treatment equipment, and all the parts are represented as objects in the Common Lisp Object System," says Kalet. "The patient case is the overall `container' object... the other objects are parts or components of the patient case and some RTP object classes have been modeled as subclasses. For example, there is a class, pstruct, that defines a general three-dimensional anatomic object, and there are subclasses for organs, tumors, and targets."

Prism's user interface makes available as many operations as possible to the user at all times. This goal is accomplished, according to Kalet, by "associating a type of control panel or object editor with each type of object that the user can create or modify." The user interface contains a screen window that includes controls such as dials for angles, sliders for adjustable numbers, text input boxes, for targeted text, etc. When the control panel for an object displays, the user can modify any of the attributes of that object on-the-fly. A patient administrative information panel, as well as individual panels for treatment plans and radiation beams, complete the amount of user-accessible information available at time of treatment. Additionally, "view windows display graphical renditions of patient anatomy and beam portals," says Kalet, "and a graphic editing panel provides for the delineation and modification of patient anatomy, tumors, and targets. Prism allows the user to bring up simultaneously any number of these or other component-specific panels during the session."

Allegro CL Ideal for Dynamic Development

"We needed a dynamic development environment," says Kalet, "It would be hard to do a simulation project like this in any other language." The main emphasis of Prism is a flexible and direct user-interface design. "We're constantly having to reassess how to redesign the program in light of changing treatment needs, and therefore we needed a development environment where the program and the user interface were extensible. We decided to use Lisp," continues Kalet. "because of its high level of expressive power, the existence of a direct interface to the X window system for network based graphic display, its standardization and its wide availability."

The clinic also required an application that could be rapidly developed, easy to maintain, and that provided for ease in finding and fixing bugs, adding and extending features, and adding new classes of objects and control panels. "The usual choice of most designers these days is C++," says Kalet, "but it does not provide as good an object-oriented programming environment as Common Lisp nor does it provide a very high level of abstraction." In developing Prism, Kalet cites the following features of CLOS that were critical:

  • Run-time type knowledge: CLOS can determine the type of a piece of data at run-time and act accordingly.
  • Multi-methods: In CLOS, one can select methods for generic functions at run-time based on the type of any number of arguments.
  • Lexical Closures: CLOS code can create new functions while the program is running.

The clinic has chosen Allegro CL since 1990 as its core development environment. "We settled on Allegro CL," says Kalet, "because of all the Lisp programs we tried, it was the most solidly supported and error-free. We like CLOS because it's a wonderfully abstract and expressive language that doesn't get in the way. It's a lot of work to put together a simulation project like this. We needed something we would enjoy and stick with. Lisp is powerful. Lisp is practical. Lisp is fun."

For more information about Prism, please visit the Radiation Oncology Department's Web site at:

PRISM Screen Shot

Copyright © 2014 Franz Inc., All Rights Reserved | Privacy Statement
Delicious Google Buzz Twitter Google+