Oregon State University

TriageAI

published

Description

TriageAI is an AI-powered patient triage agent delivered through a web-based chat interface. A patient lands on the chat interface and describes what's going on in their own words. The AI agent asks clarifying follow-up questions, gradually building a structured clinical picture from an unstructured conversation. At the end of the interaction, the agent produces a written summary for the provider and a recommendation on both the urgency of the case and which department the patient should be routed to.

Under the hood, the agent is not a static decision tree: it dynamically decides what information is still missing based on a clinical intake schema the team defines, and it can pull in outside clinical reference material (e.g., openFDA, clinical guidelines, or a local knowledge base) to decide which follow-up questions matter for a given complaint.

Problem statement

Patients arriving with a health concern often can't easily describe what's wrong in the structured, clinical terms that intake and triage staff need in order to route them correctly. Translating a freeform complaint like "my chest hurts when I breathe" into a structured chief complaint, relevant history, and an appropriate urgency/department determination currently depends on a clinical staff member manually asking the right follow-up questions — a process that is time-consuming, inconsistent between staff members, and a bottleneck at intake. TriageAI aims to show that an LLM-driven conversational agent, grounded in defined clinical intake schemas and real clinical reference material, can help structure that intake conversation and surface a well-reasoned urgency/routing recommendation for a human provider to act on.

Objectives

The core system should take a patient through a full chat-based intake and produce a structured, provider-facing output:

  1. Complaint classification — map a freeform patient description (e.g., "my chest hurts when I breathe") to structured clinical categories (cardiopulmonary, musculoskeletal, etc.)
  2. Dynamic follow-up questioning — run a question flow driven by the LLM's own judgment of what information is still missing, based on clinical intake schemas the team defines, rather than a hardcoded branching tree
  3. Grounding in clinical references — search external clinical sources (e.g., openFDA, clinical guidelines, or a local knowledge base) to inform which follow-up questions are asked (e.g., asking about blood thinners specifically because guidelines flag that as relevant to chest pain)
  4. Structured summary generation — produce a standardized written summary containing chief complaint, history of present illness, relevant medications, and any red flags identified
  5. Confidence-scored routing — output an urgency level and department recommendation with an explicit confidence score and rationale (e.g., "Emergency: 85% — chest pain with shortness of breath in a patient on anticoagulants → Cardiology/ED" vs. "Routine: 70% — intermittent knee pain, no red flags → Orthopedics scheduling")

Given sufficient time, extend the tool with a basic account system and role-based output, so the same underlying agent behaves differently depending on who is using it:

  • Triage nurse accounts — the AI helps the nurse determine the appropriate level of care and surfaces significant clinical detail
  • Other clinical staff accounts — the AI helps the user determine whether the patient needs to be escalated to a triage nurse
  • Non-clinical staff accounts — same behavior as the "other clinical staff" role above

Minimum qualifications

  • Completed CS290 (Data Structures) or equivalent
  • Proficient in Python

Preferred qualifications

  • Familiarity with both backend and frontend web development (e.g., Node.js, HTML, CSS)
  • Experience calling or integrating third-party APIs
  • Familiarity with LLM APIs or prompt-driven application design
  • Interest in or coursework touching on healthcare data, clinical terminology, or health informatics

Contact

Scott Dispensa