Difference between revisions of "Projects:ARRA:SlicerEM:Developer"

From NAMIC Wiki
Jump to: navigation, search
Line 100: Line 100:
  
 
* July 30th
 
* July 30th
** Port: <del>[[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#TaskSelector|TaskSelector]]</del>, [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#Segmentation_Mode|Segmentation_Mode]],[[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#InputChannel_selector|InputChannelSelector]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#DynamicListOfInputChannel|DynamicListOfInputChannel]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#NodeAttributes|NodeAttributes]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#ProbabilityMapSelector|ProbabilityMapSelector]]
+
** Port: <del>[[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#TaskSelector|TaskSelector]]</del>, [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#NodeAttributes|NodeAttributes]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#ProbabilityMapSelector|ProbabilityMapSelector]]
 
** Python scripting: 10%
 
** Python scripting: 10%
  
 
* August 6th
 
* August 6th
** Port: [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#AnatomicalTree|AnatomicalTree 50%]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#AtlasToInputRegistration|AtlasToInputRegistration]]
+
** Port: [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#AnatomicalTree|AnatomicalTree 50%]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#AtlasToInputRegistration|AtlasToInputRegistration]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#Segmentation_Mode|Segmentation_Mode]],[[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#InputChannel_selector|InputChannelSelector]], [[Projects:ARRA:SlicerEM:Developer:WidgetsToPort#DynamicListOfInputChannel|DynamicListOfInputChannel]]
 
** Panel: '''Define preprocessing''',  '''Define Task''', '''Define Input Channel''' (static version)
 
** Panel: '''Define preprocessing''',  '''Define Task''', '''Define Input Channel''' (static version)
 
** Python scripting: 50%
 
** Python scripting: 50%

Revision as of 15:20, 3 August 2010

Home < Projects:ARRA:SlicerEM:Developer

Back to SlicerEM page

Kitware Team

  • Sebastien Barre - Workflow manager - 50%
  • Julien Finet - Chart/Plot export - work in // with vtkChart folks - 10%
  • Jean-Christophe Fillion-Robin (Project Lead) - Infrastructure / Python - 50%
  • Danielle Pace - Workflow manager - 100%

Unassigned Items

lists tasks that need to be done

Work in Progress

Kilian

current week - week 3
week 2
week 1
Review list of widget and prioritize.

Sebastien

Work with Danielle on the workflow manager

Julien

Current week - Week 3
Week 2
Marcus (Kitware Inc.) has finished a pass on the design of vtkCharts (VTK trunk).
A local branch (github.com/finetjul/VTK) has been forked.
Added minor improvements/bug fixes into the VTK charts (on wait for contributing back to VTK trunk).
Week 1
Discuss with vtkChart folks and see how existing CTK Charting [1] classes can be moved to VTKChart [2]

Jc

Current week - Week 3
Define a clear agenda for the August 9th meeting
Design static UI panel
Port dynamic list of Input Channels to Qt. See DynamicListOfInputChannel
Week 2
Update QtModule to use EMSegment libraries. See 14250, 14251
Setup a priority list for the widget for Kilian to edit. See List of widget to prioritize
Updated logic to initialize properly. See 14353
Design static UI panel
Created corresponding UI files, header and cxx files. See 14350
Port Task selector to Qt. See TaskSelector
Week 1
Create initial directory structure and QtModule skeleton. See 14138
Review UI - Added help and button (next, back, etc..) See 14195
Write down Developer page
Milestones for project at next weeks meeting. See Projects:ARRA:SlicerEM:Developer#Milestones
Review which widgets should be converted. See Projects:ARRA:SlicerEM:Developer:WidgetsToPort
Convert EMSegment/{Algorithm,Graph,MRML,Registration} to shared library. See 14245, 14428, 14258

Danielle

Current week - Week 3
ctkWorkflowWidgets based on QDialog
support in Qt Designer
testing for ctkWorkflowManager / ctkWorkflowStep / ctkWorkflowWidget
example for using the workflow manager
clean up code for ctkWorkflowManagerWorkflowWidgetTest
jumping directly to "finish" state
specify validation/showUI/hideUI functions via callback
incorporate with Qt designer
allow user to set layouts instead of hard-coding the layout type
workflow widget based on a dialog box
Week 2
Develop the skeleton / API of the ctkWorkflowManager / ctkWorkflowStep / ctkWorkflowWidget
Implement core functionality of ctkWorkflowManager / ctkWorkflowStep / ctkWorkflowWidget
ctkWorkflowWidget convenience class with integrated Back/Next/Finish buttons
Clean up code, documentation - See WorkflowManager
Week 1
Get familiar with Git and how to contribute to CTK
Evaluate QtStateMachine and identify what are its limitation

Team meeting

lists the team meeting and includes a pointer to the associated notes

Coming

Past

Milestones

Please note that the current list may be refined

  • July 16th
    • Create QtModule skeleton
    • Write developer documentation
  • July 23th
    • Factor out EMSegment{Algorithm, Graph, MRML, Registration} libraries
    • Workflow manager: Class skeletons (ctkWorkflowManager, ctkWorkflowStep)
  • August 13th
    • Port: AnatomicalTree 100%, IntensityDistribution
    • Workflow manager: Start integration with Static UI Panel
    • Panel: Define Anatomical tree, Edit registration parameter, Specify intensity distribution (without Manual sampling)
    • Python scripting: 75%
  • August 20th
    • Port: WeightEditor
    • Panel: Integrate Manual sampling to Define Anatomical tree panel
    • Python scripting: 100%
  • September 3rd
    • Port: VOIEditor
    • Panel:Run segmentation
    • Green dashboard expected
  • September 10th
    • Polish
    • Review Doxygen, Style

Project components

Development environment

Contributing to CTK

  • Each developer should fork CTK official repository (github.com/commontk/CTK). Doing so will allow to:
    • backup its work before integration with CTK master.
    • publish and share its work
  • WorkflowManager code should be added to ctkWorkflowManager branch.

Working on Slicer / CTK in parallel

  • Step1: Build slicer following these instruction. Enable both Slicer3_USE_KWWIDGETS and Slicer3_USE_QT.
  • Step2: Create a github user [4] and fork CTK (http://github.com/commontk/CTK).
  • Step3: Build CTK - See these instructions - Consider also the instruction below to configure CTK as expected by Slicer
    • Make sure you set the following options
      • PluginFramework should be disable: CTK_LIB_PluginFramework:BOOL=OFF and CTK_PLUGIN_org.commontk.eventbus:BOOL=OFF
      • Enable VTK: CTK_LIB_Visualization/VTK/Widgets:BOOL=ON, VTK_DIR:PATH=<SlicerVTK_Binary_DIR>
cd MyProjects
git clone http://github.com/me/CTK
mkdir CTK-Superbuild
cd CTK-Superbuild
ccmake -DCTK_LIB_PluginFramework:BOOL=OFF -DCTK_PLUGIN_org.commontk.eventbus:BOOL=OFF -DCTK_LIB_Visualization/VTK/Widgets:BOOL=ON -DVTK_DIR:PATH=/home/me/MyProjects/Slicer3-SuperBuild/VTK-build ../CTK
make
  • Step4: Re-configure slicer4 passing CTK_DIR
cd MyProjects/Slicer3-Superbuild
ccmake -DCTK_DIR:PATH=/home/me/MyProjects/CTK-Superbuild .

EMSegment source code

  • The name of the Qt module is EMSegment.
  • The associated source code, hosted on slicer3 repository (trunk) is located in the following directory: <SRC>/QTModules/EMSegment
  • Every commit related to EMSegment should be prefixed with either:
    • ENH: EMSegment - <Message summary>
    • COMP: EMSegment - <Message summary>
    • BUG: EMSegment - <Message summary>
    • STYLE: EMSegment - <Message summary>

Coding Style

Future idea / improvements