Difference between revisions of "2016 Summer Project Week/Segmentations Integration"

From NAMIC Wiki
Jump to: navigation, search
(Page created)
 
(Added progress)
 
(10 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
<gallery>
 
<gallery>
 
Image:PW-Summer2016.png|[[2016_Summer_Project_Week#Projects|Projects List]]
 
Image:PW-Summer2016.png|[[2016_Summer_Project_Week#Projects|Projects List]]
 +
Image:SegmentationHighlights01s.png|Highlights of segmentations 1
 +
Image:SegmentationHighlights02s.png|Highlights of segmentations 2
 
Image:20160526_SegmentationObject.PNG|Segmentation object
 
Image:20160526_SegmentationObject.PNG|Segmentation object
 
Image:20160526_ConversionGraph.PNG|Conversion graph for automated conversions
 
Image:20160526_ConversionGraph.PNG|Conversion graph for automated conversions
Line 12: Line 14:
 
* Andras Lasso
 
* Andras Lasso
 
* Steve Pieper
 
* Steve Pieper
 +
* Jean-Christophe Fillion-Robin (to be consulted remotely)
  
 
==Project Description==
 
==Project Description==
Line 23: Line 26:
 
** Segmentations module: Slicer module for handling segmentation nodes, various re-usable widgets, and subject hierarchy plugins
 
** Segmentations module: Slicer module for handling segmentation nodes, various re-usable widgets, and subject hierarchy plugins
 
** Segment Editor: Slicer module for editing segmentation nodes directly. Similar to Editor, but has a C++ core, and extended functionality that makes use of the advanced Segmentations features
 
** Segment Editor: Slicer module for editing segmentation nodes directly. Similar to Editor, but has a C++ core, and extended functionality that makes use of the advanced Segmentations features
** Segment Registration: Distance map based registration of segmentations (from SlicerProstate::DistanceMapBasedRegistration, integration TBD)
+
** Segment Morphology: Slicer module for performing expand/shrink and logical operations (union, intersection, subtraction) on segments. Its logic can be used in Segment Editor effects
 +
** Segment Registration (?): Distance map based registration of segmentations (from SlicerProstate::DistanceMapBasedRegistration, integration TBD)
 
* [https://www.slicer.org/slicerWiki/index.php/File:20160526_Segmentations.pptx Presentation slides] explaining the motivation, features, and details of the infrastructure
 
* [https://www.slicer.org/slicerWiki/index.php/File:20160526_Segmentations.pptx Presentation slides] explaining the motivation, features, and details of the infrastructure
 
</div>
 
</div>
Line 29: Line 33:
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
 
* Move classes into Slicer core
 
* Move classes into Slicer core
* Consider integrating vtkOrientedImageData to VTK core
+
** Convert to Slicer core coding conventions (curly brackets in line with the contained block)
 +
** vtkSegmentationCore -> vtkAddon'''?'''
 +
** Segmentations/MRML -> Libs/MRML/Core
 +
** Segmentations/MRMLDM -> Libs/MRML/DisplayableManager
 +
** Segmentations/Widgets -> MRML/Widgets'''?'''
 +
** Segmentations/EditorEffects -> '''?'''
 +
** Segmentations -> Modules/Loadable
 +
** SegmentEditor -> Modules/Scripted
 +
* Discuss possible integration vtkOrientedImageData to VTK core
 
</div>
 
</div>
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<div style="width: 27%; float: left; padding-right: 3%;">
 
<h3>Progress</h3>
 
<h3>Progress</h3>
*  
+
* Code moved from SlicerRT to Slicer core
 +
** vtkSegmentationCore to Libs/vtkAddon
 +
** Segmentations module (MRML, MRMLDM, Widgets, EditorEffects, Logic) to Modules/Loadable
 +
** SegmentEditor module to Modules/Scripted
 +
* [https://github.com/Slicer/Slicer/pull/542 Pull request] sent
 +
** Waiting for the CircleCI test to pass, then Jc's and Steve's nod
 +
* Outstanding issues
 +
** One tests fails due to usage of DICOM-RT, need to switch to a scene
 +
** Add subject hierarchy plugin for Segment Editor
 +
** Add disclaimer to Editor that there is an updated version of the module and offer a button that takes the user there
 
</div>
 
</div>
 
</div>
 
</div>

Latest revision as of 08:33, 25 June 2016

Home < 2016 Summer Project Week < Segmentations Integration

Key Investigators

  • Csaba Pinter
  • Andras Lasso
  • Steve Pieper
  • Jean-Christophe Fillion-Robin (to be consulted remotely)

Project Description

Objective

  • Integration of the Segmentation infrastructure into Slicer core
  • The infrastructure contains the following components:
    • SegmentationCore: Pure VTK implementation of the segmentation object, oriented VTK image data and utilities, and the automated conversion mechanism
    • Segmentation MRML: Segmentation MRML node, display node, storage node, displayable managers
    • Segmentations module: Slicer module for handling segmentation nodes, various re-usable widgets, and subject hierarchy plugins
    • Segment Editor: Slicer module for editing segmentation nodes directly. Similar to Editor, but has a C++ core, and extended functionality that makes use of the advanced Segmentations features
    • Segment Morphology: Slicer module for performing expand/shrink and logical operations (union, intersection, subtraction) on segments. Its logic can be used in Segment Editor effects
    • Segment Registration (?): Distance map based registration of segmentations (from SlicerProstate::DistanceMapBasedRegistration, integration TBD)
  • Presentation slides explaining the motivation, features, and details of the infrastructure

Approach, Plan

  • Move classes into Slicer core
    • Convert to Slicer core coding conventions (curly brackets in line with the contained block)
    • vtkSegmentationCore -> vtkAddon?
    • Segmentations/MRML -> Libs/MRML/Core
    • Segmentations/MRMLDM -> Libs/MRML/DisplayableManager
    • Segmentations/Widgets -> MRML/Widgets?
    • Segmentations/EditorEffects -> ?
    • Segmentations -> Modules/Loadable
    • SegmentEditor -> Modules/Scripted
  • Discuss possible integration vtkOrientedImageData to VTK core

Progress

  • Code moved from SlicerRT to Slicer core
    • vtkSegmentationCore to Libs/vtkAddon
    • Segmentations module (MRML, MRMLDM, Widgets, EditorEffects, Logic) to Modules/Loadable
    • SegmentEditor module to Modules/Scripted
  • Pull request sent
    • Waiting for the CircleCI test to pass, then Jc's and Steve's nod
  • Outstanding issues
    • One tests fails due to usage of DICOM-RT, need to switch to a scene
    • Add subject hierarchy plugin for Segment Editor
    • Add disclaimer to Editor that there is an updated version of the module and offer a button that takes the user there