Difference between revisions of "2013 Project Week:SimplifyMRMLReference"

From NAMIC Wiki
Jump to: navigation, search
(Created page with '__NOTOC__ <gallery> Image:PW-SLC2013.png|Projects List <!--Image:genuFAp.jpg|Scatter plot of the original FA data through the genu of the co…')
 
Line 7: Line 7:
  
 
==Key Investigators==
 
==Key Investigators==
* Queen's: Csaba Pinter
+
* Isomics: Alex Yarmarkovich
* BWH: Andrey Fedorov?, Nicole Aucoin
 
 
* Isomics: Steve Pieper
 
* Isomics: Steve Pieper
 
+
* Andras Lasso
 +
* Kitware: Julien Finet, Jean-Christophe Fillion-Robin
  
 
<div style="margin: 20px;">
 
<div style="margin: 20px;">
Line 16: Line 16:
  
 
<h3>Objective</h3>
 
<h3>Objective</h3>
The goal is to discuss the details and implement the missing features of Patient Hierarchy
+
Slicer4 MRML node referencing mechanism needs some design improvement, as for each referenced node in each node type about 10 methods shall be added/updated manually. This is very difficult to do, often done incorrectly.
 
+
The goal is to discuss the details and design robust, simple, centralized implementation of all node reference updates for save/load, undo/redo, scene import features
 
</div>
 
</div>
  
Line 23: Line 23:
  
 
<h3>Approach, Plan</h3>
 
<h3>Approach, Plan</h3>
* TODO: Create plan when we see how much progress has been made in this issue
+
A potential solution would be to introduce a "ReferencedNodes" list, which would store pointer, ID string, node type name, and observers for each referenced node instead of adding separate member variables for these manually. This list could be fully maintained by the Copy, UpdateScene, UpdateReferenceID, UpdateReferences, ReadXMLAttributes, WriteXML, etc. methods implementation in vtkMRMLNode base class. Developers would just need to add an item to the ReferencedNodes list and all the rest would be handled by the MRML framework.
 
 
 
</div>
 
</div>
  
Line 42: Line 41:
 
==References==
 
==References==
 
* [https://www.assembla.com/spaces/slicerrt/wiki SlicerRT]
 
* [https://www.assembla.com/spaces/slicerrt/wiki SlicerRT]
* [https://www.assembla.com/spaces/slicerrt/tickets/125#/activity/ticket: Corresponding SlicerRT ticket]
+
* [https://www.assembla.com/spaces/slicerrt/tickets/125#/activity/ticket: http://www.na-mic.org/Bug/view.php?id=2727]

Revision as of 15:36, 4 January 2013

Home < 2013 Project Week:SimplifyMRMLReference

Key Investigators

  • Isomics: Alex Yarmarkovich
  • Isomics: Steve Pieper
  • Andras Lasso
  • Kitware: Julien Finet, Jean-Christophe Fillion-Robin

Objective

Slicer4 MRML node referencing mechanism needs some design improvement, as for each referenced node in each node type about 10 methods shall be added/updated manually. This is very difficult to do, often done incorrectly. The goal is to discuss the details and design robust, simple, centralized implementation of all node reference updates for save/load, undo/redo, scene import features

Approach, Plan

A potential solution would be to introduce a "ReferencedNodes" list, which would store pointer, ID string, node type name, and observers for each referenced node instead of adding separate member variables for these manually. This list could be fully maintained by the Copy, UpdateScene, UpdateReferenceID, UpdateReferences, ReadXMLAttributes, WriteXML, etc. methods implementation in vtkMRMLNode base class. Developers would just need to add an item to the ReferencedNodes list and all the rest would be handled by the MRML framework.

Progress

Not yet available

Delivery Mechanism

This work will be delivered to the NA-MIC Kit as changes in the Slicer4 core and in the SlicerRT extension


References