Slicer for Image Guided Therapy Haying Liu Lead Engineer Nobuhiko Hata Simon DiMaio (Prostate robot proj) Raimundo Sierra (Neuroend0scope navi proj)
What we did first Explored Slicer 3 by developing a mini-module Module/MRAblation VtkMRAblationGUI VtkMRAblationLogic VtkMRMLMRAblationNode VtkImageThermalMap (from 2.6) It was helpful to understand Logic GUI (kwwidgets) Slicer MRML Looking back, this was the most critical step
Then we specified our requirements External library (outside of building tree) Access to external device to get stream of sensor readings (images, tracker), control the devices Application specific GUI (3D/2D window, Modules) Speed and stability Recovery from system crash Coordinate system handling Specify our logistical requirement Multi-site development Windows, Linux
Not yet... Based on the requirements, Haiying Liu implemented vtkIGTDemo under Base. This helped us to confirm that External library (compiled outside) can be linked Device control is possible Speed is acceptable for IGT Windows/Linux OK
Finally...
Designing library (w. umbrello)
Feedback genutiltest.tcl is great! Guideline for creating library and modules would be helpful for those joining Slicer community. Template (blank) code may be helpful. Don't understand what "NA-MIC sandbox" means... It is a bit confusing to request "NA-MIC sandbox" account when you want to create account for "Slicer 3."
Our value Enhancing IGT by incorporating new medical image processing algorithms We are inventing Therapeutic Medical Image Processing, as opposed to Diagnostic Medical Image Processing Maximizing dissemination and increase “N” of collaborators (new algorithm and new IGT application) It is very important to Minimize the hurdle to Slicer3 Maximize the generality of IGT-related classes
Minimize the hurdle to Slicer 3 genutiltest.tcl is great! Svn braching/merging works great! Introduction for creating library and modules would be helpful for new-comers. Preferably in PPT or white paper format, rather than wiki. Can't understand relationship of Slicer to "NA-MIC sandbox".
Application-specific customization and streamlining of the GUI will be important for IGT applications. To what extent is this possible? Performance bounds are important to understand for IGT applications. Can we talk about determinism and performance as Slicer scales? Can we make "lean" Slicer w/o many modules and libraries? I found EMsegmentor can be disabled by uncommenting #EMSEG_DEBUG Slicer.cxx, but we don't have an option for that for Tractography, Registrations, etc. We should make this on/off option consistent throughout the Slicer. How can we specify module dependency, if there is any?