MathematicalMedicine / diver-issues

Semipublic tracking of issues for the DIVER front end
0 stars 0 forks source link

Implement "copying" of cohorts/variable sets/constructs/whole projects between different users #163

Open Viqsi opened 1 year ago

Viqsi commented 1 year ago

This is kind of our answer to the collaboration problem posed by #126 - instead of directly sharing projects and constructs (and thus having to manage all sorts of state synchronization issues), we instead have users copy them back and forth as needed - "send your work" and so forth. It's also very strongly dependent on #162.

There are some concerns w/r/t who gets to make the call about overwrites and prompting and the like. The rough workflow concept I currently have in mind is as follows:

Viqsi commented 1 year ago

This one may end up getting pushed to Public Launch or even Aspirational. We've got clarity on whether or not we want some copying, but not the timing or extent.

Viqsi commented 1 year ago

One possible concern is that depending on how we implement this, user B could end up with multiple copies of the same cohort tree (for example), because there's nothing tying A's "Cohort X" to B's "Cohort X" and we can't know for sure if they're changed or not.

I mean, I suppose we could do a by-name comparison for every one but that makes me want to flinch. It's straightforward to do that for cohorts (compare contents of cohortInds) and variable sets (compare variable lists), but constructs? Hoo boy.

Viqsi commented 1 year ago

Also, since it's between users and users may not be on simultaneously, there needs to be a concept of "pending copy requests" stored in the database. That's a much more complicated enterprise w/r/t the UX.