Skip to content
Back
Health software

Lumiscan dashboard — tracking skin lesions across scans

Software for a skin-lesion scanner that keeps patients, lesions, and scans together, so a clinic can see whether a lesion is changing.

My partBuilt solo

Lumiscan dashboard

In short

A Next.js and PostgreSQL platform that lets a clinic record patients, lesions, and successive scans from a lesion-scanning device, view metric trends over time, and generate narrative summaries, with strict organization scoping and a stubbed device-ingestion API.

What it is
The software side of a lesion-scanning device: a place to keep patients, lesions, and scans, and to see whether a lesion is changing.
Why it matters
A device that classifies a mole is not a product on its own. Clinics need to track lesions over time, manage follow-up when something is flagged, and read a summary they can act on.
My part
I built the platform on my own for the device’s product owner; classification runs on the device, never in the app.

Step by step

  1. 1

    Scope

    Organization id is denormalized down every clinical table and never read from the client.

  2. 2

    Record

    Manual entry is the MVP path; the device-ingestion API is defined, authenticated by hashed device keys, idempotent, and simulated by a script.

  3. 3

    Compare

    A lesion timeline shows successive scans with metric trends and flags.

  4. 4

    Narrate

    Patient-friendly and doctor-facing summaries are generated from stored results; the model never produces a classification.

For engineersHow it is built, its limits, and its keywords.

How it works

Next.js with tRPC for the interface, a versioned REST endpoint for devices, Drizzle on PostgreSQL, S3-compatible private image storage, and an Anthropic-backed narrative module. Every clinical row carries an organization id derived server-side; cross-organization access returns not-found.

Limits

  • Prototype authentication with one local workspace; live device ingestion is deferred; HIPAA and GDPR are designed-for-later, not implemented.
  • All patient data in the demo is synthetic, including generated dermoscopic imagery.
  • The device and its classifier belong to the product owner, so I don’t go into them here.

Keywords

  • multi-tenancy
  • PHI
  • tRPC
  • Drizzle
  • TypeScript
  • medical device software

Read the write-up →