healthcare: verify CMS-10114 update path, correct NPI Enumerator address, build CMS-10114 filler
Verified firsthand against the live CMS-10114 (Rev. 02/25, OMB 0938-0931): - Section 1A confirms paper is valid for Change of Information (#2) AND Reactivation (#4), not just initial enumeration. Resolves the UNCERTAIN flag. - Current mailing address is CMS NPI Enumerator Services, Mail Stop DO-01-51, 7500 Security Blvd, Baltimore MD 21244. The old Fargo PO Box 6059 is retired; corrected in mac_routing.NPI_ENUMERATOR + all docs. - No electronic no-login equivalent exists for CMS (NPI Registry API is read-only; PECOS/NPPES-IA require login), unlike FMCSA's ask.fmcsa ticket form. So tiers stay: Standard=paper CMS-10114 (no login), Expedited=NPPES surrogate. New: cms10114_pdf_filler.py fills the flat official form via text overlay (reason checkbox + NPI + Section 2A identity + Section 4A cert name + signature anchor); wired into npi_provider._generate_10114_for_signing for nppes-update. Signed forms route to the NPI Enumerator via the existing daily batch. Tests: test_cms10114.py 27/27, test_paper_batch.py 15/15, Astro build 58 pages.
This commit is contained in:
parent
f9c294e962
commit
e6a630ada1
10 changed files with 540 additions and 48 deletions
BIN
docs/CMS-10114 Form.pdf
Normal file
BIN
docs/CMS-10114 Form.pdf
Normal file
Binary file not shown.
|
|
@ -49,22 +49,42 @@ Internal capability map. Confirms how each healthcare service is fulfilled with
|
|||
- Paper-to-MAC, original signatures, routed by state. "Sign and date section 8
|
||||
using ink."
|
||||
|
||||
### NPPES data update / NPI reactivation (CMS-10114 paper path) [PARTIAL]
|
||||
- 855I confirms NPI is obtained/changed via NPPES and "you may apply **online** at
|
||||
NPPES.cms.hhs.gov" — implies the online path; the paper CMS-10114 to the NPI
|
||||
Enumerator (PO Box 6059, Fargo ND 58108-6059) is the documented paper
|
||||
alternative per the existing `healthcare-no-login-value-add.md` (NPI Enumerator
|
||||
800-465-3203).
|
||||
- **UNCERTAIN (verify before relying on it as the sole standard path):** whether
|
||||
CMS still accepts paper CMS-10114 for *updates/reactivation* (vs initial
|
||||
enumeration only) today. Could not reach the live CMS-10114 instruction from
|
||||
this host (search engines blocked, direct URLs 404).
|
||||
- **Decision:** for NPPES-only services, offer Expedited (surrogate → file in
|
||||
NPPES online) as the primary fast path, and the CMS-10114 paper path as the
|
||||
Standard fallback. Confirm the CMS-10114-for-changes acceptance + obtain the
|
||||
current form PDF before building `cms10114_pdf_filler.py`. Until confirmed, the
|
||||
honest Standard fallback for a declined-surrogate NPPES update may be "we
|
||||
prepare it and guide the one-step online submission" — TBD on verification.
|
||||
### NPPES data update / NPI reactivation (CMS-10114 paper path) [CONFIRMED]
|
||||
- **VERIFIED firsthand** against the live CMS-10114 PDF (Rev. 02/25, OMB
|
||||
0938-0931, exp. 03/2028) downloaded from
|
||||
`cms.gov/Medicare/CMS-Forms/CMS-Forms/downloads/CMS10114.pdf`, and the CMS
|
||||
"How to Apply" page which titles it the **"NPI Application/Update Form"**.
|
||||
- The form's Section 1A "Reason for Submittal" has four checkboxes:
|
||||
**#1 Initial Application, #2 Change of Information, #3 Deactivation,
|
||||
#4 Reactivation** — all completed on the SAME paper form, each requiring a
|
||||
signed + dated certification (Section 4A individual / 4B organization).
|
||||
Verbatim: *"If changing information, check box #2... then sign and date the
|
||||
certification... All changes must be reported to the NPI Enumerator within 30
|
||||
days."* and *"If you are reactivating the NPI, check box #4... Sign and date
|
||||
the certification."*
|
||||
- So paper CMS-10114 is a valid no-login path for **changes AND reactivation**,
|
||||
not just initial enumeration. UNCERTAIN flag resolved.
|
||||
- **Mailing address (current, printed on the form page 5):**
|
||||
```
|
||||
CMS NPI Enumerator Services
|
||||
Mail Stop DO-01-51
|
||||
7500 Security Blvd.
|
||||
Baltimore, MD 21244
|
||||
```
|
||||
The previously-documented **Fargo, ND PO Box 6059 address is RETIRED** — code
|
||||
(`mac_routing.NPI_ENUMERATOR`) and docs updated to the Baltimore address.
|
||||
Enumerator phone for questions: 1-800-465-3203.
|
||||
- **No electronic no-login equivalent exists for CMS.** Unlike FMCSA (whose
|
||||
`ask.fmcsa.dot.gov/app/ticket` accepts an MCS-150 update + attachments with no
|
||||
account), CMS has no public web form to submit an NPPES change without a login.
|
||||
Probed live: the NPI Registry API (`npiregistry.cms.hhs.gov/api`) is
|
||||
**read-only lookup**; PECOS and NPPES I&A both require login. Therefore for
|
||||
NPPES changes the two genuine tiers are: **Standard = paper CMS-10114 to
|
||||
Baltimore (no login)**, **Expedited = surrogate files in NPPES online**.
|
||||
- **Decision (updated):** offer Expedited (surrogate → NPPES online) as the fast
|
||||
path and the CMS-10114 paper-to-Baltimore path as the Standard default. Build
|
||||
`cms10114_pdf_filler.py` to produce the signable form (Reason checkbox driven
|
||||
by service: change vs reactivation vs deactivation).
|
||||
|
||||
## CMS I&A Surrogate (Expedited path)
|
||||
- Provider adds Performance West as a **Surrogate** in CMS I&A; we then file in
|
||||
|
|
@ -78,14 +98,14 @@ Internal capability map. Confirms how each healthcare service is fulfilled with
|
|||
| Medicare revalidation | 855I/B → MAC, client signs | file in PECOS | 855B yes |
|
||||
| Medicare enrollment | 855I/B/O → MAC, client signs | file in PECOS | 855B yes |
|
||||
| NPI reactivation | 855I → MAC (reactivation reason) | PECOS/NPPES | no |
|
||||
| NPPES data update | CMS-10114 → Fargo *(verify)* | NPPES online | no |
|
||||
| NPPES data update | CMS-10114 → NPI Enumerator (Baltimore), client signs | NPPES online | no |
|
||||
| OIG/SAM screening | public DBs, **zero client action** | n/a (no portal) | no |
|
||||
| Provider compliance bundle | spawns reval + screening + NPPES | mixed | per-piece |
|
||||
|
||||
## Daily batch (Standard-path mailing)
|
||||
Each **postal working day morning** (skip weekends + USPS/federal holidays — use
|
||||
`scripts/workers/business_days.py` calendar): gather all signed+pending paper
|
||||
filings, **group by destination agency** (each MAC; NPI Enumerator Fargo; each
|
||||
filings, **group by destination agency** (each MAC; NPI Enumerator Baltimore; each
|
||||
state agency), merge each group into ONE print job + a cover sheet (PW sender,
|
||||
destination, date, enclosed count, per-item order#/provider/NPI/form), one
|
||||
**Priority Mail** envelope per agency. Mark each order mailed with batch date +
|
||||
|
|
@ -100,9 +120,17 @@ Certification. Need a **state → MAC → mailing-address** table to address env
|
|||
|
||||
## Implementation status (built + validated)
|
||||
- **mac_routing.py** — state→MAC (56 jurisdictions, 12 destinations) +
|
||||
NPI_ENUMERATOR (Fargo). Addresses marked VERIFY before first live mail.
|
||||
NPI_ENUMERATOR (NPI Enumerator Services, Baltimore MD — VERIFIED from CMS-10114
|
||||
Rev. 02/25). MAC addresses still marked VERIFY before first live mail.
|
||||
- **npi_provider.py** — two-tier `access` strings; NPPES update/reactivation no
|
||||
longer "online-only"; surrogate answer surfaced in the admin todo.
|
||||
longer "online-only"; surrogate answer surfaced in the admin todo. nppes-update
|
||||
now generates the CMS-10114 for e-signature (Standard path) via
|
||||
`_generate_10114_for_signing`.
|
||||
- **cms10114_pdf_filler.py** — fills the official CMS-10114 (flat PDF, text
|
||||
overlay): reason checkbox (change/reactivation/deactivation) + NPI + Section 2A
|
||||
identity + Section 4A certification name, with a signature anchor on the cert
|
||||
line. The signed form joins the daily batch to the NPI Enumerator (Baltimore).
|
||||
`test_cms10114.py` 27/27 pass.
|
||||
- **checkout.ts + service pages + intake** — client-facing copy stripped of
|
||||
mechanics; surrogate is the only optional, positively-framed ask (faster,
|
||||
never required, never share password, never mentions paper). Astro build green.
|
||||
|
|
@ -118,9 +146,12 @@ Certification. Need a **state → MAC → mailing-address** table to address env
|
|||
## TODO before first live mail (manual / verify)
|
||||
1. Fill the real MAC provider-enrollment PO Box addresses in `mac_routing.py`
|
||||
(marked VERIFY) from each MAC's current enrollment page.
|
||||
2. Confirm CMS-10114 paper-for-changes acceptance + obtain the form PDF, then
|
||||
build `cms10114_pdf_filler.py` for the NPPES Standard path (until then
|
||||
nppes-update falls to surrogate/manual).
|
||||
2. ~~Confirm CMS-10114 paper-for-changes acceptance + obtain the form PDF~~
|
||||
~~build `cms10114_pdf_filler.py`~~ **DONE** — verified against CMS-10114
|
||||
Rev. 02/25 (address = NPI Enumerator Services, Baltimore MD); filler built +
|
||||
wired into `npi_provider._generate_10114_for_signing`; `test_cms10114.py`
|
||||
27/27 pass. Remaining nicety: org (Entity Type 2 / Section 4B) overlay path
|
||||
(currently flagged for manual completion when NPI-2 detected).
|
||||
3. Run migration 089 on the DB; confirm the worker picks up a signed test filing
|
||||
and produces the per-agency cover + merged PDF in MinIO.
|
||||
4. Phase 2: wire a print-mail API (Lob/Click2Mail) to auto-mail the merged PDF
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ single paper form (or e-sign), and we file it by mail or as the preparer.
|
|||
| Service | Paper/no-login path | Provider's only job | Verified source |
|
||||
|---|---|---|---|
|
||||
| **Medicare PECOS Revalidation** | CMS-855I/855B/855A **paper** application mailed to the provider's **MAC** (revalidation is a checkbox reason in Section 1A). | **Sign** the form (wet/original signature). We prepare 100% of it. | CMS-855I: "submit your application with **original signatures**… to your designated MAC… by mail." |
|
||||
| **NPPES / NPI data update** (address, taxonomy, contact) | **CMS-10114** paper NPI Application/Update mailed to the **NPI Enumerator, PO Box 6059, Fargo, ND 58108-6059**; Enumerator staff key it into NPPES. | Sign the paper form. **No NPPES/I&A login at all.** | NPI Enumerator paper process (PO Box 6059, Fargo ND; 800-465-3203). |
|
||||
| **NPPES / NPI data update** (address, taxonomy, contact) | **CMS-10114** paper NPI Application/Update mailed to the **NPI Enumerator (CMS NPI Enumerator Services, 7500 Security Blvd, Baltimore, MD 21244)**; Enumerator staff key it into NPPES. | Sign the paper form. **No NPPES/I&A login at all.** | NPI Enumerator paper process (Baltimore, MD; 800-465-3203; CMS-10114 Rev. 02/25). |
|
||||
| **NPI Reactivation / enrollment reactivation** | Same paper-855 path to the MAC (reactivation is a Section 1A reason). | Sign. | CMS-855 instructions. |
|
||||
| **Medicare Enrollment (new)** | Paper CMS-855I/855B to the MAC with original signature. | Sign + provide info. | CMS-855I. |
|
||||
| **OIG / SAM Exclusion Screening** | We screen against the **public** OIG LEIE + SAM.gov databases by name/NPI. | **Nothing — zero provider involvement.** No login, no signature. | OIG LEIE + SAM.gov are public federal databases. |
|
||||
|
|
@ -39,7 +39,7 @@ time of navigating CMS portals. Our differentiator:
|
|||
> website. (For exclusion screening you don't even sign — we just do it.)
|
||||
|
||||
## Mailing destinations (for credibility in copy)
|
||||
- NPI/NPPES paper: **NPI Enumerator, PO Box 6059, Fargo, ND 58108-6059**
|
||||
- NPI/NPPES paper: **CMS NPI Enumerator Services, Mail Stop DO-01-51, 7500 Security Blvd, Baltimore, MD 21244**
|
||||
- 855 enrollment/revalidation: the provider's **MAC** (varies by state/jurisdiction;
|
||||
we determine and route it).
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ the "paper" alternative is NEVER surfaced to the client):
|
|||
|
||||
- **Standard service (default):** we handle the filing end-to-end. Client signs
|
||||
ONE certification and we submit + track to confirmation. (Internally this is the
|
||||
paper path — 855 to the MAC, CMS-10114 to the NPI Enumerator in Fargo — but we
|
||||
paper path — 855 to the MAC, CMS-10114 to the NPI Enumerator (Baltimore MD) — but we
|
||||
never say "paper" to the client; it's just "we file it for you.")
|
||||
- **Expedited (faster, framed positively at intake):** we ask if they can
|
||||
**electronically grant us CMS I&A Surrogate access**. We position this as
|
||||
|
|
@ -28,11 +28,11 @@ surrogate as *required* when a paper path exists; paper is always the default.
|
|||
- `api/src/routes/checkout.ts` (~L2155-2207) — already has the two-tier copy, BUT
|
||||
treats NPPES update/reactivation as **"online-only, surrogate required"** with
|
||||
NO standard fallback (`NPPES_ONLY_SLUGS`, `hasNppesOnly`). The directive says:
|
||||
give those a Standard paper path too (CMS-10114 to Fargo) and make surrogate the
|
||||
give those a Standard paper path too (CMS-10114 to NPI Enumerator (Baltimore MD)) and make surrogate the
|
||||
*expedited* option, not the only option.
|
||||
- `scripts/workers/services/npi_provider.py` — `access` strings call NPPES
|
||||
update/reactivation "NPPES via CMS I&A surrogate access (online-only)". Must
|
||||
become "Standard: CMS-10114 paper to NPI Enumerator (Fargo), client signs;
|
||||
become "Standard: CMS-10114 paper to NPI Enumerator (Baltimore MD), client signs;
|
||||
Expedited: NPPES via I&A surrogate." Also `_STANDARD_FILING_SLUGS` currently
|
||||
excludes `nppes-update` (it has no 855) — needs a CMS-10114 paper path instead.
|
||||
- `scripts/document_gen/templates/cms855_pdf_filler.py` — working 855 paper path
|
||||
|
|
@ -58,7 +58,7 @@ pricing changes.
|
|||
## Approach (concrete ordered steps)
|
||||
1. **Confirm the CMS-10114 paper path** for NPPES data updates AND NPI
|
||||
reactivation (not just initial enumeration): paper CMS-10114 mailed to NPI
|
||||
Enumerator (PO Box 6059, Fargo ND), client signature only, no I&A login.
|
||||
Enumerator (Baltimore MD), client signature only, no I&A login.
|
||||
Cite the official source. This is what makes NPPES services "Standard, no
|
||||
login" instead of surrogate-required. (We currently have no CMS-10114 PDF.)
|
||||
2. **Lock the two-tier matrix for the 6 federal services.** For each slug record:
|
||||
|
|
@ -81,13 +81,13 @@ pricing changes.
|
|||
paper + e-sign, and the admin todo reflects Standard-default / Expedited-if-
|
||||
surrogate-granted. Mirror the existing 855 generate→upload→esign flow.
|
||||
5. **MAC + Fargo routing rule.** Document which Standard filings go where
|
||||
(855 → provider's MAC by state/jurisdiction; CMS-10114 → Fargo). Confirm
|
||||
(855 → provider's MAC by state/jurisdiction; CMS-10114 → NPI Enumerator (Baltimore MD)). Confirm
|
||||
`practice_state` intake field drives MAC envelope addressing.
|
||||
7. **Daily batched-mail fulfillment (Standard path).** Design the operational
|
||||
flow for paper filings that are signed + pending submission:
|
||||
- On each **postal working day morning** (skip weekends + federal/USPS
|
||||
holidays), gather ALL signed-and-pending paper filings, **group by
|
||||
destination agency/address** (each MAC, the NPI Enumerator in Fargo, each
|
||||
destination agency/address** (each MAC, the NPI Enumerator (Baltimore MD), each
|
||||
state Medicaid/CLIA agency).
|
||||
- For each destination, **merge all that day's documents into one print job**
|
||||
plus a **cover sheet** (Performance West sender, destination agency, date,
|
||||
|
|
@ -129,7 +129,7 @@ pricing changes.
|
|||
and Standard is the default on every surface.
|
||||
- **Standard path mechanism check:** `cms855_pdf_filler.fill_cms855("855i",...)`
|
||||
still yields filled PDF + cert anchor (read-only smoke render). If CMS-10114
|
||||
filler is built, same smoke render proves a signable Fargo-bound PDF.
|
||||
filler is built, same smoke render proves a signable Baltimore-bound PDF.
|
||||
- **Expedited path check:** confirm the surrogate-grant CTA + `ia_surrogacy`
|
||||
success action + admin todo together let a human file in PECOS/NPPES same-day;
|
||||
surrogate scope wording matches what CMS I&A actually grants (PECOS vs NPPES).
|
||||
|
|
@ -138,11 +138,11 @@ pricing changes.
|
|||
no "unknown" and no service that's portal-only-but-marketed-as-no-login.
|
||||
|
||||
## Open questions / decisions
|
||||
1. **NPPES update/reactivation Standard path:** is CMS-10114 paper-to-Fargo
|
||||
accepted for *changes/reactivation* today (RESOLVE in step 1)? If yes, both
|
||||
become Standard-default + surrogate-expedited. If CMS has gone online-only,
|
||||
they stay surrogate-required and we say so honestly. (Directive assumes paper
|
||||
works as Standard; step 1 verifies.)
|
||||
1. **NPPES update/reactivation Standard path:** ✅ RESOLVED — CMS-10114 paper IS
|
||||
accepted for *changes AND reactivation* (verified against CMS-10114 Rev. 02/25,
|
||||
Section 1A boxes #2 Change / #4 Reactivation). Mailing address is the NPI
|
||||
Enumerator in **Baltimore MD** (the old Fargo PO Box 6059 is retired). Both
|
||||
nppes-update and npi-reactivation are Standard-default + surrogate-expedited.
|
||||
2. **Build `cms10114_pdf_filler.py` this pass?** Needed for a real NPPES Standard
|
||||
path. Recommend: yes if step 1 confirms paper, mirroring the 855 filler;
|
||||
otherwise defer.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue