Acumenus
Closing the GapsGeisinger CDS · Compendium
⌘K jump
Geisinger Health System · Clinical Decision Support

Engineering care that closes the gaps.

A nine-chapter illustrated retrospective on building a real-time, value-driven care-transformation engine — the platform beneath it, the data-quality discipline that made it trustworthy, and the program portfolio it powered. Two chapters are interactive; press ⌘K anywhere to jump.

250K+
care gaps closed
$30M+
FFS revenue recaptured
620K
patients scored daily
9
connected chapters
0 of 9 read
Dedication

Dedicated, with gratitude, to the leaders of Geisinger Innovations who taught me to engineer care rather than exhort it — Glenn D. Steele Jr., MD, PhD, Ronald A. Paulus, MD, and Jonathan D. Darer, MD, MPH.

Reading paths

~26 min

The quick tour

1The Compendium
2Close the Loop
3MEWS
~30 min

For executives

1The Compendium
2AMP & Auto-Orders
3Close the Loop
~33 min

For data architects

1Data Discovery
2CKD
3SuperNote
4Glucometrics

The nine chapters

01 / 09

The Compendium

Start here

The platform, the data-quality discipline, and the whole portfolio in one narrative.

the entry point10 min
02 / 09

Chronic Kidney Disease

Stage the diagnosis, identify the population, hard-wire the follow-through.

+196% CKD coding9 min
03 / 09

Glucometrics

Inpatient glucose off the real-time HL7 lane, triaged daily by pharmacy.

real-time, pharmacy-led7 min
04 / 09

MEWS Early Warning

Interactive

Vital deterioration scored continuously and escalated before the code.

live calculator inside8 min
05 / 09

Close the Loop

No abnormal result falls through — every open loop documented to resolution.

2,856 loops · a cancer caught8 min
06 / 09

SuperNote

A progress note that assembles itself and codes as you write the plan.

HCC capture 50% → 70%9 min
07 / 09

AMP & Auto-Orders

Interactive

Care that happens before the visit — protocol orders and pre-visit closure.

ROI slider inside7 min
08 / 09

Obesity & Heart Failure

Make the generic diagnosis uncomfortable — taxonomy applied to two conditions.

~49,000 (re)classified6 min
09 / 09

Data Discovery & Platform

Disciplined doubt: the anomaly gallery, the dimensional model, the rules engine.

337,111 anomalies caught8 min
Geisinger Health System · Clinical Decision Support

Engineering care that closes the gaps.

A retrospective on how Geisinger's Clinical Decision Support team turned a transactional electronic health record into a real-time, value-driven care-transformation engine — tracking 410+ evidence-based measures across 620,000 patients, every single day.

0
Care gaps closed
$0
Fee-for-service revenue recaptured
0
Clinical orders auto-generated
0
Patients monitored daily
Scroll
The case for change

The United States spends 30% more on health care — and still leaves care undone.

High cost and uneven quality are not an accident; they are the predictable output of how care is organized. Geisinger's response was to treat care delivery as a system that could be re-engineered — not exhorted — toward reliability.

Mistakes

Errors of execution that reliable, hard-wired processes are designed to prevent.

Unjustified variation

The same condition treated a dozen different ways — and the "sins of commission" that follow.

Fragmented care

Information and accountability scattered across settings, specialties, and systems.

Perverse incentives

Payment that rewards volume over the outcomes that actually matter to patients.

The passive patient

Patients positioned as recipients of care rather than activated partners in it.

Supply–demand mismatch

More need than any office visit can absorb — the math of primary care simply doesn't close.

The math doesn't close
22.6
hours per day to deliver guideline-based primary care to one panel
4.6
Acute care
7.4
Preventive
10.6
Chronic disease

A clinician cannot personally do 22.6 hours of work in a day. Reliability has to be designed into the system — delegated, automated, and anticipated — not asked of exhausted people.

The shift

From exhortation to engineering

Traditional change efforts ask harder of the same broken workflow. Clinical reengineering rebuilds the workflow itself around four commitments:

  • Reliably close care gaps in a timely fashion, at population scale.
  • Reduce unjustified variation and the sins of commission.
  • Anticipate and mitigate problems before they occur.
  • Engage and activate patients as partners in their care.
New models of care delivery Real-time actionable information "Hard-wiring" care Peer-to-peer interaction
The operating model

Analytics as the engine of care transformation.

Every program in this compendium runs on one idea: take raw clinical data, turn it into accurate, timely, engaging intelligence — and put it back into the workflow where it changes what happens to a patient. Laboratory medicine turns blood and tissue into intelligence. We did the same with data.

High-Impact Clinical Analytics

Accurate & actionable informationTimely accessEngaging user experience

Applied Analytics

  • Pipeline back into the EHR
  • Automation of routine work

Predictive Analytics

  • Risk calculations
  • Prevention & early action

Clinical Decision Support

  • Data visualization
  • Care gap closure

Guided Analytics

  • Drill-down & roll-up
  • Resource allocation

Care Transformation · Reengineering · Value-Driven Health Care

Reengineering & disruptive innovation

Move predictable work down the reliability curve.

Identify a population. Digitize 100% of its evidence-based care processes into a "bundle." Then push each task to the most reliable place it can live — delegated to a protocol, automated entirely, or handed to an activated patient — and reserve scarce clinician judgment for what truly needs it.

Patients & conditions Population identification 100% digital protocols
The reliability spectrum
LowEfficiency & reliability →High
Regular care
Clinician-driven, case by case
Delegation & algorithms
Protocols run by the care team
Automation
The system does it, every time
Patient activation
The patient becomes a partner
The engine

A dimensional analytics platform, built for change.

Under every program sits one piece of infrastructure: the "Bundle of Bundles" — a dimensional data model that tracks 410+ process measures across 25 chronic and preventive conditions for 620,000 patients, every day. It is the difference between analytics that break whenever the source system changes, and analytics that endure.

0
Process measures tracked
across the model
0
Chronic & preventive conditions
in active "bundles"
0
Patients evaluated
every single day
Daily
Refresh cadence
from monthly, at launch
Analytic, not transactional

Model the business process — not the database.

A transactional schema is optimized for capturing a click, not for answering a clinical question. Querying it forces every analyst to understand both the business and the technology, and every report breaks when the source system changes. A dimensional model packages data around how care actually works — so trust, history, and reuse come built in.

  • Conforms data from disparate sources into shared definitions
  • Captures history & supports trending across time
  • Shields analysts from source-system change via a layer of abstraction
  • No "big bang" — value accrues as each process is modeled
DIM_GAP_MEASUREbundle · measure · goal DIM_PATIENTMRN · flags · birth date DIM_PROVIDERPCP · dept · type DIM_DATEday · week · month · year FACT_MONTHLY_ CARE_GAP gap_applicable · gap_exists
The Bundle of Bundles — a conformed star schema
Data acquisition & flow

From source systems to the point of care.

Batch pipeline — the warehouse of record
Epic
Caché
Clarity
Oracle
CDIS 2.0
Teradata warehouse
Traditional analytics
bundles · dashboards
Real-time lane — low-latency HL7
Epic
Caché
eGate
HL7 interface engine
Hot Partition
today's data, unioned
Real-time analytics
MEWS · glucometrics

"Hot partitioning" unions the nightly warehouse with the day's inbound HL7 messages — so a clinician sees today's deterioration, not yesterday's. A limited data set, available with very low latency, drives the time-critical programs.

Business rules engine

Logic out of code, into data.

Clinical definitions change constantly. Storing them as Entity–Attribute–Value rows — versioned with effective and expiration dates — means one update propagates to every query, no redeployment, no drift, and a full audit of which logic was live on any given date.

EntityAttributeValue
CAD PATIENTINCLUSION414.01
CAD PATIENTINCLUSION414.02
BETA BLOCKERMED CLASSmetoprolol…
-- current definition
UDF_RULES_ENGINE('CAD PATIENT', 'INCLUSION')
-- time-travel to any prior logic
UDF_RULES_ENGINE('CAD PATIENT', 'INCLUSION', '1/1/2013')

Transparency of criteria → trust in the result.

Shared, conformed, reusable

Build once, drill across.

Core constructs — patient, provider, date — are defined once and shared across every subject area, so a question can "drill across" from a care gap to a lab result to a perinatal episode without rebuilding the join.

Care Gaps
Labs
Diagnosis
Imaging
Perinatal
+ more
2010 → 2015
12 → 25 bundles · 93 → 360 measures · monthly → daily
Data discovery

Before you trust the analytics, interrogate the data.

A data-quality problem is never just a bad value — it's the visible symptom of a process-control problem somewhere upstream. Hunting these anomalies became a discipline: every one we found pointed to a user interface, a bug, a training gap, or a missing standard we could fix at the source.

Accurate
Does the value match the source-system screen?
Timely
Is it current — or six months stale?
Complete
Did everything actually make it into the analytic?
Understood
Do we know what the value truly means?
Trusted
Should this value drive a clinical decision?
Specimens from the data
The living dead

Patients alive — and deceased

DEATH_DATE 1999-09-22
PAT_STATUS 'Alive'
41 patients in Dec 2010 → 248 by Feb 2012. Are they on a transplant wait-list? Do we mail them letters?
Nonsensical values

Taller than the Eiffel Tower

HEIGHT 985' 3.75"
Impossible heights — recorded to a hundredth of an inch — that flow straight into BMI and obesity logic.
Nonsensical values

Hotter than a reactor core

TEMPERATURE 9834 // 98.34?
A misplaced decimal turns a fever into fiction. Decimal points are load-bearing.
Change-induced drift

The vanishing sex code

NULL sex_c → 337,111 pts
+140k over a 15-week window
A schema upgrade quietly orphaned a field — and started mis-sorting patients out of the prevention bundles.
Identity & integrity

The trailing-space twin

"125321" ≠ "125321 "
One invisible space spawns a duplicate provider. 485 employee names didn't match the provider table — same person, same database.
Free-text mischief

Easter eggs in the chart

SIG: "See Shawshank Redemption"
Atenolol ordered "to treat" a femoral-neck fracture. Free text is where data goes to misbehave.
"How good is good enough? The cost of data quality belongs in the cost of owning the data asset — it's just part of doing business."

Marketing might accept 95% "good" data. Clinical care can't. And it doesn't matter whose fault a wrong value is — people stop using an application the moment the data on screen looks wrong.

Why one bad value matters
Wrong height Wrong BMI Wrong bundle Wrong care & cost

A single impossible measurement can pull a patient into — or out of — the obesity program, change a risk score, or alter what they pay for insurance. Hunting anomalies isn't housekeeping; it's patient safety.

The portfolio

Turning data into action — at the bedside and across the population.

The platform exists to do one thing: surface a care gap and then actually close it. Around the "Bundle of Bundles," we built a portfolio of programs — automated orders, anticipatory outreach, closed-loop safety nets, real-time deterioration alerts, and smarter documentation — each pushing predictable work off of clinicians and onto reliable systems.

Flagship framework

Care Gaps: Data → Action

250,000+  ·  $30M+
care gaps closed · FFS revenue · Jul 2010 – Jan 2013
Populations
Prevention
Chronic diseases
Unclosed loops
Medication safety
Regular-care "failures"
CARE
GAPS
data → action
Action arms
Office-based decision support
Care plans
Comprehensive test management
Referral facilitation & team optimization
Patient activation
Closed-loop safety net

When a result can't fall through the cracks.

8–10% of abnormal results become "unclosed loops" — ordered, resulted, and then never acted on. We mined every abnormal Pap smear ordered by a Geisinger physician and drove it to documented resolution. Among the loops we closed: 20 high-grade lesions and a case of squamous-cell cancer that would otherwise have gone unaddressed.

Read the Close-the-Loop deep dive →
2,856
loops closed by the Close-the-Loop team
20
high-grade lesions found
1
cancer caught
Automation

Auto-Orders

Routine labs and screenings, generated by protocol outside the office visit — co-signed once, then lifted off providers and nurses entirely.

506,537
clinical orders generated · 228,201 patients enrolled
Read the deep dive →
Anticipatory outreach

Anticipatory Management (AMP)

Identify open care gaps two weeks before a visit, schedule the labs in advance, and educate the patient — closing gaps before they walk in.

≈$59M opportunity
identified ROI · 5–6% fewer no-shows · 18,310 gaps addressed
Documentation

SuperNote

A progress note that assembles itself from the record — brief history, interval events, grouped problem list, care gaps — and quietly drives accurate, complete coding.

≈40% HCC ↑
HCC capture ↑ · ≈30% care-gap closure ↑ · ~15,000 notes
Read the deep dive →
Population identification

Problem List Analytics

Re-engineer the diagnosis itself — CKD staging, obesity, heart-failure taxonomy — so the problem list reliably defines who has a condition and what to do about it.

+196% CKD coding
24,000 patients newly identified · 10× more likely to be addressed
Read the Obesity & HF deep dive →
Real-time safety

MEWS — Early Warning Score

Vital signs and neuro status, scored continuously off the real-time HL7 feed, with a built-in nursing action algorithm — escalating to a rapid-response team before the code.

Real-time deterioration
surfaced at the bedside · RRT triggered automatically
Population health

Cohort Manager

Specialist-facing tools to define a cohort, flag high-risk patients on clinician-chosen criteria, and send structured, closed-loop messages back to primary care.

Specialist → PCP
structured closed-loop review, integrated with Epic In Basket
Delegation

Auto-Referral for Med Therapy

Patients with persistently uncontrolled diabetes, hypertension, or hyperlipidemia are auto-referred to clinical pharmacists, then repatriated to primary care once at goal.

60–70% at goal
of referred patients reach goal within a year
Real-time inpatient

Inpatient Glucometrics

Daily review of inpatient glycemic control, leveraging the real-time interface-engine feed and surfacing high-risk patients to the inpatient pharmacy team.

Daily · real-time
glycemic risk stratification across the inpatient census
Predictive risk

Breast Cancer Risk Assessment

A seven-factor model run across eligible women to estimate five-year invasive-breast-cancer risk — surfacing candidates for chemoprevention who were otherwise invisible.

5,897
women flagged at elevated 5-year risk
The impact

Evidence-based care, delivered at scale.

The point was never the dashboards. It was whether a diabetic got their eye exam, whether an abnormal result got acted on, whether a deteriorating patient got noticed in time. Here is what the engine produced.

0
Care gaps closed
Jul 2010 – Jan 2013
$0
Fee-for-service revenue recaptured
from closed gaps
0
Clinical orders auto-generated
by protocol
0
Abnormal-result loops closed
incl. a cancer + 20 high-grade lesions
0
Obesity diagnoses corrected or found
25K corrected · 24K newly identified
0
SuperNotes written in Epic
134 distinct providers
Population identification works

Put the diagnosis on the list, and the care follows.

Chronic kidney disease was badly under-recognized. After an analytics-driven Problem List auto-load, CKD diagnosis coding jumped 196% — and patients with CKD on their problem list were 10× more likely to have the condition actually addressed (73.2% vs 6.9%). The lift in documented risk also helped earn over $4M across three years of the PGP demonstration.

CKD diagnoses coded per month
+196%
3k 2k 1k 0 Jul '07 Jan '08 Jul '08 Jan '09 Jul '09 Nov '09 Problem List auto-load Apr 2008
Care gaps closed per month
↑ trend
10k 5k 0 Jul '10 Jul '11 Jul '12 Jan '13
Compounding returns

Every month, more gaps closed than the last.

As bundles, auto-orders, and anticipatory outreach came online, monthly care-gap closure climbed from roughly 2,000 to over 12,000 — a rising trend that compounded into more than 250,000 care gaps closed and $30M+ in fee-for-service revenue over two and a half years.

Antibiotics for acute bronchitis · HEDIS
A more precise diagnosis name — "abx not indicated" — changed prescribing behavior.
88.1% 54.9% Pre-intervention Post-intervention
37.6% relative improvement
HCC diagnosis capture · SuperNote early adopters
Anticipatory documentation surfaced high-impact conditions inside the note.
50% 70% Before SuperNote After SuperNote
~$450 added value per Medicare visit
5–6%
No-show rate reduction
via anticipatory management
60–70%
Reach goal within a year
auto-referral to clinical pharmacy
+7%pts
Level 4 & 5 visit complexity
documented, with SuperNote
0
Heart-failure patients identified
in three months (+19%)

Behind each percentage is a patient who got the eye exam, the referral, the vaccine, or the follow-up they were owed — reliably, and often without anyone having to remember.

The evolution

From a monthly spreadsheet to a daily engine.

What began in 2010 as a cumbersome, once-a-month process became, by 2015, an agile system running every day — and still growing. The pattern: try things fast, learn what truly helps patients, then invest in making it last.

Then2010 · Go-live
Bundles12
Measures93
Refresh cadenceMonthly
ExperienceCumbersome, slow
It answered"What is needed?"
Now2015 · Still growing
Bundles25
Measures360
Refresh cadenceDaily
ExperienceAgile, fast, simple
It answers"The actionable next step!"
2007 – 2009

Problem List analytics

CKD, obesity, and heart-failure taxonomies re-engineered to reliably identify populations — the seed of everything that followed.

2010

Bundle of Bundles goes live

12 bundles · 93 measures · a monthly batch. Auto-Orders begins lifting routine work out of the exam room.

2011

Real-time arrives

MEWS and inpatient glucometrics go live on the HL7 feed. Pap Close-the-Loop launches in November.

2012

Outreach at scale

Anticipatory Management and Cohort Manager extend care-gap closure beyond the visit and into the population.

2013

A dimensional foundation

CDIS 2.0 on Teradata; the rules engine and conformed dimensions mature. SuperNote proposed and funded.

2014

Smarter documentation

SuperNote enters production pilots — assembling the note, grouping the problem list, surfacing care gaps and coding.

2015

An everyday engine

25 bundles · 360 measures · daily refresh. SuperNote reaches general release across 134 providers.

The thesis

A learning health system

Infrastructure, analytics, and workflow fused into one loop that keeps getting better at delivering reliable care.

The philosophy

Build an engine that out-learns the problem.

None of this came from a master plan executed top-down. It came from a culture: try things quickly, measure honestly, keep what works, and never force a workflow on a clinician who doesn't choose it.

Best idea wins

Authority doesn't decide what's right — evidence and outcomes do.

Anyone can propose

Good ideas come from everywhere; the floor is open to all of them.

Best for patients

The single non-negotiable test every idea has to pass.

No forced workflows

Adoption is earned by being better — driven by choice, not mandate.

Technical debt as strategy

Pay it now, or pay it later — with interest.

Moving fast means some things never go anywhere, and that's the point — you find out cheaply. Once you know what genuinely makes care safer, more effective, or more efficient, you can invest wisely in building it to last. The craft is balancing two competing needs at once:

Go fast
Learn, refine, test the theory, measure outcomes, refocus.
Build to last
Build for reuse, easy maintenance, and testability.
"A data-quality problem is the manifestation of a process-control problem somewhere in the enterprise. Fix the data, and you've found something worth fixing in the system."

That belief — that the data is a window into the organization, and the workflow is the thing you're really redesigning — runs through every program in this compendium.

In one line

Hard-wire the right thing to happen.
Then get out of the way.

Geisinger's Clinical Decision Support team proved that a hospital's data — interrogated relentlessly, modeled for change, and pushed back into the workflow — can quietly make care more reliable for hundreds of thousands of people. Not by asking clinicians to try harder, but by engineering the system so the right thing happens by default.

250K+
gaps closed
$30M+
revenue recaptured
620K
patients, daily
1
cancer caught that mattered
← Back
Contents
Deep dive · Chronic kidney disease

The disease was in the labs. We made it impossible to miss.

In 2007, chronic kidney disease affected roughly one in eight adults — and at Geisinger, as everywhere, most of them were invisible: the evidence sat quietly in their laboratory results while their problem lists said nothing. This is the complete account of how we re-engineered the diagnosis itself, found the population hiding in the data, and hard-wired its care — the case study that became the playbook for everything after it.

0
of U.S. adults had CKD — most undiagnosed¹
0
Geisinger patients with CKD in their labs but not on their problem list (2007)
0
increase in CKD diagnosis coding after the auto-load
$0
earned across three years of the Medicare PGP demonstration
2007 · The starting point

One in eight adults. Mostly invisible.

By 2007 the literature was unambiguous: chronic kidney disease affected about 13% of the U.S. adult population¹ — and it behaved like the quietest dangerous disease in medicine. It progressed silently, multiplied cardiovascular risk, and fed a growing dialysis population. At Geisinger, as across the country, it was systematically under-recognized.

Silent & prevalent

≈13% of adults had CKD — the overwhelming majority without symptoms, and most without a diagnosis.¹

Deadly by proxy

CKD patients carried high cardiovascular mortality risk — many died of heart disease before ever reaching dialysis.

Dialysis rising

The number of patients progressing to dialysis kept climbing — the most expensive, most burdensome endpoint in chronic care.

Referred too late

"Late referral" to nephrology was firmly associated with poor outcomes. The window to change a trajectory closes early.

The decisive insight

The EHR already knew.

Unlike most chronic diseases, CKD can be diagnosed from laboratory testing alone — a patient's estimated GFR, sitting in the chart, stages the disease by definition. Which meant the diagnosis gap wasn't a knowledge problem at the bedside. It was a data problem — and data problems can be engineered away.

eGFR in every chartStaging is computableRecognition can be automated
Geisinger, 2007 — the iceberg, measured
Of 7,765 patients whose charts showed chronic kidney disease:
5,653 CKD by labs — not on the problem list (73%) 2,112 on the problem list (27%)

Nearly three of every four patients with laboratory-evident CKD were invisible to every system that keyed off the problem list — quality measures, decision support, registries, and risk adjustment alike.

The evidence · why the problem list is destiny

Name the disease, and care follows. Don't, and it won't.

Before intervening, we measured what a problem-list entry was actually worth. The answer reframed the problem list from documentation chore to clinical intervention: patients whose CKD was named on the list had the condition addressed at a visit ten times more often than patients whose CKD existed only in their labs.

Patients with a CKD encounter diagnosis, 2007
10×
6.9% 73.2% CKD in labs only (n = 5,653) CKD on problem list (n = 2,112)
CKD & problem-list impact · 2007 Labs only On problem list
Total CKD patients5,6532,112
With a CKD encounter diagnosis3901,546
Without one5,263566
% addressed at encounter6.9%73.2%
"Patients with CKD on their problem list were 10 times more likely to have the condition addressed than patients with CKD by labwork alone."

This single measurement became the initiative's thesis: recognition is the rate-limiting step of chronic disease care — and recognition lives on the problem list.

The fix · part one

First, make the diagnosis worth having.

A vague label can't drive care. "Renal failure, not otherwise specified" tells no one what to monitor, when to refer, or what the goal of therapy is. So before loading a single chart, we re-engineered the diagnosis itself — replacing catch-all terms with a mutually exclusive, GFR-anchored, staged taxonomy that a human and a rules engine could act on.

The old taxonomy — accurate enough to bill, useless to act on
RENAL FAILURE NOS586
CHRONIC KIDNEY DISEASE, UNSPECIFIED585.9
CHRONIC RENAL INSUFFICIENCY585.9A

Non-specific diagnoses make it impossible to identify patient needs — three different labels, zero information about severity, trajectory, or what to do next. Our design rule became a mantra: "generic diagnoses should be uncomfortable."

Naming that encodes causation: where etiology was known, the name carried it — e.g. "DM Type 2 causing CKD Stage 3." One entry, and both the endocrine and nephrology care plans know they apply.
The new taxonomy — staged by GFR, computable by design
Stage 1GFR ≥ 90 ml/min, with kidney damage
Stage 2GFR 60–89 ml/min
Stage 3GFR 30–59 ml/min585.3
Stage 4GFR 15–29 ml/min
Stage 5GFR < 15 ml/min · ESRD

Each stage maps cleanly to ICD-9 and SNOMED, displays its GFR band right in the name — "Kidney Dz, Chronic (GFR 30–59) Stage III" — and tells the clinician, the patient, and the analytics platform the same thing at the same time.

The naming principles behind it
1
Mutually exclusive, ~90% comprehensiveA short list that covers nearly everything — without two labels for the same disease.
2
Drive the goals of therapyNames carry targets — the same convention that gave us "Hyperlipidemia, LDL < 100."
3
Avoid NOS / NEC"Not otherwise specified" is where populations go to disappear.
4
Optimized preference lists4–8 curated diagnoses per search, tuned per specialty — pediatrics and adult medicine see different lists.
5
Mapped to SNOMED & ICDStandards-anchored for long-term decision support and clean data capture.
6
Operational languageWords chosen to change behavior at the point of care, not just to classify.
The fix · part two

Then load the truth into thousands of charts at once.

With a taxonomy worth writing down, we went and wrote it down — everywhere it belonged. The labs already staged every patient; what remained was an engineering problem: get the right staged diagnosis onto the right problem list, safely, at population scale.

Step 1

Mine the laboratory data

Identify every patient whose eGFR results met staged CKD criteria — the same data-discovery discipline that hunted impossible heights and "living dead" records made sure aberrant lab values didn't mislabel anyone.

Step 2

A purpose-built load utility

A custom Problem List utility enabled large-scale, controlled changes — adds, resolves, and add-resolve-and-move-to-past-medical-history — so corrections landed exactly as a careful clinician would have made them, chart by chart.

Step 3

Standards, system-wide

The utility ran in concert with diagnosis name changes, implementing the new conventions across the enterprise — so the staged language became the only language, in every clinic.

What the load was engineered to achieve
Identify chronic-disease populations reliably — feeding risk adjustment and HCC capture.
Reduce coding errors by making the right code the easy code.
Improve HEDIS quality measures by making denominators honest.
Power the strategic programs — Medical Home, ProvenCare, and care-gap closure all key off the problem list.
Help clinicians find the diagnosis they were looking for in seconds, not searches.
Earn trust — "not just accuracy, but trust." The problem list as Geisinger's digital gold standard.
What happened next

Recognition didn't drift up. It stepped up — and stayed.

The auto-load landed in early 2008. CKD diagnosis coding jumped 196% — from under a thousand diagnoses a month to roughly two-and-a-half thousand — and then it stayed there, because the staged diagnoses now lived on problem lists where every subsequent encounter could see them. Eighteen months later, the CKD bundle made the monitoring permanent.

CKD diagnoses coded per month · Jul 2007 – Nov 2009
+196%
3k 2k 1k 0 Jul '07 Jan '08 Jul '08 Jan '09 Jul '09 Nov '09 Problem List auto-load early 2008 CKD bundle deployed autumn 2009
0
Sustained increase in CKD diagnosis coding
a step-change, not a campaign spike
≈3×
Monthly coding volume
from under 1,000 to ~2,400–2,800 diagnoses/month
$0
Across three years of the Medicare PGP demonstration
honest severity documentation → honest risk scores

Why the money followed the medicine

Geisinger was a participant in Medicare's Physician Group Practice (PGP) demonstration — an early pay-for-performance model where payment tracked the documented severity and quality of care for a population. When thousands of patients' kidney disease went from invisible to accurately staged, risk scores finally reflected reality — contributing over $4 million across three years. No upcoding, no gaming: the patients were always this sick. Now the record agreed.

The compounding chain
Labs stage the patient Problem list names it Encounters address it Coding reflects it Care & payment align

Each link feeds the next. This chain — recognition compounding into care and into sustainability — is the core mechanic the rest of the portfolio reused.

From recognition to reliability

Recognition was step one. Then the care became automatic.

A diagnosis on a list changes one visit. Infrastructure changes every visit. Between 2009 and 2015 the CKD population was wired into each layer of the platform — daily bundle surveillance, automated and anticipatory gap closure, a population command center for nephrology, and documentation that kept the whole thing honest.

Layer 1

The CKD bundle — surveillance that never sleeps

Deployed in autumn 2009, the CKD bundle digitized the evidence-based care of Stage 3 and Stage 4 disease into 9 care needs (10 for Stage 4) — recomputed every day for every qualifying patient on the "Bundle of Bundles," alongside 24 other condition bundles covering 620,000 patients.

Measures the platform watched for CKD patients — examples
Renal function (BMP) monitored Phosphorus — Stage 3 & 4 Albumin / creatinine LDL annually Hemoglobin in goal (anemia of CKD) ACE/ARB on the medication list Nephrology evaluation when indicated

Inclusion criteria lived in the rules engine — versioned, auditable, reusable — so "who counts as CKD Stage 3" meant exactly one thing across every report, alert, and program.

How an open gap actually closed
1Auto-Orders. Routine labs — BMP, lipids, glucose — generated by protocol outside the visit, co-signed once by the PCP, then handled by the system.
2Anticipatory Management. Two weeks before a visit, every open CKD gap — a missing phosphorus, an overdue renal panel — was identified and scheduled in advance, so results were on the chart when the patient arrived.
3Point of care. Whatever remained surfaced in the workflow — drillable from population to patient for any provider, any department, any bundle.
Layer 2

Cohort Manager — nephrology's population command center

The deadliest failure mode in CKD is the late referral. Cohort Manager attacked it directly: population tools designed for specialists, letting nephrology define exactly the patients it worried about, watch them continuously, and push structured, closed-loop guidance back to primary care.

Clinician-defined cohorts — the actual filters
CKD stage
Stage 3Stage 4 ESRD
GFR range
0 – 35 ml/min
Evidence of proteinuria
 Yes NoAll
Nephrology referral status
○ Referred, not yet seen
○ Active patient
● No referral in 12 months
○ All

That highlighted filter is the late-referral question, asked of the entire population at once: who is sick enough to need us and hasn't been seen?

High-risk flags — clinician-specified, computed continuously
ANEMIABICARB_UNDER_16BP_OVER_180_100 BUN_OVER_80GFR_CHANGEHYPERKALEMIA HYPONATREMIAIV_CONTRAST_GADNEW_ACEARB_NO_BMP WEIGHT_GAIN

Each flagged patient opens to trend views — BUN, GFR, hemoglobin, potassium, sodium, weight — with referral history alongside, so the reviewer sees the trajectory, not a snapshot.

The closed loop to primary care
Nephrology reviews flag Structured message PCP's Epic In Basket Documented resolution

Not a curbside, not an FYI — a structured, trackable loop. Specialist intelligence delivered into the workflow that owns the patient.

Layer 3

SuperNote — documentation that keeps it all honest deep dive →

SuperNote · Assessment & PlanCKD-staged
CKD STAGE 3
Kidney disease, chronic, stage III (GFR 30–59 ml/min) · DM type 2 causing CKD stage 3
ACCUPRIL 20 MG PO TABS — starts today
Procedure: NEPHROLOGY REFERRAL OP
Today's plan: GFR decrease is concerning. Stopped metformin for DM. Patient referred to Nephrology for consult. Started Accupril.
Open care gaps shown in-note · Bundles: ADULT PREVENTION, CAD, CKD3 — ACE/ARB recommended · Hemoglobin not in goal · TDAP needed
A problem list that reads like a kidney

SuperNote grouped problems by organ system — the nephrology block collected CKD stage, hypertension, anemia of CKD, AKI — so a complex patient's renal story read as one coherent paragraph instead of scattered lines. Typing in today's plan facilitated the staged diagnosis coding automatically.

It even argued back

Recommendation engines (in development by 2014–15) watched for contradictions — "Ms. Jones currently has both CKD 3 and CKD 4 on her problem list" — and asked the clinician to reconcile, with the GFR evidence attached. The data stewardship loop, closed at the point of care.

One name, two care plans

In the ontology, "DM type 2 causing CKD stage 3" mapped to two disease processes — CKD Stage 3 (nephrology) and chronic diabetes (endocrine) — each flagged generate_plan = true. The causal name wasn't style; it was machinery.

The legacy

CKD wasn't a project. It was the prototype.

Every element this initiative pioneered — lab-driven population identification, diagnosis re-engineering, the bulk problem-list load, daily bundle surveillance, specialist population tools, self-auditing documentation — became standing infrastructure. The CKD sequence hardened into a repeatable playbook, and the playbook went on tour.

1
Re-engineer the diagnosisStaged, mutually exclusive, goal-carrying names a rules engine can act on.
2
Find the population in your own dataThe labs already know. Interrogate them — carefully.
3
Load the truth at scaleA purpose-built utility, applied as carefully as a clinician would, chart by chart.
4
Hard-wire the ongoing careBundles watched daily; gaps closed by automation and anticipation, not memory.
5
Arm the specialistsPopulation command centers with closed-loop messaging into primary care.
6
Sustain it in the noteDocumentation that surfaces gaps, codes the truth, and argues back when the chart contradicts itself.
Where the playbook went next

Obesity

BMI computed from cleaned heights and weights: 25,000 diagnoses corrected on the first pass, 24,000 previously undiagnosed patients identified on the second.

Heart failure

Generic "CHF" re-staged into an actionable taxonomy — 1,294 patients moved to high-value diagnoses in three months, a 19-point improvement.

Acute bronchitis

One uncomfortable name — "abx not indicated" — and antibiotic prescribing fell from 88.1% to 54.9%: a 37.6% relative reduction on a HEDIS measure.

"Find the population. Name it honestly. Then make the right care automatic."

That is the CKD initiative in one sentence — and the operating thesis of everything documented in the full compendium.

← Previous
The Compendium
Deep dive · Inpatient glucometrics

Insulin doesn't wait for the nightly batch.

Blood glucose is the fastest-moving number in the hospital — measured at the bedside every few hours and treated with one of medicine's highest-risk drugs. Analytics that refresh tomorrow are commentary, not care. So we tapped the hospital's real-time HL7 stream and built a daily, pharmacy-led surveillance system that risk-stratified every inpatient's glycemic control, every day — while it could still change the day's decisions.

0
a single reading in 24 hours flags the patient as high-risk
0
24-hour average glucose that qualifies as high-risk
0
of insulin administration on every patient view
Daily
every inpatient reviewed — run by inpatient pharmacy
The starting point

The fastest-moving number in the hospital.

No other chronic condition runs on a clock like inpatient glucose. It's measured at the bedside every few hours, swings with every meal, infection, steroid dose, and missed tray — and it's treated with one of the highest-risk medications in medicine. Managing it well is a continuous-control problem. Managing it with yesterday's data is barely managing it at all.

The tempo

Fingersticks every few hours, around the clock — a single patient can generate a dozen or more glucose values a day. The signal changes faster than any daily report.

The stakes — both directions

Sustained hyperglycemia is associated with infections, longer stays, and worse outcomes. Overcorrect, and hypoglycemia is an immediate, bedside emergency.

The drug

The treatment itself — insulin — sits on ISMP's short list of high-alert medications: drugs that carry a heightened risk of serious harm when used in error.

The diffusion

Every unit and every service owns a piece of glycemic control. Which historically meant no one watched the whole house, every day, with the same yardstick.

The decisive insight

The stream already existed.

Every bedside fingerstick and laboratory glucose was already crossing the hospital's eGate interface engine as an HL7 message, in real time — on its way to the chart. The enterprise warehouse, meanwhile, refreshed nightly. The gap between a four-hour disease and a twenty-four-hour pipeline wasn't an information problem. It was an architecture problem — and architecture can be rebuilt.

Every glucose, already streamingHL7 · low latencyTap the stream, don't wait for the batch
One patient · one day — the mismatch, drawn to scale
A real high-risk patient on the report logged 12 fingersticks in 24 hours. Batch analytics would have summarized them once — after midnight.
THE DISEASE'S CLOCK — glucose readings THE PIPELINE'S CLOCK — warehouse refresh midnight, once 6 AM 2 PM

Red points: readings that would trip a risk qualifier. By the time the batch saw them, the day they belonged to was over.

The build · in production by 2011, Release 3 · v4.0

Every unit's census, triaged before rounds.

The GHS Inpatient Glucometrics Report turned the stream into a worklist. Unit by unit, every morning, the entire census was risk-stratified by two transparent rules — so the reviewing pharmacist opened the day knowing exactly which beds needed attention, and which could safely wait.

One unit, one morning — the actual census
7 of 30 flagged

Snapshot from the live report: unit HFAM 8, Geisinger Medical Center, July 2012 — 30 inpatients: 7 high-risk, 23 low-risk. A quarter of the unit needed a closer look; three-quarters demonstrably didn't. That's triage doing its job.

The two rules that sort every bed
Any reading ≥ 300 mg/dL
…in the last 24 hours. A single severe excursion is enough — no averaging can hide it.
24-hour average ≥ 180 mg/dL
Persistent elevation across the whole day — the patient who is never dramatic and never controlled.

Two rules, deliberately simple: transparent enough for any clinician to defend, computable in real time, and stored in the rules engine — versioned and auditable like every other clinical definition on the platform. The same "transparency → trust" doctrine that governed the Bundle of Bundles governed these thresholds.

Unit census Risk flags Pharmacy review Same-day action
The live view · one flagged bed, opened

Drill into a bed, and the whole story is waiting.

Flagging a patient is easy. The report earned its keep in what happened next: one click took the pharmacist from the unit census to a complete glycemic picture — trend, treatment, context, and the exact reasons the patient qualified. Below, a faithful reconstruction of a real high-risk view from the production report.

GHS Inpatient Glucometrics · Patient ViewData as of 11:59 PM
⚑ 24-hour average glucose ≥ 180 ⚑ Glucose ≥ 300 in last 24 hrs — why this bed is on the worklist
228
24-hr avg · mg/dL
174
24-hr median · mg/dL
13
Fingersticks · 24 hr
7.20
Latest HbA1c
Diabetes on problem list On insulin Endocrinology consulted Diabetes educator NOT consulted
Admission diagnosis: COPD exacerbation — the patient was admitted for their lungs. The surveillance found the sugar anyway.
450 300 150 0 ≥300 flag ≥180 avg flag Day 1 Day 2 Day 3
Insulin administration · past 48 hours
TimeDoseProduct
Day 2 · 08:168 unitsInsulin lispro (human) 100 unit/mL subq soln
Day 2 · 11:306 unitsInsulin lispro (human) 100 unit/mL subq soln
Day 2 · 22:4112 unitsInsulin lispro (human) 100 unit/mL subq soln
Day 3 · 09:0015 unitsInsulin lispro protamine & lispro (75/25) subq susp
Day 3 · 13:154 unitsInsulin lispro (human) 100 unit/mL subq soln
Reconstructed from the production report; patient details de-identified. Values, qualifiers, flags, and ledger format as shown in the live system.
Surveillance has no admitting diagnosis

This patient was admitted for a COPD exacerbation. Nothing about the admission said "diabetes problem." The stream did — which is the entire argument for watching every bed instead of the ones already labeled.

Context turns a number into a next step

The flags answer the reviewer's first four questions before they're asked: Is diabetes on the problem list? Are they on insulin? Has endocrinology seen them? Has the educator? That last ✗ isn't trivia — it's a deliverable gap someone can close today.

Honest about freshness

The glucose stream rode HL7 in real time; contextual elements refreshed nightly — and the report said so, on its face. Labeling each element's freshness was a deliberate trust decision, straight from the platform's "transparency → trust" doctrine.

The arc the chart tells

Day 1: repeated excursions above 300. Day 3: settling between the lines, with the 75/25 mix taking over from correction dosing. The trend view let the team see therapy working — or see it failing while there was still time to act.

The pipes · why it could be real-time

Built on a fast lane the warehouse never had.

Glucometrics wasn't a report bolted onto the data warehouse — it was one of the two founding tenants of an entirely separate, low-latency path through the architecture. The platform's data-acquisition doctrine made the choice automatic: when an industry-standard stream exists, use it first.

Data acquisition · order of precedence
1
Industry standard — HL7
← Glucometrics & MEWS live here
2
Vendor standard
Out-of-the-box Epic web services
3
Geisinger standard
CDIS — the enterprise warehouse
4
Custom — last resort
GHS-developed web services

Standards first, custom last: every notch down that list costs portability and maintainability. Glucose data had a clean industry-standard stream — so glucometrics never touched a custom pipe.

Batch lane — the warehouse of record
Epic
Caché
Clarity
Oracle
CDIS
nightly refresh
Traditional analytics
bundles · dashboards
Real-time lane — low-latency HL7
Epic
Caché
eGate
HL7 interface engine
Hot Partition
today's messages
Glucometrics · MEWS
real-time analytics

A deliberately limited data set with very low latency — not the whole chart, just the elements where minutes matter, delivered while they still do.

Hot partitioning — how "today" joins "everything before today"
CDIS warehouse
complete through last night's refresh
Today's HL7 messages
accumulating in the hot partition, live
=
One queryable view — including today
a simple UNION, recomputed continuously

Each night the warehouse absorbs the day's messages and the hot partition empties to start again — so the union is always seamless: deep history from the warehouse, the last few hours from the stream, no gap in between.

The operating model

Delegation, by design.

On the platform's reliability spectrum — regular care → delegation & algorithms → automation → patient activation — glucometrics is the delegation layer, executed cleanly: transparent algorithms did the watching, and the team best built to act did the acting.

Who owned it

Inpatient pharmacy ran the daily review — the discipline that lives and breathes insulin dosing, kinetics, and interactions, operating with a house-wide view no single rounding team has.

What they did with it

Reviewed every flagged regimen against the trend and the 48-hour ledger; recommended adjustments to the treating team; and surfaced the consult gaps the report exposed — endocrinology and diabetes education.

Why it's the right altitude

Physicians manage patients one at a time. Pharmacy, armed with the stream, managed the building — the same one-to-population shift Cohort Manager gave nephrology in the CKD program.

Shipped, then sharpened

The report on these pages identifies itself as Release 3, Version 4.0 — September 2011, with production snapshots through 2013. It was versioned like software because it was software: piloted fast under the platform's "go fast, learn, refine" doctrine, then hardened into a daily institutional habit.

Measured honestly

In keeping with the platform's reporting discipline, glucometrics claimed exactly what it delivered: operational coverage — every inpatient's glycemic control reviewed daily, every unit triaged by the same transparent rules, every flag traceable to its data. The surveillance was the product; the same-day decisions it enabled were the point.

The legacy

One of two programs that taught the platform to move in real time.

Glucometrics and MEWS were the founding tenants of the real-time lane — the proof that HL7-first acquisition, hot partitioning, and delegated review could run safely in production. Between them they established a pattern the platform kept reusing: stream → stratify → delegate.

① Stream

Tap the data at the speed it's created — the interface engine, not the overnight batch — and be honest on-screen about what's live versus nightly.

② Stratify

Two transparent, defensible rules turn a 30-bed census into a 7-bed worklist. Simple thresholds, versioned in the rules engine, beat opaque scores nobody trusts.

③ Delegate

Hand the worklist to the discipline best built to act on it — pharmacy for glucose, rapid-response escalation for deterioration — and let physicians keep the judgment calls.

Its sibling on the fast lane: MEWS

The same HL7 stream, pointed at vital signs and neuro status: the Modified Early Warning Score computed continuously, displayed in the EHR in real time, with a nursing action algorithm that escalated to the rapid-response team — catching deterioration before the code. Two programs, one lane, one doctrine.

Where the pattern points

Anything measured continuously and treated with a high-risk therapy is a glucometrics waiting to be built — anticoagulation, oxygenation, sedation. The lane, the union, and the operating model were designed to be reused, not retired.

"If the disease moves on a four-hour clock, the analytics can't move on a twenty-four-hour one."

Glucometrics in one sentence — and the reason the platform learned to run at two speeds.

← Previous
Chronic Kidney Disease
Geisinger Health System · Clinical Decision Support

Catching deterioration before the code.

A clinical severity score — five vital parameters plus neurological status — computed continuously off the real-time HL7 feed, displayed live in the EHR census, and wired to a nursing action algorithm that escalates from surveillance to rapid response. The same data lane as Glucometrics. The same doctrine of anticipation.

0
Vital parameters, one score — Temp · HR · SBP · Resp · Coma
0
Maximum score — every point a step toward the RRT
0
The threshold that calls the rapid-response team, stat
0
Hospitals instrumented with process run charts — GMC & GWV
The vitals problem

The chart had every number. Nobody was doing the math.

On a typical med-surg unit, vital signs are charted every four to eight hours and land as separate flowsheet rows. Each value gets glanced at on its own. But deterioration rarely announces itself with one dramatic number — it creeps in as several modest ones. The arithmetic that turns five borderline vitals into one alarming patient was being left to whoever happened to look, whenever they happened to look.

① Episodic measurement

Vitals are sampled on a schedule, not on a trajectory. A patient trending downward between checks looks exactly like a patient who is stable — until the next set is taken.

② Fragmented signal

Heart rate lives in one row, blood pressure in another, mental status in a nursing note. No single field said how sick is this patient right now — the synthesis lived in people's heads, unevenly.

③ Late escalation

Without a shared severity number there is no shared trigger. Escalation depended on individual judgment and experience — and the rapid-response team was too often called when the code was already near.

The sum nobody computes
HR
118
"a bit fast" → +2
Resp
22
"slightly up" → +2
SBP
100
"low-normal" → +1
Temp
37.4
"fine" → +0
Coma
15
"alert" → +0
MEWS
5
RRT · stat

Five observations, each individually shrug-able. Summed, they are a patient who needs the rapid-response team at the bedside. MEWS exists to do exactly this arithmetic — and the build's contribution was to do it continuously, automatically, for every inpatient at once.

The evidence

A score with a track record — if you compute it in time.

The Modified Early Warning Score wasn't invented at Geisinger. It came with published evidence that elevated scores predict bad outcomes — and a practical flaw: in most hospitals it was tallied by hand, on paper, episodically. The bet was that the score's value was being throttled by its latency. Put it on the real-time feed, and the same arithmetic becomes an early-warning system.

The validation

A three-year study of 2,974 patients showed a strong relationship between MEWS and the probability of ICU transfer or death — the higher the score, the closer the cliff. (Carle et al., Crit Care 2007.)

The proof it can move outcomes

A UK hospital cut its number of codes in half after implementing MEWS — the case study the Institute for Healthcare Improvement published as "Early Warning Systems: Scorecards That Save Lives."

The Geisinger thesis

Paper MEWS is a snapshot taken hours apart. Geisinger already had vital signs streaming through the interface engine for Glucometrics. Pointing the same lane at MEWS turned an episodic score into continuous surveillance — recomputed as each observation lands.

0
patients in the three-year study linking
MEWS to ICU transfer or death
½
codes at a UK hospital after MEWS
implementation — the IHI case study
"The score was never the innovation. The latency was the disease."

Geisinger didn't change the arithmetic — it changed when the arithmetic happens.

The scoring system

Five parameters in. One action ladder out.

The score is deliberately legible: temperature, heart rate, systolic blood pressure, respiratory rate, and coma scale, each banded around a zero-point of normal. Distance from normal earns points; points sum to a severity score; the score maps to a defined nursing action. No black box — a nurse can verify it at the bedside with the chart and ten seconds.

MEWS calculation — as deployed at Geisinger
Parameter32101234
Temp (°C)< 35.135.1–38.4> 38.4
Heart rate< 4040–5051–100101–110111–129> 129
Systolic BP< 7171–8081–100101–199> 199
Resp rate< 9910–1819–2021–29> 29
Coma scale1513–1410–126–90–4

Worst case sums to 15. The asymmetry is deliberate — coma depth alone can contribute 4 points, hypotension 3; the score is tuned so that no single catastrophic axis can hide inside an otherwise-normal set.

Try it · the live calculator

Drag the vitals. The score and the nursing action recompute exactly as the engine did — same bands, same thresholds.

Total MEWS
0
0+0+0+0+0
The action algorithm — nursing owns every rung
0–2
Routine monitoring
Bedside RN
3
Increased nursing surveillance
Bedside RN
4
Increased surveillance + notify provider
RN → Provider
5+
Rapid-response team + notify provider stat
RRT

Four rungs, no ambiguity. The escalation is written into policy as a nursing action algorithm — recognition is not contingent on a physician being present, paged, or persuaded.

What an elevated score mandates
EHR advisory · as deployed

"MEWS Score 3. Obtain a complete set of vitals, O₂ sat and coma score every 30 min × 4, then every 2 hours until stable. Also obtain hourly urine outputs. Place orders using attached orderset."

Order set: MEWS Nursing (500015) — one click arms the surveillance bundle
Documentation rule

"The MEWS Score Evaluation row should be documented every 2 hours when a patient has an elevated score of 3 or higher, until stabilized."

The advisory doesn't just warn — it operationalizes: tighter vitals cadence, oxygen saturation, coma re-check, urine output, and a pre-built order set. Surveillance becomes an orderable object.

A real trajectory — from first-pass validation, replayed through the engine
Heart rate
118
111–129 band
+2
Resp rate
22
21–29 band
+2
Systolic BP
100
81–100 band
+1
Temp
36.0°C
35.1–38.4 band
+0
Coma scale
15
Alert · oriented
+0
Urine output
0.46
mL/kg/hr · falling
+2 · build extension
MEWS 5 core · 7 with urine
→ RRT, notify provider stat

The five core parameters already sum to 5 — RRT territory — while every individual number still looks survivable. Note the sixth card: the production engine also scored urine output, an extension visible in the first-pass validation charts. Falling urine output is precisely the kind of slow-motion signal a glance at the flowsheet forgives and a scoring engine doesn't.

The engineering

Same HL7 lane. Different physiology.

MEWS was the second tenant of the real-time lane built for Glucometrics: vitals charted in Epic stream out through the eGate interface engine, land in the hot partition, and are scored on arrival. No nightly batch, no refresh cycle — the score in the EHR census is the score as of the last observation.

Real-time vital surveillance lane
Epic flowsheet
Vitals + coma charted
eGate
HL7 interface engine
Hot partition
Real-time ∪ warehouse
MEWS engine
Score + threshold rules
EHR census + BPA
Live score · advisory · orderset

The lane is the same one Glucometrics runs on — built once, reused. What changed is thirty-odd lines of banding and threshold logic: glucose qualifiers swapped for the five-parameter matrix and the 0–2 / 3 / 4 / 5+ action ladder.

Where the score lives — the unit census
Room/BedDOB (Age)SexMEWS
SCU5-3/A01/31/1975 (36)M0
SCU5-4/A01/26/1930 (81)F4
SCU5-5/A10/29/1947 (63)M2
SCU5-6/A07/12/1951 (60)F3

A live MEWS column on the patient list, recomputed in real time — the charge nurse reads acuity for the whole unit the way a pharmacist reads the Glucometrics census. Elevated scores highlight; nobody has to go looking.

Validated before it went live — the "first pass"

Before MEWS touched a workflow, historical vitals were replayed through the engine and plotted against what actually happened to those patients. The first-pass charts trace each component score — heart rate, respiration, blood pressure, temperature, coma, urine — alongside the composite, hour by hour across an admission.

One replayed admission shows the composite climbing 3 → 6 → 7 across a single overnight stretch while no individual vital looked dramatic — exactly the pattern the score exists to catch, visible in the engine's output before go-live.

The same discipline the team applied to data quality everywhere else: prove the computation against history before you let it interrupt a nurse.

5+1
Core parameters, plus urine output in the build
the engine scored more than the paper score did
q30min
Vitals cadence armed by the advisory, × 4
then every 2 hours until stable
1
Order set — MEWS Nursing (500015)
the whole surveillance bundle in one click
0
Batch windows between a vital and its score
scored on arrival, on the Glucometrics lane
Operating model

Nursing owns recognition. And the team audited itself.

The action ladder is deliberately a nursing algorithm: surveillance and escalation begin at the bedside, with the provider notified at 4 and the rapid-response team called at 5. What makes the operating model unusual is what came next — the team built process analytics over its own program and published the run charts internally, hospital by hospital.

① Recognition at the bedside

The elevated score reaches the nurse where they work — the census column and the advisory. The first response is a skilled human assessment: is this physiology or artifact? The score summons judgment; it doesn't replace it.

② Escalation by policy

At 4, the provider is notified; at 5+, the RRT is called stat. Because the trigger is written policy and not individual disposition, escalation stops depending on confidence, hierarchy, or who is on shift.

③ Documentation as data

Elevated scores mandate a MEWS evaluation row every two hours until stabilized. That isn't paperwork for its own sake — it's the structured trail that makes the program auditable, patient by patient.

Nursing process · GMC & GWV
% of elevated-MEWS patients with increased surveillance · % with MEWS policy followed
100%90%80%70% Jan→ weekly run chart →Mar

Adherence ran in the high-80s to mid-90s and was reported as a paired run chart per hospital — surveillance delivered, policy followed.

Provider process · GMC & GWV hospitalists
% of elevated-MEWS opportunities acknowledged by providers
100%80%60%40% Jan→ weekly run chart →Mar

Provider acknowledgment ran lower — roughly the 60–75% band. The team measured it, displayed it next to the nursing chart, and made the gap a managed number instead of an anecdote.

The honest posture on impact

The program's own dashboards measured process — did surveillance increase, was policy followed, did providers acknowledge. For outcomes, the team did the disciplined thing: a formal impact analysis was commissioned in collaboration with Geisinger's Center for Health Research, rather than self-graded.

Every elevated score leaves an audit trail — per-patient evaluation charts overlay the MEWS trajectory with nurse documentation bars and RRT calls (max score, RRT yes/no, measure intervals), so any admission can be reconstructed end to end.

Per-patient evaluation view
Admit date5/18/2012
Max MEWS score4
RRT activatedYes
Nurse evaluation documentedq2h while elevated ✓
The pattern

Stream, score, route to the discipline built to act.

MEWS and Glucometrics are siblings — one lane, two physiologies, one operating doctrine. Glucose routes to pharmacy; deterioration routes to nursing and the rapid-response team. The lane, the scoring pattern, and the audit discipline were designed to be pointed at the next continuously-measured risk, and the next.

Glucometrics

Inpatient glucose off the real-time interface feed, risk-qualified (≥300 in 24h; 24-h average ≥180), reviewed daily — primarily managed by inpatient pharmacy. Census-level triage plus a per-patient drill-down.

MEWS

Vitals and coma status off the same feed, scored 0–15 continuously, with a four-rung nursing action ladder ending at the RRT. Census-level acuity plus a per-patient evaluation trail.

What both programs share
  • The real-time HL7 lane: Epic → eGate → hot partition
  • Transparent, bedside-verifiable scoring rules
  • Delegation to the discipline best built to act
  • Self-instrumented process analytics, per hospital
Where the pattern points

Anything measured continuously and tied to a high-stakes response is a MEWS waiting to be built — anticoagulation, sedation depth, oxygenation, renal trajectory. The expensive part — the lane and the doctrine — was already paid for.

"The only code that matters is the one you never have to call."

MEWS in one sentence — and the principle that governs rapid-response medicine.

← Previous
Glucometrics
Geisinger Health System · Clinical Decision Support

No abnormal result falls through.

Ordered, performed, resulted — and then, for roughly one abnormal result in ten, nothing. Close the Loop mined every Pap smear ordered by a Geisinger physician, encoded the follow-up guidelines as computable rules, and drove every open loop to a documented resolution. Among what it found: twenty high-grade lesions and a cancer.

0
Pap smears mined — every one ordered by a GHS physician since 1/1/2010
0
Abnormal results, each checked against guideline-defined follow-up
0
Otherwise-unclosed loops driven to documented resolution
0+1
High-grade lesions found — plus a squamous cell cancer
The safety gap

The test worked. The lab worked. The follow-up never happened.

The literature put a number on something every clinician has felt: roughly 8–10% of abnormal laboratory results become "unclosed loops" — the result comes back, and the action it demands never occurs (Singh et al., Am J Med 2010). Not because anyone decided against acting. Because the result arrived between shifts, the letter went unanswered, the patient changed clinics, the chart never resurfaced.

① High volume, thin tracking

In 2007 Geisinger performed over 47,000 Pap smears a year, about 5% abnormal — and had no reliable system for verifying that each abnormal result received appropriate follow-up.

② The letter-based safety net

The fallback was correspondence: an abnormal Pap without evidence of management triggered a letter to the submitting provider. In 2007 alone, over 750 letters went out.

③ Silence as an end state

254 of those abnormal-Pap letters received no response. The safety net's failure mode was indistinguishable from its success mode: quiet. Nobody could say which silences were fine.

Why Pap smears first

The stakes are asymmetric: an unmanaged high-grade cervical lesion is a preventable cancer on a timer. The follow-up pathway is fully specified by a national guideline. And the data — order, result, subsequent procedures — all lives in the EHR.

In other words: a well-defined loop, a computable standard for "closed," and consequences worth engineering against. The perfect first target — and a template for every result type after it.

8–10%
of abnormal results
become unclosed loops
Singh et al., Am J Med 2010;123(3)
The anatomy

Seven hand-offs. Any one can drop the baton.

"Close the loop" names the full circuit a result must travel — from the order to a resolved patient. Each arrow is a hand-off between systems, departments, or people; each hand-off is a place the circuit can silently break. The program's premise: stop assuming the circuit completes, and start verifying it, result by result.

The loop — as drawn by the team
1
Orders
Clinician orders the test
2
Lab or imaging performed
Specimen collected, study done
3
Results into Epic
Result files to the record
4
Results communicated to providers
In Basket, page, letter
⚠ leak point
5
Results communicated to patient
Call, letter, portal
⚠ leak point
6
Medication decision · appropriate action
Follow-up test, referral, treatment
⚠ leak point
7
Resolution
Loop documented closed
8–10%
of abnormal results never complete the circuit

The first three stages are industrial and reliable — ordering, performing, resulting rarely fail. The breakage concentrates downstream, in the human hand-offs: provider notice, patient notice, and the action itself. That is exactly where an analytics program can look, because every completed hand-off leaves a data footprint — and every missing footprint is a finding.

The old model: trust, then letters

Assume the loop closes; when someone notices it didn't, send correspondence and hope. Detection is incidental, latency is months, and "no response" is a dead end — 254 dead ends in 2007.

The new model: verify, then act

Enumerate every abnormal result. Compute what follow-up the guideline demands and by when. Search the record for evidence it happened. Whatever lacks evidence goes on a worklist a dedicated team works to documented resolution — every loop accounted for, including the refusals and the unreachable.

The clinical standard

"Appropriate follow-up" became a computable object.

You can't audit loops against a vibe. The team encoded the ASCCP management guidelines into an explicit matrix: for every combination of age, Pap result, and HPV status — the recommended first follow-up action, and the clock it must beat. That table is the program's heart: it converts a clinical judgment into a yes/no question a query can answer.

Screening result → recommended first follow-up · normal-risk women, per ASCCP
AgePap resultHPVFirst follow-up actionWindow
21–29Normaln/aRepeat Pap1 yr
≥ 30NormalnegativeRepeat Pap3 yrs
≥ 30NormalpositivePap + HPV1 yr
≥ 21ASC-USnegativePap ± HPV1 yr
≥ 21ASC-USunknownPap ± HPV6 mos
≥ 21ASC-USpositiveColposcopy2 wks
≥ 21ASC-Hn/aColposcopy2 wks
≥ 21LSILn/aColposcopy2 wks
≥ 21HSILn/aColposcopy or LEEP2 wks
21–34 / ≥ 35AGCn/aColposcopy + HPV + endocervical sampling2 wks
≥ 21Atypical endometrial cellsn/aColposcopy + endometrial & endocervical sampling2 wks

Severity sets the clock: low-grade findings get months; anything high-grade — ASC-H, LSIL, HSIL, glandular atypia — gets two weeks. Every row also admits two documented terminal states: care assumed by gynecology, or patient unable to reach. More on why that matters below.

Severity routes the urgency

For HSIL the guideline pathway runs straight to colposcopy or immediate excision, with diagnostic work-up branching on what the colposcopy shows. Encoding the branches means the system knows not just that follow-up is due, but which follow-up — so "a Pap was repeated" can't masquerade as closure when the standard demanded colposcopy.

"Unable to reach" is a disposition, not a shrug

The matrix deliberately includes refusal and unreachability as legitimate, documentable end states. That's the difference between a tracking system and a nagging system: every loop must end in something — care delivered, care declined, or contact exhausted and documented. Silence stops being an option.

The engineering

Mine every result. Prove every closure.

Close the Loop is the warehouse pointed at patient safety: enumerate the denominator (every Pap ordered by a Geisinger-employed physician), isolate the abnormals, compute each one's guideline obligation, and search downstream data for evidence the obligation was met. What lacks evidence becomes a worklist — owned by a dedicated CTL team, worked to documented resolution.

The verification pipeline
1
Enumerate
111,361 Paps by GHS-employed physicians since 1/1/2010 — the denominator nobody previously had
2
Classify
4,876 abnormal results, each mapped to its ASCCP row — action owed, clock started
3
Verify
Search orders, procedures, and notes for evidence of appropriate management within the window
4
Resolve
No evidence → CTL team worklist → outreach → documented disposition, whatever it takes

Live since November 2011. The analytic denominator is what separates this from the letter era: the old system only knew about the loops someone happened to notice; the new one starts from all of them and lets the data prove which are closed.

What counts as evidence of closure
  • The recommended procedure, on time — the colposcopy, LEEP, or repeat Pap the matrix called for, found in orders and results
  • Documented appropriate care elsewhere — management already underway with gynecology or an outside provider, verified and recorded
  • Documented informed refusal — the patient declined, and the declining is on the record
  • Documented exhaustive outreach — unable to contact, after a defined effort, recorded as such

Four ways to close a loop — and zero ways to leave one open quietly.

Why a human team, not just alerts

The leak points are human hand-offs — so the repair is human too. Analytics finds the open loop; a person calls the patient, reaches the provider, schedules the colposcopy, or documents why not. The CTL team turns a report into a closed circuit.

This is the same delegation doctrine as the rest of the portfolio: pharmacists own glucose, nurses own deterioration, and a dedicated closure team owns the last mile of abnormal results.

Alerts ask the busiest person to do one more thing. A worklist with an owner asks a dedicated team to do the right thing, every time, with the data already assembled.

The results · as of 9/2012

2,856 loops closed. One of them was a cancer.

In under a year of operation, the team drove 2,856 otherwise-unclosed loops to documented resolution — out of 4,876 abnormal results across 111,361 Paps. The dispositions below are the program's character in numbers: most loops close into care, some close into documented refusal, and hundreds close into the honest, recorded end state of "we tried, exhaustively."

Documented dispositions — among the 2,856
Each bar is a loop category that previously ended in silence
Unable to contact — documented
514
Appropriate care — documented
455
Clinical resolution of open loops
273
Patient refusals — documented
163

Within the 273 clinical resolutions: 20 high-grade lesions and a case of squamous cell cancer — disease found and treated because a query refused to let its loop stay open.

The needle in the 514

"Unable to contact: 514" reads like failure until you remember what it replaced: those patients were previously uncounted. Now each one is a known, named, documented outreach effort — visible to any clinician who opens the chart, and re-actionable the moment the patient resurfaces.

What a closed loop is worth

Twenty high-grade lesions and one squamous cell cancer were sitting in the unclosed 8–10% — results that had been ordered, performed, resulted, and then lost. Cervical cancer is precisely the disease where finding the lesion two years late changes the story. The program's ROI argument is one patient long.

The denominator is the deliverable

Beyond the closures, the system produced something Geisinger never had: a continuously verified census of every abnormal Pap and its status. The question "are we safe?" became answerable with a query instead of a committee.

0
Total Paps mined
GHS-employed physicians, since 1/1/2010
0
Abnormal results tracked
each against its ASCCP obligation
0
Loops closed by the CTL team
live since November 2011
21
Significant findings caught
20 high-grade lesions + 1 squamous cell cancer
The expansion

From results to risk: the same machine, pointed earlier.

Closing loops on results that exist is half the doctrine. The other half: compute the result that should exist. The Breast Cancer Risk Assessment took the same population-enumeration machinery and ran a seven-factor risk model across every eligible woman — surfacing the patients whose "abnormal result" was a risk score nobody had ever calculated.

BCRA — the model

Seven patient-specific elements estimate five-year invasive breast-cancer risk: current age, age at first menstrual period, age at first live birth, first-degree relatives with breast cancer, number of breast biopsies, atypical hyperplasia, and race/ethnicity.

Women 35–90 Prior mammogram Known breast cancer excluded

Run not on a referral, not in a clinic visit — across the entire eligible population at once, from data the warehouse already held.

BCRA — what it surfaced
Women at ≥2% five-year risk5,897
Mean age · mean 5-yr risk65.8 · 3.05% (max 18.2%)
Active patients · with GHS PCP5,086 · 4,113
Ever on tamoxifen / raloxifene239
Currently on chemoprevention40

5,897 women at elevated risk; 40 on preventive therapy. That gap — invisible until computed — is a worklist in waiting, identical in shape to the Pap program's.

The doctrine, distilled

Ordered → resulted → acted-on is an invariant to verify, not a hope. Enumerate the denominator, encode the standard, search for evidence, work the residue to documented resolution.

Generalizes by design

Nothing in the pipeline is Pap-specific except the ASCCP matrix. Swap the guideline table and the result type, and the same verification engine audits any abnormal-result pathway in the system.

The portfolio's safety layer

Problem List Analytics fixed what conditions patients have; the care-gap engines fixed what care is due; Close the Loop fixed the quiet failure after the care was ordered. Together: identification, anticipation, verification.

"A result that no one acts on is a test that was never done — with a bill and a false sense of safety attached."

Close the Loop in one sentence — and why verification, not ordering, is the unit of care.

← Previous
MEWS Early Warning
Geisinger Health System · Clinical Decision Support

The note that does the work.

Clinical documentation was where data went to die — vague diagnoses, cluttered problem lists, hours of after-clinic typing. SuperNote rebuilt the progress note as a data product: pre-assembled from the warehouse, organized by organ system, carrying its own care gaps, and coding diagnoses as a side effect of writing the plan.

0
SuperNotes filed into Epic by general release
0
Distinct providers used it — 35–40 regulars each month
50→70%
HCC capture, first two providers, first three months
~30%
Increase in care-gap closure among early adopters
The documentation problem

Providers told us exactly what was broken. Then the data agreed.

The team surveyed over 250 providers before writing a line of code. The result was a portrait of inversion: the things providers rated most important about documentation were precisely the things the EHR served worst. And a quarter of them were paying for it with more than nine hours a week of non-clinic documentation time.

What 250+ providers said · "very important" vs "very well served"
Minimize time to generate a note that documents my own care
Important
88%
Well served
24%
Minimize time to generate a note that meets coding & billing standards
Important
73%
Well served
21%
Minimize time to review patient data before I see a patient
Important
82%
Well served
26%

26% of providers spent more than 9 hours a week of non-clinic time on documentation. The gap between the blue and gold bars is that time.

The problem list was the crime scene

Vague entries ("EDEMA", "ANEURYSM NEC") that no one could act on. Multiple overlapping diagnoses for the same condition. Dozens of conditions in flat chronological order — no grouping, no organization, no signal about what matters today.

The chart contradicted itself

Atenolol prescribed "to treat a fracture." The same patient carrying three different severities of asthma. Diagnosis strings running to 199 characters. Documentation wasn't just slow — as data, it was unreliable.

The stakes were institutional

The note feeds patients, colleagues, regulators, and payers. The stated objective spanned all of it: efficient high-quality documentation, accurate diagnostic coding and HCC capture, EHR-data stewardship, care-gap closure, and patient engagement.

"Documentation was the only part of the system where everyone typed and nothing computed."

The warehouse knew the patient. The note pretended it didn't. SuperNote closed that distance.

The anatomy

A note assembled before the visit begins.

Launch SuperNote — manually from the Epic visit navigator, or automated — and the note arrives pre-built: history drafted from the problem list, recent events pulled from encounters, care gaps attached, labs laid out, and an assessment-and-plan scaffold where typing the plan is the act of coding the diagnosis.

① Brief Clinical History — written by the data
Zzghs, Super (test patient)MRN 5787393 · DOB 6/23/1944
Brief Clinical History

"Mr. Bean is a 72 year old man with a hx of CAD, COPD, HTN, last seen in primary care by Dr. Spock 4 months ago (5/14/13). Last seen by me 1 year ago (8/13/12). Mr. Bean is due for evaluation of his CAD (last check 3/15) and COPD (last check 2/18)."

Generated in real time from the problem list and other data — and it leads with what's due, highlighting the diagnoses to address during this visit.

② OurNotes — the patient writes first
OurNotes · patient-entered narrative

"I'm concerned that my sugar has been high recently."

"The benadryl my doc told me to take for allergies makes me very tired during the day. Can I take something else?"

Patient and family narrative captured pre-visit — collaborative agenda-setting that becomes part of the documentation, not a sticky note that gets lost.

③ Structured patient-reported data
Patient Reported Data · Heart Failure
NYHA ClassificationClass IV
Short of breath at rest / daily activitiesYes
Less able to exercise since last visitNo
Orthopnea / nocturnal dyspnea / edemaNo

New York Heart Association questions answered by the patient — symptom management data that lands as structure, not prose.

④ Interval history — nothing slips between visits
Recent Events
RecencyEvent
3 weeksRheumatology ×2 — giant cell arteritis
3 monthsED visit at GMC — bruising
7 monthsNephrology ×2 — CKD stage III
8 monthsAdmitted to GMC ×10 days — fall

Specialist visits, ED visits, and admissions — highlighted — assembled from across the system. KeyHIE feeds were slated to extend it beyond Geisinger's walls.

⑤ Problem list — grouped, not dumped
Active Problem List · by organ system
Organ systemDiagnosis
CardiacHeart failure, diastolic, with acute decompensation · AFib · valvular disease
NephrologyCKD stage IV (GFR 15–29) · anemia in CKD · AKI

Grouped by organ system or pathophysiology, high-impact conditions surfaced first — the CKD-taxonomy doctrine applied to every condition at once.

⑥ Care gaps — riding inside the note
Open Care Gaps (as of 05/22/2014)☑ include in note
Bundles: ADULT PREVENTION, CAD, CKD3
ACE/ARB recommended
Hemoglobin not in goal
TDAP needed

The care-gaps engine's output, embedded at the point of writing — a list that, at the time, wasn't visible inside Epic at all, only in SuperNote or external reports.

⑦ Diagnostics review — labs at a glance
Laboratory Review
HgbHgbA1cK+Digoxin
10.9 → 12.69.1 → 7.54 → 4.50.7 → 1
trended, dated, eight analytes per view

Review-only at first, with a toggle to pull results into the note planned — pre-visit data review compressed from minutes of hunting to one screen.

⑧ Assessment & plan — where typing becomes coding
Assessment & Plan
CKD STAGE 3: Kidney disease, chronic, stage III (GFR 30–59); DM type 2 causing CKD stage 3

ACCUPRIL 20 MG PO TABS (starts today) · Procedures: NEPHROLOGY REFERRAL OP

"GFR decrease is concerning. Stopped metformin for DM. Patient referred to Nephrology. Started Accupril."

Previous plan (9/24/2014): "ok to continue metformin for dm"

Each condition carries its orders, today's plan, and the previous plan side by side — and typing in the plan space facilitates the diagnosis coding. Documentation and coding stop being separate chores.

Then it goes home to Epic

Two publish paths: clipboard (paste into any note) and direct RTF push into Epic Progress Notes — formatted sections, tables intact. The note is drafted in SuperNote, but it lives where every other note lives.

Clipboard RTF push → Epic Launch: manual or automated
The engineering

Behind the note: the whole portfolio, converging.

SuperNote is where the department's machinery met the clinician: the care-gaps engine, the diagnosis ontologies, the real-time lane, and the warehouse all feed one screen. Acquiring that data followed a stated order of precedence — standards first, custom code last.

Data acquisition — order of precedence
1
Industry standard — HL7
The lane already proven by Glucometrics & MEWS
2
Vendor standard — Epic web services
Out-of-the-box Interconnect
3
Geisinger standard — CDIS
The in-house data integration layer over Clarity
4
Custom — GHS-built web services
Last resort, owned forever — so used sparingly

Selection weighed availability, data age (batch vs real-time), source-system speed against SuperNote load times, and one veto question: is the data reliable enough to drive care?

Where the data comes from
Epic Interconnect Clarity via CDIS CoPath · RIS Oncolog registry Custom vitals services Care-gaps engine Med / procedure / dx ontologies Dat-Stat patient-reported KeyHIE — pending Claims — pending

The rules engine remained the source of truth for all reference data; complex clinical mappings lived in the SuperNote database. Nothing was re-invented — the note borrowed the platform.

Four logical tiers — presentation (device-aware: iPads lose "save"; Epic or MS AD security), business entities, data processing (mapping, dedup), data access — per the Microsoft Application Architecture Guide.

The ontology at work — one diagnosis, fully understood
DX_IDDisease name (Epic)Disease processOrgan systemGenerate plan?
18263DM type 2 causing CKD stage 3CKD Stage 3NephrologyTrue
18263DM type 2 causing CKD stage 3Chronic DMEndocrineTrue
234992Diastolic CHF, chronicDiastolic Heart FailureCardiacTrue
18866COPD, severeCOPDPulmonaryTrue
155985Sinus headacheHeadacheNeurologyFalse
One code, two truths

"DM type 2 causing CKD stage 3" maps to both nephrology and endocrine disease processes — so it appears under both organ systems, and both get a plan.

Merged & de-duplicated

Problem-list entries and encounter diagnoses are combined through the same ontology and de-duped on DX_ID — one clean clinical picture from two messy sources.

Meds tell on diagnoses

Medications associate to disease groups — metformin ⇒ chronic DM — so the note can notice when the med list implies a condition the problem list forgot.

The results

Adoption by choice — and the coding followed.

No mandate, no forced workflow. From a 16-provider pilot in March 2014 to general release in February 2015, SuperNote spread on its own merits — and the measurable effects showed up exactly where the design said they would: HCC capture, visit-complexity coding, and care-gap closure.

From proposal to production
Fall 2013

Proposal & observation

Presented to the Clinical Leadership Council; provider documentation observations Aug–Sep; PRIDE funding approved in December.

Mar 2014

First production pilot

16 pilot providers — then 15 more by June. Releases every 1–2 months; the seventh shipped that September.

Oct–Dec 2014

Scale-up

Expanded dev team, SuperNote Wiki, adult primary-care deployment, and the oncology pilot.

Feb 2015

General release

Nearly 15,000 SuperNotes in Epic; 134 distinct providers; 35–40 regular users a month — on the eighth release.

HCC capture: 50% → 70%

The first two providers lifted hierarchical condition category capture by twenty points in three months — worth roughly $450 per GHP Medicare visit in risk-adjusted terms. The "hidden conditions" surfaced by the ontology were getting documented.

Early adopters, measured honestly

~30% increase in care-gap closure and ~40% increase in HCC diagnosis capture among early adopters; level 4 and 5 visit coding up 7% across the first five providers over four months. Small cohorts, clearly labeled as such — the program reported its denominators.

And the friction, reported just as plainly

The same status report that claimed the wins listed the gripes: copy-paste into Epic "is not great," dot-phrases were missing, acute visits weren't well served. Each had a dated fix on the roadmap.

E&M coding shift — early adopters, Jul–Dec 2013 vs Jul–Dec 2014
ProviderLevel 3 preLevel 3 postΔ Level 3Level 4 preLevel 4 postΔ Level 4
Doctor A54.1%34.8%−19.345.7%65.0%+19.3
Doctor B15.4%14.3%−1.184.0%85.1%+1.1
Doctor C25.7%19.2%−6.572.7%79.6%+6.9
Doctor D54.6%43.5%−11.243.8%55.3%+11.5
Doctor E31.6%25.2%−6.467.2%74.4%+7.2
Doctor F33.7%27.3%−6.464.2%69.8%+5.6
Doctor G27.2%21.2%−6.046.8%53.7%+6.9

Seven of seven early adopters shifted visits from level 3 toward level 4 — not because anyone upcoded, but because the note finally documented the complexity that was already being managed.

0
Pilot providers, March 2014
general release eleven months later
0
SuperNote encounters in Epic
by the February 2015 report
q1–2mo
Release cadence — eight releases in a year
an application team that shipped
$450
Per GHP Medicare visit — the HCC stake
when capture moved from 50% to 70%
The craft

Built like a product, governed like a clinic.

The team ran SuperNote on four stated principles: best idea wins, anyone can propose ideas, it must be best for patients, and no forced workflows — adoption driven by choice. The artifacts of that culture survive in the slides: design votes, satire, and public self-criticism.

Design by vote

Two care-gaps layouts were posted side by side — Option A without bundle names, Option B with them — and the users voted. B won, 100%. The shipped version added "as of" metadata, a check-to-include toggle, and ruthless concision.

Critique as a feature

"Recommendations on recommendations" — the team posted its own mockups (inline vs floating recommendation panels) and asked, publicly: what can we do to improve these? The COPD recommendation card that emerged shows the answer.

Satire as a spec

To argue rich-text vs simple inputs, the demo note read: "Dude is really, really sick. I'll find a specialist to dump Mr. Bean on." Physical exam: "The patient complains too much." The point landed: formatting freedom doesn't make documentation better — structure does.

The recommendation pattern — respectful CDS

The in-development recommendation engine shows its evidence, proposes a severity-specific answer, and accepts "no": Does not have COPD is a first-class button, and "don't show me again for 12 months" is honored. The clinician stays the decider; the system stays credible.

It's the SuperNote translation of the portfolio's oldest rule — surface the evidence, delegate the judgment.

COPD Problem List Addition

Evidence suggests Ms. Jones may have COPD, which is not on the problem list:

• Recent PFT result  • Four COPD-related encounter diagnoses in 24 months  • Active corticosteroids

Current PFT guidelines suggest "COPD Moderate" may be the most appropriate entry.

Does not have COPD Add Mild Add Moderate Add Severe

Don't show me again for 12 months

The expansion

From primary care to oncology — a design pattern, not an app.

The Nov–Dec 2014 oncology pilot proved the deeper claim: SuperNote is a pattern for specialty documentation. Swap the sections — an Oncology Summary assembling tumor characteristics, diagnostics, radiation, and chemotherapy from the Oncolog registry — and the same engine documents a different specialty.

Oncology Summary · assembled from Oncolog + Epic
SectionContent
TumorSmall cell carcinoma, left upper lobe · Stage IIIA (T2b N2 M0)
DiagnosticsPET-CT: FDG-avid left apical/hilar masses, mediastinal nodes
Radiation6000 cGy at 200 cGy, left lung (12/2013)
ChemoCisplatin D1 + Etoposide (11/2013)

The treatment story every oncology note re-types by hand, generated — then pushed to Epic as RTF.

Where it was headed

SuperCoding and real-time visualization of coding opportunities; missed-opportunity reporting; problem-list recommendations from structured and unstructured data; closing care gaps directly from the note — the SuperOrders proposal. Documentation as the cockpit, not the paperwork.

Its place in the portfolio

Problem List Analytics cleaned the diagnosis; the care-gaps engine computed what's due; Close the Loop verified what happened. SuperNote is where all of it reaches the clinician mid-visit — the portfolio, converging at the point of care.

"The chart finally learned to argue back."

SuperNote in one sentence — documentation that surfaces gaps, codes the truth, and speaks up when the record contradicts itself.

← Previous
Close the Loop
Geisinger Health System · Clinical Decision Support

Care that happens before the visit.

Routine care was trapped inside the office encounter — ordered by hand, gated by appointments, dependent on memory. Auto-Orders moved protocolized testing out of the exam room entirely; the Anticipatory Management Program worked every gap two weeks before the patient arrived. The visit stopped being where care starts, and became where it finishes.

0
Clinical orders auto-generated by protocol
0
Distinct patients enrolled — 321,419 total enrollments
250K+
Care gaps closed, Jul 2010 – Jan 2013 · $30M+ FFS revenue
5–6%
Reduction in no-show rate where AMP pre-visit outreach ran
The bottleneck

Every gap waited for a visit. Every visit was already full.

The bundle engine could see exactly what each patient needed — sixteen bundles, four to sixteen care needs each, recomputed daily. But seeing isn't doing. Closing a gap still required an office encounter: a nurse to notice the alert, a provider to place the order, a patient who happened to show up. The system's knowledge was continuous; its capacity to act was rationed in fifteen-minute slots.

① Nursing overload

Patients carry multiple open gaps at once. Managing them inside the encounter overwhelmed office nursing — every visit began with a stack of best-practice alerts competing with the reason the patient actually came.

② The visit as toll-gate

Office-based decision support requires the patient to come in — even when the need (a lab draw, a screening) could be met without a provider in the room. Care waited on calendars.

③ Predictable work, done by hand

An annual LDL for a CAD patient is not a clinical decision — it's a standing fact. Yet every one was placed manually, visit by visit. The question wrote itself: can we lift the predictable work out of the exam room by generating orders automatically?

The rationale, as stated

Automate the predictable aspects of care to increase reliability. Ease the office burden of chronic-disease and preventive work. Concentrate human attention on patients with complex needs — where it improves both quality and financial outcomes.

The objective was equally plain: a safe, reliable method to generate orders "by protocol" — the Epic Bulk Order Utility, driven by CDIS data mining.

16
bundles, 4–16 care needs each — AAA to vascular disease
The machine · auto-orders

Co-sign once. The protocol does the rest.

The design problem wasn't generating orders — it was generating them safely, with physicians in command and zero surprises. The answer was a two-step architecture: a human-approved enrollment, then automated generation for as long as the enrollment stands. Authority delegated once, revocable always.

From data mining to a closed gap
1
Data mining
CDIS identifies eligible patients — excluding palliative care, hospice, and inactive (no PCP visit in 2 years)
2
Authorization order → PCP
A protocol-approving order lands in the In Basket for co-signature; "Deny" cancels enrollment
3
Batch order generation
Once signed: orders auto-generate monthly when due, future-dated 6 months, no co-sign needed
4
Patient-centric outreach
Open orders visible to clinic and scheduling staff — every contact a chance to close
5
Lab, imaging, or appt
Patient completes when convenient; unused orders simply expire

One enrollment order covers all bundles and stands for five years unless the PCP changes or a new bundle applies. Providers can dis-enroll any patient at any time; enrollment was throttled so no one's In Basket flooded; duplicate-order logic and reworked nursing BPAs kept the downstream clean.

What runs on protocol today

HbA1c every 6 months · microalbumin annually · LDL annually (AAA, CAD, CKD, diabetes, obesity, PAD) · glucose screen every 3 years · TSH annually · digoxin annually · BMP annually (HTN, ACE/ARB use, diuretic use) · renal function panel · lipid panel.

Standing facts of chronic disease management — standardized, scheduled, and lifted off providers and nurses entirely.

The safety posture

Physicians hold both keys: enrollment requires their signature, and dis-enrollment is one order away. Nothing interferes with providers who prefer to order everything themselves. The automation is an offer, not a mandate.

The same adoption-by-choice doctrine as SuperNote — and the reason 228,201 patients could be enrolled without a revolt.

0
Total enrollments
one co-signed order each, 5-year standing
0
Distinct patients on protocol
palliative, hospice, inactive excluded
0
Clinical orders generated to date
placed by the system, completed by patients
The program · AMP

Two weeks ahead of every appointment.

Auto-Orders handles what protocols can order. The Anticipatory Management Program handles everything else — a human outreach layer that identifies every care gap two weeks before the visit, schedules the lab work in advance, educates the patient on what's coming, and documents it all. The patient arrives prepared; the results arrive with them.

AMP 1

Established patients with a scheduled appointment — the pre-visit planning opportunity. Gaps worked before the patient walks in.

AMP 2

Established patients not seen in a year, no future appointment — outreach that books the visit and closes gaps on the way in.

AMP 3

Patients with an assigned PCP not seen in two years — the population drifting away from care, reached by office or home visit.

AMP 4

Established patients at the point of care — the same gap intelligence, used live during the encounter.

The pre-visit choreography

All care gaps identified two weeks out. Labs and procedures scheduled to land before the visit, so the appointment happens with results in hand. Care-gap-closing education in plain language — down to "take your shoes off for the foot exam." Every contact documented in the EHR.

The measured aims were explicit: gap closure and revenue (AMP 1 & 2), no-show reduction (AMP 1), appointments recovered (AMP 2), provider and patient satisfaction, and clinic efficiency — fewer best-practice alerts firing mid-visit.

T − 14 days: gaps computed, worklist built
T − 10: patient called — tests explained, lab scheduled
T − 3: results filing into the chart
Visit day: conversation, not collection
The opportunity math

The business case was sized before it was claimed.

The program quantified its own opportunity the disciplined way: enumerate the population, price every open gap at net revenue, and model capture at 100 / 30 / 20 / 10 percent — presenting the whole ladder rather than the flattering end of it.

AMP 1 — patients with an appointment next month

22,005 unique patients · 70,000+ open gaps (64K billable services, 32K documentation/education) across GIM, Peds, CPSL — the gaps nurses can address pre-visit

100%
$7,261,171
30%
$2,178,351
20%
$1,452,234
10%
$726,117

Gap-level pricing underneath: a colonoscopy carries $406.10 net revenue — $1.31M across the population at full capture; an A1C $11.18; a TDAP $250.88.

AMP 2 — patients with no appointment at all

92,425 unique patients · 384,335 open gaps — active, established, and absent: no visit booked in the next 12 months

100%
$52,067,880
30%
$15,620,364
20%
$10,413,574
10%
$5,206,786

Plus the visits themselves: recovering these patients at an average $100 per CPSL visit models $9.24M at full capture. The unseen population was the bigger prize.

Try it · move the capture rate
Capture rate 30%
AMP 1 · has appointment
$0
22,005 patients · 70K+ gaps
AMP 2 · no appointment
$0
92,425 patients · 384,335 gaps
Combined opportunity
$0
+ $0 AMP 2 visit revenue

Documented anchors: 10% · 20% · 30% · 100% capture. Values interpolate linearly, exactly as the program modeled them.

"The honest pitch wasn't the $52 million. It was the 10% line."

Even the most conservative rung cleared the program's cost — which is why the ladder, not the headline, won the funding argument.

The results

A quarter-million gaps closed — and quieter clinics.

From July 2010 to January 2013, the care-gaps machinery closed over 250,000 gaps and recaptured over $30 million in fee-for-service revenue — monthly closures roughly doubling from ~6,000 toward ~12,000 as the engines came online. AMP's own ledger tracked every disposition, including the declines.

Care gaps closed per month · Jul '10 – Jan '13
12K9K6K3K Jul '10monthly closures · trend ascendingJan '13
250,000+
care gaps closed
$30M+
FFS revenue recaptured
AMP activity ledger · May 2012 – Feb 2013
18,310 care gaps addressed · 4,262 distinct patients · 4,623 contacts
DispositionCountShare
Labs completed9,78353.4%
Procedures3,12117.1%
Reminders delivered2,93316.0%
Declined — documented1,97510.8%
Documentation / education4662.6%
Referrals320.2%

Monthly volume grew from 126 gaps addressed (May 2012) to a 3,776 peak (January 2013) — and "declined" is a counted outcome, not a disappearance. The Close-the-Loop instinct, applied to outreach.

No-show rate · Family Practice Site 1
7.4%7.0%6.6%6.2% Jan '12 · 7.31%→ AMP outreach ramps →Jan '13 · 6.41%

Both instrumented family-practice sites trended the same way — the program's claimed 5–6% reduction in no-show rate. A patient who helped plan the visit shows up to it.

"Patients are definitely more prepared. They will tell me or my nurses that 'I am due for an EKG or tdap or pneumonia shot.' … The nurses have seen a big reduction in the amount of BPAs they are seeing!"

Kobylinski · Selinsgrove

"It saves me time. I don't have to spend as much time 'selling' tests to patients. They are aware they are due. If I have results at the visit it saves me from doing letters and phone calls."

Billas · Knapper

"Not sure I can say it has saved me time… I have to actually spend a little more time discussing things like phosphorus levels that I probably would not have ordered (for good or bad)."

Gardner · Tunkhannock — the dissent, reported verbatim

"It takes the stress off of me — I feel like I would miss things if this process was not done for me."

Bogner · Knapper
250K+
Care gaps closed in 31 months
monthly run-rate roughly doubled
$30M+
FFS revenue recaptured
Jul 2010 – Jan 2013
53%
Of AMP dispositions were completed labs
work moved out of the visit, as designed
10.8%
Declines — documented, not lost
every outreach ends in a counted state
The ecosystem

One toolkit, many arms.

Auto-Orders and AMP are two arms of a single bundle-management toolkit that answers four questions — what is the population, what does evidence-based medicine require, how do we make it happen, how do we measure it. The "make it happen" menu ran from smart data elements and BPAs to problem-list protocols, care teams, Close-the-Loop programs, patient questionnaires, and portal workflows.

Auto-referral for med therapy

Patients persistently uncontrolled for more than six months — diabetes, hypertension, hyperlipidemia — auto-referred to clinical pharmacists. 60–70% reach goal within a year, then are repatriated to primary care. Anticonvulsant monitoring was next in line.

Cohort Manager

The same machinery, handed to specialists: define a cohort with bundle-grade criteria, view population risk, drill to the patient, and send structured closed-loop messages back to primary care through the Epic In Basket.

Bundle of Bundles

Navigation across bundles, providers, and departments with population-to-patient drill-down — the command surface where 16 bundles and their care needs stayed visible, watched daily.

"Memory is not a care plan. Anticipation is."

AMP and Auto-Orders in one sentence — gaps closed by automation and anticipation, not by hoping someone remembers.

← Previous
SuperNote
Geisinger Health System · Clinical Decision Support

Make the generic uncomfortable.

"CHF." "Obesity." "Asthma." Diagnoses that sound clinical and say nothing — no stage, no etiology, no goal of therapy, no population you can act on. The CKD playbook, applied twice more: re-engineer the diagnosis itself, and the patients you couldn't see become patients you can't miss.

0
Obesity diagnoses corrected on the first pass
0
Previously undiagnosed patients found on the second
0
Actionable diagnoses replacing generic "CHF"
9→29%
HF patients on high-value diagnoses, in six months
The generic-diagnosis problem

3,683 patients filed under a word that means nothing.

"Congestive Heart Failure," ICD-9 428.0 — Geisinger's single largest heart-failure label. It doesn't say systolic or diastolic. It doesn't say why. It doesn't say what good therapy looks like. A diagnosis that can't distinguish a revascularization candidate from a valve-repair candidate isn't clinical information — it's filing. And obesity was worse: the patients weren't mislabeled, they were unlabeled.

① Generics hide need

"CHF" (3,683 pts), "Heart Failure NOS" (504), "CHF Unspecified" (237) — non-specific diagnoses make it impossible to identify what each patient actually requires: evidence-based beta blockade, an ICD evaluation, valve repair.

② Absence hides populations

Tens of thousands of patients met BMI criteria for obesity with no diagnosis anywhere on the problem list. No diagnosis, no bundle; no bundle, no care gaps; no care gaps, no program. Invisible by omission.

③ Both break the engine

Every downstream system — bundles, auto-orders, AMP outreach, SuperNote — keys off the problem list. A vague or missing diagnosis doesn't just degrade one chart; it silently exempts the patient from the entire machine.

The heart-failure problem list, as found
DescriptionICD-9PatientsTells you what to do?
CONGESTIVE HEART FAILURE428.03,683No
PRIMARY CARDIOMYOPATHY NEC425.4543No
LEFT HEART FAILURE428.1507No
HEART FAILURE NOS428.9504No
IDIOPATHIC CARDIOMYOPATHY425.4491Barely
CHF NYHA CLASS III / II428.0353 · 269Severity, not strategy
HYPERTEN HEART DIS NOS W/CHF402.91245A hint

Ten overlapping labels, five ICD-9 codes, one clinical question — systolic or diastolic, and why? — answered by none of them.

The doctrine

A diagnosis should carry its own marching orders.

Before touching obesity or heart failure, the team wrote naming-convention principles — the constitution for every taxonomy that followed. The test of a good diagnosis name: it defines a mutually exclusive population, names the etiology, and embeds the goal of therapy. The test of a bad one: it's comfortable.

Mutually exclusive, 90% comprehensive

An optimized list of 4–8 diagnoses per condition, maintained with synonyms and preference lists. Avoid NOS and NEC. Map every term to SNOMED for durable decision support and to ICD-9 for billing — one name, every system.

Generic should feel wrong

"Generic diagnoses should be uncomfortable" — by design. "Asthma" becomes "Asthma, severity to be determined": an honest placeholder that nags for resolution instead of masquerading as an answer.

Names drive therapy

Prioritize the indication that changes management — for heart failure, ejection fraction over NYHA class. Use operational language ("acute intensive therapy," not "malignant"). Respect specialty views (Peds vs. adult lists), standardize everywhere else.

Old world → new world · the conversion table
GoalOld worldNew world
Reduce antibiotic usageAcute BronchitisAcute Bronchitis, antibiotics not indicated
Condition + manifestationOld MI and CADCAD, Post-MI
Goal of therapyHyperlipidemiaHyperlipidemia, LDL less than 100
Indication for therapyCHFHeart Failure, Systolic, due to CAD
Causal relationshipsCKD Stage 3 and DiabetesCKD Stage 3 causing DM Type 2
Coding accuracyAcute MIAcute MI within 8 weeks
Factual diagnosesAlcoholAlcohol Ingestion, 1–2 drinks
Avoid unnecessary codesLumbagoLow Back Pain within 6 weeks, no imaging indicated
Uncomfortable genericsAsthmaAsthma, severity to be determined

Read the right column aloud and you can hear the care plan. That's the point — the name is the decision support.

Application one · obesity

Two passes. Forty-nine thousand patients.

Obesity got the full treatment in two sweeps: first fix everyone who had a diagnosis, then find everyone who should have. The second pass is the remarkable one — computing BMI from raw heights and weights across the EMR, with the data-discovery discipline doing the heavy lifting.

Pass one — correct the labeled

Identify every patient with an obesity diagnosis already on the problem list, and rename it to something actionable — "Morbid Obesity" becomes "Obesity, BMI 40 or greater." Where current BMI data existed, the diagnosis was modified to match the measurement.

0
diagnoses corrected on the first pass
Pass two — find the unlabeled

Identify every patient with no obesity diagnosis but evidence in the EMR: compute BMI from height plus two or more weights — excluding the aberrant values the data-quality work had taught the team to expect.

0
previously undiagnosed patients identified

Heights that lie

"5′11.01890″" had to become a usable number; "30′11″" had to be rejected as impossible. Measurements were compared across time to catch bad entries before they fed a single BMI.

Weights that wander

Units varied by where the value lived; weights were scattered across numerous EMR tables. Longitudinal analysis excluded the aberrant — no one gains 1,000 pounds in a week.

Data discovery, cashed in

This is the zombie-hunting discipline paying rent: the same anomaly-detection habits built for data quality became the input filter that made 24,000 new diagnoses trustworthy.

Application two · heart failure

From "CHF" to a taxonomy that names the strategy.

The replacement taxonomy factors every heart failure into the two axes that drive management — systolic vs. diastolic, and etiology — eighteen mutually exclusive diagnoses where three generics used to live. Then it meets clinicians where they work: each role sees the slice of the taxonomy it actually uses.

The new taxonomy — function × etiology, ICD-9 mapped
By cause
Systolic · due to CADDiastolic · due to CAD Systolic · due to HTNDiastolic · due to HTN Due to Valve Disease Idiopathic cardiomyopathy · S/D Hypertrophic (± obstructive) · S/D Restrictive cardiomyopathy · S/D
By state & site
Acute decompensation · systolic Acute decompensation · diastolic Right-sided Cor pulmonale, chronic Etiology not known — the honest placeholder

Eighteen diagnoses, each mapped to its proper ICD-9 (428.22 / 428.32 / 428.23 / 428.33 / 415…), each implying different next steps: revascularization, valve repair, rate control, device evaluation.

PCP list · 6

The working core: systolic due to CAD, diastolic due to HTN, valve disease, idiopathic, cor pulmonale, etiology unknown. Enough to run primary care — nothing to scroll past.

Hospitalist list · 9

The PCP six plus what the ward adds: acute decompensation (systolic and diastolic) and right-sided failure. The inpatient vocabulary, exactly where inpatient work happens.

Cardiology list · +7

Constrictive pericarditis, post-pericardiotomy syndrome, cardiogenic shock, transplant cardiomyopathy, chemo-induced, illicit-drug, amyloid. Specialist precision without burdening anyone else's list.

High-value HF diagnoses · share of HF population
9%13%15% 17%28%29% Sep '09OctNov DecJan '10Feb '10
0
patients moved to high-value diagnoses in three months — a 19-point improvement
The proof

When the name changed, the prescribing changed.

The bronchitis experiment is the doctrine in miniature. Same disease, same clinicians — but the diagnosis "Acute Bronchitis, antibiotics not indicated" carries its own decision support in the name. The HEDIS measure moved 33 percentage points.

Antibiotics for acute bronchitis · HEDIS
% of visits with an antibiotic prescribed
88.1%
"Acute Bronchitis"
4,078 visits
54.9%
"…antibiotics not indicated"
142 visits

A 37.6% relative improvement — purchased with a comma and four words. Post-intervention n is small (142 visits) and reported as such.

Why it works

The clinician picks the diagnosis at the moment of maximum ambiguity — and the honest option does the arguing. Nobody writes "antibiotics not indicated" and then prescribes them without a second thought. The name is a nudge with a memory.

What it cost

No alert, no order set, no committee meeting per case. Taxonomy work is among the cheapest interventions in the portfolio — SQL, clinical judgment, and preference-list management — and it upgrades every downstream system at once.

Honest caveats, as filed

Early-window run charts (six months), small post-intervention samples, and observational designs — the source reports the denominators alongside the wins, and so does this page.

0
Obesity diagnoses corrected
first pass — the labeled, relabeled
0
New obesity patients identified
second pass — BMI computed from cleaned data
0
HF patients on actionable diagnoses
in three months · 9% → 29% over six
–33pts
Antibiotic rate for acute bronchitis
88.1% → 54.9% (HEDIS)
The pattern

The playbook is the product: name, find, act.

CKD proved it, obesity and heart failure generalized it: re-engineer the diagnosis so it defines a population; mine the data to put every patient in their population; let the bundles, auto-orders, and outreach machinery do what they were built to do. Every condition the portfolio touched afterward started here.

Name

A mutually exclusive taxonomy with etiology and goal of therapy in the label — mapped to SNOMED and ICD, partitioned by specialty preference list, with generics made deliberately uncomfortable.

Find

Two passes over the warehouse: correct everyone labeled, then compute the evidence — BMI from cleaned vitals, EF from cardiology data — to find everyone missed. Data discovery is the safety on the trigger.

Act

The moment a patient lands in a population, the engine takes over: bundles compute the gaps, auto-orders place the labs, AMP works the visit, SuperNote keeps the chart honest. Naming is the ignition.

"If the diagnosis doesn't tell you what to do, it isn't done being written."

The taxonomy doctrine in one sentence — and why a problem list can be an engine instead of an archive.

← Previous
AMP & Auto-Orders
Geisinger Health System · Clinical Decision Support

The foundation was disciplined doubt.

Every program in this series — the bundles, the auto-orders, the early warnings, the closed loops — stood on two quieter investments: a standing discipline of interrogating the data before believing it, and a platform engineered so the logic outlives the systems beneath it. This is the layer nobody demos. It's also why everything else worked.

0
Patients with a NULL sex code — caught, quantified, escalated
0
"Zombies" — a death date and a status of ALIVE
10.1M
Temperature observations audited for the impossible
0
Patients scored daily on the model this discipline made trustworthy
The doctrine

A data-quality problem is a process problem wearing a disguise.

The team's founding axiom: every bad value is the visible symptom of a broken process somewhere in the enterprise — a user interface that demands a phone number and gets (555) 555-5555, a missing organizational definition ("which drugs are beta blockers?"), a column quietly reused for something else. Hunt the anomaly, and it leads you to the thing worth fixing: the UI, the bug, the training gap, the missing standard.

Five tests for every feed

Accurate — does the feed match the source screen? Timely — "it's 80° outside, as measured six months ago"; a CoPath outage once meant 6+ months of missing pathology. Complete — temperature lives in two different places in Clarity; case-manager data never fully made it from Wisdom to Epic. Understood. Trusted.

"Trusted" is a clinical question

Should a blood pressure taken in the Emergency Department count as evidence of hypertension? The discipline treated trust as a per-use judgment, not a database property — the same value can be good enough for billing and wrong for a bundle.

The recurring failure modes

Things entered in the wrong spot. Values misunderstood at entry or at processing. Improbable and impossible entries. Wrong units. Four patterns, found over and over — each one a fingerprint pointing back to its process.

Why the problems exist at all

Required fields without available data breed workarounds — the form won't submit, so someone types a fake phone number. Missing definitions breed divergence — every analyst keeps a private list of beta blockers. Reused columns breed lies — non-ICD codes living in a column named ICD_CODE.

None of these people were careless. The system taught them to do it — which is exactly why the fix belongs at the system, not the user.

Where anomalies point
User interfaces Code & bugs User training Standard operating procedures Standardized units
The stakes

Funny anomalies. Unfunny consequences.

Every specimen in the gallery maps to a patient-level harm: a zombie stays on a transplant list, or keeps getting mail. A NULL sex code silently drops a patient from the Adult Prevention bundle. A wrong height misprices insurance and mis-assigns the Obesity bundle. A stale CoPath feed quietly degrades the Close-the-Loop safety net. The discipline measured itself accordingly — in counts, not anecdotes.

0
Encounter temperature observations audited
2,581 below 90° · 284 above 110°
0
Flowsheet temps below 92°
some annotated — the observer knew
0
Height observations audited
1,488 patients at 7 feet or taller
0
NULL sex codes at peak
growing ~140K per 15 weeks until fixed

How good is good enough?

Marketing might accept 95% clean. What threshold is acceptable for delivering healthcare? The team's answer: data-quality cost belongs in the cost of owning the source system — like maintaining any other capital asset. A collection system producing untrustable data has no point.

The adoption argument

"Will people use your applications if the data displayed is incorrect — even if it's not your fault?" Every program in this series depended on clinicians trusting a screen. Data discovery was the down payment on that trust.

Patients as sensors

The road map even enlisted the patient: survey tools to confirm the record. "Did you really lose 200 pounds last year?" — the cheapest anomaly detector in healthcare is the person the data describes. Honest caveat, as filed: the analysis ran by hand; no distributed DQ tooling existed yet.

The platform · Bundle of Bundles

Model the business of care — not the database that recorded it.

The first attempt modeled the data the way the source systems stored it: unwieldy, unnecessarily complex, different for every question. The rebuild went dimensional — conformed patient, provider, and date across every business process — and the payoff was architectural: analytics that survive source-system change, because an abstraction layer shifts that burden to ETL, where it belongs.

Transactional orientation — what it costs

Optimized for transactions, not questions. Every analyst must understand both the business and the source schema. And when either the business or the transactional system changes, every analysis changes with it.

-- "LDL performance" straight from Clarity:
SELECT … FROM ORDER_RESULTS r
 JOIN ORDER_PROC op ON …
 JOIN CLARITY_COMPONENT cc ON …
 JOIN PAT_ENC pe ON …
 JOIN …(a page of joins, per analyst, per query,
  re-derived and re-broken with every upgrade)
Dimensional orientation — what it buys

Shaped like the business process, so it reads intuitively. Conforms disparate sources, captures history, supports drill-across, doesn't presuppose the questions — and no "Big Bang" required: each business process delivers value as it's built.

-- The same question, from the model:
SELECT … FROM FACT_MONTHLY_CARE_GAP
 WHERE measure = 'LDL' …

-- one fact table, conformed dimensions,
-- and the upgrade is ETL's problem.
Then → now
2010 go-live12 bundles · 93 measures · monthly · "what is needed?"
201525 bundles · 360 measures · daily · "actionable next step!"

From cumbersome, slow, and complex to agile, fast, and simple — same mission, rebuilt foundation.

410+ measures
25 conditions
620,000 patients · daily
the Bundle of Bundles — basis for care gaps, auto-orders, outreach, and AMP
The rules engine

Clinical logic became data — versioned, queryable, shared.

The old way: every analyst pastes their own ICD list into every query. The team's exhibit was a CAD inclusion list — twenty-three codes, hand-supplied, with one pointed annotation: "What about 414.03?" Multiply that drift by every rule, every query, every analyst, every year. The fix: store the logic itself as data, in one place, with effective dates.

Before — the in-line rule
WHERE dx_code IN ('411.1','411.81','411.89',
'413.1','413.9','414.00','414.01','414.02',
'414.04','414.05','414.8','414.9','429.2',
'746.85','V81.0','EP354','EP355','EP356',
'EP359','EP360','EP523','EP556','EP557')

What about 414.03? Nobody knows which queries have it, which don't, and which version of "CAD patient" produced last quarter's report.

After — the engine
-- current definition:
UDF_RULES_ENGINE('CAD PATIENT',
  'INCLUSION CRITERIA')

-- as of any date in history:
UDF_RULES_ENGINE('CAD PATIENT',
  'INCLUSION CRITERIA', '1/1/2013')

One function call. One source of truth. Time travel included — any past result can be reproduced under the rules that were active when it ran.

Logic without redeployment

Rules live in an ENTITY · ATTRIBUTE · VALUE table with insert, update, effective, and expiration dates. Changing clinical logic is a SQL update — no code release, no retest cycle, no waiting on a developer.

One update, every query

Because every query calls the engine, maintaining a rule once maintains it everywhere — all versions of all queries stay synchronized by construction. Adaptable to any criteria-based rule: inclusion, exclusion, cohort lists.

Transparency → trust

The engine can present the criteria used in any calculation — so when a clinician asks "who counts as a CAD patient here?", the answer is a query, not an archaeology project. The team wrote the equation plainly: transparency builds trust.

The real-time lane · and the legacy

Two speeds, one truth: the union that made real time safe.

Batch analytics ran Epic → Clarity → CDIS 2.0 on Teradata, nightly. Time-critical work — MEWS, Glucometrics — couldn't wait for the night. The answer wasn't a second warehouse; it was a hot partition: a small, low-latency HL7 stream through the E-Gate interface engine, UNIONed with the replicated warehouse so every query sees one complete, current truth.

How hot partitioning works
Day 1
CDIS (nightly replica)  ← yesterday's truth
∪ UNION
HL7 msg 1, 2, 3  ← today's messages, live

Queries see the warehouse plus everything that has happened since the last batch — seconds old, not hours.

Day 2
CDIS now contains msgs 1–3  ← replication caught up
∪ UNION
HL7 msg 4  ← only the genuinely new

The hot side stays small forever — it holds only what the nightly batch hasn't absorbed yet. Low latency without a parallel warehouse to keep honest.

The lane carried a deliberately limited data set at low latency — vitals, glucose, the signals where minutes matter — while everything else kept the batch path. MEWS and Glucometrics were its founding tenants; the acquisition hierarchy SuperNote later codified ("HL7 first") starts here.

What stood on this layer

The taxonomies trusted the vitals because discovery cleaned them. The bundles trusted the model because dimensions conformed it. The programs trusted the rules because the engine versioned them. Every page in this series is a tenant of this one.

The cultural artifact

Data discovery wasn't a project with an end date — it was a standing discipline with a gallery, a frequency report, and an executive audience. The team made distrust institutional, then made trust earned.

The transferable lesson

Platforms age; doctrines don't. Interrogate before believing. Model the process, not the system. Store logic as data. Stream only what minutes demand. Four rules, still current — in OMOP terms as much as Teradata ones.

"Trust isn't a feeling about your data. It's a deliverable you engineer."

The foundation in one sentence — and the reason 620,000 patients a day could be scored by systems clinicians actually believed.

← Previous
Obesity & Heart Failure