Skip to main content
Exact Dx synthetic data · demonstration
Extended criteria (experimental). This is the broader ten-condition engine, kept as a secondary area. It shows ICD-10-CM codes and illustrative grouping effects for CDI staff. The primary surface is Before you sign (kidney, measurement only). All extended pages.

← Back to the worklist · Whole encounter ENC-00129

Tobias Ivers: Heart failure

ENC-00129 · 78F · Cardiology · admitted Mon Oct 26, 2026 11:11 AM · discharged Sun Nov 01, 2026 11:28 AM · attending Dr. Cyrus Ellingham · resident Dr. Keira Upfield

Clinical validation gap Criteria met Open

Documented “acute on chronic systolic heart failure” (I50.23) is more specific than the criteria support (Chronic systolic (HFrEF) heart failure, I50.22).

Documented vs supported

Documented
“acute on chronic systolic heart failure” · I50.23 Acute on chronic systolic (congestive) heart failure
Criteria support
Chronic systolic (HFrEF) heart failure · I50.22 Chronic systolic (congestive) heart failure
Outcome
LVEF 27%, prior heart failure, no acute indicators
Rule
Heart failure type (LVEF) and acuity v2026.11-1
Published source
Universal Definition and Classification of Heart Failure (HFSA/HFA/JHFS, 2021), as restated in Chandramouli et al., Clin Cardiol 2022 (2021), LVEF classification: HFrEF <=40%, HFmrEF 41-49%, HFpEF >=50%; HFimpEF = baseline <=40%, rise >=10 points, second LVEF >40% · source (checked 2026-11-14)
Contested
No guideline gives a numeric definition of "acute" versus "chronic" heart failure. This rule uses a LOCAL CONVENTION: at least two acute indicators (IV loop diuretic, elevated natriuretic peptide, new oxygen requirement) = acute; with a prior history of heart failure = acute on chronic; none with history = chronic; exactly one = clinical judgement.

Effect if the clinician agrees (illustrative)

Change
principal I50.23 -> I50.22
Secondary-diagnosis level
principal → principal
MS-DRG (illustrative)
292 Heart failure and shock with CC → 292 Heart failure and shock with CC
Relative weight
0.8490 → 0.8490 (+0.0000)
Codes before
I50.23, N18.32, E87.1, D64.9, I10
Codes after
I50.22, N18.32, E87.1, D64.9, I10

All open gaps on this encounter together: MS-DRG 292 → 292 (RW +0.0000). The grouping does not change; the record becomes accurate.

CC/MCC status, CC exclusions (subset) and relative weights from the public CMS FY2026 IPPS final rule tables (5, 6I, 6J, 6K). This is not a grouper and not a payment estimate. Queries never mention any of this.

Severity documentation index change SIMULATED

0.0 points

SIMULATED: Illustrative severity weights (MCC = 1.0, CC = 0.5, non-CC = 0) summed over secondary diagnoses; not a validated risk-adjustment model and not a measured effect.

Evidence

Structured values are read by code from the cited rows. Note facts are shown only when the model's quote was found verbatim in the note.

Evidence (each item cited to a source row or a quoted span)
InputValueSource
Latest LVEF within 12 months (%) 27.0
echo LVEF 27% · echo ECH-000061 · 2026-10-27 09:11
Highest BNP this stay (pg/mL) 77.0
BNP 77 pg/mL · lab LAB-004391 · 2026-10-26 12:11
Prior heart failure on the problem list / history True
history: heart failure with reduced ejection fraction · history HX-000047
Rule trace (inputs, thresholds, outcome)
Rule trace (rule heart_failure v2026.11-1; evaluated in order, first true outcome wins; "unknown" = missing input)
StepExpressionInputs and thresholds readResult
derived: np_elevated coalesce(bnp_max >= t.bnp, false) or coalesce(ntprobnp_max >= t.ntprobnp, false) bnp_max=77.0, ntprobnp_max=unknown, t.bnp=100, t.ntprobnp=300 false
derived: acute_count count(iv_loop_diuretic, np_elevated, new_o2) iv_loop_diuretic=False, new_o2=False, np_elevated=False 0
derived: hf_type case(lvef <= t.ref, 'systolic', lvef >= t.pres, 'diastolic', 'midrange') lvef=27.0, t.pres=50, t.ref=40 systolic
derived: improved coalesce(lvef_prior_min <= t.ref and lvef > t.ref and lvef - lvef_prior_min >= t.improved_rise, false) lvef=27.0, lvef_prior_min=unknown, t.improved_rise=10, t.ref=40 false
derived: acuity case(acute_count >= 2 and hf_history, 'acute on chronic', acute_count >= 2, 'acute', acute_count == 0 and hf_history, 'chronic', null) acute_count=0, hf_history=True chronic
outcome: improved_ef improved improved=False false
outcome: midrange hf_type == 'midrange' hf_type=systolic false
outcome: sys_aoc hf_type == 'systolic' and acuity == 'acute on chronic' acuity=chronic, hf_type=systolic false
outcome: sys_acute hf_type == 'systolic' and acuity == 'acute' acuity=chronic, hf_type=systolic false
outcome: sys_chronic hf_type == 'systolic' and acuity == 'chronic' acuity=chronic, hf_type=systolic true

Documentation query

Title and question drafted by model clockworks-mock (audit entry #2217); clinical indicators and answer options assembled by code from the rule and the record.

Sign in to act. Sign in as a demo user (a CDI specialist sends queries).

DOCUMENTATION QUERY (draft)
Title: Clarification request: cardiac documentation
Encounter: ENC-00129   Patient: Tobias Ivers   To: Dr. Cyrus Ellingham

Clinical indicators from the health record:
- Documented in the record: "acute on chronic systolic heart failure" [History and physical DOC-000435]
- echo LVEF 27% (2026-10-27 09:11) [echo ECH-000061]
- BNP 77 pg/mL (2026-10-26 12:11) [lab LAB-004391]
- history: heart failure with reduced ejection fraction [history HX-000047]

Question:
The indicators above are documented in this encounter. Could you clarify the type and acuity of the documented heart failure?

Response options (select one or write your own):
( ) Acute on chronic systolic heart failure: confirmed (please document the supporting clinical information)
( ) Chronic systolic heart failure (HFrEF)
( ) Other explanation of the clinical findings (please specify): ____________
( ) Unable to determine

Please respond based on your independent clinical judgement. Any response, including "unable to determine", is acceptable. This query and your response are kept as part of the health record.

Other findings on this encounter

History

Audit entries for this finding (newest first)
SeqWhen (UTC)ActorAction EntitiesDecision / reasonModel / hashes
2217 2026-11-14T20:57:25 system:llm
system
llm.call ENC-00129, ENC-00129.heart_failure — clockworks-mock mock-1/exactdx.draft_query@1
prompt 3a3f02e0b5de
output d9932f2bccc8
entry f423bd5d42ab
1391 2026-11-14T19:24:31 system:llm
system
llm.call ENC-00129, ENC-00129.heart_failure — clockworks-mock mock-1/exactdx.draft_query@1
prompt 3a3f02e0b5de
output d9932f2bccc8
entry 61f8b7dd518e
649 2026-11-14T18:29:06 system:llm
system
llm.call ENC-00129, ENC-00129.heart_failure — clockworks-mock mock-1/exactdx.draft_query@1
prompt 3a3f02e0b5de
output d9932f2bccc8
entry 9eb61d85405e