Difference between revisions of "Documentation/Nightly/Modules/SubjectHierarchy"

From Slicer Wiki
Jump to: navigation, search
(Removed all information, because everething moved to the Data module)
Line 24: Line 24:
<!-- ---------------------------- -->
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Module Description}}
{{documentation/{{documentation/version}}/module-section|Module Description}}
The Subject hierarchy module acts as a central data-organizing point in Slicer. It shows all data nodes loaded into Slicer in an easy-to-explore way, and offers operations on the data nodes.<br>
<big>'''The content of the Subject Hierarchy module moved to the [[Documentation/{{documentation/version}}/Modules/Data|Data module]]'''</big>
DICOM data is automatically added as patient-study-series hierarchy. Non-DICOM data can be parsed if loaded from a local directory structure, or can be manually organized in tree structure by creating DICOM-like hierarchy or folders. Model hierarchies are automatically mirrored in subject hierarchy, so an atlas can be explored the usual way.<br><br>
Subject hierarchy provides features for the underlying data nodes, including cloning, bulk transforming, bulk show/hide, type-specific features, and basic node operations such as delete or rename. Additional plugins provide other type-specific features and general operations, see [[Documentation/Labs/SubjectHierarchy|Subject hierarchy labs page]]
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Use Cases}}
* Overview all loaded data objects in the same place, types indicated by icons
* Organize data in folders or patient/subject trees
* Visualize and bulk-handle lots of data nodes loaded from disk
* Easy show/hide of branches of displayable data
* Transform whole study (any branch)
* Export DICOM data (edit DICOM tags)
* Lots of type-specific functionality offered by the plugins
<!-- ---------------------------- -->
* 2016 Jan 8th: [http://www.na-mic.org/Wiki/index.php/Winter2016TutorialContest This tutorial] demonstrates the basic usage and potential of Slicer’s data manager module Subject Hierarchy using a two-timepoint radiotherapy phantom dataset.
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Panels and their use}}
; Subject hierarchy tree
Contains all the objects in the Subject hierarchy in a tree representation
* Data loaded from '''DICOM''' are automatically added to the tree in the right structure (patient, study, series)
* '''Non-DICOM''' data also appears automatically in Subject hierarchy. There two ways are two ways to organize them in hierarchy
** 'Create hierarchy '''from loaded directory structure'''' action in the context menu of the scene (right-click on empty area, see bottom screenshot). This organizes the nodes according to the local file structure they have been loaded from.
** Drag&drop manually under a hierarchy node
** Create model or other (e.g. annotation) hierarchies, and see the same structure in subject hierarchy
* Nodes can be drag&dropped under other nodes, thus re-arranging the tree
* Basic operations (accessible in the context menu of the nodes by right-clicking them)
** '''Transform node or branch''': Double-click the cell of the node or branch to transform in the column named 'Tr', then set the desired transform. If the column is not visible, check the 'Transforms' checkbox under the tree. An example can be seen in the top screenshot at 'Day 2' study
** '''Show/hide''' node or branch: Click on the eye icon
** '''Delete''': Delete both data node and SH node
** '''Rename''': Rename both data node and SH node
** '''Clone''': Creates a copy of the selected node that will be identical in every manner. Its name will contain a '_Copy' postfix
** '''Edit properties''': If the role of the node is specified (i.e. its icon is not a question mark), then the corresponding module is opened and the node selected (e.g. Volumes module for volumes)
** '''Create child...''': Create a node with the specified type
* There are no nodes in the tree when Slicer is opened, new nodes can be added by right-clicking the empty area (or the scene item if visible)
* Roles and corresponding functions
** '''Volumes''': icon, Edit properties and additional information in tooltip
*** ''''Register this...'''' action to select fixed image for registration. Right-click the moving image to initiate registration
*** ''''Segment this...'''' action allows segmenting the volume, for example, in the Editor module
*** ''''Toggle labelmap outline display'''' for labelmaps
** '''Models''': icon, Edit properties and additional information in tooltip
** '''SceneViews''': icon, Edit properties and Restore scene view
** '''Transforms''': icon, additional tooltip info, Edit properties, Invert, Reset to identity
** Many others, such as Markups, Charts, Annotations, Tables, etc.
; Data MRML information (closed drop-down panel under the tree, visible if an item corresponding to a data node is selected)
: Displays the attributes of the data node corresponding to the currently selected subject hierarchy item. Attributes can be edited by double-clicking on an attribute name or value. The panel also shows detailed node information.
; Subject hierarchy item information
: Displays detailed information about the selected subject hierarchy item
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|How to}}
; Create new Subject from scratch
: Right-click on the empty area and select 'Create new subject'
; Create new folder
: Right-click on an existing item or the empty area and select 'Create new folder'. Folder type hierarchy item can be converted to Subject or Study using the context menu
; Rename item
: Right-click on the node and select 'Rename', or double-click the name of a node
; Apply transform on node or branch
: Double-click the cell of the node or branch to transform in the transform column (same icon as Transforms module), then set the desired transform. If the column is not visible, check the 'Transforms' checkbox under the tree.  An example can be seen in the top screenshot at Patient 2
[[File:20160512_SubjectHierarchyScreenshot.png|thumb|425px| Subject hierarchy tree]]
[[File:SlicerRT_0.13_HuntingtonsLongitudinalInSubjectHierarchy2.png|thumb|622px| Parse local data loaded from directory structures]]
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Similar Modules}}
* [[Documentation/{{documentation/version}}/Modules/Data|Data]]
<!-- ---------------------------- -->
* Additional information on [[Documentation/Labs/SubjectHierarchy|Subject hierarchy labs page]]
* Manual editing of segmentations can be done in the [http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Modules/Segmentations Segmentations module]
<!-- ---------------------------- -->
{{documentation/{{documentation/version}}/module-section|Information for Developers}}
* Code snippets accessing and manipulating subject hierarchy items can be found in the [https://www.slicer.org/wiki/Documentation/Nightly/ScriptRepository#Subject_hierarchy script repository]
* '''Implementing new plugins''': Plugins are the real power of subject hierarchy, as they provide support for data node types, and add functionality to the context menu items.<br>To create a C++ plugin, implement a child class of qSlicerSubjectHierarchyAbstractPlugin, for Python plugin see below. Many examples can be found in Slicer core and in the SlicerRT extension, look for folders named SubjectHierarchyPlugins.
** Writing plugins in '''Python''':
*** Child class of AbstractScriptedSubjectHierarchyPlugin which is a Python adaptor of the C++ qSlicerSubjectHierarchyScriptedPlugin class
*** Example: [https://github.com/Slicer/Slicer/blob/master/Modules/Loadable/Annotations/SubjectHierarchyPlugins/AnnotationsSubjectHierarchyPlugin.py Annotations] role plugin, [https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/SegmentEditor/SubjectHierarchyPlugins/SegmentEditorSubjectHierarchyPlugin.py function plugin]
** '''Role''' plugins: add support for new data node types
*** Defines: ownership, icon, tooltip, edit properties, help text (in the yellow question mark popup), visibility icon, set/get display visibility, displayed node name (if different than name of the node object)
*** Existing plugins in Slicer core: Markups, Models, SceneViews, Charts, Folder, Tables, Transforms, LabelMaps, Volumes
** '''Function''' plugins: add feature in right-click context menu for certain types of nodes
*** Defines: list of contect menu actions for nodes and the scene, types of nodes for which the action shows up, functions handling the defined action
*** Existing plugins in Slicer core: CloneNode, ParseLocalData, Register, Segment, DICOM
* [https://www.assembla.com/spaces/slicerrt/wiki/SlicerRt_naming_conventions Glossary of all the used terms in SlicerRT]
<!-- ---------------------------- -->
<!-- ---------------------------- -->
<!-- ---------------------------- -->
<!-- ---------------------------- -->

Latest revision as of 19:41, 25 April 2017

Home < Documentation < Nightly < Modules < SubjectHierarchy

For the stable Slicer documentation, visit the 4.10 page.

Introduction and Acknowledgements

Title: Subject Hierarchy
Author: Csaba Pinter (PerkLab, Queen's University)
Acknowledgements: This work is part of the SparKit project, funded by An Applied Cancer Research Unit of Cancer Care Ontario with funds provided by the Ministry of Health and Long-Term Care and the Ontario Consortium for Adaptive Interventions in Radiation Oncology (OCAIRO) to provide free, open-source toolset for radiotherapy and related image-guided interventions.
Contact: Csaba Pinter, <email>csaba.pinter@queensu.ca</email>
Cancer Care Ontario  
Software Platform and Adaptive Radiotherapy Kit  
Ontario Consortium for Adaptive Interventions in Radiation Oncology  

Module Description

The content of the Subject Hierarchy module moved to the Data module