Prophis

TRY OUT OUR PROJECT!

Inspiration

We knew we wanted to build in healthcare. We initially explored network-based ideas (e.g. graph databases or diffusion modeling) before landing on a temporal view of patient data—structuring medical history as an interactive timeline. As we developed the concept further, we realized the real problem with organizing patient data isn't about visualization. It's about context and interpretability.

Both clinicians and analysts have access to patient records, but those records are fragmented and hard to interpret in isolation—especially with the rise of telehealth, where care is often delivered across multiple providers rather than through a single continuous system. Without connecting isolated cases, it's nearly impossible to pinpoint moments of preventability for conditions like diabetes, which is largely preventable if caught early enough. Similarly, public datasets exist for different health conditions each year, but they're rarely linked to individual patient cases in a way that lets you track larger health trends—especially around preventability.

This led us to Prophis, a name derived from prophylaxis (preventative action against disease). Prophis connects individual patient history with population-level health patterns to make healthcare data more interpretable and actionable for public health analysts.

What It Does

Prophis is a patient-context intelligence tool designed for public health analysts. Users input patient demographic information and medical history—either manually or by uploading a chart (simulated in this demo for a patient with diabetes)—which gets transformed into an interactive medical history timeline. This lets analysts understand an isolated patient case at a glance.

From there, Prophis layers in population-level context. It compares the patient's profile to broader diabetes cohorts based on demographics, matches the patient to county-level health data, and computes signals like a Health Equity Context Score (a weighted blend of health outcomes, economic equity, and healthcare access) and cohort similarity indicators based on publicly available 2025 data from the Robert Wood Johnson Foundation's County Health Rankings dataset (3,142 counties). These signals help analysts distinguish between risk driven by individual history and broader structural conditions.

On top of this, Prophis introduces a preventability layer that flags key moments in the patient's timeline where earlier action could have changed diabetes development outcomes. These flags include lifestyle changes, symptoms that may have been dismissed, or missed monitoring opportunities—data points that public health analysts can aggregate to see where these gaps occur systematically. This enables actionable change for affected populations, such as increasing healthcare funding in underserved areas.

From messy patient data, Prophis achieves three main goals:

  1. Readable health narrative — a structured timeline of a patient's medical history
  2. Population context — situating a patient based on their demographics and location
  3. Preventability insights — highlighting where earlier intervention could have made a difference

Existing healthcare tools usually operate at either the individual or population level, which prevents them from identifying preventable patterns in a meaningful way. Electronic health records can provide patient-level timelines but lack broader population context. Population health platforms analyze trends but can't isolate individual cases. Prophis bridges this gap by integrating all three layers of analysis into one system.

How We Built It

Prophis is built on two coordinated layers that turn fragmented clinical information into a broader public health context.

The first is a backend timeline pipeline routed through Lava, which we use as a shared model gateway for multiple AI-powered tasks. When a patient profile and medical history are submitted, the backend sends that information through Lava to generate a structured retrospective health timeline and a set of earlier prevention opportunities. We also normalize and validate the model output on the server side by parsing JSON responses, recovering partial outputs when needed, filtering out speculative future language, and enforcing a clean chronology so the final result stays grounded in past and present events rather than drifting into hallucinatory prediction.

The second layer is a population context engine built around the County Health Rankings dataset. We transform raw county-level data into normalized demographic, health, environmental, and vulnerability fields, then use that to anchor each patient to a county context. For health equity analysis, the frontend runs a weighted, standard-deviation-normalized Euclidean similarity search across six demographic dimensions to identify 20 peer counties. From there, it computes a composite Health Equity Context Score across three weighted dimensions: Health Outcomes, Economic Equity, and Healthcare Access. Where race-stratified metrics are available, the score uses the patient’s mapped demographic group instead of defaulting to county-wide averages, with fallback to overall county data when the race-specific data pool is too sparse. Percentile rankings and peer comparisons for that equity layer are computed live in the browser at query time.

Alongside that client-side context engine, the backend also computes additional non-LLM scoring. We built a separate county-matched diabetes similarity score that combines patient features such as BMI, smoking status, and age with county-level diabetes prevalence and physical inactivity data to estimate how closely a patient aligns with the broader burden seen in that local environment.

The frontend is built with React + TypeScript + Vite, with Zustand managing shared state across the patient workflow and the map. The geographic interface uses a custom D3.js county choropleth with TopoJSON geometry, interactive tooltips, multiple map modes, and patient-county highlighting so users can move between an individual case and national county patterns fluidly. The backend is a lightweight Node/Express API that handles Lava-routed AI requests, county matching, simulation endpoints, and health scoring logic. We designed Prophis as a context tool, not a diagnostic system, so every output is framed as retrospective analysis, community comparison, or population-level signal rather than a clinical recommendation.

Challenges We Ran Into

Data availability. We couldn't access individual patient-level datasets, so we relied on county-level public health data as a proxy and designed a demo patient profile to meaningfully connect to aggregate trends. Because Prophis uses AI to structure and interpret medical histories, the system can ingest and analyze any patient record beyond the demo case, generating timelines and contextual signals dynamically.

Finding the right user. We originally leaned toward a mirrored patient-and-clinician platform where patients could input daily data alongside doctor-uploaded charts. We realized that building around individual patients created problems with accountability and data access that limited the impact we could have. So we shifted Prophis to focus on public health analysts first, with clinicians providing patient data. This lets us spot patterns across whole populations and improve health outcomes at a much bigger scale. We're deliberately not a diagnostic or treatment tool, which keeps us out of most restrictive regulatory categories when working with patient records. While our demo uses an identifiable patient, in practice we work within existing healthcare data systems and only analyze de-identified or consented records.

Extracting individual insight from aggregate data. The dataset describes the average person per county, not any specific user. A county's 14% diabetes rate isn't a personal probability. So rather than predicting risk, we measure how closely a user's profile aligns with communities where a condition is most prevalent—turning county-level averages into personalized context without crossing into clinical prediction.

Timeline UI complexity. Fitting dense clinical information into a horizontally scrollable canvas while keeping it responsive and intuitive took several iterations. We had to carefully balance detail card layouts to accommodate long descriptions, multiple metadata fields, and visual elements without overflowing or requiring awkward scrolling. Getting canvas width, baseline length, card positioning, and scroll thresholds to work together seamlessly meant a lot of tweaking to make it feel fluid rather than cramped.

Accomplishments We're Proud Of

We're proud of evolving Prophis from a simple medical history timeline visualizer into a context and preventability intelligence tool. We successfully combined individual patient timelines with population-level datasets to build a working similarity model and Health Equity Context Score, then used that system to flag preventability moments in a structured, interpretable way for public health analysts to aggregate into broader trends. We believe we genuinely built something valuable for public health analysts and individuals with diabetes.

This was also our first time working together as a team, and we're proud of how well we communicated throughout the hackathon to refine both the technical implementation and product direction.

What We Learned

We learned that data doesn't tell the full story—context does. Working with race-stratified health metrics from the County Health Rankings revealed how sparse real-world data can be, which forced us to build intelligent pooling and fallback logic rather than simply ranking counties. We also discovered that timeline UI design is deceptively complex—fitting clinical information into a horizontally scrollable, keyboard-navigable interface required iterating on math, scroll thresholds, and overflow. We did learn a lot about React, CSS, and other languages/frameworks through debugging. Finally, we realized that explaining health equity matters more than making it sophisticated. Breaking composite metrics into digestible tiles, anchoring everything to peer comparisons, and using plain language turned out to be far more valuable than complex scoring mechanisms alone.

What's Next for Prophis

We want to expand Prophis into a more robust population analytics platform. We plan to integrate larger de-identified clinical datasets to improve the accuracy of cohort matching and contextual analysis. As the system scales, we envision incorporating more real-world aggregated patient data to strengthen pattern detection and preventability insights. We also plan to expand beyond diabetes to other preventable conditions like cardiovascular disease and certain cancers, allowing Prophis to support a wider range of public health use cases.

Built With

Share this project:

Updates