How commvita renders an entire health economy as a single flow line — Prevention Dam → Front Gate → ED → AMU → Base Ward → Therapy → Discharge to Assess → Exit, with a Returns Loop for failure demand — finds the one binding constraint that limits everyone, and closes the loop by acting on it across acute, community and social care.
/flow) on the GP / Primary Care scope: the whole system as one production line bound by Little’s Law, with the binding constraint (Discharge to Assess, ρ 118%) starving downstream and a returns loop at 14% failure demand.One idea underneath all three: a health system is a production line bound by Little's Law (L = λW). You cannot fix flow by pushing on every station — you find the one that is holding the line back, and you act on it.
The whole system drawn as a single animated production line — WIP, queue, arrival rate λ and time-in-system W per station — with a whole-system pressure index (OPEL-equivalent) and a demand classification bar splitting value / avoidable / failure demand.
Live binding-constraint detection (drum-buffer-rope) flags the one station that caps the whole line; animated red back-pressure shows it starving downstream. Service-line scopes (Medicine / Surgery / Frailty / Stroke / Elective) re-flow the line so the constraint shifts, and a what-if sandbox tests which lever moves it.
Not just a picture: the Closed-Loop Actions tab acts on flow — auto-creates discharge tasks, notifies via NRL / GP Connect, books transport and orders TTAs — cross-setting across acute, community and social care, beyond a read-only dashboard.
Every setting is a station on one line, and one law binds them all: work-in-progress equals arrival rate times how long each patient spends in the system (Little's Law, L = λW). Model the line, and pressure becomes measurable rather than anecdotal.
The canvas draws Prevention Dam → Front Gate → ED → AMU → Base Ward → Therapy → Discharge to Assess → Quality Gate → Exit, with a distinct Returns Loop carrying failure demand (bounce-backs, readmissions) back to intake — so avoidable rework is visible, not hidden.
Each station carries its own WIP, queue, arrival rate λ, service rate μ, utilisation ρ, time-in-system W and flow efficiency — drill in on any one. The maths is the same maths that governs any queue; the health system is not special, it is just under-measured.
A whole-system pressure index rolls the line up into an OPEL-equivalent level, and a demand-classification bar splits inflow into value / avoidable / failure demand — so "we're under pressure" becomes "the pressure is failure demand returning through the loop".
The canvas runs on a seeded demo model by default. An Operational Feeds toggle in the Integrations Hub switches it to a LIVE model from GET /flow/canvas-model, derived from real ward, delay and OPEL state — flow / WIP / queue / constraint are live; demand and returns stay representative until those feeds connect.
The constraint is not fixed: it moves by service line, and it moves when you pull the right lever. commvita lets you find it, re-scope it, and rehearse relieving it before touching the real system.
Drum-buffer-rope logic continuously identifies the station that caps the whole line and marks it — with animated red back-pressure edges showing exactly which upstream stations it is choking and which downstream stations it is starving.
Switch scope — Whole system / Medicine / Surgery / Frailty / Stroke / Elective — and the line re-parameterises so the binding constraint moves: Medicine → D2A, Surgery → Theatres, Frailty → social-care discharge, Stroke → HASU bed, Elective → Theatres. The same metaphor, per pathway.
The RTT waiting list is rendered as an upstream reservoir feeding the line (Little's Law again) — total waiting, 2WW share and >52-week breaches — with 2WW (hot, pre-empting) vs routine inflow bands on the Elective scope, drilling through to the RTT Waiting Swarm.
Two levers, mapped to the maths: the Prevention Dam lever lowers arrival rate λ; the Constraint-relief lever shortens time-in-system W at the drum. The sandbox shows which lever actually moves WIP — proving that relieving the constraint, not adding front-door capacity, unblocks the line.
The difference between a dashboard and a control centre: commvita does not stop at showing the constraint — it acts on it, and it acts across settings, because a discharge blockage is rarely solved inside the acute walls alone.
From the constraint, the Closed-Loop Actions tab generates the tasks that relieve it — discharge tasks, referrals and to-take-away (TTA) medicines orders — turning "D2A is the drum" into named, owned actions rather than an observation.
Actions reach outward: onward providers are notified via NRL / GP Connect and transport is booked, so the community and social-care links needed to complete a discharge are triggered from the same place the blockage was found.
Because the loop spans acute, community and social care, relieving the constraint pulls in Bed Board free-bed prediction, LOS forecasting and OPEL submission — the flow model and the operational actions share one source, so what you see is what you can act on.
| Flow concept | Module | Route | Model / API | Standard | Status |
|---|---|---|---|---|---|
| Whole system as one line | commvita Flow · Health Flow Canvas | /flow | GET /flow/canvas-model · FlowModel | NHS OPEL 2024–2026 | ● Live |
| Little's Law & binding constraint | Health Flow Canvas | /flow | FlowWard · FlowToCDelay · OPEL state | Little's Law / Theory of Constraints | ● Live |
| Operational Feeds → LIVE model | Integrations Hub → Flow | /integrations-hub | GET /flow/canvas-model · FHIR R4 Encounter | FHIR R4 | ● Live |
| Service-line scopes & elective backlog | Health Flow Canvas | /flow | FlowModel re-parameterised · PTL reservoir | RTT Rules 2023 · 2WW bands | ◍ Demonstrated |
| Whole-system flow river | Patient Flow Sankey | /patient-flow-sankey | seeded model · period scrubber | FHIR R4 Encounter · OPEL | ◍ Demonstrated |
| Live ward bed floor-map | Hospital Digital Twin | /hospital-twin | ~128 beds · NCTR · outliers | HL7 ADT · NHSE Discharge Framework 2023 | ◍ Demonstrated |
| Elective PTL ageing beeswarm | RTT Waiting Swarm | /rtt-swarm | weeks-waited · inequality lens | RTT Rules 2023 · IMD / CORE20PLUS5 | ◍ Demonstrated |
| Demand vs capacity tanks | Demand vs Capacity Reservoir | /reservoir-board | fill / drain · spill zone · 6-wk forecast | OPEL · Little's Law · DM01 | ◍ Demonstrated |
| Predictive free beds | Bed Board · LOS Prediction | /bed-board · /los-prediction | ML LOS · discharge probability | SAFER bundle | ◍ Demonstrated |
| Discharge coordination | Discharge Hub | /discharge-hub | D2A pathway · SAFER · DToC codes | NHSE Best Practice Discharge Framework 2023 | ◍ Demonstrated |
| Daily OPEL return | OPEL Submission | /opel-submission | auto-populated from Flow | NHS OPEL Framework 2024–2026 | ◍ Demonstrated |
| Closed-loop actions (act on flow) | commvita Flow · Closed-Loop Actions | /flow | discharge task · NRL / GP Connect notify · transport · TTA | FHIR R4 · GP Connect · cross-setting | ◍ Demonstrated |