fix(pfs): align rvu_proposed columns with pfs.rvu (refs #607)

This commit is contained in:
kert
2026-08-13 20:29:34 -04:00
parent d726dca50e
commit 810f7e208a
3 changed files with 17 additions and 27 deletions

View File

@@ -278,8 +278,8 @@ def _(mo):
def _(q):
rvu_delta_raw = q("""
WITH proposed AS (
SELECT hcpcs, description, work_rvu, nonfac_pe_rvu, mp_rvu,
work_rvu + nonfac_pe_rvu + mp_rvu AS total_nf_rvu,
SELECT hcpcs, description, work_rvu, non_fac_pe_rvu, mp_rvu,
work_rvu + non_fac_pe_rvu + mp_rvu AS total_nf_rvu,
CASE
WHEN hcpcs BETWEEN '99201' AND '99499' THEN 'E/M'
WHEN hcpcs BETWEEN '10000' AND '19999' THEN 'Integumentary'
@@ -295,9 +295,9 @@ def _(q):
ELSE 'Other'
END AS category
FROM pfs.rvu_proposed
WHERE (modifier IS NULL OR modifier = '')
WHERE (mod IS NULL OR mod = '')
AND status_code = 'A'
AND nonfac_pe_rvu IS NOT NULL
AND non_fac_pe_rvu IS NOT NULL
QUALIFY row_number() OVER (PARTITION BY hcpcs ORDER BY hcpcs) = 1
),
final_2025 AS (
@@ -433,13 +433,13 @@ def _(mo, rvu_delta):
def _(con, mo):
_new = con.execute("""
SELECT count(*) FROM pfs.rvu_proposed p
WHERE (p.modifier IS NULL OR p.modifier='') AND p.status_code='A' AND p.nonfac_pe_rvu IS NOT NULL
WHERE (p.mod IS NULL OR p.mod='') AND p.status_code='A' AND p.non_fac_pe_rvu IS NOT NULL
AND NOT EXISTS (SELECT 1 FROM pfs.rvu f WHERE f.year=2025 AND f.hcpcs=p.hcpcs AND (f.mod IS NULL OR f.mod=''))
""").fetchone()[0]
_dropped = con.execute("""
SELECT count(*) FROM pfs.rvu f
WHERE f.year=2025 AND (f.mod IS NULL OR f.mod='') AND f.status_code='A'
AND NOT EXISTS (SELECT 1 FROM pfs.rvu_proposed p WHERE p.hcpcs=f.hcpcs AND (p.modifier IS NULL OR p.modifier=''))
AND NOT EXISTS (SELECT 1 FROM pfs.rvu_proposed p WHERE p.hcpcs=f.hcpcs AND (p.mod IS NULL OR p.mod=''))
""").fetchone()[0]
mo.md(f"""
> **Coverage caveat:** {_new} HCPCS codes appear in `pfs.rvu_proposed`

View File

@@ -20,25 +20,15 @@ _ADDENDUM_B_TAG = "sup:2026_PFS_NPRM"
_ADDENDUM_B_RE = re.compile(r"(?i)addendum[_ ]?b")
# pfs.pipe._RVU_COLUMNS normalizes raw headers to these intermediate
# names; map them onto the pfs.rvu_proposed target schema.
_TARGET_RENAME = {
"hcpcs": "hcpcs",
"mod": "modifier",
"description": "description",
"status_code": "status_code",
"work_rvu": "work_rvu",
"non_fac_pe_rvu": "nonfac_pe_rvu",
"fac_pe_rvu": "fac_pe_rvu",
"mp_rvu": "mp_rvu",
}
# names, which already match the pfs.rvu_proposed target schema (#607
# aligned it with pfs.rvu's column names — no renaming needed here).
_TARGET_COLUMNS = [
"hcpcs",
"modifier",
"mod",
"description",
"status_code",
"work_rvu",
"nonfac_pe_rvu",
"non_fac_pe_rvu",
"fac_pe_rvu",
"mp_rvu",
"cms_rule_id",
@@ -138,7 +128,7 @@ def load_rvu_proposed(con: Any, *, cms_rule_id: str = "CMS-1832-P") -> dict:
& pl.col("hcpcs").str.contains(r"^[A-Za-z0-9]{5}$")
)
df = df.select(list(_TARGET_RENAME)).rename(_TARGET_RENAME)
df = df.select(_TARGET_COLUMNS[:-1]) # all but cms_rule_id, added next
df = df.with_columns(pl.lit(cms_rule_id).alias("cms_rule_id"))
df = df.select(_TARGET_COLUMNS)
@@ -147,11 +137,11 @@ def load_rvu_proposed(con: Any, *, cms_rule_id: str = "CMS-1832-P") -> dict:
"""
CREATE TABLE IF NOT EXISTS pfs.rvu_proposed (
hcpcs VARCHAR,
modifier VARCHAR,
mod VARCHAR,
description VARCHAR,
status_code VARCHAR,
work_rvu DOUBLE,
nonfac_pe_rvu DOUBLE,
non_fac_pe_rvu DOUBLE,
fac_pe_rvu DOUBLE,
mp_rvu DOUBLE,
cms_rule_id VARCHAR
@@ -163,8 +153,8 @@ def load_rvu_proposed(con: Any, *, cms_rule_id: str = "CMS-1832-P") -> dict:
try:
con.execute(
"INSERT INTO pfs.rvu_proposed SELECT "
"hcpcs, modifier, description, status_code, work_rvu, "
"nonfac_pe_rvu, fac_pe_rvu, mp_rvu, cms_rule_id FROM _nprm_df"
"hcpcs, mod, description, status_code, work_rvu, "
"non_fac_pe_rvu, fac_pe_rvu, mp_rvu, cms_rule_id FROM _nprm_df"
)
finally:
con.unregister("_nprm_df")

View File

@@ -59,7 +59,7 @@ def test_load_rvu_proposed_strips_padding(tmp_path, monkeypatch):
con = duckdb.connect()
nprm.load_rvu_proposed(con)
row = con.execute(
"SELECT hcpcs, description, work_rvu, nonfac_pe_rvu, fac_pe_rvu, mp_rvu "
"SELECT hcpcs, description, work_rvu, non_fac_pe_rvu, fac_pe_rvu, mp_rvu "
"FROM pfs.rvu_proposed WHERE hcpcs='99213'"
).fetchone()
assert row == ("99213", "Office visit est", 1.3, 1.5, 0.55, 0.1)
@@ -72,7 +72,7 @@ def test_load_rvu_proposed_na_marker_becomes_null(tmp_path, monkeypatch):
con = duckdb.connect()
nprm.load_rvu_proposed(con)
row = con.execute(
"SELECT work_rvu, nonfac_pe_rvu, fac_pe_rvu, mp_rvu "
"SELECT work_rvu, non_fac_pe_rvu, fac_pe_rvu, mp_rvu "
"FROM pfs.rvu_proposed WHERE hcpcs='99214'"
).fetchone()
assert row == (None, None, None, None)