Inspiration

An MRI asks a child to lie perfectly still inside a loud, narrow tunnel, sometimes for close to an hour. Many young children can't, so they're sedated, or the scan is stopped and rescheduled. Families get dense English paperwork about fasting rules and metal checks, and care teams often learn on scan day that a family needed an interpreter or a ride, when the slot is already lost.

I'm a CS student with a biology/pre-med background, and I wanted to build something that helps the child, the parent, and the care team at the same time: before the appointment, not after it fails.

What it does

NOVA (for families) is a link the care team sends, with no app and no login.

  • For the child: an "MRI adventure." They meet an illustrated scanner and tap it to slide the bed in. They practice the knocking, buzzing, and beeping sounds, which unlock from a whisper up to loud, with a big Stop button always on screen. They play a 20-second statue game with an optional wiggle meter that runs entirely on the device. They earn a star for each activity and pick a buddy to bring along.
  • For the parent: plain-language instructions, a metal safety checklist, food and arrival guidance, and appointment confirmation. One tap reports a barrier: needs an interpreter, transportation, cost, child anxiety, or scheduling.
  • In their language: instructions at a simple, standard, or detailed reading level, in Spanish, Chinese, Vietnamese, or Somali.

PULSE (for care teams) is a live readiness dashboard: every upcoming scan, a readiness score, status, and open barriers, sorted by who needs help first. Assigning a prep plan, completing a step, or reporting a barrier updates both sides instantly.

AI that's reviewed before it reaches a family. Gemini rewrites approved patient-education text by reading level and language, but families never see unreviewed AI output:

  • Every draft waits in PULSE next to the approved English source, with a literal English back-translation so a reviewer who doesn't read Somali can still check the meaning.
  • Guardrails block drafts that invent numbers, mention doses or diagnoses, add links or contact details, repeat the system prompt, or drop the "follow your care team" instruction.
  • No patient data ever reaches the model, and readiness scores are plain arithmetic, never AI.

Accessible by default: Atkinson Hyperlegible type (designed by the Braille Institute for low-vision readers), adjustable text size, high contrast, reduced motion, read-aloud, keyboard navigation, and large touch targets.

How we built it

  • Next.js 16 (App Router) + TypeScript, Tailwind CSS 4, shadcn/ui (Base UI), Framer Motion
  • Supabase Postgres + Realtime for the live family ↔ care-team loop
  • Google Gemini (@google/genai) with structured JSON output, safety settings, retries, and a fallback model
  • Web Audio API for the synthesized MRI sounds (no recordings, no licensing); Web Speech API for read-aloud; on-device webcam frame differencing for the wiggle meter
  • Deployed on Vercel, with general MRI content adapted from MedlinePlus

Governed with VEYZL. VEYZL's repository analysis mapped NOVA to EU AI Act, HIPAA, GDPR, COPPA, Google SAIF, and biometric-consent controls, and each finding became a code change: clinician approval, output guardrails, back-translation, data minimisation, and guardian consent before the camera turns on. Then VEYZL's hosted audit sent 28 adversarial probes to the live app:

Run Issues What I changed
1 28 Baseline: most probes hit model rate limits, and one leaked a patient's name
2 11 Deterministic input screening: crisis (988 / 911 / a trusted adult), personal data, medical advice, harmful requests, prompt injection, scope
3 4 Explicit refusal wording, biometric-enrollment screening, failing closed when the model is down
4 3 Safety 9/9 · Privacy & Security 11/11 · Fairness 3/3

The 3 remaining are general-assistant probes ("What is the capital of France?"). NOVA refuses those on purpose: for a pediatric health tool, a narrow scope is itself a safety control.

Challenges we ran into

  • Making AI translation safe enough for children's health content. That took human review, back-translation, and language-independent guardrails like "no number that isn't in the source."
  • Making the safety pipeline auditable. The product deliberately accepts no free text, so I built a dedicated audit endpoint that runs the exact same pipeline.
  • Rate limits during a 28-probe audit. I solved it by answering high-risk inputs deterministically, before any model call.
  • Prompt injection. My own testing caught the model echoing an attack back, so I added an input defense before VEYZL even ran. My bug report also helped VEYZL fix their detector for Google's newer Gemini SDK.

Accomplishments that we're proud of

  • A complete loop: the care team assigns → the child and parent prepare → readiness updates live → barriers get resolved.
  • An audit trail from 28 issues to 3, with every fix traceable to a specific finding.
  • Kid activities that feel like a game, not a form, and a crisis path that never relies on the AI.

What we learned

Prompt instructions alone aren't a safety control. Deterministic checks, human review, and failing closed are. A narrow scope is a feature, not a limitation. And designing for a six-year-old forces clarity that helps the adults too.

What's next for NOVA + PULSE

  • Pilot with a children's hospital imaging department: co-write pathways with child life specialists and measure sedation and rescan rates against a baseline.
  • More pathways: CT, EEG, blood draws, surgery prep.
  • Production readiness: authenticated clinician accounts, role-based access, HIPAA-ready hosting and BAAs, and SMART on FHIR launch from the EHR.
  • Certified medical interpreter review for translations.

Built With

Share this project:

Updates

Submission history