Difference between revisions of "Documentation/Nightly/SlicerApplication/StructureSets"

From Slicer Wiki
Jump to: navigation, search
(Prepend documentation/versioncheck template. See http://na-mic.org/Mantis/view.php?id=2887)
m (Text replacement - "https?:\/\/www.slicer.org\/slicerWiki\/index.php\/([^ ]+) " to "https://www.slicer.org/wiki/$1")
Line 19: Line 19:
=How to git=
=How to git=
# Basic tutorials
# Basic tutorials
## http://www.slicer.org/slicerWiki/index.php/Slicer3:git-svn
## https://www.slicer.org/wiki/Slicer3:git-svn## http://git.or.cz/course/svn.html
## http://git.or.cz/course/svn.html
# My code is located here
# My code is located here
## https://github.com/gregsharp/Slicer/tree/gcstest
## https://github.com/gregsharp/Slicer/tree/gcstest

Latest revision as of 14:53, 27 November 2019

Home < Documentation < Nightly < SlicerApplication < StructureSets

For the stable Slicer documentation, visit the 4.10 page.

These are Greg's development notes. Beware of inaccurate and misleading information below.


The term "structure set" is used in RT to denote a set of structures (labels) which are attached to an image. The goal of this project is to improve Slicer so it can handle overlapping structures. The following is a rough list of required functionality:

  1. Identify structureset images at load time
  2. Load structureset images
  3. Display overlapping contours in structure set
  4. Editor can switch between labelmap and structureset representation
  5. Modify editor GUI to make easier selecting current structure
  6. Save structureset images

How to git

  1. Basic tutorials
    1. https://www.slicer.org/wiki/Slicer3:git-svn## http://git.or.cz/course/svn.html
  2. My code is located here
    1. https://github.com/gregsharp/Slicer/tree/gcstest
  3. It is a fork of SlicerRT
    1. https://github.com/SlicerRt/Slicer
  4. Or perhaps Slicer
    1. https://github.com/Slicer/Slicer
  5. Update like this:
    1. git pull git@github.com:gregsharp/Slicer.git gcstest
    2. Or, because I created an alias, like this:
    3. git pull gcs gcstest
    4. The alias is made like this:
    5. git remote add gcs git@github.com:gregsharp/Slicer.git
  6. My code is branched off of SlicerRT
    1. To rebase onto main slicer trunk, do this:
    2. git remote add slicer https://github.com/Slicer/Slicer.git
    3. git pull --rebase slicer master
    4. However, this doesn't work because my fork contains all of SlicerRT, which conflicts with slicer
  7. So I make a new fork, based on slicer itself
    1. git clone git://github.com/Slicer/Slicer.git Slicer-gcs
    2. git remote add gcs-slicer git@github.com:gregsharp/gcs-slicer.git
    3. git push gcs-slicer master
    4. But this doesn't work "ERROR: Repository not found."
  8. Eventually I had to give up, and delete the repository
    1. The changes were to this file: Libs/MRML/Core/vtkMRMLVolumeArchetypeStorageNode.cxx


  1. Identifying structureset images
    1. For now, I just assume that any vector image is a structureset image
  2. Loading structureset images
    1. Images, when loaded, are sent to vtkMRMLVolumeArchetypeStorageNode::ReadData(), which decides whether the file has a scalar or vector image
    2. The type of the MRML node created is vtkMRMLVectorVolumeNode
    3. Ref: Libs/MRML/Core/vtkMRMLVolumeArchetypeStorageNode.cxx
    4. A vtkMRMLVectorVolumeDisplayNode is attached to the storage node
  3. Is an image a labelmap?
    1. This is apparently a function of the XML file, not the image
    2. vtkMRMLScalarVolumeNode::SetLabelMap()
  4. Labelmap display
    1.  ??
    2.  ??
  5. Displaying overlapping contours