human-review¶
Purpose¶
human-review manages the queue of cases that require a clinician to review and submit a diagnosis. It receives human_review.requested events from orchestrator, creates a Review record, and exposes a work queue UI-friendly API for reviewers to claim, complete, or decline reviews. On submission it emits human_review.completed; on decline it emits human_review.failed.
Key endpoints¶
GET /reviews/queue — list unclaimed reviews available to the authenticated reviewer
GET /reviews/queue/suggested — list reviews suggested for the reviewer based on assignment rules
GET /reviews/my-claims — list reviews currently claimed by the authenticated reviewer
GET /reviews/:id — fetch a single review
POST /reviews/:id/claim — claim a review for exclusive editing
POST /reviews/:id/unclaim — release a previously claimed review
POST /reviews/:id/submit — submit a completed review (emits human_review.completed)
POST /reviews/:id/decline — decline a review (emits human_review.failed)
GET /admin/reviews — admin: list all reviews with filters
GET /admin/reviews/:id/audit — admin: fetch the audit trail for a review
POST /admin/reviews/:id/cancel — admin: cancel a review
GET /admin/reviewers — list registered reviewers
POST /admin/reviewers — register a reviewer
PATCH /admin/reviewers/:id — update reviewer metadata
DELETE /admin/reviewers/:id — deregister a reviewer
Database tables¶
Reviewer — registered reviewer profiles (user ID, org, active status)
Review — review request record: case ID, status, claim status, submission payload
ReviewClaim — tracks which reviewer holds the current claim on a review
ReviewAuditLog — immutable event log for all review state transitions
Events¶
human_review.requested — consume — received from orchestrator; creates a Review row
human_review.completed — emit — published via @sa-platform/events Redis Streams when a reviewer submits
human_review.failed — emit — published via @sa-platform/events Redis Streams when a reviewer declines
Dependencies¶
- Redis — event transport via
@sa-platform/eventsRedis Streams - MySQL — primary store, accessed via Prisma 7 driver-adapter pattern
- auth — JWT verification via
@sa-platform/auth-client
Where to learn more¶
- Design spec
- Source:
services/human-review/(in this repo)