Difference between revisions of "Projects:QIN:3D Slicer Annotation Image Markup:Design and Implementation"
From NAMIC Wiki
Line 14: | Line 14: | ||
* Annotations text can be stored in the "description" field of the Slicer Annotations in the XML format, as determined by the annotation template used. | * Annotations text can be stored in the "description" field of the Slicer Annotations in the XML format, as determined by the annotation template used. | ||
* Annotations text can be formatted and visualized using HTML as a report in the Slicer Annotation description area. | * Annotations text can be formatted and visualized using HTML as a report in the Slicer Annotation description area. | ||
+ | |||
+ | Input from Justin Kirby: | ||
+ | * allow loading reports, editing, and saving again | ||
+ | * allow multiple reports per volume | ||
+ | * allow multiple observers per volume | ||
+ | * include points (use case: renal application in preparation) | ||
==Markups to be supported== | ==Markups to be supported== |
Revision as of 20:43, 26 January 2012
Home < Projects:QIN:3D Slicer Annotation Image Markup:Design and ImplementationBack to Projects:QIN:3D Slicer Annotation Image Markup
Slicer Reporting Module
Contents
Terminology
- Annotation: textual structured description of the finding. How do we differentiate those from Slicer Annotations?
- Markup: visual cues placed over the image to assign annotations to image features
Implementation considerations
- We will use existing annotation hierarchies to organize the AM. AM will be organized into findings that will be located in the hierarchy under a particular volume. Each volume can have separate findings. Each finding can be assigned to only one volume.
- We are focused on the support of markup in 2D slices; 3D view annotations are secondary.
- The functionality needed to support connection between the data and AM will be added to Slicer core. User-level interactions will be available in a separate module.
- Markup is defined relative to the active slice of the active volume. AIM/DICOM SR do not have a notion of 3D coordinate space (needs verification). Slicer annotations will be restricted to be in-slice for the use cases of this project.
- Annotations text can be stored in the "description" field of the Slicer Annotations in the XML format, as determined by the annotation template used.
- Annotations text can be formatted and visualized using HTML as a report in the Slicer Annotation description area.
Input from Justin Kirby:
- allow loading reports, editing, and saving again
- allow multiple reports per volume
- allow multiple observers per volume
- include points (use case: renal application in preparation)
Markups to be supported
These will be decided based on the existing requirements from the use cases provided by the QIN community, and based on the existing capabilities of the AIM-enabled tools (OsiriX and ClearCanvas TCGA workstation). The tentative list in the order of priorities (not finalized):
- Point
- Ruler
- 3d segmentation
GUI module design
File:SAM module GUI design.pptx
User-level (implementation level) Workflow
Creation:
- 1 choose volume being annotated ( implementation --> create corresponding node in the hierarchy, initialize slice viewers, rotate to slice plane)
- 2 select annotation template (default: finding? option to load template?) ( --> populate the GUI with the annotation template contents)
- 3 populate template ( --> NA)
- 3 scroll to the slice
- 5 add new finding into the hierarchy ( --> need to have a button to add new finding? all subsequent markups will go under that tree element)
- 6 place markups ( --> support markup type selection from slicer toolbar? add extra markups compared to Annotation module, and remove them when user leaves the module? for 2d/3d ROIs -- invoke Editor?)
- 7 assign text (annotation of annotation in AIM?) -- all go under the active annotation hierarchy node
- 8 done: save/export results ( --> Slicer save dialog? save annotation as AIM XML or as "AIM-light"? include name of the observer, creation date)
Loading:
- may distribute the template used in annotation together with the scene or not?
- if we allow editing of the annotation/markup, when saving need to update this (think about data provenance/revision history later)
Comments:
- User can switch to multiple volumes over the annotation period. This is ok, separate hierarchy element for each volume.
Implementation task list
Finalized:
- Add functionality to track the UID of the DICOM volume based on the current volume and IJK coordinates
- Add links between AM (hierarchy? finding?) and parent volume
- Start work on the module (loadable module, python GUI scripting)
- add "observer" name as a Slicer setting, or query from the system settings
- Annotation template GUI populating
- New/missing markup widgets: we will not be adding any new widgets as part of this project
To be discussed:
- IO support and details
- Annotation template import and GUI
Progress
Source code on github: https://github.com/fedorov/Reporting
- Jan 24: initial code and GUI layout
- Jan 20: Nicole: I check in code today to:
- support removing annotation nodes from the mouse mode tool bar
- set the AssociatedNodeID attribute on the annotation nodes to the id of the volume or model that it was placed upon via a click in 2d or 3d (because 3d was really close to working when I left project week)
Discussion points
- From the QIN prospective, it seems to be more important to have a complete set of markups in-slice, without focusing on the support of 3d viever visualization. Is this OK with the Slicer development strategy?