Skip to content

Add lightweight reviewer app and review endpoints - #1907

Open
chezhia wants to merge 3 commits into
mainfrom
feature/lightweight-reviewer
Open

Add lightweight reviewer app and review endpoints#1907
chezhia wants to merge 3 commits into
mainfrom
feature/lightweight-reviewer

Conversation

@chezhia

@chezhia chezhia commented Jul 27, 2026

Copy link
Copy Markdown

Summary

Adds a lightweight MONAILabel reviewer workflow for existing segmentations without loading AI tasks.

What changed

  • adds a review-focused sample app under sample-apps/reviewer with the required MONAILabel app entrypoint
  • adds reviewer aggregate endpoints under /review and mounts them in the main FastAPI app
  • aligns the reviewer client and smoke test with the implemented server routes
  • fixes reviewer image downloads in the 3D Slicer plugin by using direct REST fetches and normalizing server URLs at the UI and REST layers
  • teaches local datastore reconciliation to recognize reviewer label files named .seg.nrrd
  • documents the reviewer app in the top-level README and refreshes the sample reviewer README to match the implemented workflow

Validation

  • python -m unittest tests.unit.datastore.test_local
  • python -m py_compile monailabel/app.py monailabel/datastore/local.py monailabel/endpoints/datastore_review.py sample-apps/reviewer/app.py sample-apps/reviewer/client.py sample-apps/reviewer/main.py sample-apps/reviewer/lib/config.py plugins/slicer/MONAILabelReviewer/MONAILabelReviewer.py plugins/slicer/MONAILabelReviewer/MONAILabelReviewerLib/ImageDataController.py plugins/slicer/MONAILabelReviewer/MONAILabelReviewerLib/MonaiServerREST.py test_reviewer_server.py

Notes

  • untracked scratch notes and draft cache-helper files were intentionally left out of this PR because they are not wired into the current reviewer workflow.

Summary by CodeRabbit

  • New Features
    • Added authenticated /review APIs for listing review cases, viewing per-image label versions, and generating review reports (json|csv|html) with filtering.
    • Introduced a lightweight Reviewer sample app and client for review/approval workflow and report generation.
  • Bug Fixes
    • Improved .seg.nrrd label-to-image ID matching and standardized review timestamp (last_reviewed) behavior.
    • Hardened reviewer plugin server URL handling, DICOM loading, and temporary file path safety.
  • Documentation
    • Expanded README with Reviewer App onboarding and added dedicated reviewer sample app documentation.
  • Tests / Quality
    • Added unit tests for review endpoints, reviewer app/client behavior, datastore logic, and date-range handling, plus a manual smoke test.
  • Chores
    • Updated tooling and pinned dependencies for highdicom by Python version.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants