Summit EHR · Live application
Patient intake and digital consent
A patient fills in a long form, signs consent documents and submits a packet that clinic staff can retrieve. Two problems shaped my work: forms fail partway through, and consent templates change after people have signed.
- Role
- One of several engineers on the intake workflow
- Stack
- TypeScript, React, Convex
- Status
- In the live application. A further intake and PDF overhaul is in progress.
Context
A clinic needs a patient’s details, insurance information and signed consent. In Summit this is one workflow: the patient completes a form online, reviews and signs documents, a packet is generated and submitted, and clinic staff retrieve the result.
My role
- I worked on the intake flow from entry to retrieval: the form engine, the insurance step, consent signing, document review, packet generation, submission and how clinicians retrieve the result.
- I worked on consent definitions and revisions, patient answers, staff co-signing, and the PDF generation behind signed documents.
- It is a team codebase. I am describing my part, not the whole system.
Problem 1: a long form fails in the middle
Long forms stop partway for ordinary reasons: a connection drops, a session expires, or a document fails to upload. The risk is that the patient loses what they entered or ends up half-submitted.
Decision
Treat submission as a sequence that can stop at any step, and build recovery paths so a patient continues where they stopped instead of starting over. When something fails, show an error in plain language and keep developer-only detail out of it.
Failure case
A submission is interrupted after the patient has completed most of the form. The recovery path preserves their progress and lets them resume, so a failed step costs them one retry instead of the whole form.
Problem 2: a template changes after people have signed
Clinics edit their consent forms. If a definition changes after a patient has signed, the signed document must not silently change with it.
Decision
Consent definitions are published as revisions. A patient’s answers and signed artifact belong to the revision they actually saw. When a PDF is regenerated, the process is revision-aware and keeps the original signed artifact.
Failure case
A clinic edits a template after several patients have signed the previous version. Those patients’ documents still show what they signed. New patients get the new revision.
The unglamorous part: PDFs
Some of the hardest bugs were ordinary ones: Unicode text, content that crosses page boundaries, and signature captions that wrap. Documents that carry a signature have to be correct in the cases that rarely happen.
Limits
Release status reflects repository snapshots from mid-October 2026. I have not independently verified live deployments.
- I make no claim about regulatory compliance.
- I do not have a before and after metric for this work, so I am not giving one.
More from this product
- 01
Summit EHR: one product, two codebases
I maintain the live Convex application for Summit EHR and contribute to its Medplum/FHIR replacement. This page treats them as one product, so the work is not counted twice.
- 02
Reliable integrations: Google reviews and notifications
Two integrations where partial failure was the hard part: syncing Google reviews without losing the last good data, and retrying notifications without sending twice.