We have a project at work where a researcher wants to annotate images from certain OMERO datasets/projects blindly, that is, a user shouldn’t be able to see filenames, metadata, anything but the actual image. We came up with a few ideas and would like to hear what people think! In order of (decreasing) complexity:
omero-web-blind: fork omero-web to create a separate web client that doesn’t show the sensitive data to users. It would still look exactly like omero-web and talk to the same omero-server, so annotations would be linked to the correct images by default. It involves writing/deploying a separate web client, though.
Standalone Python client: write a small Python application that pulls and displays images from the desired project/dataset. User can write annotations that are linked back to the original image on the server. Problems: large images become an issue, annotations will probably be limited to free text or controlled vocabulary (trickier to have users draw ROIs, etc).
“annotation” dataset: crawl through original images, check which ones haven’t been annotated and import those to a separate annotation dataset where they will be stripped of all identifying information (no metadata on key-value pairs, randomized name - no duplication of data because we in-place import everything anyway). Store the new image name as a key-value pair on the original. In addition to that, crawl through the “annotation” dataset, check which images have already been annotated, link the annotations back to the original and delete them. Not “truly” blind because someone with ill intent can always find the original from the annotation copy, but probably good enough and fairly simple to put together.
Thoughts? Are we reinventing the wheel and something like that already exists? At the moment we’re tending towards 3 because it’s fairly generic and easy to implement, and it’s a fairly small project for the moment. We’d love to hear what you have to say!