Title: 3D Visualization of Radiation Treatment Plans
13D Visualization of Radiation Treatment Plans
- Jenny Sager
- Friday, October 23, 2009
- 348 AM
2Organization
- Spent the summer learning
- LISP
- SLIK (a button package for LISP)
- CLX
- OpenGL
- PRISM
- Parallel Contour Reconstruction
3Organization
- PRISM overview
- The Tiling Problem
- Terminology
- Basic approaches
- Implementation in PRISM
- Limitations and future improvements
4PRISM
- PRISM - a radiation treatment planning system
for designing plans for treating cancer patients. - An satisfactory plan delivers enough radiation
to a tumor without unacceptable damage to the
surrounding tissues
5PRISM Contour Editor
6PRISM Typical Session
7PRISM
- It is difficult for a person to visualize complex
2D data as 3D objects - Currently PRISM has the following visualizations
- Parallel xy plane contours
- Beams eye view (from the radiation beams point
of view) - 2D planes
- Coronal (xz plane) from the top
- Saggital (yz plane) from the side
- Transverse (xy plane) from the front
- But PRISM does not have a 3D room view!
8Meyers Terminology
- Reconstruction of parallel contours can be broken
into 4 sub-problems - Correspondence problem
- Tiling problem
- Branching problem
- Surface-fitting problem
- (Meyers, Skinner, and Sloan Surfaces from
Contours 1992)
9Correspondence Problem
- Which contours should be connected together by
the surface? - The question arises whenever there are multiple
contours in a section - Solution arrange contours into groups organized
by which objects they represent - Difficult to make automatic without making
assumptions because of the ambiguities - In PRISM this task is done by a human in the
contour editor
10Tiling Problem
- How should the contours be connected?
- More about this topic later
11Branching Problem
- What do we do when there are branches in the
surface? - One solution is user intervention
- In PRISM, contours do not branch or intersect by
system definition
12Surface-fitting Problem
- Once a triangulated mesh is found, how should a
smooth surface be made that approximates or
interpolates the vertices of the mesh and
maintains the same topology?
13Basic Approaches - Volume (Grid) Based Approach
- Volume (Grid) Based - assumes that data is
available as a 3D grid or lattice - Voxel Technique (spatial equivalent of a pixel)
- Marching Cubes (Lorensen and Cline 1987)
- Surface Normals (Hoehne and Bernstein 1986 Levoy
1988) - Geometrically Deformed Models
- Miller et al. 1991
14Basic Approaches - Surface Based Approach
- Surface Based assumes that the data define a
set of closed contours and attempts to
reconstruct a sequence of surfaces, one between
each pair of adjacent contours - Growing Cylinder
- Soroka 1981 Generalized cylinder/elliptical
cylinder (Correspondence problem) - MST/Min Path
- Keppel 1975 (Tiling Problem)
- Fuchs, Kedem, Uselton 1977 (Tiling Problem)
- Meyers 1992, 1993 (Tiling Problem)
15Basic Approaches - Volume (Contour) Based
- Volume (Contour) Based assumes that data is a
set of closed contours (same form as surface
based) but attempts to construct the volume from
the contours instead - Delaunay triangulation
- Boissonnat (1986) and Geiger (1993) (Branching
Problem) - Capable of handling some branching structures
without user intervention
16Fuchs, Kedem, and Uselton Algorithm, 1977
- Choose to implement the algorithm of Fuchs et al.
in PRISM because - PRISM contours do not branch or intersect
- Fuchs requires on 1-to-1 relationship between
contours (no branching, or complicated shape
variations - Fuchs Algorithm is fairly simple and efficient
- O (n2 log n), where n is total number of vertices
on the contours bounding the triangles - Meyers describes several additional improvements
in efficiency that can be made
17Fuchs, Kedem, and Uselton Algorithm, 1977
- Construct a graph shaped as a torus so that
- Points on Contour A are the Rows
- Points on Contour B are the Columns
- The intersection of a row and a column on the
toriod graph will be called a node
Node
18Fuchs, Kedem, and Uselton Algorithm, 1977
- Thus a Torus node (i, j) represents the line
connecting (Pt i of Contour A) to (Pt j of
Contour B) , called a span
Node (i, j)
Span
19Fuchs, Kedem, and Uselton Algorithm, 1977
- A Single Triangle
- Toroidal Graph 2 nodes and an arc
- Contours 2 spans and 1 contour segment
Span
Contour Segment
20Fuchs, Kedem, and Uselton Algorithm, 1977
21Fuchs, Kedem, and Uselton Algorithm, 1977
22Fuchs, Kedem, and Uselton Algorithm, 1977
23Fuchs, Kedem, and Uselton Algorithm, 1977
- Find the minimum cost Eulerian Trail (a closed
path in which every arc of the graph occurs
exactly once) by - Find each Eulerian Trail that starts at node (i,
0) for i 0 to ( of vertices in Contour A 1) - The minimum of these paths is the graphs
minimum path
24Fuchs, Kedem, and Uselton Algorithm, 1977
- Found a min path using Dijkstras algorithm
- Divide and Conquer
- Use the previously found cycles to limit the
nodes to search for next - A cycle starting at node (i, 0) is upper bounded
by the cycle starting at (i - m) and lower
bounded by the cycle at (i n) where m, n are
positive integers - (sharing nodes with boundary cycles is ok)
25A Few Metric Functions
- How should the edges be weighed?
- Volume (Keppel)
- Difficult to calculate the contribution of a
single tile to total volume - Minimum Surface Area (Fuchs et. al) -
- Easy to compute (Area of Triangle ½ bh)
- Match direction
- Matching the directions of points from their
respective contours center of mass - Problematic for concave objects
26Implementation in PRISM
27Implementation in PRISM
28Implementation in PRISM
29Implementation in PRISM
- Orthographic/perspective option
- Wireframe/Translucent/Opaque option
- Navigational buttons translate, rotate
- Coronal, Sagittal, and Transverse pre-set buttons
- Scaling
- Ruler (imported from its implementation in other
views in PRISM) - Cut Plane that cuts off where z lt user-input
- Lighting (partially implemented)
30Limitations of Fuchs et al.
- Tiling Problem
- The minimal area constraint will result in a
surface being constructed containing two cones,
joined at a line, rather than a cylinder - Calculations are slow
31Future Improvements
- Solution to skewed cylinder problem (Sloan et
al.) - Normalize the two cross-sections so that their
centers lie on an axis perpendicular to the plane
of section - Solve the tiling problem to find lines joining
points on the contours - Then use this correspondence to construct a
surface from the original contours
32Future Improvements
- Improvement in Speed (Meyers)
- Claims to have modification to Fuchs et al. that
appears to require O (n) space and O ( n log n)
time - The original Fuchs et al. algorithm had O (n2)
space and O ( n2 log n) time
33Future Improvements
- Things to add to PRISM
- Option to show a specific coronal CT scan cutting
though at the users chosen cut plane - Cut plane is implemented
- Texture mapping of the CT scan is NOT implemented
yet - Ability to render/draw beams
- Smooth surface (surface-fitting problem)
- Support for color index mode
34Additional Problems
- Gitlin, ORourke, and Subramanian proved that
(1993) - It is not always possible to find an
interpolating polyhedron between two polygons
that lie in parallel planes - If the shape of of the contours differs
sufficiently, no simple polyhedron can be
constructed - However, in practice adjacent contours are
usually fairly similar in shape - Exceptions exist
35Additional Problems
- A Collection of triangles intersect properly if
any given pair of triangles are either - Disjoint
- Have one vertex in common
- Have two vertices and consequently, the entire
edge joining them - In this definition, adding extra vertices is not
allowed - (def. From Giblin)
36Additional Problems
- Example of Improper Triangles
It is necessary to add vertices to make the
triangles not share interior points
These triangles share interior points
37Conclusion