I would like to propose a few changes to the behavior of the Terminology Module to increase its usage and adoption.
Change the double-click rename behavior. Currently a segment can be renamed manually by double clicking its name. Given the importance of using proper terms and avoid typos, I suggest we change the behavior such that double clicking the name (or color) will bring the terminology dialog box. If there are no suitable terms to choose from, then the user can actually edit the Name field, as they currently do in the segment editors subject hierarchy. Note that this renaming behavior is already available, and it only add one more click to the process of manually editing a segment name.
To allow recycling of custom names, create a new button that will add the the current contents of the Name and Color field to the user’s custom terminology. This way user can grow their own terminology terms and color schemes.
Allow creation of custom color tables: Allow user search and add the terminology to a selection list that can then be exported as a custom color table to convert labelmaps. Label ID are assigned by the order they are added to the list, and user should be able to re-arrange the list.
I think this is fine as long as we have a setting for it in Application Settings. I would only change the default once the new approach has been thoroughly tried and accepted.
Sounds reasonable. You imagine this button to be in the Terminology Navigator dialog right? One issue I see is that the name and color do not fulfill the minimum requirements for a new term (“type”), because the CodingSchemeDesignator and CodeValue fields are not specified (CodeMeaning is the name). Should we take these from the currently selected item? The other issue is that the next thing the user will want is saving the terminology to JSON file, so that feature should be added at the same time. Maybe that could be a new button in the Terminologies module.
Yes this is something that I needed in the past as well. We need to design the GUI so that it does not add too much complexity to the existing widgets.
So it seems that there are more issues to discuss:
Change the default terminology. This could go into Application settings / Segmentations. There is already a default terminology entry selector.
I remember @muratmaga that you also wanted to change the single-click selection in the category selector. It is indeed inconvenient when you have many categories. Also can be confusing to people.
There are simple bugs as well, but this list should be enough to discuss.
I am not sure what this setting is trying to modify. It is asking me to pick up a specific term from a terminology. That’s not what I mean, I want to set a whole category (in this case my Uberon ontology) as default. Alternative is what I suggested, Terminology Navigator remembers the last terminology user interacted and brings that, as opposed to keep defaulting Slicer’s Segmentation category.
Thanks for reminding it. I forgot! Yes, a way to choose multiple category selector and turn on/off them is needed. Current behavior of turning them on/off one by one gets really annoying when you have more a few category.
Sorry for the confusion. All I said was that since there is already a terminology related setting there, we can add one more selector for the default context. Remembering the last selection would also be reasonable. It would set the same kind of setting I suppose.
No, I am really trying to understand what it does. It seems like a potentially useful setting and can be broadly useful in a situation like this, but not clear what to me what it is asking me to do? Here, I am trying to set Uberon as default, but as you can see Select is not activated, and expecting me to click on a term on the right.
Using this setting you can specify what terminology entry should the new empty segments get assigned until you change them. By default it is Slicer terminology / Tissue / Tissue.
Select is not enabled because type selection is None. A valid type needs to be selected here.
Now that I understand its function, I agree we need a second setting that will set the default Terminology category for the user. Terminology can be a custom one the user generated manually, or an imported one like Uberon.