neuroanatomy / BrainBox

BrainBox is a web application that lets you annotate and segment 3D brain imaging data in real time, collaboratively.
https://brainbox.pasteur.fr
Other
96 stars 46 forks source link

update the structure of the mri objects in the DB to deal with volume and text annotations in the same way #36

Open r03ert0 opened 7 years ago

r03ert0 commented 7 years ago

The mri object in the DB looks currently like this:

mri: {
  atlas: [
    { owner:, created:, modified:, access:, type:, filename:, labels:, project:, name:}
  ],
  annotations: {
    thing1:,
    thing2:,
    ...
  }
}

atlas means in fact annotations of type volume, and annotations means annotations of type text (and in the future there may be more type of annotations added).

The mri structure should be the same for any type of annotation. Like this:

mri: {
  annotations: [
    { owner:, created:, modified:, access:, type:, filename:, values:, project:, name:}
  ]
}

(the labels field will then just be replaced by the values field when type is volume)

satra commented 7 years ago

@r03ert0 - if multiple people make edits to the same brain mask, is that captured somewhere?

satra commented 7 years ago

i.e. for any brain can we pull a list of all people who worked on it, like google docs.

r03ert0 commented 7 years ago

currently we all modifications are time stamped and stored as backups, so yes, it would be possible (we need to provide traceability!)

however, there's no api route for querying this information, only direct inspection of the DB

On Tue, Oct 4, 2016 at 3:30 PM, Satrajit Ghosh notifications@github.com wrote:

i.e. for any brain can we pull a list of all people who worked on it, like google docs.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/OpenNeuroLab/BrainBox/issues/36#issuecomment-251387835, or mute the thread https://github.com/notifications/unsubscribe-auth/ACNCTLU_fE3jK0yZ5n_T-9Pv1RkBW4g2ks5qwlTogaJpZM4KNkhl .

r03ert0 commented 7 years ago

we also need a modifiedBy field in each annotation indicating who was the user that did the last modification (the date is in the modified field).

mri: {
  annotations: [
    {
      owner: [userID of the person that created the annotation],
      created: [date of creation, in toJSON format],
      modified: [date of latest modification [all backups will also be stamped with their corresponding date]],
      modifiedBy: [userID of the person that did the last modification],
      access: [this field is probably not required -- the info should be obtained from the project],
      type: [volume, text, etc in the future],
      filename: [in case the annotation has an accompanying file. Currently the case only for volume annotations],
      values: [the labelset for volume annotations, the list of allowed values for text annotations, or freeform for unconstrained text annotations],
      project: [the project to which this annotation belongs, if any],
      name: [the name of the annotation, for example 'Brain Mask', or 'Comments']
    }
  ]
}