Documentation/4.8/SlicerApplication/StructureSets

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.8 < SlicerApplication < StructureSets


For the latest Slicer documentation, visit the read-the-docs.


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


Introduction

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

Notes

  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