Engineering:Slicer3.0 November 15 2005

From NAMIC Wiki
Jump to: navigation, search
Home < Engineering:Slicer3.0 November 15 2005

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

Discussed here.

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