Inspiration

Not a pitch deck — a late-night note about silent failures.

I kept hearing the same nightmare:

🏥 hospital renames ONE lab column
        │
        ▼
🤖 sepsis model never gets the memo
        │
        ▼
💚 dashboards stay green for months
        │
        ▼
⚠️ patient risk scores quietly drift (~18 months… ~10% of patients)

DataHub already knew the lineage. The graph was sitting there. We just weren’t listening hard enough.

So Clinical Model Guardian exists to say:

  • 💳 clinical AI deserves the same paranoia we give payment systems
  • 🔍 agents should read schemas, not guess
  • 🗣️ alerts should sound human
  • 🎮 ops need a way to see the hospital network syncing

I’m not a clinician. I just refuse “silent failure” as an architecture.


What it does

Clinical Model Guardian watches the Sepsis Risk Model lineage in DataHub and catches problems in minutes, not months.

❌ Without CMG ✅ With CMG
Schema drift invisible Lineage polled ~every 45s → alerts fire
Lineage stuck in docs Live chain you can click + query
No compliance story Immutable audit log
Ops learn too late Voice agents + hospital network + 2D game

Core path

lab_results  →  sepsis_model_input  →  Sepsis Risk Model v2
(Epic Beaker)   (feature store)         (model serving)

Surfaces

Surface What you get
📊 Dashboard Lineage, simulate drift, clinical alerts, audit log
🗂️ DataHub Ops DBs, migrations, impact map, click-to-ask bot 💬
🤖 Agent Workspace Voice/text commands + multi-agent live work trace
🎮 2D Visualizer Minecraft-style hospital command center

🎮 The game (signature wow)

🏥 AIIMS ──┐
🏥 Apollo ─┼──► 📡 DataHub Central ◄── 🤖 Guardian Agents
🏥 Fortis ─┤         ▲
🏥 Max ────┤    📦 packets · ⚠️ drift · 🎙️ voice
🏥 Medanta ┘

Commands like trigger driftsend agentshow lineage hit real APIs, not fake UI.


How we built it

Layer Stack Why
🎨 Frontend React 19 · Vite · Tailwind · Leaflet Fast UI + map + game
⚙️ Backend Node · Express · SSE Real-time agent/hospital stream
🗂️ Context DataHub GMS GraphQL (+ embedded GMS) Lineage = source of truth
🧠 LLM OpenRouter (Gemini Flash) Plain-English clinical alerts

Flow

🏥 Hospital / lab feeds
        │
        ▼
🗂️ DataHub GMS (lineage + schemas)
        │
        ▼
⚙️ Express API ──SSE──► 🎨 React
        │                 ├ 📊 Dashboard
        │                 ├ 🗂️ Ops
        │                 ├ 🤖 Agents
        │                 └ 🎮 Game ★
        ▼
🧠 OpenRouter (alerts + agent polish)

Simulate change → ingest → schema diff → alert → audit → agent resolve. Voice via Web Speech. Same /api powers the game and the workspace.


Challenges we ran into

Challenge What we did
🐳 No full Docker DataHub on every machine Hybrid live APIs + embedded GMS shim
🎭 “Is this real or mock?” Stayed honest: core lineage path real; catalog sizes illustrative
🎮 Game that isn’t just cosmetics Wired commands to /api/simulate-change, /api/lineage, etc.
☁️ Monorepo deploy Render API + Vercel frontend + VITE_API_URL

Also: voice + SSE + multi-agent traces + migrations in one demo loop = more late nights than expected ☕


Accomplishments that we're proud of

  • 🛡️ A guardian that actually watches sepsis lineage, not just documents it
  • 🎮 A playable 2D hospital + agent command center (the signature surface)
  • 💭 Landing “why I started” typed as live code
  • 🧭 Guided demo tour: Dashboard → DataHub → Agent → Game
  • 🔍 Live agent work traces (command → intent → DataHub → response)
  • ⚡ End-to-end wow loop: simulate → alert → agent → visualizer

What we learned

lineage without a watcher  →  just documentation
graphs ops can’t see       →  get ignored
agents that only chat      →  theater
agents that call tools     →  useful
silent failure             →  an architecture choice we refuse ❌

Clinical ML needs the same paranoia as payments — and sometimes a little game energy so people actually look at the graph 👀


What's next for Clinical Model Guardian

Next Goal
📦 Official DataHub healthcare sample Full GMS ingest (not just reference)
🔐 Hardened deploy Always-on API, real auth, less hybrid
⚠️ More drift scenarios Renames, type changes, stale feeds, multi-hospital
🏥 Real ML-team path Something a health-system team could run beside sepsis models

Destination:

🏥 hospitals → 🗂️ DataHub → 🤖 loud agents → 🎮 visible ops → 💚 safer patients

Built With

Share this project:

Updates