Inspiration

In my life, I've always had to be my parent's translator for complex documents, especially from hospitals, which is what inspired me to work on ClearCare, which would help hundreds of thousands of parents navigate through those complex documents.

What it does

ClearCare is a health-literacy platform designed to help patients better understand the instructions they receive after a medical visit. It transforms dense discharge documents into plain-language summaries, medication timelines, follow-up checklists, warning signs, and short teach-back quizzes.

How we built it

Next.js 16 with the App Router, React 19, strict TypeScript, Tailwind 4, Zod for schema validation, the OpenAI SDK, PDF.js, and PDF-Lib.

There are two paths through the app, but one schema. A deterministic demo path loads a fictional care plan from disk and runs it through the same production schema, so judges (or anyone) can see the full experience with no API key and no network call. The live path validates an uploaded PDF or image, then runs it through a two-pass pipeline: pass one extracts evidence from the raw document (numbers, units, dosages, page references) and outputs structured JSON, nothing else. Pass two takes only that validated JSON, not the original document, and turns it into plain language. It can reorganize and simplify, but it can't add anything: no new advice, no resolved conflicts, no invented values.

After pass two, we run a deterministic check that compares every medication against the original extraction by ID. If a medication was added, dropped, or changed in any field, the result gets rejected. Same logic applies to source links, page coverage, and quiz answers: every one traces back to something in the document, and the schema rejects the output if it doesn't.

Client-side, everything is in-memory. No localStorage, no database, no analytics. File uploads get validated on the server (extension, size, magic bytes, MIME type) since the browser check is just convenience, not security.

Challenges we ran into

The LLM was being "too helpful," which in this context means it was providing solutions for the treatment rather than entailing what it actually was in simpler terms, and we resolved this by splitting the extraction from the evidence into two different passes with different permissions. Additionally, the UI and frontend were giving us quite a challenge, so we had to do with a template that we adjusted a bit to save some time.

Accomplishments that we're proud of

We are proud to have ClearCare output the desired result, as it successfully simplifies the medical document into sectional proportions of the original.

What we learned

We had to learn the TypeScript syntax whilest working on our project with AI assistance in order to validate the results of the AI, and we also learned how to actually containerize our project.

What's next for ClearCare

ClearCare will include multilingual translation features that can help non-english users translate the complicated medical documents into simpler and more familiar language.

Built With

Share this project:

Updates

Submission history