Difference between revisions of "2016 Summer Project Week/Segmentation Editor and Terminology"
From NAMIC Wiki
Line 23: | Line 23: | ||
* Review overview sildes [https://www.slicer.org/slicerWiki/index.php/File:20160526_Segmentations.pptx Segmentations] | * Review overview sildes [https://www.slicer.org/slicerWiki/index.php/File:20160526_Segmentations.pptx Segmentations] | ||
* Source code review: [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/src/ SlicerRT] ([https://github.com/SlicerRt/SlicerRT/ github mirror]), with a focus on containers (vtkSegment, vtkSegmentation, vtkMRMLSegmentationNode), and widget GUI (Segmentations Widgets qMRMLSegmentsTableView) | * Source code review: [https://subversion.assembla.com/svn/slicerrt/trunk/SlicerRt/src/ SlicerRT] ([https://github.com/SlicerRt/SlicerRT/ github mirror]), with a focus on containers (vtkSegment, vtkSegmentation, vtkMRMLSegmentationNode), and widget GUI (Segmentations Widgets qMRMLSegmentsTableView) | ||
− | * Compare to web app for populating SEG metadata: http://qiicr.org/ | + | * Compare to web app for populating SEG metadata: http://qiicr.org/dcmqi ([https://github.com/QIICR/dcmqi/tree/gh-pages github source]) |
+ | ** To view in slicer's webkit | ||
+ | view = qt.QWebView() | ||
+ | view.setUrl(qt.QUrl('http://qiicr.org/dcmqi/')) | ||
+ | view.show() | ||
* From Andrey: disconnect segment ID from the color ID and from the terminology associated with it - it should be possible to have more than one distinctive segment that has the same color and the same terminology, but are differentiated by segment ID and segment label. | * From Andrey: disconnect segment ID from the color ID and from the terminology associated with it - it should be possible to have more than one distinctive segment that has the same color and the same terminology, but are differentiated by segment ID and segment label. | ||
| | | |
Revision as of 10:28, 23 June 2016
Home < 2016 Summer Project Week < Segmentation Editor and TerminologyKey Investigators
- Nicole Aucoin (BWH)
- Csaba Pinter (Queens)
- Andrey Fedorov (BWH)
Objective | Approach and Plan | Progress and Next Steps |
---|---|---|
|
view = qt.QWebView() view.setUrl(qt.QUrl('http://qiicr.org/dcmqi/')) view.show()
|
|
Use cases
- Category = Segmented Property Category
- Type = Segmented Property Type (+Modifier, optional)
- Anatomic region (+Modifier, optional)
Loading segmentation from DICOM
Assumptions:
- can expect that Category and Type will be initialized, if not - fall back to default codes (Tissue/Tissue codes)
- anatomic region may or may not be initialized (example: can specify anatomic location of the tumor, but may not be present)
- colors may or may not be specified
Consequences:
- need to be able to handle these various combinations
- if colors are not specified, would be nice to suggest some good default color choices (to optimize differentiation of the structures? lookup of default colors may not be easy for medium-large dictionaries)
- it is not clear that it is a good idea to restrict the choices of terminology (or colors) if a user wants to modify segmentation loaded from DICOM - so it might be helpful to choose from existing color maps / terminology dictionaries for a DICOM-loaded segmentation
Creating segmentation from scratch
- choose from predefined dictionaries (combinations of Type/Category/Anatomy customized for a specific use case)
- choose from predefined color tables, or perhaps color assignment strategies (e.g., high contrast, similar shades of color for the segments corresponding to the same kind of structure)
Workflow
To add a new segment:
- user clicks "add segment"
- terminology and color are populated to some default value
- user has an option to change the color and terminology separately TerminologyWidget (naming to be confirmed)
- user has the option to choose the dictionary in the TerminologyWidget
- the purpose of the dictionary is to define specific combinations of category/type/anatomy for the specific use case (GenericAnatomy LUT is one example, and we will also need a larger set of codes defined by the standard)
Implementation approach
Terminology browser widget:
- Slicer widget vs CTK widget: consensus seems to be that CTK widget makes sense
- Qt widget vs web app: considering that basic web app already exists, it may make sense to experiment reusing it; Marco notes that it may be futile to experiment with web app integration in Slicer using the current Qt 4