ome / ome/openmicroscopy

ROI `shape` loading improvements and strategies

Open
#5,575 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
222
Forks
105
Avg merge
2h 21m
Merged PRs (30d)
1

Description

OMERO currently does not support a scalable strategy for loading a large number of shapes in the forms of regions of interest (ROI).

There are instances were users are creating and using images with large numbers of ROIs, sometimes in the regions of hundreds of thousands.

The current implementation in the JSON API returns ROIs as a composite object, containing shapes, details and other meta data. This results in a 13 second load time for a single HTTP request from the eel OMERO server and subsequently is limited to returning only 500 JSON array items.

Solution
  • Reduce server load by only fetching the exact data required to list all ROIs (this will still require a limit on max ROIs)

  • Add ability for loading ROIs by a viewport size and an x, y position for images of a high resolution

  • Add function for loading ROIs by timepoint

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the JSON API's list-ROIs documentation and its composite response of shapes and metadata. Trace the current ROI listing path and measure the request behavior described in the issue. Done means a scoped loading strategy that reduces unnecessary data and supports viewport position, viewport size, and timepoint filtering.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.