Reframe healthcare filing as standard vs expedited; e2e test + bug fixes
Copy: drop paper/electronic/fax framing across the revalidation + enrollment marketing pages and the order-confirmation email; present two service tiers: - Standard filing (no CMS account; we prepare CMS-855, you sign, we submit to MAC) - Expedited filing (CMS I&A surrogate access; same-day PECOS filing + tracking) Internal worker todos + the _STANDARD_FILING_SLUGS identifier updated to match. New scripts/test_healthcare_e2e.py validates the whole order line (slug consistency x6 places, price agreement, intake field collection+enforcement, worker dispatch, handler execution producing CMS-855 PDF+anchor, free-tool action_urls). 45 checks. Bugs found + fixed by the test: - medicare-enrollment requires practice_state server-side but the wizard never enforced it -> orders could be paid then stall. Wizard now requires it. - determine_form_type defaulted org NPIs to the individual 855I because enumeration_type is never collected -> wrong form, CMS rejection. Now does a live NPPES lookup (safe 855I fallback).
This commit is contained in:
parent
5cfe9702e2
commit
695ace207c
7 changed files with 381 additions and 54 deletions
|
|
@ -2152,42 +2152,43 @@ export async function sendComplianceIntakeEmail(
|
|||
</p>
|
||||
</div>` : "";
|
||||
|
||||
// CMS filing-method section for PECOS / NPPES orders. We offer two paths and
|
||||
// let the provider pick the one that's easiest for them:
|
||||
// (1) Paper CMS-855 — they e-sign one page, we print + mail to their MAC.
|
||||
// Zero account setup. Default for revalidation/enrollment.
|
||||
// (2) I&A surrogacy — faster/trackable, but needs a CMS I&A account.
|
||||
// NPPES-only services (reactivation, update) are web-only, so surrogacy is
|
||||
// the only path for those. We never ask for the provider's password.
|
||||
// CMS filing-method section for PECOS / NPPES orders. We offer two service
|
||||
// tiers and let the provider pick the one that's easiest for them:
|
||||
// (1) Standard filing — they review + sign one certification, we submit to
|
||||
// their MAC. Zero account setup. Default for reval/enrollment.
|
||||
// (2) Expedited filing — faster/same-day-trackable via CMS I&A surrogate access.
|
||||
// NPPES-only services (reactivation, update) are web-only, so surrogate access
|
||||
// is the only path for those. We never ask for the provider's password.
|
||||
const npiConfirmUrl = `${SITE_DOMAIN}/order/success?action=ia_surrogacy&order_id=${orderId}`;
|
||||
// Which ordered services can use the paper CMS-855 path (PECOS enrollment/reval)
|
||||
// vs. are NPPES-web-only (surrogacy required).
|
||||
const PAPER_855_SLUGS = new Set<string>(["npi-revalidation", "medicare-enrollment", "provider-compliance-bundle"]);
|
||||
// Which ordered services support the standard (no-account) filing path
|
||||
// vs. are NPPES-web-only (surrogate access required).
|
||||
const STANDARD_FILING_SLUGS = new Set<string>(["npi-revalidation", "medicare-enrollment", "provider-compliance-bundle"]);
|
||||
const NPPES_ONLY_SLUGS = new Set<string>(["npi-reactivation", "nppes-update"]);
|
||||
const hasPaper855 = npiAccessOrders.some(o => PAPER_855_SLUGS.has(o.service_slug as string));
|
||||
const hasStandardFiling = npiAccessOrders.some(o => STANDARD_FILING_SLUGS.has(o.service_slug as string));
|
||||
const hasNppesOnly = npiAccessOrders.some(o => NPPES_ONLY_SLUGS.has(o.service_slug as string));
|
||||
|
||||
const paper855Block = hasPaper855 ? `
|
||||
<p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#115e59;">Option 1 (easiest): Paper CMS-855 — no account needed</p>
|
||||
const standardFilingBlock = hasStandardFiling ? `
|
||||
<p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#115e59;">Standard filing — no account needed</p>
|
||||
<p style="margin:0 0 12px;font-size:13px;color:#134e4a;line-height:1.5;">
|
||||
We complete the correct CMS-855 form for you. You e-sign the certification page
|
||||
from a secure link we send (takes about a minute), and we print it and mail it to
|
||||
your Medicare Administrative Contractor (MAC). Nothing for you to set up.
|
||||
We complete the correct CMS-855 for you. You review and sign the certification
|
||||
from a secure link we send (takes about a minute), and we submit it to your
|
||||
Medicare Administrative Contractor (MAC) and track it to confirmation. Nothing
|
||||
for you to set up.
|
||||
</p>` : "";
|
||||
|
||||
const surrogacyHeading = hasPaper855
|
||||
? `Option 2 (faster): CMS I&A surrogate access`
|
||||
const surrogacyHeading = hasStandardFiling
|
||||
? `Expedited filing — CMS I&A surrogate access`
|
||||
: `Grant CMS I&A surrogate access`;
|
||||
|
||||
const npiSection = hasNpiAccess ? `
|
||||
<div style="background:#ccfbf1;border:1px solid #5eead4;border-radius:8px;padding:16px 20px;margin:20px 0;">
|
||||
<p style="margin:0 0 10px;font-size:14px;font-weight:700;color:#115e59;">Action Required: Choose How We File</p>
|
||||
${paper855Block}
|
||||
${standardFilingBlock}
|
||||
<p style="margin:0 0 6px;font-size:13px;font-weight:700;color:#115e59;">${surrogacyHeading}</p>
|
||||
<p style="margin:0 0 12px;font-size:13px;color:#134e4a;line-height:1.5;">
|
||||
${hasNppesOnly ? "NPPES updates and reactivations are online-only, so this is required for those. " : ""}You add us as a
|
||||
<strong>Surrogate</strong> in CMS Identity & Access (I&A) — you never share your password.
|
||||
We then file in PECOS / NPPES under our own credentials, e-sign where permitted, and capture the tracking ID.
|
||||
We then file in PECOS / NPPES under our own credentials and capture the tracking ID the same day.
|
||||
</p>
|
||||
<ol style="margin:0 0 12px;padding-left:20px;font-size:13px;color:#134e4a;line-height:1.7;">
|
||||
<li>Log in to <a href="https://nppes.cms.hhs.gov/IAWeb/login.do" style="color:#0f766e;">CMS I&A (I&A System)</a></li>
|
||||
|
|
@ -2201,7 +2202,7 @@ export async function sendComplianceIntakeEmail(
|
|||
</a>
|
||||
</p>
|
||||
<p style="margin:8px 0 0;font-size:12px;color:#115e59;text-align:center;">
|
||||
${hasPaper855 ? "Prefer the paper option? Just reply to this email and we'll send your CMS-855 to e-sign — no further action needed from you here." : "Clicking this notifies our team so we can begin your filing."}
|
||||
${hasStandardFiling ? "Prefer standard filing? Just reply to this email and we'll send your CMS-855 to sign — no further action needed from you here." : "Clicking this notifies our team so we can begin your filing."}
|
||||
</p>
|
||||
</div>` : "";
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue