Download presentation
Presentation is loading. Please wait.
Published byShakira Lindsley Modified over 9 years ago
1
National Alliance for Medical Image Computing http://na-mic.org Anatomy of a plugin Common architecture for interactive and batch processing
2
National Alliance for Medical Image Computing http://na-mic.org Objectives Provide a simple mechanism for integrating user code with the rich user experience of Slicer3 Support GUI application processing Support batch processing
3
National Alliance for Medical Image Computing http://na-mic.org Grand vision User Desktop AlgorithmsITKVTK Slicer Modules VTK Apps Using ITK Scripts of Slicer Mods Batch Programs Non-NAMIC Cmd tools BatchMake BIRN Grid Wizard Slicer 3.0
4
National Alliance for Medical Image Computing http://na-mic.org Design Specification of parameters to control a plugin –Command line style parameter specification –XML description Automatic discovery process for plugins –Searchpath for plugins –Queries for XML description of parameters Automatic construction of GUI for plugins –Each parameter/attribute type maps to a specific style of GUI element Plugin writer focuses on algorithm, not GUI nor integration
5
National Alliance for Medical Image Computing http://na-mic.org Each module has … … an entry in the module menu … a panel of user interface controls
6
National Alliance for Medical Image Computing http://na-mic.org Plugin overview
7
National Alliance for Medical Image Computing http://na-mic.org Parameters | | | | | | | | | | | [type="scalar|label|tensor|diffusion-weighted|vector|model"] | [type="fiberbundle|model"] | [multiple="true|false"] [coordinateSystem="lps|ras|ijk"] | [multiple="true|false"] [coordinateSystem="lps|ras|ijk"]
8
National Alliance for Medical Image Computing http://na-mic.org Parameter description * C++ variable name of the parameter * Help message for parameter * GUI label for the parameter Default value * Single character flag, e.g. –f * Single word flag, e.g. --outputImage Block around minimum/maximum/step. Trigger a slider to be used. Minimum parameter value Maximum parameter value Step size * Input or output parameter (image, geometry, file, directory) * Position of a parameter without a flag. Starts at 0 * Block around element * Choice value for an enumeration * Required tags * Required under certain conditions
9
National Alliance for Medical Image Computing http://na-mic.org Behind the scenes Tasks queued for processing thread Three types of modules: –executable, –shared object, and –Python modules Scalar images sent via files for executables and memory* for shared objects and python Vector images, tensor images, geometry, tables, transforms sent via files Scalars, file names, directories, fiducials, regions sent via command line * VTK-based modules using scalar images are only supported as executable (command line) modules.
10
National Alliance for Medical Image Computing http://na-mic.org (Current) Limitations Limited/restricted access to Slicer3 internals Supported parameter types are prescribed by Slicer3 –Request new parameter types Some parameter types can only (currently) be sent to plugins, not returned from plugins Some parameters types are (currently) sent via files not mapped through memory Conditional parameter specification tricky Non-interactive Intermediate results not (currently) supported
11
National Alliance for Medical Image Computing http://na-mic.org The next level Full Slicer3 modules are also supported as plugins Model-view-controller design: Node, GUI, Logic Access to all Slicer3 services oExposed to Slicer3 architecture oBatch processing requires running all of Slicer3
12
National Alliance for Medical Image Computing http://na-mic.org Slicer3 Plugins Common architecture for interactive and batch processing
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.