Difference between revisions of "Engineering:Slicer3.0 November 15 2005"
Line 38: | Line 38: | ||
== Data Model == | == Data Model == | ||
− | A pre-meeting with Mike Halle, Xiaodong Tao, Alex Yarmarkovich, Steve Pieper resulted in this enumeration of functionality of the [ | + | A pre-meeting with Mike Halle, Xiaodong Tao, Alex Yarmarkovich, Steve Pieper resulted in this enumeration of functionality of the [http://www.slicer.org/slicerWiki/index.php/Slicer3:Data_Model#General_References_on_XML Slicer3 Data Model]. |
=== Elements of MRML3 === | === Elements of MRML3 === |
Revision as of 21:17, 5 November 2008
Home < Engineering:Slicer3.0 November 15 2005Contents
Logistics
Time: noon-5pm Location: BWH 1249 Boylston 2nd floor demo room
Attendees
- Bill Lorensen, GE
- Jim Miller, GE
- Xiaodong Tao, GE
- Will Schroeder, Kitware
- Luis Ibanez, Kitware
- Steve Pieper
- Mike Halle, BWH
- Wendy Plesniak, BWH
- Ron Kikinis, BWH
- Alex Yarmarkovich
- Tina Kapur
- Katie Hayes
- Nicole Aucoin
- Tianming Liu
Agenda
- Continued planning for slicer 3.0. The meeting will follow the roadmap discussion outlined here. We will go through each of the major blocks and review the implementation plans and define the interfaces between the blocks.
Architecture
- Base vs. Module - what features are available in common.
- "Thin" Visualization (should all MRML objects be first class objects in VTK?)
- Execution Model
- Forking
- Loading Shared Library
- CCA...? (common component architecture)
- Coordinate Systems (LPS/RAS, how do transform get expressed)
Data Model
A pre-meeting with Mike Halle, Xiaodong Tao, Alex Yarmarkovich, Steve Pieper resulted in this enumeration of functionality of the Slicer3 Data Model.
Elements of MRML3
MRML is the scene description used in Slicer, and maps to Slicer's data model. MRML2 (the current version of MRML) provides a convenient way to describe the geometric relationship between, and apprearance of, volumes and models of medical data. Its simple description combined several functions separated inside of VTK and ITK. As Slicer and MRML have changed over time, this simple model has proven to be limiting.
This list includes the different kinds of functionality that should be separated out in MRML3:
- data resources: where and how to get data (pathnames and access methods for readers)
- data instances: containers and references for data (what readers produce; use data resources)
- graphical elements: descriptions of models, volumes, graphical transforms, styles, lookup tables, cameras, etc., which are derived from data instances.
- actors: instances of graphical elements (e.g., a model rendered with a style and a transform)
- things (for lack of a better term): targets for semantic information ("brain", "pancreas", etc) which can contain links to/from models and outside ontologies.
- relations: describe relationships between elements. Examples:
- groups and hierarchies assemble related data
- coordinate spaces describe the geometric context of an object
- coordinate space transforms describe the geometric relationship between coordinate spaces
- semantic links describe objects in a field-specific way
Questions
- MRML tree, is it a tree or just a representation of MRML file? Can we use DOM API for acessing the MRML tree?
- Do we use Mike's proposed Coordinate System Manager? How does it fit with MRML tree? Do we replace MRML Transformation nodes
with Group node and describe the coordiante transformation separately?
- Do we use VTK or ITK image for internal representation? What do we use for internal representation of meshes, fiducials and other MRML types?
- Can we use itk SpacialPbjects for representing vtkPolyData like triangular meshes and DTI tracks?
- Can we have multiple API's, one for VTK another for ITK.
- VTK images store both metadata and data, with metadata duplicated in MRML nodes. Is it possible to separate metadata?
Parsing Options
Visualization
VTK
UI
GUI Discussion / Demos
- GUI toolkit comparison
- broad feature/behavior requirements
- specific widget requirements
- GUI design guidelines
- link to working notes in powerpoint: GUI Working Document
KWWidgets
Information prepared by Sebastien Barre on the Kitware Wiki:
Build/Test/Deploy
Interfaces to Other Programs
Migrating Slicer 2.x Modules
Interoperating with ITK Examples/Applications
Pipeline Integration
Grid Integration
UI Evaluation Benchmarking Demos (for comparison)
Quick demos of imaging/visualization packages to highlight the things people like and don't like about the interfaces or functionality:
- VolView/ParaView (Will et al), using the KWWidgets toolkit
- OsiriX (Michelle Borkin from Harvard Astrophysics at 2:30pm)
- Snap (!Tina)
- FiberViewer (Tina)
- Other Interesting Packages (not demoed)
- NeuroLens
- Brains2
Development Processes
Coding Style Guides
UI Style Guides
- Widget Class Hierarchy to help enforce consistency
- Logos
Documentation Style Guide
- Contact Info
- Image Gallery
- Papers
- Help