healthcare: optional surrogate-access intake question (expedited path)
- NpiIntakeStep: add positively-framed 'can you grant electronic I&A Surrogate access?' question for all filing slugs (reval/reactivation/nppes-update/ enrollment/bundle). Optional, never required, never mentions paper; captured as intake_data.surrogate_access (yes/no/blank). Astro build green (58 pages). - npi_provider.py: surface the surrogate answer in the admin todo so fulfillment knows EXPEDITED (online via surrogate) vs STANDARD (e-sign + daily mail batch).
This commit is contained in:
parent
138fec17e9
commit
7ea18dd3d8
2 changed files with 39 additions and 6 deletions
|
|
@ -159,6 +159,7 @@ class _BaseNPIHandler:
|
|||
specialty = intake.get("specialty", "")
|
||||
practice_state = intake.get("practice_state", "")
|
||||
pecos_id = intake.get("pecos_enrollment_id", "")
|
||||
surrogate = (intake.get("surrogate_access") or "").lower()
|
||||
customer_email = (
|
||||
intake.get("email")
|
||||
or order_data.get("customer_email")
|
||||
|
|
@ -178,6 +179,11 @@ class _BaseNPIHandler:
|
|||
LOG.error("[%s] CMS-855 generation failed: %s", order_number, exc)
|
||||
filing_note = f"CMS-855 auto-generation FAILED ({exc}); prepare the form manually."
|
||||
|
||||
surrogate_label = {
|
||||
"yes": "YES — client can grant I&A Surrogate access -> file the EXPEDITED way (online via surrogate).",
|
||||
"no": "NO — client declined surrogate -> use the STANDARD path (prepare form, e-sign, daily mail batch).",
|
||||
}.get(surrogate, "UNDECIDED — confirm with client; default to STANDARD path if not granted.")
|
||||
|
||||
description = (
|
||||
f"{meta['action']}\n\n"
|
||||
f"Provider: {provider}\n"
|
||||
|
|
@ -185,12 +191,14 @@ class _BaseNPIHandler:
|
|||
f"PECOS Enrollment ID: {pecos_id or 'not provided'}\n"
|
||||
f"Specialty: {specialty or 'not provided'}\n"
|
||||
f"Practice state: {practice_state or 'not provided'}\n"
|
||||
f"Surrogate access (expedited): {surrogate_label}\n"
|
||||
f"Portal: {meta['portal']}\n"
|
||||
f"Access model: {meta['access']}\n"
|
||||
+ (f"\n{filing_note}\n" if filing_note else "")
|
||||
+ "\nReview-staged: complete/verify the form, get it signed, then "
|
||||
"submit it to the provider's MAC (standard), or file in "
|
||||
"PECOS if surrogate access was granted). Mark this order complete."
|
||||
"submit it (STANDARD: signed form joins the daily mail batch to the "
|
||||
"provider's MAC; EXPEDITED: file in PECOS/NPPES via the granted "
|
||||
"surrogate access). Mark this order complete."
|
||||
)
|
||||
|
||||
self._create_todo(
|
||||
|
|
|
|||
|
|
@ -62,6 +62,27 @@
|
|||
<input type="number" id="npi-staff-count" min="0" placeholder="e.g. 5" /></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Optional: speed it up via electronic surrogate access. Shown for filing
|
||||
services (not pure screening). Framed positively; never required, never
|
||||
mentions any alternative. -->
|
||||
<div id="npi-sec-surrogate" hidden>
|
||||
<h3>Optional: speed up your filing</h3>
|
||||
<p class="pw-help" style="margin:0 0 0.5rem;">
|
||||
If you can electronically grant us <strong>CMS Identity & Access
|
||||
(I&A) Surrogate</strong> access for your NPI, we can file faster —
|
||||
it cuts steps on our end. You never share your password, and it's never
|
||||
required; we'll handle your filing either way.
|
||||
</p>
|
||||
<div class="pw-row">
|
||||
<label class="pw-field"><span>Can you grant electronic Surrogate access?</span>
|
||||
<select id="npi-surrogate-access">
|
||||
<option value="">Not sure / decide later</option>
|
||||
<option value="yes">Yes — I can grant Surrogate access (faster)</option>
|
||||
<option value="no">No — please just handle it for me</option>
|
||||
</select></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="pw-npi-errors" class="pw-err" hidden></div>
|
||||
|
|
@ -90,12 +111,14 @@
|
|||
|
||||
// Which extra sections to show per slug.
|
||||
const NPI_SECTIONS = {
|
||||
"npi-reactivation": ["npi-sec-reactivation"],
|
||||
"nppes-update": ["npi-sec-nppes"],
|
||||
"npi-revalidation": ["npi-sec-surrogate"],
|
||||
"npi-reactivation": ["npi-sec-reactivation", "npi-sec-surrogate"],
|
||||
"nppes-update": ["npi-sec-nppes", "npi-sec-surrogate"],
|
||||
"medicare-enrollment": ["npi-sec-surrogate"],
|
||||
"oig-sam-screening": ["npi-sec-screening"],
|
||||
"provider-compliance-bundle": ["npi-sec-screening"],
|
||||
"provider-compliance-bundle": ["npi-sec-screening", "npi-sec-surrogate"],
|
||||
};
|
||||
const ALL_NPI_SECTIONS = ["npi-sec-reactivation","npi-sec-nppes","npi-sec-screening"];
|
||||
const ALL_NPI_SECTIONS = ["npi-sec-reactivation","npi-sec-nppes","npi-sec-screening","npi-sec-surrogate"];
|
||||
|
||||
function showNpiSections() {
|
||||
const PW = window.PWIntake;
|
||||
|
|
@ -134,6 +157,7 @@
|
|||
"npi-fields-to-update": d.fields_to_update || "",
|
||||
"npi-org-name": d.organization_name || "",
|
||||
"npi-staff-count": d.staff_count || "",
|
||||
"npi-surrogate-access": d.surrogate_access || "",
|
||||
};
|
||||
for (const [id, val] of Object.entries(map)) {
|
||||
const el = document.getElementById(id);
|
||||
|
|
@ -186,6 +210,7 @@
|
|||
fields_to_update: val("npi-fields-to-update"),
|
||||
organization_name: val("npi-org-name"),
|
||||
staff_count: val("npi-staff-count"),
|
||||
surrogate_access: val("npi-surrogate-access"),
|
||||
}});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue