Adding near-real time collaborative manual segmentation

I am looking into building a plugin to collaboratively annotate and segment sMRI. The idea is that we can invite specific people via email and they (and only they) can all join and collaborate a volume as a team via a low latency connection, everything running on our local servers so the hospital’s data does not leave the servers.

What would that entail? I would appreciate any guidance & support that can be offered so I know where to start.

I expect I will need to know how Slicer stores its segmentation data in memory as an MRI is being segmented. I expect I will have to stream that data to all connected users.

There are collaborative editing possibilities at many different levels. For example, each user can run a local Slicer instance and sync data with others via OpenIGTLink. Or, you can run a single VNC-enabled Slicer docker image and allow many people to connect and control (there is one cursor, it can be controlled by anyone who has connected with the control-enabled link, similarly how you take control of a user’s computer in zoom, but VNC allows anybody from the group to take control, automatically).