Difference between revisions of "2016 Winter Project Week/Projects/CommonDataStructure"

From NAMIC Wiki
Jump to: navigation, search
 
(8 intermediate revisions by 2 users not shown)
Line 6: Line 6:
  
  
Add description of what is the project about and what has been done until now here.
+
The main goal of this project is to create a common data structure that will allow a better use of: Angle Plane, Easy Clip, Pick and Paint, Q3DC, Surface Registration. The data structure will allow the user to work with all of these modules at the same time and also to save and reload all his progress in the different modules.  
  
 +
For now it has been decided that the data structure will be encoded in JSON and save in the "markupFiducialNodes" thanks to the SetAttribute function. This will allow all the modules to read and modify this data structure, and save it by saving the "MRMLscene" in Slicer. After a study of all modules, and a listing of all the useful information for each module, the data structure shown bellow (schematic description) as been created.
 +
 +
Finally the modification of the modules has started with Surface Registration, Pick and Paint, and Q3DC.
 +
 +
Here is an exemple of the data structure encoded in JSON: https://gist.github.com/jbvimort/47fc5783a3c85a041c66
 +
 +
Here is an exemple of how the new data structure is used: https://gist.github.com/jbvimort/a4401a77299eb6823bc9
 
==Key Investigators==
 
==Key Investigators==
 
 
* Françoi Budin, University of North Carolina
 
* Françoi Budin, University of North Carolina
 
* Lucia Cevidanes, University of Michigan
 
* Lucia Cevidanes, University of Michigan
 
* Beatriz Paniagua, University of North Carolina
 
* Beatriz Paniagua, University of North Carolina
* Steeve Pieper, Isomics
+
* Steeve Pieper, Isomics, Inc.
* Juan Carlos Prieto, University of north Carolina
+
* Juan Carlos Prieto, University of North Carolina
 
* Jean-Baptiste Vimort, University of Michigan
 
* Jean-Baptiste Vimort, University of Michigan
  
 
==Project Description==
 
==Project Description==
<div style="margin: 20px;">
+
{| class="wikitable"
<div style="width: 27%; float: left; padding-right: 3%;">
+
! style="text-align: left; width:27%" |  Objective
<h3>Objective</h3>
+
! style="text-align: left; width:27%" |  Approach and Plan
* Create a common data structure that will allow a better use of: Angle Plane, Easy Clip, Pick and Paint, Q3DC, Surface Registration.
+
! style="text-align: left; width:27%" |  Progress and Next Steps
* The data structure will allow the user to work with all of these modules at the same time.
+
|- style="vertical-align:top;"
* The data structure will also allow the user to save and reload all his progress in the different modules.
+
|
* I plan to do blablablabla during project week.
+
<!-- Objective bullet points -->
</div>
+
* Finalize the data structure implementation.
<div style="width: 27%; float: left; padding-right: 3%;">
+
* Work on OA tracker, which will allow to regroup several modules for an easiest use by the user.
<h3>Approach, Plan</h3>
+
|
* Find a way to share the data structure between modules and save it.
+
<!-- Add a bulleted list of key points -->
* Identify the useful information and create the data structure.
+
* Finish to adapt the new data structure to Easy Clip and Angle Planes.
* Modify all the modules to make them work with the new data structure.
+
* Check that all the modules listed before works correctly together thanks to the new data structure.
*  
+
* Identify the better way to implement OA tracker.
</div>
+
|
<div style="width: 27%; float: left; padding-right: 3%;">
+
<!-- Fill this out at the end of Project Week; describe what you did this week and what you plan to do next -->
<h3>Progress</h3>
+
* Correction of some bugs in the encoding and decoding of the data structure.
* This is to be filled during project week.
+
* Beginning of the implementation of the new data structure in AnglePlanes.
* It has been decided that the data structure will be encoded in JSON and save in the "markupFiducialNodes" thanks to the SetAttribute function. This will allow all the modules to read and modify this data structure, and save it by saving the "MRMLscene" in Slicer.
+
|}
* After a study of all modules, and a listing of all the useful information for each module, the data structure shown bellow (schematic description) as been created.
 
* The modification of the modules has started with Surface Registration, Pick and Paint, and Q3DC.
 
</div>
 
</div>
 

Latest revision as of 03:10, 8 January 2016

Home < 2016 Winter Project Week < Projects < CommonDataStructure


The main goal of this project is to create a common data structure that will allow a better use of: Angle Plane, Easy Clip, Pick and Paint, Q3DC, Surface Registration. The data structure will allow the user to work with all of these modules at the same time and also to save and reload all his progress in the different modules.

For now it has been decided that the data structure will be encoded in JSON and save in the "markupFiducialNodes" thanks to the SetAttribute function. This will allow all the modules to read and modify this data structure, and save it by saving the "MRMLscene" in Slicer. After a study of all modules, and a listing of all the useful information for each module, the data structure shown bellow (schematic description) as been created.

Finally the modification of the modules has started with Surface Registration, Pick and Paint, and Q3DC.

Here is an exemple of the data structure encoded in JSON: https://gist.github.com/jbvimort/47fc5783a3c85a041c66

Here is an exemple of how the new data structure is used: https://gist.github.com/jbvimort/a4401a77299eb6823bc9

Key Investigators

  • Françoi Budin, University of North Carolina
  • Lucia Cevidanes, University of Michigan
  • Beatriz Paniagua, University of North Carolina
  • Steeve Pieper, Isomics, Inc.
  • Juan Carlos Prieto, University of North Carolina
  • Jean-Baptiste Vimort, University of Michigan

Project Description

Objective Approach and Plan Progress and Next Steps
  • Finalize the data structure implementation.
  • Work on OA tracker, which will allow to regroup several modules for an easiest use by the user.
  • Finish to adapt the new data structure to Easy Clip and Angle Planes.
  • Check that all the modules listed before works correctly together thanks to the new data structure.
  • Identify the better way to implement OA tracker.
  • Correction of some bugs in the encoding and decoding of the data structure.
  • Beginning of the implementation of the new data structure in AnglePlanes.