Difference between revisions of "User:Naucoin"

From NAMIC Wiki
Jump to: navigation, search
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<graphviz border='frame' format='svg'>
+
== NCIGT notes ==
strict digraph G {
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 EnterEvent" [ label = "EnterEvent" ];
+
To be moved to the NCIGT wiki once I get an account.
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
<!--
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
===Projects===
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
==== 4D support in Slicer4 ====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
=====Deliverables: =====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
Goal:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
Once a 4D data set is loaded into Slicer4, be able to apply operations to all volumes in a series.
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* have a slider to inspect the volumes in a series, when move it: update the 2D slice windows, have volume rendering update as well
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* pick fg/bg series
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* update the volume container as data comes in from realtime capture
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
===== Milestones and Progress =====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* June 2011:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 3: set up development environment and working relationships
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 LeaveEvent" [ label = "LeaveEvent" ];
+
** June 10: add and test volume hierarchy nodes
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 EnterEvent" [ label = "EnterEvent" ];
+
** June 17: prepare a report on scope of infrastructure changes needed in Slicer4 to support 4D data (CLI, node selectors, calling modules from anywhere)
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 24: NAMIC summer project week: Multivolume Container breakout session
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 30: add scene model for volume hierarchy nodes (assuming that's the result of the project week breakout discussions)
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* July 2011
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 8: continue work on Qt scene model and tree widget for volume hierarchies
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 15: enhance Volumes module to work with multi volume containers
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 22: continue work on Volumes module
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 29: continue work on Volumes module: slider
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* August 2011
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 5: continue work on Volumes module: fg/bg selection
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 12: start integration with Volume Rendering
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 19: continue integration with Volume Rendering
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 26: continue integration with Volume Rendering
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 LeaveEvent" [ label = "LeaveEvent" ];
+
* Sept 2011
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 EnterEvent" [ label = "EnterEvent" ];
+
** Sept 2: start work on batch processing over series
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 9: continue work on batch processing over series
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 16: continue work on batch processing over series
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 23: vacation week
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 30: continue work on batch processing over series
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* Oct 2011:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 7: real time update
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 14: continue work on real time update
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 21: Demonstrate current state of project
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 28: Incorporate suggestions from demo
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 31: Final documentation and wrap up
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
==== PACS/DICOM ====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
===== Deliverables: =====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* Browse 4D Ultrasounds data from the AMIGO PACS, then load into Slicer4 for visualisation.
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
===== Milestones and Progress =====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* June 2011:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 3: Familiarization with BrainLab, set up development environment and working relationships, sign up for access to ctkDICOM code
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 10: Familiarization with ctkDICOM, define areas for enhancement
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 17: Testing of ctkDICOM browser.
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 24: NAMIC summer project week: ctkDICOM to be working (Steve)
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** June 30: Get 3D MRI from a PACS system and into Slicer and Brainlab in a user friendly way
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* July 2011 (to be made more detailed)
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 8: Begin expanding ctkDICOM browser to 4D
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** July 15: continue work on ctkDICOM browser
  vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 LeaveEvent" [ label = "LeaveEvent" ];
+
** July 22: continue work on ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 EnterEvent" [ label = "EnterEvent" ];
+
** July 29: continue work on ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* August 2011
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 5: demonstrate current state of ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** August 12: incorporate results of demo into ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 LeaveEvent" [ label = "LeaveEvent" ];
+
** August 19: continue work on ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 EnterEvent" [ label = "EnterEvent" ];
+
** August 26: continue work on ctkDICOM browser
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* Sept 2011
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 2: Test in AMIGO
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 9: Bug fixing after test in AMIGO
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 16: continue bug fixing
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 23: vacation week
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Sept 30: Prepare for demonstration in AMIGO
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* Oct 2011:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 7: Demonstration in AMIGO
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 14: Incorporate feedback from demo
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 21: Incorporate feedback from demo
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 28: Incorporate feedback from demo
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** Oct 31: Final documentation and wrap up
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
===Meeting Notes===
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
====May 26/11: ctkDICOM====
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
 
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
Talked with Steve Pieper about current state of CTK DICOM project.
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::gridSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* [http://www.commontk.org/index.php/CTK-Hackfest-Feb-2011#ctkDICOM ctkDICOM]
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::SliceSWidget::crosshairSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
* the layers of software start at the bottom with dcmtk then there's a CTK layer then Slicer
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 MouseMoveEvent" [ label = "MouseMoveEvent" ];
+
** there is an exe called ctkdicom, which is a wrapper around ctkdicom app widget, can instantiate that from the python console in Slicer4:
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget0 processEvent vtkTemp1991 LeaveEvent" [ label = "LeaveEvent" ];
+
  c = ctk.ctkDICOMAppWidget()
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 EnterEvent" [ label = "EnterEvent" ];
+
  c.show()
vtkSlicerSliceGUI -> "::SWidget::ProtectedCallback ::sliceSWidget2 processEvent vtkTemp2145 LeaveEvent" [ label = "LeaveEvent" ];
+
* can import a dicom dir, setting the flag to copy on import will copy the files to a local directory
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node auto win level was modified"" [ label = "22000" ];
+
* query will let you set up a server.
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
**Storage AETitle needs to work. When taking a scan, Slicer listens, the scanner tech pushes send and it moves into Slicer
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
* export lets you save the dicom database to a local direcotry
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeNode [ label = "ModifiedEvent" ];
+
* send pushes to PACS
vtkMRMLDiffusionTensorVolumeNode -> vtkSlicerVolumeHeaderWidget [ label = "17000" ];
+
** PACS has to know about Slicer before it will send files, so need AETitle and Port set
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkSlicerSliceLayerLogic [ label = "ModifiedEvent" ];
+
* to add: node to control access/query to the local DB
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
* Goal for the Summer 2011 NAMIC Project week: be able to get data from a PACS, into the ctkDICOM browser and from there into Slicer
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
 
vtkSlicerSliceLayerLogic -> vtkSlicerSliceLogic [ label = "ModifiedEvent" ];
+
====May 25/11: Kickoff====
vtkMatrix4x4 -> vtkMRMLLinearTransformNode [ label = "ModifiedEvent" ];
+
 
vtkMRMLLinearTransformNode -> vtkMRMLModelNode [ label = "15000" ];
+
Initial meeting with Noby to frame the project:
vtkPolyData -> vtkMRMLModelNode [ label = "ModifiedEvent" ];
+
 
vtkSlicerSliceLogic -> vtkSlicerSliceControllerWidget [ label = "ModifiedEvent" ];
+
* 4D Ultrasound is not supported in current 4D Image code
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node was modified"" [ label = "ModifiedEvent" ];
+
* he proposes I work 2 days/week on it, from June 1 to Oct 31
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeNode [ label = "ModifiedEvent" ];
+
** this works out to about 24 days per project (maybe a day less depending on how split the days of the week)
vtkMRMLDiffusionTensorVolumeNode -> vtkSlicerVolumeHeaderWidget [ label = "17000" ];
+
* looking at data that's 3D + time, for 3D ultrasounds, MR, CT, etc
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkSlicerSliceLayerLogic [ label = "ModifiedEvent" ];
+
** record/visualise in Slicer, have a slider to inspect the volumes, update the 2D slice windows, pick fg/bg, have volume rendering update as well
vtkSlicerSliceLayerLogic -> vtkSlicerSliceLogic [ label = "ModifiedEvent" ];
+
** handle the data as a chunk so can iterate over it and apply processing algorithms
vtkMatrix4x4 -> vtkMRMLLinearTransformNode [ label = "ModifiedEvent" ];
+
* update the volume container as data comes in from realtime capture
vtkMRMLLinearTransformNode -> vtkMRMLModelNode [ label = "15000" ];
+
* Laurent Chauvin did a simulation and a basic implementation
vtkPolyData -> vtkMRMLModelNode [ label = "ModifiedEvent" ];
+
* To generalise, it can expand to 4D+, using other parameters than time, but a play button doesn't mean much then, so focus on time for now
vtkSlicerSliceLogic -> vtkSlicerSliceControllerWidget [ label = "ModifiedEvent" ];
+
* work with Alex to make this available with volume rendering with 4D ultrasound
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node was modified"" [ label = "ModifiedEvent" ];
+
* second project: PACS DICOM database.
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node auto win level was modified"" [ label = "22000" ];
+
** have PET, CT, MRI, US all going into a PACS DICOM database, SQL lite + dcmtk
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
** Steve working on a CTK DICOM browser
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
** have a DICOM interface to Slicer, can keep a local copy of the data
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeNode [ label = "ModifiedEvent" ];
+
** Laurent working on 4DUS, work with him on that part
vtkMRMLDiffusionTensorVolumeNode -> vtkSlicerVolumeHeaderWidget [ label = "17000" ];
+
** Junichi is working on the OpenIGTLink
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkSlicerSliceLayerLogic [ label = "ModifiedEvent" ];
+
** Nicholas is from a company (AZE?), working to get a PACS SQL DICOM system up and running. Interns there can work on this, they welcome open source, and have written a tutorial
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
* define milestones/deliverables
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeDisplayNode [ label = "ModifiedEvent" ];
+
* he's meeting Laurent and Nicholas at Tuesday 3pm at the SPL every week
vtkSlicerSliceLayerLogic -> vtkSlicerSliceLogic [ label = "ModifiedEvent" ];
+
** I have a tcon 4-5pm every Tuesday, and an informal meeting with Alex and Steve 2-3.
vtkMatrix4x4 -> vtkMRMLLinearTransformNode [ label = "ModifiedEvent" ];
+
** do pair coding with Junichi like I am with Daniel
vtkMRMLLinearTransformNode -> vtkMRMLModelNode [ label = "15000" ];
+
* be visible near the AMIGO system so that the clinicians can see me and interact with me to get feedback
vtkPolyData -> vtkMRMLModelNode [ label = "ModifiedEvent" ];
+
** Roland will be the AMIGO expert, talk to him about implementing it in the suite
vtkSlicerSliceLogic -> vtkSlicerSliceControllerWidget [ label = "ModifiedEvent" ];
+
* 1st month, MRI->PACS->Slicer and Brainlab with minimal user intervention
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node was modified"" [ label = "ModifiedEvent" ];
+
* IGT wiki or namic for progress reports (requested user account nicole on IGT wiki)
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkMRMLDiffusionTensorVolumeNode [ label = "ModifiedEvent" ];
+
* make something demonstratable, eventually working in AMIGO
vtkMRMLDiffusionTensorVolumeNode -> vtkSlicerVolumeHeaderWidget [ label = "17000" ];
+
-->
vtkMRMLDiffusionTensorVolumeDisplayNode -> vtkSlicerSliceLayerLogic [ label = "ModifiedEvent" ];
+
 
vtkSlicerSliceLayerLogic -> vtkSlicerSliceLogic [ label = "ModifiedEvent" ];
+
== Widgets Slicer wish list ==
vtkMatrix4x4 -> vtkMRMLLinearTransformNode [ label = "ModifiedEvent" ];
+
===Updating Fiducial list to vtkSeedWidget===
vtkMRMLLinearTransformNode -> vtkMRMLModelNode [ label = "15000" ];
+
Notes from talking with Karthik, Oct 7/08
vtkPolyData -> vtkMRMLModelNode [ label = "ModifiedEvent" ];
+
 
vtkSlicerSliceLogic -> vtkSlicerSliceControllerWidget [ label = "ModifiedEvent" ];
+
Features needed:
vtkMRMLDiffusionTensorVolumeDisplayNode -> "puts "the display node was modified"" [ label = "ModifiedEvent" ];
+
 
}
+
* Ability to set properties per seed
</graphviz>
+
* Ability to associate a label with a seed.
 +
* Label visibility can be toggled on/off
 +
* Ability to associate (optionally) a note with a seed (Ron's request)
 +
* Glyps for seed shape
 +
** 2D
 +
*** All the ones in vtkGlyph2D
 +
*** StarBurst2D,
 +
** 3D
 +
*** Sphere3D
 +
*** Diamond3D
 +
* Nicole to check if transform is applied to the fiducials in slicer registration. Really bad idea to do so with widgets.
 +
 
 +
=== Distance measurement widget ===
 +
* Need distance measurement between two fiducials in 3D
 +
* Current distance widget in VTK is 2D. Line widget is 3D but does not report distance, ticks, labels etc. Either extend former or latter ?
 +
 
 +
=== Angle measurement ===
 +
* Angle between 3 fiducials in 3D
 +
* Angle widget in VTK is Actor2D. Need to extend that
 +
 
 +
=== Affine widget ===
 +
* Mega widget (will take time)
 +
* 6 degrees of freedom.
 +
 
 +
=== Live wire widget ===
 +
* Live wire widget for the editor
 +
* Exists in VTK HEAD Sep 08. Upgrade from VTK 5.2
 +
 
 +
=== Contour widget (just a wish, not urgent) ===
 +
* Use case: Pick a series of models to place in a hierarchy
 +
* Lasso around a bunch of objects in 3D
 +
 
 +
=== VTKEdge ===
 +
* Steve and Will to talk about VTKEdge, licensing etc.
 +
* Paintbrushes in VTKEdge
 +
* GPU ray caster
 +
 
 +
=== Picking issue with widgets ===
 +
* Bug picking implicit plane widget.
 +
** Note to KK: Look at SlicerPlaneSWidget.tcl:75
 +
 
 +
==Testing 3.2==
 +
Testing [http://wiki.na-mic.org/Wiki/images/2/25/ImageGuidedTherapyPlanning.pdf ImageGuidedTherapyPlanning.pdf] using [http://www.na-mic.org/Slicer/Download/Release/linux-x86_64/Slicer3-3.2.2008-07-29-linux-x86_64.tar.gz Slicer3.2 for linux64] on SPL workstation b2-d4_10.
 +
Bugs in bold, usability issue in italics, regular text for changes to the tutorial.
 +
 
 +
* page 19: center 3d button needs new screen capture
 +
* page 31/31: missing "Set the foreground volume to language_FMRI", missing '-' in name of anatomical-MRI
 +
* page 43: don't need to create new command line module
 +
* page 46: select the registration transform: if there's room, could give the name
 +
* page 54: '''manual threshold is slow, doesn't update each time'''
 +
* page 60: don't need to create a new fid list, one is created automatically when you put down the first point
 +
* page 68: see comment page 43, plus, could highlight the progress bar with a red circle or the Status area where Completed will show up
 +
* page 70: see comment page 43
 +
* page 76: add "Open Hierarchy and Display pane"
 +
* page 88: background should be to anatomical-MRI not anatomicalMRI that you just loaded
 +
* page 90: extra space in "anatomical MRI"
 +
* page 91: again, confusion wrt "-" in anatomicalMRI name
 +
* page 101: see comment page 43
 +
* page 107: win/level not updated? no, the first one that comes up in the slice windows is just the baseline and has different values (mostly white)
 +
* page 113: doesn't look quite the same in my test, more noise. Add "fit to window"
 +
* page 114: my slice views already look like page 115
 +
* page 120: see comment page 60
 +
* page 126: '''turning off the glyphs made the slices go black in 2d, mouse over brought them back'''
 +
* page 134: ''dragging nodes is non intuitive, you have to drag the nodes over the transform to get them to go under it, it seems that you should be able to drag the node anywhere under it (over another node under the transform)''
 +
* page 136 and 135: missing dash in anatomicalMRI name
 +
* page 137: '''when click on foreground layer to show fmri, the 2d slices update with the proper opacity right away, but the 3d view needs a mouse over to update'''
 +
* page 139: '''tumor model got renamed to optic_tract_L.vtk! name or ID clash when importing scene?'''
 +
* page 150: here my screen saver kicked on, and when Slicer came back, in the 2d views, '''only the fiducial was visible until I moused over, then the volumes became visible again. If I make the fiducial invisible, the 2d view operates as expected''' (Ron reported this as [http://www.na-mic.org/Bug/view.php?id=291 bug 291])

Latest revision as of 19:09, 22 June 2011

NCIGT notes

To be moved to the NCIGT wiki once I get an account.

Widgets Slicer wish list

Updating Fiducial list to vtkSeedWidget

Notes from talking with Karthik, Oct 7/08

Features needed:

  • Ability to set properties per seed
  • Ability to associate a label with a seed.
  • Label visibility can be toggled on/off
  • Ability to associate (optionally) a note with a seed (Ron's request)
  • Glyps for seed shape
    • 2D
      • All the ones in vtkGlyph2D
      • StarBurst2D,
    • 3D
      • Sphere3D
      • Diamond3D
  • Nicole to check if transform is applied to the fiducials in slicer registration. Really bad idea to do so with widgets.

Distance measurement widget

  • Need distance measurement between two fiducials in 3D
  • Current distance widget in VTK is 2D. Line widget is 3D but does not report distance, ticks, labels etc. Either extend former or latter ?

Angle measurement

  • Angle between 3 fiducials in 3D
  • Angle widget in VTK is Actor2D. Need to extend that

Affine widget

  • Mega widget (will take time)
  • 6 degrees of freedom.

Live wire widget

  • Live wire widget for the editor
  • Exists in VTK HEAD Sep 08. Upgrade from VTK 5.2

Contour widget (just a wish, not urgent)

  • Use case: Pick a series of models to place in a hierarchy
  • Lasso around a bunch of objects in 3D

VTKEdge

  • Steve and Will to talk about VTKEdge, licensing etc.
  • Paintbrushes in VTKEdge
  • GPU ray caster

Picking issue with widgets

  • Bug picking implicit plane widget.
    • Note to KK: Look at SlicerPlaneSWidget.tcl:75

Testing 3.2

Testing ImageGuidedTherapyPlanning.pdf using Slicer3.2 for linux64 on SPL workstation b2-d4_10. Bugs in bold, usability issue in italics, regular text for changes to the tutorial.

  • page 19: center 3d button needs new screen capture
  • page 31/31: missing "Set the foreground volume to language_FMRI", missing '-' in name of anatomical-MRI
  • page 43: don't need to create new command line module
  • page 46: select the registration transform: if there's room, could give the name
  • page 54: manual threshold is slow, doesn't update each time
  • page 60: don't need to create a new fid list, one is created automatically when you put down the first point
  • page 68: see comment page 43, plus, could highlight the progress bar with a red circle or the Status area where Completed will show up
  • page 70: see comment page 43
  • page 76: add "Open Hierarchy and Display pane"
  • page 88: background should be to anatomical-MRI not anatomicalMRI that you just loaded
  • page 90: extra space in "anatomical MRI"
  • page 91: again, confusion wrt "-" in anatomicalMRI name
  • page 101: see comment page 43
  • page 107: win/level not updated? no, the first one that comes up in the slice windows is just the baseline and has different values (mostly white)
  • page 113: doesn't look quite the same in my test, more noise. Add "fit to window"
  • page 114: my slice views already look like page 115
  • page 120: see comment page 60
  • page 126: turning off the glyphs made the slices go black in 2d, mouse over brought them back
  • page 134: dragging nodes is non intuitive, you have to drag the nodes over the transform to get them to go under it, it seems that you should be able to drag the node anywhere under it (over another node under the transform)
  • page 136 and 135: missing dash in anatomicalMRI name
  • page 137: when click on foreground layer to show fmri, the 2d slices update with the proper opacity right away, but the 3d view needs a mouse over to update
  • page 139: tumor model got renamed to optic_tract_L.vtk! name or ID clash when importing scene?
  • page 150: here my screen saver kicked on, and when Slicer came back, in the 2d views, only the fiducial was visible until I moused over, then the volumes became visible again. If I make the fiducial invisible, the 2d view operates as expected (Ron reported this as bug 291)