Inspiration
Behind every row in a healthcare dataset is a person who can't reach a doctor. In India, a mother in a district with no nearby maternity facility, a patient who needs dialysis three hours away, a child missing routine immunisation — these aren't statistics, they're lives shaped by where a hospital was or wasn't built. The data to find these people exists: the DAIS 2026 Virtue Foundation dataset holds ~10,000 facilities and NFHS-5 health indicators for 706 districts. But it sits raw and unreadable to the very people who could act on it — the NGO planning its next medical mission, the official deciding where to send resources, the family searching for care tonight. We built Virtue Health Explorer to close that gap: to turn data that describes suffering into a tool that helps reduce it.
What it does
Virtue Health Explorer finds where care is missing, explains why, and points to what would help — for three people who each need a different answer.
- It pinpoints the places that need help most. A Care Access Gap score (0–100) for every state, built from Availability, Accessibility, Specialty coverage, and Affordability and measured against WHO benchmarks (3.0 beds / 1.0 doctors per 1,000), so limited resources can go where they'll change the most lives.
- It explains the human story behind the score. Expand any state and you see the real outcomes underneath — immunisation, institutional births, anaemia, child stunting, insurance, sanitation — the lived realities the numbers stand for.
- It surfaces the hardest-hit districts — the "medical deserts" where coverage is worst — and the specialties most desperately scarce, so a mission can be aimed precisely.
- It answers anyone's question in plain English. A grounded AI assistant lets a planner, an official, or a patient ask what they actually want to know, and answers from real data — showing exactly which sources it used and being honest about what the data can't promise. For an NGO it drafts a mission plan; for a family it can find the nearest facility that offers the care they need.
- It helps people find care by describing it — "trauma-capable hospitals near rural Odisha," "a centre offering dialysis" — and semantic search finds the closest match.
Every persona — the mission planner, the public-health official, the patient — gets a version of the tool shaped around the decision in front of them.
How we built it
We built it entirely on Databricks, with a medallion architecture so that every insight is trustworthy enough to act on:
- Source → Silver → Gold (Unity Catalog). A read-only Delta Share feeds a clean silver layer (we geo-correct facility locations so a hospital is never misplaced into the wrong state), then we precompute every gap, desert, scarcity score, and recommendation into a gold layer in SQL. The app does zero runtime math — the analysis is reproducible, not guessed.
- Lakebase (serverless Postgres) syncs the gold tables for instant reads, stores saved mission plans, and powers semantic search via
pgvector. - The app — React + Vite + TypeScript on Express, built with Databricks AppKit.
- The AI assistant is an owned tool-calling agent whose nine tools reuse the exact same SQL as the rest of the app, so a number it tells a planner is the same number on the dashboard. Facility embeddings come from
bge-large-en.
Challenges we ran into
- Earning trust with imperfect data. Bed and doctor counts are genuinely missing for most facilities, and ~82 source records were corrupt. We refused to paper over it: bad rows are quarantined and never served, and the assistant discloses the data's limits on every affected number, using them only for relative comparison. When a tool helps decide where care goes, honesty isn't optional.
- Keeping the AI grounded. We forced every quantitative claim through a deterministic tool and made the assistant show its sources — so it informs decisions instead of inventing them.
- Making it real and fast — sub-10ms reads via Lakebase, a shared-pipeline workaround for a strict quota, and resilient batch-embedding (rate-limit backoff, dedup, resumable) so search can eventually cover every facility.
What we learned
The hardest part of a tool meant to help people isn't the model — it's trust. Precomputing analytics deterministically, grounding every answer in real data, showing provenance, and being relentlessly honest about gaps is what turns a dashboard into something a person can actually act on with confidence. We also saw how directly the right data architecture can shorten the distance between a raw dataset and a decision that puts care where it's needed.
What's next
Right now Virtue Health Explorer shows where care is missing. Our next chapter is helping close those gaps — turning insight into action that reaches people.
- From "where the gap is" to "what to do about it." We want every gap to come with a costed, on-the-ground plan: how many beds, which specialists, what a mission would take to move a district out of the "desert" zone — so an NGO can act in days, not quarters.
- Connecting the people with the need to the people who can help. Pairing under-served districts with the foundations, mobile clinics, and volunteer specialists best positioned to serve them — using the tool as a matchmaker, not just a map.
- Putting it in the hands of the families who need care. A lightweight, low-bandwidth, multilingual version a patient or community health worker can use on a basic phone to find the nearest facility that actually offers the care they need.
- Measuring the change we set out to make. As newer data arrives, tracking whether gaps actually shrink where missions are sent — so impact is proven, not assumed, and resources keep flowing to where they help most.
- Helping the helpers see ahead. Forecasting where access will erode next as populations grow, so care can be planned before a community falls behind instead of after. Our north star is simple: shorten the distance — in kilometres, in rupees, and in time — between a person who needs care and the moment they receive it.
Built With
- bge-large-en
- databricks
- databricks-appkit
- databricks-apps
- databricks-model-serving
- delta-lake
- express.js
- genie
- lakebase
- lakeflow
- leaflet.js
- node.js
- pgvector
- postgresql
- python
- qwen
- react
- react-markdown
- sql
- tailwind-css
- typescript
- unity-catalog
- vite
Log in or sign up for Devpost to join the conversation.