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

From NAMIC Wiki
Jump to: navigation, search
(Created page with '= EMSegmenter in Slicer4 = == TODO == * <strike>untie KWWidgets from EMSegment base</strike> * <strike>untie KWWidgets from EMSegment commandline tool</strike> * <strike>create…')
 
 
(24 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
* <strike>untie KWWidgets from EMSegment commandline tool</strike>
 
* <strike>untie KWWidgets from EMSegment commandline tool</strike>
 
* <strike>create EMSegment4 as an extension for Slicer4</strike>
 
* <strike>create EMSegment4 as an extension for Slicer4</strike>
** include the commandline tool in the extension (Problem: infrastructure is not ready yet)
+
** <strike>include the commandline tool in the extension (Problem: infrastructure is not ready yet)</strike>
 
* <strike>Merge old EMSegment4 and the new extension all in Slicer3 repository</strike>
 
* <strike>Merge old EMSegment4 and the new extension all in Slicer3 repository</strike>
 
* <strike>introduce Slicer Common Interface (SCI) which holds functionality which is different between Slicer3 and Slicer4 but provides the same API for both</strike>
 
* <strike>introduce Slicer Common Interface (SCI) which holds functionality which is different between Slicer3 and Slicer4 but provides the same API for both</strike>
 
** <strike>provide EMSegment3 functionality in the SCI</strike>
 
** <strike>provide EMSegment3 functionality in the SCI</strike>
** provide EMSegment4 functionality in the SCI (work in progress)
+
** <strike>provide EMSegment4 functionality in the SCI (work in progress)</strike>
 
* update EMSegment4 Qt Gui
 
* update EMSegment4 Qt Gui
 +
* provide nightly extension builds
  
 
=== Slicer Common Interface (SCI) ===
 
=== Slicer Common Interface (SCI) ===
Line 35: Line 36:
 
| GetTclNameFromPointer  
 
| GetTclNameFromPointer  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>
 
|-
 
|-
 
| RegisterObjectWithTcl  
 
| RegisterObjectWithTcl  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>
 
|-
 
|-
 
| GetApplicationTclName  
 
| GetApplicationTclName  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>
 
|-
 
|-
 
| InitializePythonViaTcl  
 
| InitializePythonViaTcl  
Line 51: Line 52:
 
| EvaluatePython  
 
| EvaluatePython  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>
 
|-
 
|-
 
| GetTemporaryDirectory  
 
| GetTemporaryDirectory  
Line 67: Line 68:
 
| SetApplicationBinDir  
 
| SetApplicationBinDir  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>obsolete</font>  
 
|-
 
|-
 
| GetHTTPHandler  
 
| GetHTTPHandler  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>  
 
|-
 
|-
 
| PromptBeforeExitOff  
 
| PromptBeforeExitOff  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>  
 
|-
 
|-
 
| DestroySlicerApplication  
 
| DestroySlicerApplication  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>
 
|-
 
|-
 
| AddDataIOToScene  
 
| AddDataIOToScene  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>  
 
|-
 
|-
 
| RemoveDataIOFromScene  
 
| RemoveDataIOFromScene  
 
| <font color='green'>DONE</font>  
 
| <font color='green'>DONE</font>  
| <font color='red'>open</font>
+
| <font color='green'>DONE</font>  
 
|}
 
|}
 +
 +
=== EMSegment GUI in Qt ===
 +
 +
Wizard steps
 +
* Step1: Define Task
 +
** <strike>create new task functionality</strike>
 +
** <strike>all done</strike>
 +
* Step2: Define input channels
 +
** <strike>in Simple mode show dynamic frame</strike>
 +
** <strike>all done</strike>
 +
* Step3: Define anatomical tree
 +
** <strike>qt widget does not support creating subclasses yet</strike>
 +
** <strike>all done</strike>
 +
* Step4: Define Atlas
 +
** <strike>qt widget supports parcellation maps</strike>
 +
** <strike>all done</strike>
 +
* Step5: Edit Registration parameters
 +
** <strike>problem: show input channels-volume map does not work yet</strike>
 +
** <strike>all done</strike>
 +
* <font color='orange'>Step6: Dynamic frame</font>
 +
** '''support for dynamic textedits'''
 +
* Step7: Specify Intensity Distributions
 +
** <strike>manual sampling</strike>
 +
** <strike>all done</strike>
 +
* Step8: Edit node-based parameters
 +
** <strike>advanced GUI not done yet</strike>
 +
** <strike>all done</strike>
 +
* Step9: Define Misc. Parameters
 +
** <strike>all done</strike>
 +
 +
In general:
 +
*<strike>segmentation call not hooked up yet</strike>
 +
*<font color='red'>Extension infrastructure</font>
 +
*<font color='red'>Testing and bug fixing</font>
 +
 +
=== Open issues reported by Kilian ===
 +
 +
* "Attempt to go to the finish step succeeded" message when clicking segment
 +
** this is a ctk error
 +
* step 3: <strike>reduce size of probability map fields</strike> (not possible)
 +
* step 7: <strike>"Plot distribution" functionality</strike>
 +
* step 7: <strike>incorrect mean in manual sampling mode (found the cause I think)</strike>
 +
* step 7: <strike>incorrect reset of distribution</strike>
 +
* step 7: <strike>size of anatomical tree not optimal</strike>
 +
* <strike>step 7: remove auto-sampling</strike>
 +
* <strike>step 9: grey out forward button</strike>
 +
* <strike>put emsegmenter in category segmentation</strike>
 +
* all steps: tooltips
 +
* <strike>order task list alphabetically</strike>

Latest revision as of 21:52, 7 September 2011

Home < Projects:ARRA:SlicerEM:Slicer4

EMSegmenter in Slicer4

TODO

  • untie KWWidgets from EMSegment base
  • untie KWWidgets from EMSegment commandline tool
  • create EMSegment4 as an extension for Slicer4
    • include the commandline tool in the extension (Problem: infrastructure is not ready yet)
  • Merge old EMSegment4 and the new extension all in Slicer3 repository
  • introduce Slicer Common Interface (SCI) which holds functionality which is different between Slicer3 and Slicer4 but provides the same API for both
    • provide EMSegment3 functionality in the SCI
    • provide EMSegment4 functionality in the SCI (work in progress)
  • update EMSegment4 Qt Gui
  • provide nightly extension builds

Slicer Common Interface (SCI)

The Slicer Common Interface is a class with a unified API for Slicer3 and Slicer4 which includes functionality which has to be realized differently among the two Slicer versions.

Progress

Task Slicer3 Slicer4
GetTclInterpeter DONE obsolete
SourceTclFile DONE DONE
EvaluateTcl DONE DONE
GetTclNameFromPointer DONE DONE
RegisterObjectWithTcl DONE DONE
GetApplicationTclName DONE DONE
InitializePythonViaTcl DONE obsolete
EvaluatePython DONE DONE
GetTemporaryDirectory DONE DONE
GetBinDirectory DONE DONE
GetRepositoryRevision DONE DONE
SetApplicationBinDir DONE obsolete
GetHTTPHandler DONE DONE
PromptBeforeExitOff DONE DONE
DestroySlicerApplication DONE DONE
AddDataIOToScene DONE DONE
RemoveDataIOFromScene DONE DONE

EMSegment GUI in Qt

Wizard steps

  • Step1: Define Task
    • create new task functionality
    • all done
  • Step2: Define input channels
    • in Simple mode show dynamic frame
    • all done
  • Step3: Define anatomical tree
    • qt widget does not support creating subclasses yet
    • all done
  • Step4: Define Atlas
    • qt widget supports parcellation maps
    • all done
  • Step5: Edit Registration parameters
    • problem: show input channels-volume map does not work yet
    • all done
  • Step6: Dynamic frame
    • support for dynamic textedits
  • Step7: Specify Intensity Distributions
    • manual sampling
    • all done
  • Step8: Edit node-based parameters
    • advanced GUI not done yet
    • all done
  • Step9: Define Misc. Parameters
    • all done

In general:

  • segmentation call not hooked up yet
  • Extension infrastructure
  • Testing and bug fixing

Open issues reported by Kilian

  • "Attempt to go to the finish step succeeded" message when clicking segment
    • this is a ctk error
  • step 3: reduce size of probability map fields (not possible)
  • step 7: "Plot distribution" functionality
  • step 7: incorrect mean in manual sampling mode (found the cause I think)
  • step 7: incorrect reset of distribution
  • step 7: size of anatomical tree not optimal
  • step 7: remove auto-sampling
  • step 9: grey out forward button
  • put emsegmenter in category segmentation
  • all steps: tooltips
  • order task list alphabetically