imaging_viewer — technical overview
In-app DICOM study viewer. Indexes media documents holding DICOM bytes as viewable studies and renders them to PNG (server-side windowing) for the viewer and the annotation canvas.
Scaffolded stub — replace with proper documentation when this module is next touched.
Auto-discovered facts about the imaging_viewer module. See the module's own notes at backend/app/modules/imaging_viewer/CLAUDE.md for context the scaffold could not infer.
API surface
GET /api/v1/imaging_viewer/patients/{patient_id}/studiesGET /api/v1/imaging_viewer/studies/{study_id}POST /api/v1/imaging_viewer/patients/{patient_id}/studies/indexGET /api/v1/imaging_viewer/studies/{study_id}/renderDELETE /api/v1/imaging_viewer/studies/{study_id}POST /api/v1/imaging_viewer/rvg/scan— scan the clinic watch folder nowGET /api/v1/imaging_viewer/rvg/imports(+{id}) — approval queuePOST /api/v1/imaging_viewer/rvg/imports/{id}/approve— materialize + linkPOST /api/v1/imaging_viewer/rvg/imports/{id}/rejectGET /api/v1/imaging_viewer/rvg/links,DELETE /api/v1/imaging_viewer/rvg/links/{id}GET /api/v1/imaging_viewer/studies/{id}/annotations— overlay listPOST /api/v1/imaging_viewer/studies/{id}/annotations— draw (ruler/freehand/note)DELETE /api/v1/imaging_viewer/annotations/{id}— archive an overlay
Frontend
Page /imaging (patient study list + embedded viewer + RVG import queue), gated by imaging_viewer.studies.read (studies) and imaging_viewer.rvg.read (queue; decisions need rvg.write).
Permissions
studies.read, studies.write, rvg.read, rvg.write
See ./permissions.md for the full role mapping.
Events
- Emits:
imaging.study_indexed - Subscribes:
media.photo_uploaded,patient.archived
See ./events.md for the per-event detail (when the module participates in the event bus).
See also
- Module CLAUDE notes:
backend/app/modules/imaging_viewer/CLAUDE.md - Documentation portal contract