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:
justin 2026-06-07 00:33:33 -05:00
parent 138fec17e9
commit 7ea18dd3d8
2 changed files with 39 additions and 6 deletions

View file

@ -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 &amp; Access
(I&amp;A) Surrogate</strong> access for your NPI, we can file faster &mdash;
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 &mdash; I can grant Surrogate access (faster)</option>
<option value="no">No &mdash; 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"),
}});
});