A telepathology workspace in the browser: deep-zoom slides, annotation and measurement, cases, consultations and reports.

98,304 × 75,264 pxLargest test slide
18Zoom levels
45,832Tiles generated
4Languages

Project Summary

  • Client: Personal R&D
  • Industry: healthcare
  • My role: Creator & Developer
  • Core tasks: Product design, Viewer & annotation tools, Tiling pipeline, Web app
  • Appointed date: Jan 2026
  • Completion: Jan 2026
  • Team size: 1

PathView is my second take on browser-based digital pathology, building on what I learned making TPN's WSI Viewer. This time it's a full telepathology workspace, not just a viewer.

What I built

  • Deep-zoom viewer. OpenSeadragon with a navigator minimap, scale bar, rotation, 0.5× to 40× zoom, go-to-region and screenshot capture.
  • Annotation and measurement. Rectangle, ellipse, polygon, freehand and arrow tools plus a ruler, with pathology labels (tumour, margin, inflammation, necrosis, artefact) and threaded comments.
  • Case workflow. A case queue, slides, consultations for second opinions, and reports with sign and amend permissions.
  • Roles. Separate permissions for administrators, pathologists, physicians and technicians.
  • Ready for a global audience. Four languages (English, French, Spanish and Chinese) and dark mode.

Under the hood

A Python tiler reads Aperio SVS slides with OpenSlide and writes Deep Zoom pyramids of 256-pixel JPEG tiles in parallel, with per-slide metadata. A 98,304 × 75,264-pixel test slide becomes 18 zoom levels and about 46,000 tiles, and the viewer only ever fetches the handful on screen. The front end is SvelteKit with Svelte 5 and TypeScript, Annotorious for drawing, and Playwright and Vitest for tests.

Where it stands

PathView is a working prototype running on public research slides and demo data, ready to be wired to a production backend.

Tech stack

Frontend
  • SvelteKit 2
  • Svelte 5
  • TypeScript
  • OpenSeadragon 5
  • Annotorious 3
  • Tailwind CSS 4
Backend
  • Python
  • OpenSlide
Other
  • Deep Zoom (DZI) tiles
  • Paraglide i18n
  • Playwright
  • Vitest

Challenges

  • Generating tile pyramids for gigapixel slides quickly
  • Precise annotation and measurement at every zoom level

Have a similar problem to solve? Let's talk.

Start a conversation