Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic annotation in Volume Viewer #316

Open
merous opened this issue Sep 29, 2016 · 4 comments
Open

Basic annotation in Volume Viewer #316

merous opened this issue Sep 29, 2016 · 4 comments

Comments

@merous
Copy link

merous commented Sep 29, 2016

The LORIS team considers this QC feature to be their top priority.
Requirements:

  • Very basic annotations on the volume, each consisting of a single coordinate tag point and a text box.
  • The output could be in JSON.
  • Users asked if the annotation could be added directly to the Minc files. Although probably feasible, the browser would have to re-export the whole Minc file, and this annotation mechanism would be Minc specific rather than universal. First iteration: JSON export.
@rdvincent
Copy link
Collaborator

A couple of comments: I'm playing around with this now, by adding a module that adds annotation support along these lines. The biggest question will be how to link the annotations to the file persistently. We could store a volume key of some kind (URL, filename, SHA hash, etc.) that would allow some amount of checking that a given set of annotations properly belongs with a loaded volume.

rdvincent pushed a commit to rdvincent/brainbrowser that referenced this issue Oct 3, 2016
…ovides only very basic text annotations at specific positions. Adds each text to a selection box, so that users may jump to individual annotation locations. Ctrl-A adds an annotation at the current cursor, Ctrl-B downloads the annotations.
@rdvincent
Copy link
Collaborator

@merous @samirdas @natacha-beck @jonathanlurie I've checked a partial implementation of this into my rdv-annotate branch. It is likely to need significant changes before we deploy it, but I'd be happy to get feedback now about whether this is the sort of functionality the LORIS team needs.

As of now, the module lets you create a brief annotation (use Ctrl-A to bring up the "add annotation" window). The annotation consists of the world coordinates of the cursor when the annotation is saved, as well as the text the user enters. When the annotation is saved the text is also added to a select list in the UI so that you can return to the position of the annotation by selecting its name in the list.

You can download the current list of annotations with the hotkey Ctrl-B. This will download a file named "annotations.json" to your local storage. Of course it would be easy to make this a link instead of a hotkey - all of the UI specifics are up for discussion.

As of now, there is no way to load, edit, or delete annotations, but of course those are easy to add once I know we are on the right track with this.

@rdvincent
Copy link
Collaborator

More notes from Samir:

  • Need method to upload the annotations (as well as download).
  • Add metadata for file name, etc.
  • Visualize annotation points on the VV slice.

@rdvincent
Copy link
Collaborator

@merous @samirdas @natacha-beck @jonathanlurie I've made new checkins for annotations on the rdv-annotate branch. The code is still what I would consider a 80% functional prototype. Here is what it does support:

  • Create a new annotation (using hotkey Ctrl-A). This pops up a small window that just allows you to enter some text.
  • A selection list of annotations allows quick navigation to a particular point.
  • Download annotations (using hotkey Ctrl-B), in a JSON format that should be compatible with Jonathan's prior work.
  • Upload annotations (using a file input button). Newly uploaded annotations should be added to the selection list.
  • Visualization of annotation points as little spheres with fixed radius (and the same color as the cursor).

Please try to evaluate this and let me know if it will do the job for now. The code is very simplistic in some ways that may need to be fixed (i.e. it uses linear search to draw points). But I'd like to get feedback about how this will be used before I spend more development time on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants