From Slicer Wiki
Revision as of 08:06, 7 November 2016 by UpdateBot (talk | contribs) (Nightly -> 4.6)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Documentation < 4.6 < SlicerApplication < StructureSets

For the latest 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
  2. My code is located here
  3. It is a fork of SlicerRT
  4. Or perhaps Slicer
  5. Update like this:
    1. git pull 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
  6. My code is branched off of SlicerRT
    1. To rebase onto main slicer trunk, do this:
    2. git remote add slicer
    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:// Slicer-gcs
    2. git remote add gcs-slicer
    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