Difference between revisions of "Collaboration/NWU/Radiology Workstation"
Line 55: | Line 55: | ||
* Adding the additional slice nodes to represent the sides of the volume cube | * Adding the additional slice nodes to represent the sides of the volume cube | ||
* Clipping the slice nodes to form a solid volume | * Clipping the slice nodes to form a solid volume | ||
− | |||
{| | {| |
Revision as of 13:53, 29 June 2007
Home < Collaboration < NWU < Radiology Workstation
Key Investigators
- Northwestern: David S. Channin, Pat Mongkolwat, Skip Talbot, Alex Kogan, Vladimir Kleper
- Isomics: Steve Pieper
Objective
The goal of our project is to be able to use Slicer3's advanced imaging algorithms and 3D functionality from inside a clinical workstation being developed at Northwestern University. We'd also like to reconfigure use of the main viewer for a new way to interact with the volume that might be more efficient for clinical use. Our main objectives to accomplish this goal include:
- Integrate the rendering and functionality of Slicer3 into a .Net foundation GUI for use in a clinical workstation
- Create a new representation of the 3D volume as a cube with an oblique cut plane rather than the default three orthogonal cut planes
Approach, Plan
To implement this integration process, we have taken the following steps:
- Convert Slicer3 into a managed class object
- Extract the renderers through existing accesor methods and add them to managed renderers using a VTK .Net wrapper
- Convert KWWidgets into .Net Controls
- Implement volume cube representation with existing Slicer3 code
Progress
In regards to the steps listed previously, we have made the following progress:
- Slicer3 compiled as a managed dynamically linked library that can be directly integrated into a .Net application
- The renderers and their interactors can be placed into .Net user controls for direct integration with a .Net GUI
- The basic foundation for converting KWWidgets has been devised, but much work remains. The process involves using a slight change to the KWObject class, and then deriving inherited controls on the .Net side
- The process needed to reassemble the 3D Main Viewer is under works, but this part of the project is in its infancy
After the Programming Week
The problem we focused on during the Programming Week at MIT was how to implement our desired modifications to Slicer3’s main 3D viewer. As previously described, we would like to present the volume as a cube with an oblique cut plane that slices through the volume, instead of three orthogonal cut planes as the viewer shows by default. Before we arrived, we were able to create additional cut planes and link them to the volume. By the end of the week, and with the help of Alex and Steve, we now have a fully functional oblique cut plane. The steps we took to accomplish this solution include:
- Computing the matrix transformations that align the slice node to the camera’s view plane normal
- Applying these transformations appropriately with the slice logic
- Adding observers to the slice node to update the orientation of the slice node as the user interacts with the viewport camera.
Our next steps include:
- Fixing the performance issues this solution has created
- Adding the additional slice nodes to represent the sides of the volume cube
- Clipping the slice nodes to form a solid volume
References
- A Translation Station for Imaging: P. Mongkolwat, T. Lechner, T. Johnson, A. Kogan, S. Talbot, D. S. Channin; Radiological Society of North America, Chicago, IL. November 2006.
- Advancing Advanced Visualization in the Clinical Environment: S. Talbot, P. Mongkolwat, D. S. Channin; Society for Imaging Informatics in Medicine (SIIM), Providence, RI, To be presented, June 2007.