How dual-stream AI predicts surgical risk by reading between the charts
A hybrid AI system combining traditional machine learning with a large language model reached 98 percent near-agreement with doctors when grading surgical risk. By reading messy doctor notes alongside raw lab data, the model avoided missing the sickest patients.
Reading level
The full story with proper science words explained.

The problem with grading patient health
Two doctors looking at the exact same patient before an operation agree on their overall health status as little as 40 per cent of the time. To help guide clinical choices, anesthesiologists sort patients into six health tiers using a tool called the ASA-PS score. When clinicians disagree on this grade, hospitals face real trouble. Disagreements can cause delayed procedures, wasted beds, or costly, unneeded tests. Scientists wanted to see if calculating AI surgical risk with both raw numbers and doctor notes could match expert human ratings.
Sorting patients accurately helps hospitals plan their daily workflow. For example, clinics can send low-risk people to brief phone checkups while saving full hospital visits for sicker cases. But building an automated tool to assign these grades is surprisingly tricky.
Why raw numbers miss the danger
Standard machine learning tools, like XGBoost, often struggle when they look only at raw, structured figures such as blood tests, pulse rates, and age. In this study, standard models scored common, moderately ill class III cases correctly up to 85 per cent of the time. However, they completely broke down on rare, dangerous cases. They labelled all 29 severely ill class IV individuals as less severe class III patients, and they missed every single dying class V patient. Because the model learned from majority patterns, it played the odds and overlooked the most vulnerable people.
Teaming numbers with notes
To solve this, scientists built a two-part hybrid system and tested it on 3,000 adult elective hospital records from one medical centre. The system runs two independent paths at the same time.
First, an XGBoost model inspects over 400 structured data points, such as vital signs and lab results. Using SHAP values to explain its path, researchers saw that patient age and total pill counts drove most of this tool's scores. Second, the large language model GPT-4o reads through up to 100,000 tokens of free text from clinic notes. The setup then combines both paths, giving a 30 per cent weight to the machine learning math and a 70 per cent weight to the language model.
On an unseen test set of 500 patient files, this combined setup reached a 63.0 per cent exact match with human specialist ratings. It also scored a 98.0 per cent ±1-class accuracy, beating systems that relied solely on numbers or text notes alone. Combining the two streams stopped the system from missing critically ill individuals.
What we still do not know
While these results look promising, matching human scores does not mean the tool prevents surgical harms or makes better medical choices. The study looked back at past records from only one medical centre, and the target grade came from just one doctor per file. Very sick class V cases were also rare, making those scores less stable. The team also could not check for racial bias because demographic details were missing. Doctors will need live hospital trials across multiple centres to see how the system truly performs.
Science words
- ASA-PS
- A six-tier health classification scale used by anesthesiologists to grade a patient's physical state before a medical procedure.
- SHAP
- A mathematical technique that calculates how much each specific clinical measurement contributed to an AI model's final prediction.
- ±1-class accuracy
- The percentage of time a predicted score is either an exact match or off by no more than one category level.
Check it yourself
This story is based on a real research paper in Journal of Medical Internet Research by Pabalan, Stewart, Fisher et al. We write with AI help and check it against the paper, but the original is the final word.