2016 Summer Project Week/Segmentation Editor and Terminology
From NAMIC Wiki
Home < 2016 Summer Project Week < Segmentation Editor and Terminology
Key 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