A care gap is the distance between the care a guideline says a patient should receive and the care your records show they got. The overdue mammogram. The diabetic patient with no A1c in nine months. The heart-failure patient who left their last three visits without a documented ejection fraction. Multiply by a panel of thousands and you have the daily arithmetic of value-based care.
Here is the uncomfortable part: most organizations already know their gaps. The analytics vendor produces the list. The payer emails the spreadsheet. The dashboard glows amber. What is missing is not identification, it is closure, and closure only happens in one place: the visit. This post is about the plumbing that gets a gap from a report into the exam room and back out as coded, closed, countable care. It is the same architecture whether the driver is HEDIS measures, ACO quality scores, or HCC risk adjustment.
Where gap lists come from
Three streams feed almost every gap program, and they disagree with each other more than anyone admits.
- Quality measure engines. HEDIS and eCQM logic run against your own clinical data: denominators, numerators, exclusions. This is the freshest stream and the one you control.
- Payer gap files. Health plans send gaps-in-care lists for attributed members, usually monthly, usually as CSV, always on a claims lag. They see care delivered outside your walls, which you often cannot, and they arrive weeks stale.
- Risk-adjustment suspecting. Under HCC models, chronic conditions must be documented each year to count. A diagnosis coded last December that has not appeared this year is a documentation gap with direct revenue and risk-score consequences.
The first engineering job is boring and decisive: merge the three streams into one patient-level register, deduplicate the same gap reported three ways, resolve attribution, and attach the evidence to each line. A gap without its evidence is an argument waiting to happen in the middle of a clinic session.
Why gaps stay open
Because the standard closure workflow happens at the wrong time, in the wrong place, staffed by the wrong scarce resource.
The retrospective loop looks like this: the report runs monthly, a population health team works the list, outreach calls go to voicemail, a fraction of patients call back, a smaller fraction book, and by the time the cycle completes the file is stale and the team starts over. Every step leaks. None of it involves the person with the ordering pen at the moment they are thinking about the patient.
Meanwhile, the average primary care panel produces a steady stream of scheduled visits. The patient with four open gaps is not hiding. She is on Thursday’s schedule for something else entirely. The cheapest, most reliable care gap closure event in existence is the visit that was already going to happen. The entire engineering problem reduces to one sentence: get the right gap in front of the right clinician while the patient is in the room, with the evidence attached and the action one click away.
Outreach still matters for patients who never come in. But if your in-visit closure rate is low, outreach is filling a leaky bucket.
Closing gaps where care happens
Getting into the workflow is what clinical decision support is for. Three surfaces do the work, and mature programs usually run a deliberate mix.
In-chart prompts. CDS Hooks is the HL7 standard for point-of-care guidance: the EHR calls an external service at defined workflow moments (patient-view when the chart opens, order-select and order-sign during ordering) and renders the cards that come back, evidence included. The logic lives in one external service rather than in per-site rule builds, so the same service can serve every EHR that speaks the standard.
Embedded panels. A prompt is a nudge; some work needs a workspace. SMART on FHIR launches an app inside the chart with the patient already in context, which is where the longer-form review work belongs. The two standards are designed to compose, so a prompt can hand off to the panel when a nudge is not enough.
Native alert frameworks. Epic’s Best Practice Advisory (BPA) and its equivalents elsewhere are configured inside the EHR and are unbeatable for hard-stop moments and site-specific policy. They are also the most abused surface in healthcare, which is why we treat interruptive alerts as a scarce budget to be spent, not a default.
| Epic BPA (native) | CDS Hooks | SMART on FHIR app | |
|---|---|---|---|
| Where the logic lives | Inside Epic, per org | Your external service | Your external app |
| Works across EHR vendors | No | Yes, where supported | Yes, where supported |
| Fires | Rule-defined moments | patient-view, order-select, order-sign | On launch (incl. from a card) |
| Best at | Hard stops, site policy | Lightweight prompts with evidence | Full gap review + documentation |
| Maintenance profile | Per-site analyst builds | One service, many sites | One app, many sites |
The register from the first section drives all three surfaces. That is the architectural point: one source of truth about who has which gaps and why, rendered wherever the workflow needs it.
The write-back is the point
An alert that ends with “the clinician nodded” closes nothing. A gap is closed when the record says so, discretely: the order placed, the condition on the problem list, the diagnosis on the visit, the result recorded. Coded, not narrated, because quality measures and claims read codes, not prose.
Two design rules keep this honest:
- The clinician is the gate. Nothing writes silently. The provider accepts or dismisses each suggested action during the visit, with dismissal reasons captured. The attestation is the product; the write-back is its receipt.
- Respect the variance. What can land discretely differs by EHR and by version, and every write scope is negotiated, reviewed, and governed per site. We design for an explicit accept step instead of pretending it away, because a workflow that overclaims silent writes fails its security review and then fails its pilot.
Done right, the loop closes itself: the write-back updates the clinical record, the measure engine recomputes, the gap leaves the register, and the prompt never fires again for a gap that is already closed. Prompts that keep firing on closed gaps are how clinicians learn to ignore your system in under a week.
Alert fatigue, transparency, and the FDA line
Every additional prompt spends a finite resource: clinician attention. The programs that survive contact with a busy clinic share the same discipline. Fire rarely. Fire at the moment the action is possible. Show the evidence on the card, not behind a login. Track override and dismissal rates per prompt and retire the ones the data says are noise. A care-gap program with a 95% override rate is not a quality initiative, it is a pop-up ad.
Transparency also happens to be the regulatory posture. The 21st Century Cures Act excludes CDS software from FDA device regulation when, among other criteria, the clinician can independently review the basis for each recommendation, and FDA’s 2022 guidance draws that line in detail. Guideline-based gap prompts that cite their source and show their data are built to live on the non-device side of it. That is one more reason the evidence goes on the card.
How we engage
We build this stack for provider organizations and for the vendors who serve them: value-based care enablers, population health platforms, and analytics companies whose gap lists deserve better than a portal nobody opens.
- Register and rules. Merge measure-engine output, payer files, and suspecting into one deduplicated, evidence-carrying gap register.
- Surfaces. CDS Hooks services and SMART on FHIR apps, plus native BPA builds where they fit, all driven by the register.
- Write-back and governance. Discrete write paths per EHR, attestation workflows, Epic app registration and the security review that comes with it.
- The measurement loop. Closure rates, override rates, and time-to-close, per prompt and per site, so the program improves instead of accreting.
The same architecture that closes a HEDIS gap closes an HCC recapture gap and a clinical trial screening gap; only the rules change. If your gap lists are long and your closure rates are not moving, talk to us. Bring one measure; we will walk the whole loop for it.
Related reading: Enabling Clinical Research with EHR Data applies the same in-workflow philosophy to trial recruitment, and our SMART on FHIR guide covers the app-launch framework these surfaces share.