← Back to the worklist · Whole encounter ENC-00085
Camila Upfield: Heart failure
ENC-00085 · 76M · Hospital Medicine · admitted Sat Oct 31, 2026 07:25 PM · discharged Tue Nov 03, 2026 10:16 AM · attending Dr. Wes Merriweather · resident Dr. Noor Halvorsen
Documented “HFrEF” (I50.20); criteria support the more specific Acute systolic (HFrEF) heart failure (I50.21).
Documented vs supported
- Documented
- “HFrEF” · I50.20 Unspecified systolic (congestive) heart failure
- Criteria support
- Acute systolic (HFrEF) heart failure · I50.21 Acute systolic (congestive) heart failure
- Outcome
- LVEF 29% with 3 acute indicators, no prior heart failure on file
- 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
- I50.20 -> I50.21
- Secondary-diagnosis level
- CC → MCC
- MS-DRG (illustrative)
- 871 Septicemia or severe sepsis without MV >96 hours with MCC → 871 Septicemia or severe sepsis without MV >96 hours with MCC
- Relative weight
- 1.9425 → 1.9425 (+0.0000)
- Codes before
- A41.9, N39.0, I50.20, J96.01, L89.154, I10
- Codes after
- A41.9, N39.0, J96.01, L89.154, I10, I50.21
All open gaps on this encounter together: MS-DRG 871 → 871 (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.5 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.
| Input | Value | Source |
|---|---|---|
| Latest LVEF within 12 months (%) | 29.0 |
echo LVEF 29%
|
| IV loop diuretic given this stay | True |
furosemide 40 mg IV
furosemide 40 mg IV
furosemide 40 mg IV
furosemide 40 mg IV
|
| Highest BNP this stay (pg/mL) | 1013.0 |
BNP 1013 pg/mL
|
| Supplemental oxygen started this stay without home oxygen supplemental oxygen started this stay without home oxygen on file |
True |
O2 2 L/min (nasal cannula)
|
Rule trace (inputs, thresholds, outcome)
| Step | Expression | Inputs and thresholds read | Result |
|---|---|---|---|
| derived: np_elevated | coalesce(bnp_max >= t.bnp, false) or coalesce(ntprobnp_max >= t.ntprobnp, false) |
bnp_max=1013.0, ntprobnp_max=unknown, t.bnp=100, t.ntprobnp=300 | true |
| derived: acute_count | count(iv_loop_diuretic, np_elevated, new_o2) |
iv_loop_diuretic=True, new_o2=True, np_elevated=True | 3 |
| derived: hf_type | case(lvef <= t.ref, 'systolic', lvef >= t.pres, 'diastolic', 'midrange') |
lvef=29.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=29.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=3, hf_history=False | acute |
| 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=acute, hf_type=systolic | false |
| outcome: sys_acute | hf_type == 'systolic' and acuity == 'acute' |
acuity=acute, hf_type=systolic | true |
Documentation query
Title and question drafted by model clockworks-mock (audit entry #2133); 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-00085 Patient: Camila Upfield To: Dr. Wes Merriweather Clinical indicators from the health record: - Documented in the record: "HFrEF" [Progress note DOC-000291] - echo LVEF 29% (2026-11-02 01:25) [echo ECH-000039] - furosemide 40 mg IV (2026-10-31 20:00) [med MED-000325] - furosemide 40 mg IV (2026-11-01 08:00) [med MED-000326] - furosemide 40 mg IV (2026-11-01 20:00) [med MED-000327] - furosemide 40 mg IV (2026-11-02 08:00) [med MED-000328] - BNP 1013 pg/mL (2026-10-31 20:25) [lab LAB-002870] - O2 2 L/min (nasal cannula) (2026-11-01 03:50) [vital VIT-008267] Question: Based on your clinical judgement and the indicators above, can the type and acuity of the heart failure being treated be further specified? Response options (select one or write your own): ( ) Acute systolic heart failure (HFrEF) ( ) Acute on chronic systolic heart failure (HFrEF) ( ) Other (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
- Acute respiratory failure · Clinical validation gap Documented “acute hypoxic respiratory failure” (J96.01) but the criteria are not met: No hypoxaemia on room air (lowest SpO2 94%), oxygen no more than 2 L/min, no advanced support.
History
| Seq | When (UTC) | Actor | Action | Entities | Decision / reason | Model / hashes |
|---|---|---|---|---|---|---|
| 2133 | 2026-11-14T20:57:24 | system:llm system |
llm.call |
ENC-00085, ENC-00085.heart_failure | — | clockworks-mock mock-1/exactdx.draft_query@1 prompt 97eeabcf72dd output 752ce96b1cd3 entry 2ce94e71f77c |
| 1307 | 2026-11-14T19:24:29 | system:llm system |
llm.call |
ENC-00085, ENC-00085.heart_failure | — | clockworks-mock mock-1/exactdx.draft_query@1 prompt 97eeabcf72dd output 752ce96b1cd3 entry 53d94c1c0965 |
| 565 | 2026-11-14T18:29:05 | system:llm system |
llm.call |
ENC-00085, ENC-00085.heart_failure | — | clockworks-mock mock-1/exactdx.draft_query@1 prompt 97eeabcf72dd output 752ce96b1cd3 entry f7ee8fd7476d |