clia: new CLIA certificate renewal service, order page, email template + harvest
Set up the CLIA recurring-renewal vein (every clinical lab renews its CLIA cert on a 2-year cycle; CMS publishes the full lab file with expiration dates): - service-catalog: clia-renewal ($449, discountable) + order page (npi-intake steps) + intake manifest entry. - harvest_clia_renewals.py: parse the CMS Provider-of-Services CLIA file, filter to labs expiring within a window (default 120d), emit name/address/phone/expiry. 676k labs -> ~70k expiring in the next ~4 months. - match_clia_to_nppes.py: CLIA has no NPI/email, so bridge to emailable NPPES orgs by normalized name+zip to recover NPI+email (yield TBD; labs that do not match still have clean phone+postal for a phone/mail channel). - hc_clia_renewal.html: warm turnover-safety-net email with the striped official- record card (CLIA #, expiry, status), verify-on-CMS-QCOR, founder guarantee card, full CAN-SPAM address.
This commit is contained in:
parent
d1a9260854
commit
9c7a08f5c9
7 changed files with 398 additions and 0 deletions
|
|
@ -150,6 +150,7 @@ export const INTAKE_MANIFEST: Record<string, IntakeStep[]> = {
|
|||
"npi-revalidation": ["npi-intake", "review", "payment"],
|
||||
"npi-reactivation": ["npi-intake", "review", "payment"],
|
||||
"nppes-update": ["npi-intake", "review", "payment"],
|
||||
"clia-renewal": ["npi-intake", "review", "payment"],
|
||||
"medicare-enrollment": ["npi-intake", "review", "payment"],
|
||||
"oig-sam-screening": ["npi-intake", "review", "payment"],
|
||||
"provider-compliance-bundle": ["npi-intake", "review", "payment"],
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ export const SERVICE_META: Record<string, ServiceMeta> = {
|
|||
"cdr-storage-tier1": { name: "CDR Storage Tier 1 (50 GB / 50M calls)", price_cents: 9900 },
|
||||
"cdr-storage-tier2": { name: "CDR Storage Tier 2 (250 GB / 250M calls)", price_cents: 29900 },
|
||||
"cdr-storage-tier3": { name: "CDR Storage Tier 3 (1 TB / 1B calls)", price_cents: 79900 },
|
||||
"clia-renewal": { name: "CLIA Certificate Renewal", price_cents: 44900 },
|
||||
"cores-frn-registration": { name: "CORES / FRN Registration", price_cents: 14900 },
|
||||
"corp-formation": { name: "Corporation Formation", price_cents: 24900 },
|
||||
"cpni-certification": { name: "CPNI Annual Certification", price_cents: 19900 },
|
||||
|
|
|
|||
35
site/src/pages/order/clia-renewal.astro
Normal file
35
site/src/pages/order/clia-renewal.astro
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
import Base from "../../layouts/Base.astro";
|
||||
import VerticalOrderHeader from "../../components/VerticalOrderHeader.astro";
|
||||
import Wizard from "../../components/intake/Wizard.astro";
|
||||
import OrderPriceBanner from "../../components/OrderPriceBanner.astro";
|
||||
import { INTAKE_MANIFEST, SERVICE_META } from "../../lib/intake_manifest";
|
||||
|
||||
const slug = "clia-renewal";
|
||||
const steps = INTAKE_MANIFEST[slug];
|
||||
const meta = SERVICE_META[slug];
|
||||
const title = meta ? `Order ${meta.name}` : "Order";
|
||||
const description = "Renew your CLIA laboratory certificate with CMS before it expires. CLIA certificates run on a 2-year cycle; an expired certificate stops you from legally performing or billing for lab testing.";
|
||||
---
|
||||
|
||||
<Base title={title} description={description}>
|
||||
<main>
|
||||
<section class="pw-order-intro">
|
||||
<h1>{meta?.name}</h1>
|
||||
<p class="pw-desc">{description}</p>
|
||||
</section>
|
||||
|
||||
<VerticalOrderHeader vertical="healthcare" />
|
||||
|
||||
<OrderPriceBanner priceCents={meta?.price_cents} govFeeLabel={meta?.gov_fee_label} serviceSlug={slug} note="Choose card, ACH, or PayPal at payment." />
|
||||
|
||||
<Wizard service_slug={slug} steps={steps ?? ["npi-intake", "review", "payment"]} title={meta?.name ?? slug} />
|
||||
</main>
|
||||
</Base>
|
||||
|
||||
<style>
|
||||
main { max-width: 900px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
|
||||
.pw-order-intro { margin-bottom: 1.5rem; }
|
||||
.pw-order-intro h1 { margin: 0 0 0.25rem; color: var(--pw-navy, #1a2744); }
|
||||
.pw-desc { color: var(--pw-muted, #64748b); max-width: 48rem; }
|
||||
</style>
|
||||
Loading…
Add table
Add a link
Reference in a new issue