Skip to content
Emon.
All work

Case study 01

Radiology worklist and reporting web app

The screen radiologists work in all day: worklist, study reconciliation, collaborative reporting and in-browser image viewing, built on Next.js 15.

of my commits since Mar 2025
846
of my commits since Mar 2025
releases shipped
444
releases shipped
active sites on the platform
375
active sites on the platform

Problem

Radiologists on a national imaging platform need one fast screen to pick up studies, match them to orders, read the images, write the report with colleagues and send it out, with nothing to install.

Constraints

  • Worklists are long and busy: filtering, sorting and bulk assignment have to stay fast.
  • Medical images are large DICOM datasets, and they have to open in a browser tab.
  • More than one person can work on a report at the same time.
  • The app ships continuously while people are reading, so releases must not break live sessions.

What I built and led

  • A Next.js 15 App Router app in TypeScript: dashboard, worklist with filters and bulk assignment, study reconciliation, report editor, shareable report links, billing and exports, and chat.
  • In-browser DICOM viewing and segmentation with Cornerstone3D and vtk.js.
  • Real-time collaborative report editing on Yjs + Hocuspocus.
  • A typed data layer: TanStack Query and Table, Zustand, React Hook Form + Zod, on Tailwind 4 and shadcn/Radix.
  • OpenTelemetry tracing in the browser app, with Vitest unit and Playwright end-to-end tests.

Architecture

A radiologist picks studies off the worklist, reconciles them with orders, opens the images in the browser and writes the report, with colleagues editing the same document live. Everything reads from and writes to the platform API behind the imaging pipeline in case 4.

Impact

  • 846 of the repo's 2,351 commits, from Mar 2025 to now
  • 444 tagged releases through release-please, shipped while radiologists were reading
  • The working front end of a platform with 375 active sites and 70,651 studies in Sep 2026
  • Platform-wide median of 8.1 minutes from study arrival to finalised report

Commit and release counts from GitHub; platform figures from production telemetry, October 2026.

Transfers to: Any data-heavy operator console: dispatch and logistics, trading and risk desks, support tooling, collaborative editors.

Stack

  • Next.js 15
  • React
  • TypeScript
  • Tailwind 4
  • shadcn / Radix
  • TanStack Query + Table
  • Zustand
  • React Hook Form + Zod
  • Cornerstone3D
  • vtk.js
  • Yjs
  • OpenTelemetry
  • Vitest
  • Playwright