Case study — Clinical registry

Immunaris — a clinical vaccination registry built to read like an instrument, not a dashboard.

We built Immunaris to show, in one artefact, how we believe regulated-medtech software should behave — and what it looks like when compliance, retention, and auditability are load-bearing from the first commit.

DomainClinical / registry
ScopeSchema, UI, compliance posture, design system
StackReact · Supabase · Postgres RLS
StatusPrivate — Alvento-owned artefact
Immunaris dashboard — clinician landing view
Immunaris vaccination certificate view
Immunaris patient intake form
01 — The problem

A clinical record should be the defensible artefact — not a compliance liability.

Registries, royal colleges and clinical services fail inspections not because care is bad, but because the record is unprovable. Vaccination history still lives in paper folders, GP silos and spreadsheets — and when an outbreak, an audit, or a recall response arrives, none of those produce the signed, time-stamped, attributable record that the moment requires.

Generic electronic-record products solve parts of this. Very few solve it with a retention model, an auditable ledger and an accessibility posture that survives contact with a UK regulator or a royal-college inspection.

“The record is not a by-product of clinical work. The record is the clinical work, made defensible.”

That belief is why we build clinical systems the way we do — and why Immunaris exists as a reference artefact for how we think one should look.

02 — The approach

Four operating principles, visible in every screen.

Most clinical SaaS treats compliance as a feature added late. We treat it as the shape of the schema, the shape of the UI, and the shape of the database permissions — decided on day one, visible to the reviewer on page one.

Principle 01

Compliance as schema, not afterthought

Lawful basis, clinician ID, consent, retention class and cohort are columns, not comments. The record cannot exist without them — so the record cannot drift out of compliance later.

Principle 02

An append-only signed ledger

Every clinical event is a signed, timestamped, attributable entry. Corrections are new events that reference the original — no silent edits, no rewrites of history. What a reviewer sees is what actually happened.

Principle 03

Isolation enforced in the database

Clinic, cohort, and role scoping are enforced in Postgres via row-level security — not in application code where a single bug breaches it. Getting this right at the DB layer is the difference between a secure system and a breach waiting to happen.

Principle 04

An interface that tells a clinician it takes the record seriously

Clinical Archive — our editorial design language — borrows from printed ledgers and case notes: restrained serifs, ruled lines, oxblood accents for warnings, reading-first layout. Before a field is read, the user knows the system treats its contents as clinical, not consumer.

Where it differs

What generic clinical record tools treat as optional, Immunaris treats as load-bearing.

This is a category contrast, not a product comparison. We’re describing the defaults we see across generic clinical-record and EHR-adjacent tooling — not any specific vendor — and the choices we made instead.

Axis
Generic clinical record tools
Immunaris
Audit trail
Optional feature, often enabled late
Append-only signed ledger, load-bearing from commit one
Retention
Policy document — enforced manually
Scheduled sweeper enforcing NHS schedules, override-with-justification
Role isolation
Application-layer checks
Row-level security at the Postgres layer
Corrections
Edit-in-place, history overwritten
New signed events referencing originals — no silent rewrites
Compliance surface
Bolted on as features later
Columns in the schema, decided day one
Design language
Generic SaaS dashboard
Clinical Archive — ledger aesthetic, reading-first

Fair comparison: category defaults we’ve observed, not claims about any named vendor.

03 — The artefact

Immunaris, across four folios.

Each folio is narrow on purpose. A clinician doing one job should see only what that job needs, with every action signed and traceable.

Folio 001 — Register

Patient register and cohort view

A ledger of every patient under care, filterable by cohort, due date, risk group or clinic. Built to answer “who still needs their second dose?” in one screen.

Immunaris patient register — folio 001
Folio 002 — Intake

New patient intake and consent

Structured intake capturing identity, lawful basis for processing, allergies, existing immunisation history and consent — validated at the boundary, not at submission.

Immunaris patient intake form — folio 002
Folio 003 — Recording

Recording a vaccination event

Vaccine product, batch, site of administration, clinician, timestamp — captured as a single signed event that lands in the append-only ledger and the patient record simultaneously.

Immunaris vaccination recording screen — folio 003
Folio 004 — Certificates

Certificates and handover

Printable, signed immunisation certificates for the patient, their GP, occupational health or travel clearance — generated from the ledger, not a separate document store.

Immunaris certificate view — folio 004

The artefact the regulator sees, written down.

Boring, proven, legible.

We chose a stack a second engineer can pick up on day one and a reviewer can reason about without a tour: typed frontend, a real database with real constraints, validation at the boundary.

React Vite TypeScript Supabase Postgres + RLS Zod validation Tailwind / shadcn-remapped

A seeded, English-language build you can click through.

The embedded build below runs against stubbed auth and seeded demo data — no real patient information. The production build runs against Supabase with RLS and clinician sign-in.

Or open in a new tab → immunaris-case-study.vercel.app

Source code is private and owned by Alvento Ltd. The schema, design system and compliance posture shown here are the artefacts we sell — not the source.

Building a registry, a revalidation system, or a clinical record?

If you’re a professional body, a clinical registry or a medtech team and you want something that reads like a clinical instrument rather than a startup dashboard — we build these.