
- Client
- Peak Health (sports medicine)
- Year
- 2025
- Timeline
- 10 weeks · pilot with two clubs
- Role
- UX research, Data interface design, Frontend build
- Stack
- Next.js · FastAPI · Postgres + pgvector · FHIR · AWS

An athlete's record is a pile of PDFs across three clinics.
Team doctors decide return-to-play from MRIs, bloodwork and consult notes that arrive as attachments. Peak needed one timeline per athlete, fast search across all of it, and a clearance flow a physio can trust at pitch-side on a phone.
- ProblemRecords fragmented across clinics, formats and inboxes
- BetA timeline plus semantic search replaces the folder
- ConstraintClinical data, audited, consented, on-region
What we built.
Peak in four parts, the pieces that carried the product, in the order we shipped them.
- (01)
Athlete timeline
Imaging, labs and consultations as one chronological strip, with status chips (normal / in range / cleared) readable at a glance.
- (02)
Semantic search
Ask 'last knee MRI with effusion' and get the record, embeddings over extracted report text, filtered by type and date.
- (03)
Clearance flow
Return-to-play as a signed, versioned decision with the evidence pinned to it. Phone-first for pitch-side use.
- (04)
Data layer
FHIR-shaped ingest, per-club tenancy, audit log on every read, the boring parts that make a pilot possible.


What it did.
Numbers shared as ranges; specifics on request.
- (01)
In use by medical staff
Validated with doctors and sportspeople before build; in use by club medical staff, testimonials on file.
Adoption - (02)
Minutes to seconds
Finding a prior scan dropped from hunting through email to a single query.
Search - (03)
Pilot → product
Peak kept us on for the multi-sport roadmap.
Next
Build something that ships.
Start a project