Skip to content

CT scan annotation tool for stroke detection

Frontend Developer · Lean Solutions · Pilot (frozen)

Pilot

Pilot; development was frozen before production.

  • Angular
  • TypeScript
  • Canvas API

Problem

Radiologists needed a browser tool to label brain CT scans, producing training data for a stroke-detection ML model.

What I did

  • Canvas-based image viewer: zoom, pan, fit-to-frame, and window/level contrast control by mouse drag
  • Diagnostic measurements: Hounsfield-unit probe, circular ROI with mean HU, ruler in mm
  • Segmentation editor: brush, eraser, closed and open polygons, scissors (clip to region), threshold by pixel range, mask opacity
  • Model-assisted labeling: load the ML model's prediction as a starting point, then correct it by hand
  • Classification mode: multi-class and multi-label
  • Editor UX: keyboard shortcut for every tool, multi-step undo, per-class visibility toggles
  • Workflow and roles: In progress → Finished → Edit states; labelers edit while managers and admins get read-only tools; unsaved-changes guard

Results

  • Canvas-based image viewer: zoom, pan, fit-to-frame, and window/level contrast control by mouse drag
  • Segmentation editor: brush, eraser, closed and open polygons, scissors (clip to region), threshold by pixel range, mask opacity
  • Model-assisted labeling: load the ML model's prediction as a starting point, then correct it by hand

Media

The markup editor: an aerial sample image with a brush stroke, a ruler measurement and a panel of label classesPublic demo: markup (opens in a new tab)
markup: a clean-room rebuild of the editor core, written from scratch

© 2026 Abzal Khairullauly