Home >Documents >Slicer4 Guided Tour

Slicer4 Guided Tour

Date post:31-Dec-2015
Category:
View:29 times
Download:3 times
Share this document with a friend
Description:
Slicer4 Guided Tour. Steve Pieper, Ph.D. Goals. Understanding the Lay of the Land Developing our Common Language Highlighting the Points of Interest http://www.slicer.org/slicerWiki/index.php/Slicer4. The Big Picture. Model / View / Controller Style MRML / GUI / Logic Rules: - PowerPoint PPT Presentation
Transcript:
3D Slicer Version 4 Architecture and StatusSlicer4
Goals
Developing our Common Language
The Big Picture
GUI: Things that depend on a display.
Logic: Things that operate on MRML.
National Alliance for Medical Image Computing http://na-mic.org
Overview
MRML Concepts: Nodes
XML (De)Serializable
E.g. vtkImageData, vtkPolyData…
Have Unique IDs
National Alliance for Medical Image Computing http://na-mic.org
Coordinate Systems
Volume Nodes have IJKToRAS
RAS is Right/Anterior/Superior
vtkImageData is pixel container with origin 0,0,0 and spacing 1,1,1
Annotations, PolyData are RAS mm
*
MRML: Storable
Storage Nodes allow RemoteIO (URL access to Bulk Data)
HTTP download supported now
Upload handlers still experimental
National Alliance for Medical Image Computing http://na-mic.org
MRML: Displayable
Has List of Display Nodes
Tagged by ViewNode IDs: each display node on/off in each view
E.g. FiberBundles with Lines + Glyphs
DisplayNode has Parameters and Pipelines to Implement Visualization of Displayable
National Alliance for Medical Image Computing http://na-mic.org
MRML Transformable
Transforms are RAS to RAS
Linear Transforms are Handled On-the-fly
Non-Linear Transforms must be applied using modules
National Alliance for Medical Image Computing http://na-mic.org
MRML: Hierarchies
In Slicer3, Parent Model Display Parameters Override when Collapsed
In Slicer4, Plans to Use Hierarchies for Time Series, DICOM, etc.
National Alliance for Medical Image Computing http://na-mic.org
(Were SceneSnapShots in Slicer3)
Bulk Data Not Copied
MRML: SceneViews
Module GUIs
Modules
Can use Qt, MRML, VTK, ITK, Teem, etc.
Best Choice for Full Control, Interactivity, Optimized Computation
Requires Familiarity with C++ APIs
National Alliance for Medical Image Computing http://na-mic.org
Command Line Interface (CLI) Modules
Just Like Slicer3
Any Executable that Works with –xml can be used (even via wrapper scripts)
Shared Library CLI for Better Performance
No Slicer API Knowledge Required
Interface is Consistent, but Limited
National Alliance for Medical Image Computing http://na-mic.org
Scripted Modules
Only Python Supported
Very Rapid Development Iterations
National Alliance for Medical Image Computing http://na-mic.org
Extensions
Optional User Install
NA-MIC DBPs, Collaborations are Expected to Deliver Extensions
Extension Writing Tutorial Later…
Slicer4 Views
ViewNodes Describe 3D Views
National Alliance for Medical Image Computing http://na-mic.org
DisplayableManagers
Must Synchronize Events from Either Source (like Module GUIs)
Modules Can Register DisplayableManagers with Factory
DisplayableManagers are Instanced as Views are Created
National Alliance for Medical Image Computing http://na-mic.org
Overview Revisited
Functional Decomposition
Reusable MRML: MRMLLogic, qMRMLWidgets
Module Support: SlicerExecutionModel, QTCLI
DICOM Interface
Slicer4 (in Development)
Ron’s “Lollipop” Model (MRMLScene in Private Tags)
Community Input Needed
Collaborating Groups
“SuperBuild Philosophy”
Avoid Workarounds/Duplicates in Slicer
svn and git
http://www.slicer.org/slicerWiki/index.php/Slicer:git-svn
Extensions can use git/svn/cvs
Coding Conventions
Comments and Testing
Python in Slicer4
Slicer4: What Works (mostly)
Main GUI, Toolbars, Menus
Command Line Modules
Loadable Modules
Nightly Builds
Volume Rendering
Many things…
Slicer4: What’s Missing
Hierarchies Need Elaboration
Please help identify what is needed to support your work.
National Alliance for Medical Image Computing http://na-mic.org
Developer Decision Tree
Focus on Qt Transition
Working on a Module?
Command Line Module?
Develop with KWWidgets for 3.6.X
Keep your Logic and MRML Distinct from the GUI
Ongoing Support will be Provided
Longer-Term Project that Needs a Custom GUI?
Start working with developer builds of Slicer4
Talk with dev team about any key missing features
Consider doing some or all coding in Python
Just use Slicer4 for New Projects
National Alliance for Medical Image Computing http://na-mic.org
Implementation Strategies
Non-Interactive Algorithm
Custom GUI?
Loadable Module

Click here to load reader

Reader Image
Embed Size (px)
Recommended