<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Habib Ur Rehman</title>
    <description>The latest articles on DEV Community by Habib Ur Rehman (@habib-analyst).</description>
    <link>https://dev.to/habib-analyst</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4169369%2F9288bfab-14bb-475b-b0e5-90b842ecf719.png</url>
      <title>DEV Community: Habib Ur Rehman</title>
      <link>https://dev.to/habib-analyst</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/habib-analyst"/>
    <language>en</language>
    <item>
      <title>I Benchmarked 3 LLMs on Clinical Care-Management Tasks — They Prescribe the Drug and Skip the Safety Check</title>
      <dc:creator>Habib Ur Rehman</dc:creator>
      <pubDate>Fri, 09 Oct 2026 15:41:26 +0000</pubDate>
      <link>https://dev.to/habib-analyst/i-benchmarked-3-llms-on-clinical-care-management-tasks-they-prescribe-the-drug-and-skip-the-1hfj</link>
      <guid>https://dev.to/habib-analyst/i-benchmarked-3-llms-on-clinical-care-management-tasks-they-prescribe-the-drug-and-skip-the-1hfj</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Kaggle Benchmarking Challenge.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Benchmarked 3 LLMs on Clinical Care-Management Tasks — They Prescribe the Drug and Skip the Safety Check
&lt;/h1&gt;

&lt;p&gt;Everyone picks an LLM for healthcare work based on MMLU scores and marketing copy. I wanted to answer a narrower question: &lt;strong&gt;which models can actually do care-management work&lt;/strong&gt; — read a patient case and produce a care plan that is not just fluent, but complete and safe?&lt;/p&gt;

&lt;p&gt;So I built CareManage-Bench: 24 synthetic clinical cases across 3 task families, each with ground-truth checklist assertions. I ran it against 3 models on &lt;a href="https://www.kaggle.com/benchmarks" rel="noopener noreferrer"&gt;Kaggle Benchmarks&lt;/a&gt;. The models aced the scary-sounding tasks and failed the boring ones — and the failure mode is the interesting part.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I benchmarked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CareManage-Bench&lt;/strong&gt; — 24 tasks in 3 families, all cases fully synthetic (no real patient data anywhere):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Medication safety review (8 tasks)&lt;/strong&gt; — given a patient's med list, flag the planted danger: a drug interaction, a contraindication, a dosing error. Scored on whether the model catches the specific planted hazard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Care-plan generation (8 tasks)&lt;/strong&gt; — given a patient summary, write a structured care plan (assessment, medications, lifestyle, referrals, monitoring, education). Scored against a must-include checklist per case: e.g., a new-AFib case must mention anticoagulation &lt;em&gt;and&lt;/em&gt; bleeding-risk assessment; an osteoporosis case must mention bisphosphonates &lt;em&gt;and&lt;/em&gt; dental review before starting them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triage prioritization (8 tasks)&lt;/strong&gt; — rank a queue of cases by urgency in an exact format. Scored on exact ranking match.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Why these three? They mirror what a care-management team actually does all day: don't harm (med safety), do everything needed (care plans), do the urgent thing first (triage). And the scoring is deliberately harsh: checklist assertions, all-or-nothing per task. A beautiful plan that misses one safety item scores zero — because in clinic, that's what a miss costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Models tested
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.7 Flash&lt;/strong&gt; (&lt;code&gt;google/gemini-3.7-flash&lt;/code&gt;) — Google's fast flagship; the baseline to beat&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 31B&lt;/strong&gt; (&lt;code&gt;google/gemma-4-31b&lt;/code&gt;) — open-weights model; can it hang with the flagships on clinical reasoning?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPT-5.4 Mini&lt;/strong&gt; (&lt;code&gt;openai/gpt-5.4-mini-2026-03-17&lt;/code&gt;) — OpenAI's efficient tier; the cost-effective deployment candidate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same harness, same prompts, same assertions for all three. No prompt tuning per model — I wanted to measure the models, not my prompt engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Findings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The scoreboard
&lt;/h3&gt;

&lt;p&gt;| | Med safety (/8) | Care plans (/8) | Triage (/8) | Total (/24) |&lt;br&gt;
|---|---|---|---|&lt;br&gt;
| Gemini 3.7 Flash | 8 | 7 | 8 | &lt;strong&gt;23&lt;/strong&gt; |&lt;br&gt;
| Gemma 4 31B | 8 | 5 | 8 | &lt;strong&gt;21&lt;/strong&gt; |&lt;br&gt;
| GPT-5.4 Mini | 8 | 7 | 8 | &lt;strong&gt;23&lt;/strong&gt; |&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;67 out of 72 overall (93%).&lt;/strong&gt; Two of three families were perfect across all models. The entire benchmark was decided by 5 failed care-plan tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding 1: Every model aced the "scary" tasks
&lt;/h3&gt;

&lt;p&gt;All three models went 24/24 on medication safety and triage. Every planted drug interaction caught. Every contraindication flagged. Every triage queue ranked exactly right. If you only benchmarked danger-detection, you'd conclude these models are interchangeable and ready to deploy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding 2: The depression-screening blind spot (all 3 models)
&lt;/h3&gt;

&lt;p&gt;The post-MI case (68-year-old woman, NSTEMI 2 weeks ago, stent, EF 40%) asked for a full care plan. Gemini wrote a 6,949-character plan — DAPT duration, cardiac rehab referral, ACE inhibitor for the low EF, return precautions for chest pain. Clinically excellent. It never mentioned depression screening. Not once. GPT-5.4 Mini and Gemma 4 31B did the same.&lt;/p&gt;

&lt;p&gt;Post-MI depression screening is guideline-recommended (AHA) — depression after MI is common and worsens outcomes. All three models wrote thorough cardiac plans with a complete psychosocial blind spot. The plans read as authoritative and complete; the omission is invisible unless you're checking for it. This is the failure mode that worries me most: &lt;strong&gt;not wrong answers, but confident, fluent incompleteness.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding 3: Gemma prescribes the drug, skips the safety precondition
&lt;/h3&gt;

&lt;p&gt;Gemma 4 31B's two additional misses share a pattern worth naming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AFib case:&lt;/strong&gt; Gemma correctly prescribed apixaban for stroke prevention (CHA2DS2-VASc = 3) — then never assessed bleeding risk. No HAS-BLED, no bleeding-risk mention anywhere in the response, while starting an anticoagulant. The drug decision was right; the safety precondition was skipped.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Osteoporosis case:&lt;/strong&gt; Gemma correctly started alendronate 70 mg weekly with proper administration instructions — then never mentioned dental review, despite the well-known osteonecrosis-of-the-jaw risk with bisphosphonates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In both cases the model did the &lt;em&gt;headline&lt;/em&gt; clinical action correctly and dropped the &lt;em&gt;guardrail&lt;/em&gt; step. A human reviewer skimming for "did it get the treatment right?" would pass both. The checklist caught what fluency hides.&lt;/p&gt;

&lt;h3&gt;
  
  
  What surprised me
&lt;/h3&gt;

&lt;p&gt;I expected the models to struggle most with medication safety — catching a subtle interaction feels like the hard reasoning task. It was the easiest: 24/24. The hard task turned out to be &lt;strong&gt;completeness under open-ended generation&lt;/strong&gt;: when asked to "be comprehensive," every model produced something that &lt;em&gt;felt&lt;/em&gt; comprehensive while dropping guideline-recommended items. Benchmarks that score overall quality or helpfulness would have given these plans top marks. Only checklist assertions against ground truth surfaced the gaps.&lt;/p&gt;

&lt;h2&gt;
  
  
  My benchmark
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.kaggle.com/benchmarks/habib734/caremanage-bench" rel="noopener noreferrer"&gt;CareManage-Bench on Kaggle Benchmarks&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24 tasks, 3 families, ground-truth checklist scoring&lt;/li&gt;
&lt;li&gt;All patient cases fully synthetic&lt;/li&gt;
&lt;li&gt;Reproducible: fixed prompts, published assertions, deterministic scoring&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I'd measure next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adversarial polypharmacy:&lt;/strong&gt; deliberately tricky multi-drug patients where the danger is a three-way interaction, not a pairwise one&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A human clinician baseline:&lt;/strong&gt; how does a practicing care manager score on the same checklist? (My guess: humans miss different items than models, and the union is the safest system)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checklist-weighted scoring:&lt;/strong&gt; right now a missed dental review costs the same as a missed anticoagulant. Clinically, they don't weigh the same — but deciding the weights is itself a clinical judgment worth making explicit&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;If your benchmark doesn't separately measure &lt;em&gt;omissions&lt;/em&gt;, you're selecting for the most fluent liar. All three models I tested write beautiful care plans. Two of them are genuinely strong. But "beautiful and mostly complete" is a dangerous place to stop in healthcare — because the missing 7% is depression screening after a heart attack, bleeding risk before blood thinners, and a dental check before jaw-risk drugs. Measure the checklist, not the prose.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built for the Kaggle x DEV Benchmarking Challenge. All 24 patient cases are synthetic — no real patient data was used.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>llm</category>
      <category>healthcare</category>
    </item>
  </channel>
</rss>
