Skip to main content
Himesh Dua

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.
Crafted byHimesh Dua
GitHubHimeshDua
Deployed onVercel
StackNext.js · TypeScript · Tailwind CSS
LicenseMIT License