Productivity Boosts for Slicer: My Top Suggestions

I use Slicer daily, and I believe a few small changes could significantly enhance my productivity. Some of these suggestions may seem minor, but I’m curious if other frequent users feel the same way. I’m open to working on these myself if they make sense.

#1 After pressing the “Show 3D” button, I always have to click the “Center View” button. It would be great to have this action automated or an option to set this as a preference, with the current behavior as the default.

#2 I often find myself pressing “Show 3D” after loading a segmentation. A preference to enable “Show 3D” automatically upon loading a segmentation would save time, with the current state as the default.

#3 When loading .nii.gz files, I spend a lot of time switching from volume to segmentation. Could .seg.nii.gz files be automatically recognized as segmentation, similar to .seg.nrrd files?

#4 It would be helpful to have the ability to clone a segment directly within the segmentation module, rather than switching to the Data module.

#5 Lastly, the selection of a segment doesn’t transfer from the Data module to the Segmentation module. It would be beneficial if this selection could carry over.

Thanks for considering these suggestions!

Thanks for the feedback.

Slicer has a very large user community and it is difficult to apply what you requested broadly without breaking other people’s expectation.

(For example what if the user do not want the 3D viewer to be enabled by default, since their data is too large or some other reason).

Having said that, you can implement everything you need on your own Slicer using a bit of python scripting, then you can save them into the application start script (slicerrc.py) and have them available to you each time you use your slicer.

See details at: Application settings — 3D Slicer documentation

I think a majority of folks would agree that if they set an object to show in the slice viewers that they would also expect it to show in the 3D viewer in some form.

There could be a minority which doesn’t like this behavior because they work with very large data, but that could probably be handled by a special exception for that minority. Extra large data seems like a special workflow case and not a normal case for most users. Therefore there is probably some coding that could be done to make things easier with different application defaults for this majority of users for the most common workflows.

What about the people doing slice by slice segmentation, like painting, erasing, drawing? That would mean once the 3D visualization is enabled, every mouse click would require rebuilding of the model of the model. Even in small data, this would probably cause unintended slowness.

I am not against these, the point that it is hard to come up with generally acceptable behavior. Particularly when that behavior has been around for a while and now became de facto expectation.

What I also mean, all of these is possible without waiting for the consensus. I sure have my own requirements, and it is usually a much faster route to implement those in the customization file then to get the core change. That’s all.

1 Like

There is ultimately some improvement that can be made to Slicer core to “make simple things simple and complex things possible”. The Slicer core sample data is probably a good starting point for typical user workflow. So if 3D visualization is fine while slice painting say the MRHead sample dataset then Slicer core could proceed with those type of changes.

That would be setting the bar extremely too low. That dataset is not representative of the data coming out of the modern clinical scanners like CBCT, or even higher resolution (0.325mm spacing) CTs. Most clinical CTs comes out of our radiology department is now 512x512x384 voxels, which is about 8-10 times larger than MRHead.

But again, it is doable. We just need to agree on a dataset that has an acceptable minimal size and perhaps a computer spec that is also expectable to test the performance.

What about a check box preference “3D auto mode”? The current state is good for users with poor compute and new users (“show 3d” can seem like a freeze). I would argue that auto show 3D and auto center view would be useful with the largest data. Let’s say that loading takes 20 seconds. The benefit is two fold. #1 when loading is done, You know that it is done, because you can see your results in the 3D view, currently, there is no visual cue. #2 When loading is done, you are good to go. No button pressing. And no need to change to the Segmentation Module for access to the “Show 3D button”. And then press center view. I will do that at least 20 times today.

#6 There is a pop up window when loading. I believe with a cancel button. I would suggest a preference/option to not show this window. Use case, 1000 pts. Running a script in the python window, all day. Every time a pt is loaded, this window pops up, making multitasking on the computer difficult. I actually have many slicers running with many pop windows on load… No option to minimize the windows and have them running in the background.

#1 and #2: I think anything can be added as long as they have a setting, and we wait with changing the default until we’re sure. For example, I just submitted a PR that adds a segmentation-related setting, these could be similar.

#3: .seg.nrrd files are a special format, with special metadata and special handling of segments/layers. I think it would be really misleading handling a .seg.nii.gz extension, because it will still be a standard .nii.gz (simple 3D, no overlaps in segments, no extra metadata, etc.) but would suggest that it is also a special Slicer format

#4: Could be useful. But have you tried new segment → Logical operator / Copy? The result is the same.

#5: This would raise way too many concerns. Typically Slicer modules do not “know about each other”, and any synchronization happens via the MRML scene. Adding a glodal “selected segment” MRML property would be quite strange. I think this is a simple no.

#6: Do you mean the splash screen? Please search the forum, there have been many discussions about this, even very recently. I’m also annoyed by the splash screen, but not enough to do anything about it. When you start Slicer the second (or N>1’th time), it launches within a second on my computer.

1 Like

Make no mistake. I am a big fan of slicer… not at all complaining…

A good feature might be an external script exceuted auto on loading. I was thinking that I would also like to auto set the view on load, in addition to center view, etc.

Great! That’s what this forum is meant to support.

Have you looked at what you can do with .slicerrc.py? You can configure the app in many ways and also register observers to react to new nodes being added to the scene.

https://slicer.readthedocs.io/en/latest/user_guide/settings.html#application-startup-file