Difference between revisions of "Collaboration/NWU/Radiology Workstation"

From NAMIC Wiki
Jump to: navigation, search
 
(12 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
 
|[[Image:ProjectWeek-2007.png|thumb|320px|Return to [[2007_Programming/Project_Week_MIT|Project Week Main Page]] ]]
 
|[[Image:Nwuslicer3.jpg|thumb|320px|Our clinical workstation integrated with Slicer3's main viewer, under development at Northwestern]]
 
|[[Image:Nwuslicer3.jpg|thumb|320px|Our clinical workstation integrated with Slicer3's main viewer, under development at Northwestern]]
 +
|[[Image:Numit01.jpg|thumb|320px|Before the Programming Week]]
 +
|[[Image:Numit02.jpg|thumb|320px|After the Programming Week]]
 
|}
 
|}
 
  
 
__NOTOC__
 
__NOTOC__
Line 15: Line 16:
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h1>Objective</h1>
 
<h1>Objective</h1>
Our objective is to demonstrate integration of advanced visualization algorithms in a clinical workstation through the logic and functionality of Slicer3.
+
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
 +
 
  
 
</div>
 
</div>
Line 23: Line 27:
 
<h1>Approach, Plan</h1>
 
<h1>Approach, Plan</h1>
  
Our plan is to finish integrating Slicer3 including support for custom modules, and to add a custom MRML scene to the main viewer featuring a 6 plane cubic representation of the volume with an additional oblique cut plane.
+
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
 
</div>
 
</div>
  
Line 29: Line 37:
  
 
<h1>Progress</h1>
 
<h1>Progress</h1>
 +
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
 +
<br style="clear: both;" />
 +
</div>
  
We integrated Slicer3 alpha with our 2D workstation by directly modifying the Slicer3 base code, passing window handles through Slicer3's GUI objects. Modifying the base code prevented maintainability of Slicer3 updates as changes had to be reimplimented. Currently, we can integrate the Slicer3 beta without modifying the base code by extracting the render windows through existing accessor methods and adding them to our workstation through a managed version of VTK.
 
  
</div>
 
  
<br style="clear: both;" />
 
  
</div>
 
  
  

Latest revision as of 14:47, 13 July 2007

Home < Collaboration < NWU < Radiology Workstation
Our clinical workstation integrated with Slicer3's main viewer, under development at Northwestern
Before the Programming Week
After the Programming Week


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

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.