AI engineer
Which hospital can actually treat this patient right now?
PulseRoute — Predictive Emergency Dispatch
Golden-hour routing: predicts a patient's care needs in transit and sends the ambulance to a hospital that can actually treat them.
- Role
- AI engineer
- Outcome
- Built for a national-level competition
- Built with
- Python · FastAPI · XGBoost · Streamlit · Pandas · NumPy · Scikit-Learn

A golden-hour routing system for ambulance dispatch, built for a national-level competition. Given patient vitals and a live hospital resource grid, it predicts care needs in transit and assigns the ambulance to a facility that can actually treat the patient now. The interesting part is not the map ETA but the constraint problem around it: which hospital can absorb this patient under ICU, ventilator, specialty, and load limits, and how that assignment holds up when many patients arrive at once.
Problem
Nearest-hospital dispatch is a poor proxy for care. An ambulance can arrive at a full ICU, a missing ventilator, or an off-duty specialist and lose minutes that matter inside the golden hour. Mass-casualty events make this combinatorial: one trauma center floods while capable facilities nearby sit underused. The practical question is how to predict needs before arrival and rank feasible hospitals fast enough for a live dispatch loop.
Approach
PulseRoute runs XGBoost triage on EMT-reported vitals to predict severity and resource needs, then ranks hospitals with a weighted constraint engine over ICU beds, ventilators, specialties, ER load, and travel time. A FastAPI backend serves inference and routing; a Streamlit command center shows the chosen destination and why it won. When connectivity drops, an edge build falls back to a local student model, a shadow-cached hospital grid, and an OSMnx road graph so the tablet can still route without the API. Batch mode redistributes multiple patients across the city grid instead of dumping them on the nearest facility.
Screens





System architecture

Describe the diagram
The full PulseRoute system, in three columns. On the left, the client layer: an EMT dispatch tablet that submits vitals, a scene photo, roadblocks and broadcasts, and an ER inbound radar that polls for incoming patients. In the centre, the FastAPI service. It fans out to a scene classifier for the accident photograph, and to a routing pipeline holding two stages — a severity engine that triages the patient, and a hospital ranker that combines a soft score with a hard resource filter, so a facility that cannot treat the patient is excluded rather than merely ranked low. A separate routing and ETA engine computes travel over a city road graph, and a resource store and broadcast store hold hospital state. On the right, a hospital command center updates its own resources and accepts or rejects inbound patients, alongside the external mapping providers. Along the bottom runs the edge failover path: the same tablet, but wired to a local severity model, a local OSMnx routing engine and a shadow cache of the hospital grid, so dispatch continues when the central API cannot be reached.