Inspiration

Patient interviews are rushed, and one question nobody asks can mean a missed emergency. We wanted a copilot that helps clinicians ask the right next question without trying to diagnose anything. Jev made that practical. It's a typesafe model that responds fast and cheap, so it can run on every message of a live conversation, not just once at the end.

What it does

Dr. Jev listens to what a patient says and suggests the three most useful questions to ask next.

  • Routing: it decides which body system the complaint belongs to: urinary, respiratory, cardiovascular, neurological, digestive, oral, musculoskeletal, head and neck, or skin. Complaints that touch two systems activate both.
  • Red flags: it checks every system for red-flag symptoms on every request, so a dangerous symptom like chest pain, blood in the urine, or stroke signs surfaces even if the conversation seems to be about something else.
  • Unclear input: if it can't tell what the problem is, it asks a clarifying question instead of guessing.
  • Scope: it never diagnoses or gives advice. It only suggests what to ask.

How we built it

  • Question banks: each body system has a JSON bank of questions, each with a rationale and a status of "needs clinician review". Each bank also has red-flag detectors and a fallback checklist.
  • Two stages: a router stage reads the patient's statements and picks the right bank or banks. A scoring stage then ranks only those banks' questions.
  • Typesafe Jev calls: every decision is a typed yes/no probability, a multiple-choice, or a 0-to-1 score. That means no free-text parsing and fast, cheap batched calls.
  • Reliability: if the API fails, a keyword router and fallback checklists keep the app working.
  • Adding a specialty: this takes one JSON file and one manifest entry.

Challenges we ran into

  • Building a good question bank was the hardest part. Questions had to be short, askable out loud, and clinically meaningful. Each one also needed a rationale, and the red flags needed detection instructions precise enough for a model to apply.
  • Routing must not hide emergencies. A wrong route could bury a red flag, so red flags are checked across all banks regardless of routing.
  • Overlapping domains. Chest pain plus trouble urinating, and headache versus neurological symptoms, meant supporting multiple active banks and removing duplicate questions.
  • Question IDs collided across banks, so we namespaced every question and red flag by bank.

Accomplishments that we're proud of

  • A working end-to-end pipeline that goes from a patient's sentence to routed, ranked, red-flag-aware questions in less than a second.
  • 26 question banks with about 40 questions and 10 red-flag detectors each
  • Graceful degradation, so the tool stays useful even when the model is unavailable.

What we learned

  • Typesafe, structured outputs make LLM decisions fast, cheap, and easy to test. Small models can do real work when each call asks one narrow question.
  • Safety checks should be independent of routing and never depend on a model guessing the right category first.
  • The model was easier than the content. A good question bank is the real product.

What's next for Dr. Jev

  • Clinician review and sign-off on every bank, since all questions are currently AI-drafted.
  • More specialties, including ophthalmic, ENT, gynecological, pediatric, and mental health.
  • Voice input and live transcription for use during real visits.
  • Learning from which suggestions clinicians actually use to improve ranking.
  • Support for more languages.

Built With

Share this project:

Updates

Submission history