# Simplified web based core application

**URL:** <https://discourse.slicer.org/t/simplified-web-based-core-application/12487>\
**Category:** Support\
**Created:** [July 11, 2020, 4:28pm UTC](https://discourse.slicer.org/t/simplified-web-based-core-application/12487 "2020-07-11T16:28:04Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![tobiedesgreniers](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@tobiedesgreniers](https://discourse.slicer.org/u/tobiedesgreniers)\
**Post date:** [July 11, 2020, 4:28pm UTC](https://discourse.slicer.org/t/simplified-web-based-core-application/12487/1 "2020-07-11T16:28:04Z")

</div>

Hi 3DSlicer community!  
I’m a student in computer engineering and i’m working on a bachelor end project aiming to develop a commercial service prototype for surgeons to print biomimetic models of human parts to practice surgeries!

The goal of our team would be to “probably” have a segmentation module in a web browser so that surgeons can target specified regions containing tumors and then send a 3D model print request to a 3D printing service.

I consulted these resources :

> [@Remote web based UI](https://discourse.slicer.org/t/remote-web-based-ui/9729):
>
> This is kind of a far fetched question, but I was wondering if anyone has done work on seperating the UI layer of slicer. My end goal is to have slicer running on a computer, but also have remote web based UI built similarly to webvtk. I know I can do the entire slicer interface using VNC, but in my case I want different UIs for different people. My thought is to write a module which exports the MRML node list and subscribes to the events then either use vtk.js on the other side or render loc…

[Run Slicer in your web browser - as a Jupyter notebook or as a full application](https://discourse.slicer.org/t/run-slicer-in-your-web-browser-as-a-jupyter-notebook-or-as-a-full-application/11569)  
[Segmentation via web-browser](https://discourse.slicer.org/t/segmentation-via-web-browser/9270)  
[Embed 3DSlicer in a web GUI](https://discourse.slicer.org/t/embed-3dslicer-in-a-web-gui/3167)  
[Can 3D Slicer be hosted on a rendering server?](https://discourse.slicer.org/t/can-3d-slicer-be-hosted-on-a-rendering-server/9256)

And I have so many questions concerning the software architecture, modules and how to adapt 3DSlicer for our project.  
Would it be better to go for common gateway interface to run 3DSlicer as a service and then make our own GUI?  
Would it be better to use docker images (which from what i understood is using VNC to work?)?  
Or maybe go for RDP and resource sharing across users?  
Is Jupyter Notebook GUI customizable enough for us to develop a customer ready GUI?

Our main requirements are reusing the great technologies that were developed for 3DSlicer, but the GUI would be, for the prototype, way to complicated for simple users who’d like to have surgery simulators within range of a few simple clicks. And we would also like many (let’s say 10 or 20) users to connect at the same time.  
The main features would be the segmentation module with a display in a web site, patient’s files and folder management, web authentication and data exporting for a 3D printing service.

Since i have so many questions and with my lack of experience as a student, i would be very open to have a Microsoft Teams conversation with some expert. It would be a great help in our project.

In case this topic isn’t within the scope of this forum or the community, please excuse my trespassing.

Best regards,  
Tobie

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 11, 2020, 5:09pm UTC](https://discourse.slicer.org/t/simplified-web-based-core-application/12487/2 "2020-07-11T17:09:41Z")

</div>

There are many options for simplifying Slicer user interface and make it available without installation. I would recommend to focus on figuring out the workflow first: who does what and how, what steps can be automated and what requires user inputs, what visualization you need, validate robustness and accuracy of automatic processing algorithms, etc. You will need minimal software development for this, but it is mostly learning and experimenting with various existing tools. Once you have a very good idea of how everything will work and what you need to do, you can start thinking about how to achieve that (what to develop, what technologies to use, where to deploy, etc.).

If you are more comfortable talking about your project rather than discussing it on the forum then you can join one of the [weekly Slicer hangouts](https://discourse.slicer.org/c/community/hangout/20).

---

<div class="post-metadata">

**Author:** ![tobiedesgreniers](https://avatars.discourse-cdn.com/v4/letter/t/eb9ed0/32.png) [@tobiedesgreniers](https://discourse.slicer.org/u/tobiedesgreniers)\
**Post date:** [July 14, 2020, 2:51am UTC](https://discourse.slicer.org/t/simplified-web-based-core-application/12487/3 "2020-07-14T02:51:54Z")

</div>

Hi Andras,  
Thank you very much for your answer.  
I will make sure to make some progress towards what you proposed about our specifications, workflow and key requirements and i will get back to you in the next weekly hangout (probably july 21 from my understanding).  
I just want to make sure that i’m not losing anyone’s time so would it be okay if i make a very brief presentation of a few slides for you to better understand the project?

Best regards,  
Tobie

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 14, 2020, 4:32am UTC](https://discourse.slicer.org/t/simplified-web-based-core-application/12487/4 "2020-07-14T04:32:01Z")

</div>

You can join the next meeting in 9.5 hours ([2020.07.14 Hangout](https://discourse.slicer.org/t/2020-07-14-hangout/12509)), but next week is fine, too.
