I do my best to develop extensions that are modular so that I can use them for many different tasks. However, the division in functionality results in me having to switch modules in the module panel frequently, which is time consuming and tedious.
I was wondering if there was ever interest in enabling the creation of multiple dockable/floating module panels instead of just the single module panel + backward/forward/recent navigation widgets that currently exist. I think it would be useful for users that must perform a task multiple times that requires three or more distinct modules over its course.
I understand that I could build this functionality into my own modules with persistent dialogs, but I think this problem may occur for more than just me, and it also would be better solved if these widgets were able to have the current module panel widget’s docking functionality.
In the last decade, we’ve used Slicer for probably over a hundred different projects. We’ve found that projects go through several phases and current Slicer capabilities are generally satisfy needs for each phase:
Use Slicer as is, to find a suitable workflow. In this phase, we experiment with a large number of modules, use it in various combinations. We certainly switch between many modules while using Slicer this way. Module selector controls (previous, next, history) and search (hit Ctrl+F, type part of module name, then hit Enter) can make switches relatively painless.
Once a clinically acceptable workflow is determined, we develop scripted module, which sets up the scene (create transforms, set default visualization options, etc.) and provides a user interface that makes all necessary features available in one place. These prototypes are still mostly used by researchers or engineers because you can still get lost among the many features and options available, but the software can be used quite efficiently (number of clicks to achieve a certain operation is already minimized).
Once a prototypes proves to be clinically useful, you can create a custom application (slicelet) from your module by disabling/hiding all unnecessary features, customizing branding (replace Slicer logo, etc. with your own company logo), further optimizing your custom module. in this phase, you also need to produce a fair amount of documentation, test results, etc. for obtaining regulatory approval. In this stage, the software is simple enough so that it can be operated by clinicians who are not experienced Slicer users.
Showing multiple module user interfaces at once:
might slightly help in some cases in engineering prototyping phase, but usability is not really a focus of this phase anyway. In this phase, you spend your time with figuring out what modules to use, with what settings, with what combination of other modules.
is not a usable approach for clinical prototyping (or later) phase, as you would need to do a lot of manual work (setting up the scene, arranging module user interfaces, paying attention to use modules in the correct order, etc).
Since this feature would have narrow use case and could potentially make the user interface very complicated, there is very little incentive to implement it.
Also you can move back and forth through the module history. On the mac it is command-left-arrow and command-right-arrow. I think it’s control-left and control-right on the windows (can someone confirm?). I don’t see this on the wiki but we can add it.