Difference between revisions of "AHM2012-Slicer-Overview-and-Migration"

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "[http://www.na-mic.org/Wiki/images/" to "[https://na-mic.org/w/images/")
 
(28 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
  [[AHM_2012#Agenda|Back to AHM Schedule]]
 
  [[AHM_2012#Agenda|Back to AHM Schedule]]
  
Five topics:
+
'''Tuesday, January 10, 2012 8 to 10am'''
# 20mins - Overview of Architecture
+
This session is for all developers planning to migrate existing slicer3 modules to slicer4 or start a new project from scratch in slicer4.
## Overview - Steve
+
 
## Implementation - Jc
+
 
# 10mins - CLI - Jim itk4,
+
==Overview and Architecture==
# 20mins - Loadable Module -J2
+
* Steve (10 minutes) [[AHM2012-Slicer-Introduction|Introduction]]
# 20mins - Scripted Modules & Python Console - Steve
+
** Capabilities
# 20mins - Testing Infrastructure - Benjamin
+
** Release Schedule
# 10min - Documentation - Jc
+
** Goals
# 20mins - Extensions - Jc
+
** Ongoing Slicer4 projects and collaborations (NAC, NCIGT, CTK, Supplements...)
 +
* Jc (10 minutes)  [[AHM2012-Slicer-Architecture|Architecture]]
 +
** Modularization Object Specialization
 +
*** Qt Widgets <- CTK Widgets <- MRML Widgets <- Slicer Widgets
 +
*** vtkObject <- MRMLLogic <- Module Logic
 +
** Displayable Managers
 +
** Views and Layouts
 +
 
 +
== Module Creation and Migration ==
 +
* Steve (5 minutes) [https://www.slicer.org/wiki/Documentation/4.0/Developers/ModuleWizard Module Wizard]
 +
* Jim (10 minutes)
 +
** [[Media:Slicer4 CLI.ppt|CLI Modules]]
 +
** Creating a CLI from existing C++ code
 +
** Migrating CLI Modules to ITK version 4
 +
* J2: Loadable Modules [[File:LoadableModules.pptx]] (20 minutes)
 +
** Structure of a Loadable Module
 +
** Specialization of Module Classes
 +
** Integration with Designer
 +
* Steve:  [[AHM2012-Slicer-Python|Scripted Modules and Python Console]] (20 minutes)
 +
** What is accessible via python
 +
** Using the console (See [http://vimeo.com/33236047 J2's excellent demo video])
 +
** Writing a Scripted Module
 +
*** PythonQt interface
 +
*** Logic with vtk/vtkITK/CLI Modules
 +
*** Accessing MRML Data via numpy
 +
** Refining the code and UI with slicerrc
 +
** Limitations of python
 +
* Demian: [[Whole-Brain-Tractography-Wizard|Whole Brain Tractography]] (10 minutes)
 +
** Python wizard example
 +
** Discussion of interactions among modules
 +
** How to build on the dMRI module
 +
 
 +
== Testing Infrastructure ==
 +
* Benjamin (20 minutes), [https://na-mic.org/w/images/e/ed/AHM-2012-SlicerTesting.pdf PDF]
 +
** What is QtTesting/How it work.
 +
** Tests for each widgets
 +
** Limits : RenderWindow and GUI Testing
 +
** Slicer integration [http://www.na-mic.org/Wiki/index.php/File:DemoTuto2Slicer.mpeg Demo]
 +
** What's next ?
 +
 
 +
== Documentation ==
 +
* Jc (10 minutes) [[AHM2012-Slicer-Documentation|Documentation]]
 +
** How to write end user documentation for your module
 +
** Source code naming and documentation style
 +
** CMake documentaiton
 +
 
 +
== Extensions ==
 +
* Jc (20 minutes) [[AHM2012-Slicer-Extension|Extension]]
 +
** Writing an s4ext file
 +
** Testing your extension
 +
** How users will access your extension

Latest revision as of 18:27, 10 July 2017

Home < AHM2012-Slicer-Overview-and-Migration
Back to AHM Schedule

Tuesday, January 10, 2012 8 to 10am This session is for all developers planning to migrate existing slicer3 modules to slicer4 or start a new project from scratch in slicer4.


Overview and Architecture

  • Steve (10 minutes) Introduction
    • Capabilities
    • Release Schedule
    • Goals
    • Ongoing Slicer4 projects and collaborations (NAC, NCIGT, CTK, Supplements...)
  • Jc (10 minutes) Architecture
    • Modularization Object Specialization
      • Qt Widgets <- CTK Widgets <- MRML Widgets <- Slicer Widgets
      • vtkObject <- MRMLLogic <- Module Logic
    • Displayable Managers
    • Views and Layouts

Module Creation and Migration

  • Steve (5 minutes) Module Wizard
  • Jim (10 minutes)
    • CLI Modules
    • Creating a CLI from existing C++ code
    • Migrating CLI Modules to ITK version 4
  • J2: Loadable Modules File:LoadableModules.pptx (20 minutes)
    • Structure of a Loadable Module
    • Specialization of Module Classes
    • Integration with Designer
  • Steve: Scripted Modules and Python Console (20 minutes)
    • What is accessible via python
    • Using the console (See J2's excellent demo video)
    • Writing a Scripted Module
      • PythonQt interface
      • Logic with vtk/vtkITK/CLI Modules
      • Accessing MRML Data via numpy
    • Refining the code and UI with slicerrc
    • Limitations of python
  • Demian: Whole Brain Tractography (10 minutes)
    • Python wizard example
    • Discussion of interactions among modules
    • How to build on the dMRI module

Testing Infrastructure

  • Benjamin (20 minutes), PDF
    • What is QtTesting/How it work.
    • Tests for each widgets
    • Limits : RenderWindow and GUI Testing
    • Slicer integration Demo
    • What's next ?

Documentation

  • Jc (10 minutes) Documentation
    • How to write end user documentation for your module
    • Source code naming and documentation style
    • CMake documentaiton

Extensions

  • Jc (20 minutes) Extension
    • Writing an s4ext file
    • Testing your extension
    • How users will access your extension