Kairos is a second set of eyes in ER triage

In Canada's overcrowded emergency rooms, some patients initially triaged as "non-urgent" are made to wait excessively long while their conditions are deteriorating. With ~16 million ER visits a year and hundreds of thousands of patients leaving before a doctor sees them, the most dangerous risk in ER triage is overlooking the patients who seemed fine at the initial triage but in reality wasn't. Kairos catches them.

What inspired it

I grew up with chronic illnesses, so I know ER waiting rooms and the dreadful hours that feel endless while you wait to be seen. My frustration is shared by millions of Canadians from coast to coast to coast. Lately, the headlines have gotten even darker: people, often the most vulnerable, are dying in waiting rooms before a doctor ever sees them. For a country that prides itself on accessible public healthcare, I find this grim reality indefensible.

What it does

You sit in the triage nurse's seat. For a patient initially triaged as non-urgent (levels 4 and 5), you decide: keep them in the waiting room, or pull them back for reassessment? Then Kairos reveals its own call alongside what actually happened to that patient. The model does so by flagging potentially under-triaged cases with a feature-level explanation and a risk percentile of its decision. A live leaderboard tracks both humans' and the model's performance!

How I built it and why it's rigorous

Kairos is trained on 425,000 real emergency-department visits (MIMIC-IV-ED).

  1. it's validated against real patient outcomes (hospital admission and death) and not against the nurse's own initial triage.
  2. by running a logistic regression on standardized vitals + TF-IDF of the chief complaint, the model takes into account the actual patient complaints that are overlooked when only vitals are considered such as during reassessments. (AUC 0.786 (text + vitals) vs 0.633 (vitals alone) )
  3. by flagging the top 20% of patients considered "low risk", the model can catch ~59% of the cases that end up admitted or dead.
  4. every decision made by the model is shown with its real feature contributions (vitals vs. text, positive vs. protective). Kairos (and any public health clinical tool using GenAI) shouldn't be a black box.
  5. Tiger Data (hypertable + continuous aggregate) hosts the live human-vs-model leaderboard, while Gemini turns the model's output features into a plain-language text (while never inventing data).

Data governance

MIMIC-IV-ED is credentialed data under a PhysioNet DUA. No patient record ever leaves the model in this project... not to an API, a cloud database, or the repo. The model is trained locally and only aggregate statistics and fully synthetic (distribution-matched) cases are used in the live demo.

Challenges

Handling credentialed clinical data correctly under a strict DUA including deriving everything from aggregates and synthetic cases without exposing patient records was a project architecture challenging, and validating the model's results without the ability to weight against a proper ground truth (since the human triage label is itself often biased) forced me to think outside the box!

Limitations

MIMIC uses ESI, not Canada's CTAS; it's a single US hospital, so external validity is unproven. Kairos is a research prototype and decision-support tool that doesn't provide medical advice and will never replace the triage nurse.**

What's next

  • gather and use nurse feedback info to retrain the model and improve its performace
  • integration into eCTAS (Canadian model)
  • automated reassessment alerts of existing patients based on evaluated risks.

Built With

Share this project:

Updates

Submission history