Make Slicer simpler to use for new users

I might have to explore that option then. Would it similar to the “Slicelets” mentioned in this post?

Then I should be able to make a standalone application that has the four up view and the segmentations/segment editor module. Is that possible? I’m familiar with basic coding but not too familiar with Python so I’m also wondering how feasible this would be for me to get set up.

Mybinder tightly restricts connections – for understandable reasons. There is a prototype extension called nbnovnc which facilitates VNC over a websocket within Jupyter. I have an updated dockerfile which integrates and launches that, but found out nbnovnc is incompatible with current pip versions of various dependencies (and doesn’t seem to be actively maintained). I haven’t had a chance to dig in and try to fix this yet (might be possible to just pin to older versions, but some discussion on their issue tracker suggested it was not so simple).

I think in most cases users want a desktop/client-side viewer. I don’t think binder+VNC would replace this need, especially considering PHI. Users of Slicer have been asking for a quick image viewer for as long as I can remember. I think it might be worthwhile to consider a slicelet or some other customization that would deliver such functionality.

Images would be pulled from a provided URL on the fly. For sensitive data or faster performance a local JupyterHub installation can be used, too (it’s been set up like that in Children’s Hospital of Philadelphia to allow researchers to use shared GPU cluster from Jupyter notebooks).

Desktop viewer is even simpler, as there is no need for setting up remote desktop.

For example, this script shows a this simplified user interface:

Simplifications:

  • Hide module panel - show a subject hierarchy tree instead
  • Hide push-pin icon in slice views (volumes can be shown/hidden using the data tree)
  • Toolbars are hidden (they can be re-enabled using menu)
2 Likes

The nice part is that any simple viewer setup that works well on the desktop is also usable in the docker/novnc environment.

1 Like

That SimpleView screenshot looks perfect for my needs. Could somebody please tell how to execute that SimpleView.py script. I believe that would be a great foundation for the simplified standalone program I am trying to create.

Program features:

  1. Be able to toggle between four-up view, red,green, and yellow slice only views, 3D view, or split screen (i.e.: red and 3D, green and 3D, or yellow and 3D)
  2. Be able to view segmentations that were previously done by another user (So if I created the segmentation in Slicer Nightly, then the user can view that same segmentation in the simplified Slicer)
  3. Be able to edit segmentations if needed
  4. Must be executable as a standalone program (ideally as a desktop application with no internet required)

Any suggestions or advice are much appreciated.

To run it once, open Python console (Ctrl+3) and paste the code into the console.

To make Slicer always start up with this interface, edit your .slicerrc.py file (you can find its location shown in menu: Edit / Application settings / General / Application startup script).

1 Like

I’ve added a few layout switch buttons above the data tree:

image

1 Like

@lassoan this simple view looks much less intimidating for the new users. However, starting it through command line kind of defeats the purpose (most new users wouldn’t know where to look at it).

Would you guys consider enabling this as the default layout after the installation ends. So like checkbox question. “Do you want to enable SimpleView layout of Slicer?” with a brief explanation of what it does and how to go find the modules and an option to disable it, if they want full layout?

2 Likes

At this point, this script is more like an experiment to see what is that people find intimidating in the current GUI.

Should we hide most of the toolbars? Should we start up with the Data module? Should we simplify viewer controls?

It may be also a useful to make this data tree widget available in addition to module panel (as you can already do it):

image

In the past, we also discussed the idea where extension-specific or operation-specific functionality could be exposed as separate application launchers/shortcuts. Here is that thread for completeness: Customized application launchers. I still think that is a nice way to approach this problem.

I was able to incorporate the SimpleView script into the Application startup script and it works perfectly. Now the only issue is that the SimpleView launches every time I open Slicer. I downloaded both the Nightly and the Stable versions. Is there a way that I could have the Stable version use the SimpleView startup script and the Nightly version use the regular startup script?

You can put a version check in the script and only call showSimpleUserInterface(True) and createSimpleDataBrowser() if a specific version is found. For example:

if slicer.app.applicationVersion == '4.10.0':
    showSimpleUserInterface(True)
    createSimpleDataBrowser()
1 Like