## Inspiration
Healthcare is expensive, inaccessible, and confusing. 5 billion people lack access to quality care. Even those with access struggle to navigate complex medical jargon — a patient hears "hypertension" and doesn't know it means high blood pressure. Community health workers in rural Africa and India handle 80% of primary care with minimal training and no specialist backup.
We asked: what if every phone - even a $50 Android - could run a medical AI that works offline, understands plain language, and knows when to say "go to the hospital now"?
## What it does
CareCompanion is an offline-first medical guidance app that runs entirely on your phone. No internet, no cloud, no data leaving your device.
Core features:
- Symptom triage — describe symptoms, get color-coded urgency: 🟢 self-care, 🟡 see GP, 🟠 urgent, 🔴 emergency
- Jargon translator — "What does hypertension mean?" → "High blood pressure. Your heart is pumping too hard..."
- Medication guide — dosages, side effects, warnings in plain language
- Context-aware — reads Apple Health data (heart rate, BP, sleep) and personalizes advice
- Action buttons — [SOS] calls emergency, [MEDICINE] shows dosing card, [REFER] opens Maps to nearest clinic
- Apple Watch — ask questions from your wrist, iPhone runs inference, watch shows answer
Example interaction:
User: "A child has fever of 39°C for 2 days. What should I do?"
CareCompanion: [YELLOW] Give paracetamol for fever (15mg/kg every
6 hours). Give extra fluids. Keep the child cool. If fever lasts
more than 3 days or the child becomes drowsy, refer urgently.
[MEDICINE: paracetamol 15mg/kg]
[CALENDAR: Review in 48h if no improvement]
Every response includes: "This is AI guidance, not medical diagnosis. If in doubt, consult a healthcare professional."
## How we built it
Model: Qwen 2.5 1.5B Instruct, fine-tuned with LoRA (r=16) on custom medical data.
Training data (3,330 examples):
- WHO IMCI child health protocols (fever, diarrhea, pneumonia, malnutrition, malaria)
- Maternal health danger signs
- Common medication guides (paracetamol, amoxicillin, ORS, ACT, metformin, ibuprofen)
- First aid (choking, burns, snakebite, bleeding)
- Triage scenarios with patient context
- Medical jargon → plain language translations (30 terms × 5 variants)
- 2,000 MedMCQA examples for general medical knowledge
Training: LoRA fine-tuning on. 3 epochs. Manual LoRA implementation (no PEFT dependency) for maximum portability.
Deployment:
- Model merged (LoRA → base weights) and exported to GGUF Q4_K_M (~750 MB)
- Runs via llama.cpp on iPhone — fully offline inference
- Apple Watch extension via WatchConnectivity — watch sends question, iPhone returns answer
- HealthKit integration reads real patient vitals for contextual responses
Triage system: Every response is tagged with severity level and parsed into colored cards:
[GREEN]→ self-care (green card)[YELLOW]→ see health worker within 48h[ORANGE]→ urgent, see today[RED]→ emergency, triggers SOS button[MEDICINE:name:dose]→ tappable medication card[REFER:facility:urgency]→ opens Maps[SOS:number:label]→ one-tap emergency call
## Challenges we ran into
Medical accuracy vs model size. A 1.5B model can't match GPT-4 on medical reasoning. We solved this by making it a specialist — fine-tuned specifically on triage protocols and medication guides
rather than trying to be a general medical AI. It knows its scope and says "consult a healthcare professional" when it's unsure.
Triage tag parsing. Getting the model to reliably output structured tags like [RED] and [MEDICINE:paracetamol:15mg] alongside natural language required careful training data formatting. We
included the tags in every training example so the model learned them as part of its natural output.
Balancing memorization vs generalization. With only 3,330 training examples, the model memorizes exact training questions perfectly but struggles with novel phrasings. We addressed this with heavy
augmentation (20 question variants per original) and plan to add a retrieval layer for production.
## Accomplishments that we're proud of
- Fully offline — no internet, no cloud, no data privacy concerns
- 750 MB — fits on any modern phone alongside all your other apps
- Triage colors work — the model correctly assigns RED to emergencies (choking, postpartum bleeding, pre-eclampsia) and GREEN to self-care (mild headache, ORS recipe)
- Jargon translation — 30 medical terms explained in plain language a village health worker can understand
- HealthKit integration — the model reads your actual vitals and personalizes advice
- Watch → Phone pipeline — ask a health question from your wrist
## What we learned
** Have space on your laptop if you plan to run iOS simulator for app design** (happened)
** if you run out of space on system, quickly pivot to core feature demo rather than bells and whistles* ( build a web app to demo as ran out of space)
Structured output is trainable. If you include [RED], [MEDICINE], [REFER] tags consistently in training data, the model learns to emit them naturally. No post-processing regex needed — the tags
come out as part of the response.
Privacy is a feature, not a constraint. Running on-device means patient health data never leaves the phone. For healthcare AI, this isn't just nice-to-have — it's essential. People won't share
symptoms with a cloud service they don't trust.
The gap is access, not accuracy. The WHO estimates that 5 million community health workers serve billions of people with minimal tools. A phone that can say "this child's breathing rate is too fast, give amoxicillin and refer" saves lives — even if it's not as sophisticated as a hospital AI system.
## What's next for CareCompanion
More training data: Expand from 59 base examples to thousands — chronic disease management (diabetes, hypertension), mental health screening, elderly care, disability accessibility guides.
HealthKit deep integration: Continuous monitoring — alert if heart rate spikes, if blood pressure trend is rising, if sleep pattern changes. Proactive health, not just reactive Q&A.
Multi-language: Translate the training data to Hindi, Swahili, Spanish, Arabic — the languages spoken by the billions who need this most.
Retrieval layer: Add a sentence encoder (~5 MB) so users can ask questions in any phrasing and the system finds the closest trained answer. Proven to work in our trail guide prototype.
Clinical validation: Partner with WHO or MSF to test with real community health workers. Measure: does CareCompanion improve triage accuracy? Does it reduce unnecessary referrals? Does it catch danger signs earlier?
Smaller model: Fine-tune Qwen 0.5B (~300 MB Q4) for the cheapest phones. Same training data, smaller base — trade some quality for universal access.
Log in or sign up for Devpost to join the conversation.