PageSourceSearch

https://nopp.us/assets/specialty-CXYUaEyJ.js

js nopp.us collected 2026-09-24 15:15:12 UTC 5,776 bytes, 1 lines download raw bytes

1import{b4 as h,b as p,j as e,$ as N,a5 as o,aE as j,c as u,l as i,m as r,b5 as g}from"./index-Ojn8dnb4.js";import{S as v}from"./seo-cross-links-AJ7oFERI.js";import{M as b}from"./map-pin-BN3BHnBQ.js";const f={AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado",CT:"Connecticut",DE:"Delaware",FL:"Florida",GA:"Georgia",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming",DC:"District of Columbia"},l=s=>s>=1e6?`$${(s/1e6).toFixed(2)}M`:s>=1e3?`$${(s/1e3).toFixed(0)}K`:`$${(s||0).toFixed(0)}`;function P(){const{slug:s}=h(),{data:a,isLoading:c,error:x}=p({queryKey:["/api/specialty",s]});if(c)return e.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:e.jsx(N,{className:"h-8 w-8 animate-spin text-muted-foreground"})});if(x||!a)return e.jsxs("div",{className:"container max-w-4xl mx-auto px-4 py-16 text-center",children:[e.jsx("h1",{className:"text-3xl font-bold mb-4",children:"Specialty Not Found"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"We don't have a leaderboard for that specialty yet."}),e.jsx(o,{href:"/lists",className:"text-primary hover:underline",children:"Browse all lists →"})]});const d=`Top Paid ${a.label} Providers (2024) | Nopp`,n=`Ranked leaderboard of the highest-paid ${a.label.toLowerCase()} providers in the U.S., based on CMS Open Payments 2024 data. ${a.stats.withPayments.toLocaleString()} paid providers across ${a.stats.total.toLocaleString()} total practitioners.`;return e.jsxs(e.Fragment,{children:[e.jsxs(j,{children:[e.jsx("title",{children:d}),e.jsx("meta",{name:"description",content:n}),e.jsx("link",{rel:"canonical",href:`https://nopp.us/specialty/${a.slug}`}),e.jsx("meta",{property:"og:title",content:d}),e.jsx("meta",{property:"og:description",content:n})]}),e.jsxs("div",{className:"container max-w-6xl mx-auto px-4 py-12",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx(u,{variant:"secondary",className:"mb-3",children:"Specialty Leaderboard · 2024"}),e.jsxs("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-4","data-testid":"text-specialty-title",children:["Top Paid ",a.label," Providers"]}),e.jsxs("p",{className:"text-lg text-muted-foreground max-w-3xl",children:["Ranked by 2024 CMS Open Payments. ",a.stats.withPayments.toLocaleString()," paid providers, ",a.stats.total.toLocaleString()," total practitioners,"," ",l(a.stats.totalPaid)," in total industry payments."]})]}),e.jsxs("div",{className:"grid sm:grid-cols-3 gap-4 mb-10",children:[e.jsx(i,{"data-testid":"card-stat-total",children:e.jsxs(r,{className:"p-5",children:[e.jsx("div",{className:"text-xs uppercase text-muted-foreground mb-1",children:"Total Providers"}),e.jsx("div",{className:"text-2xl font-bold",children:a.stats.total.toLocaleString()})]})}),e.jsx(i,{"data-testid":"card-stat-paid",children:e.jsxs(r,{className:"p-5",children:[e.jsx("div",{className:"text-xs uppercase text-muted-foreground mb-1",children:"Total Paid (2024)"}),e.jsx("div",{className:"text-2xl font-bold",children:l(a.stats.totalPaid)})]})}),e.jsx(i,{"data-testid":"card-stat-avg",children:e.jsxs(r,{className:"p-5",children:[e.jsx("div",{className:"text-xs uppercase text-muted-foreground mb-1",children:"Avg Per Paid Provider"}),e.jsx("div",{className:"text-2xl font-bold",children:l(a.stats.avgPaid)})]})})]}),e.jsx(i,{className:"mb-10",children:e.jsxs(r,{className:"p-0",children:[e.jsxs("div",{className:"p-5 border-b border-border flex items-center gap-2",children:[e.jsx(g,{className:"h-5 w-5 text-primary"}),e.jsxs("h2",{className:"text-xl font-bold",children:["Top 50 Highest-Paid in ",a.label]})]}),e.jsx("div",{className:"divide-y divide-border",children:a.topProviders.map((t,m)=>e.jsxs("div",{className:"px-5 py-3 flex items-center gap-4 hover-elevate","data-testid":`row-provider-${t.npi}`,children:[e.jsx("div",{className:"w-8 text-center font-bold text-muted-foreground",children:m+1}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"font-medium truncate",children:[t.name,t.credential?`, ${t.credential}`:""]}),e.jsxs("div",{className:"text-xs text-muted-foreground truncate",children:[t.specialty,t.city&&t.state&&` · ${t.city}, ${t.state}`]})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("div",{className:"font-semibold",children:l(t.paid2024)}),t.topCompany&&e.jsx("div",{className:"text-xs text-muted-foreground truncate max-w-[140px]",children:t.topCompany})]})]},t.npi))})]})}),a.topStates.length>0&&e.jsx(i,{className:"mb-10",children:e.jsxs(r,{className:"p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(b,{className:"h-5 w-5 text-primary"}),e.jsxs("h2",{className:"text-xl font-bold",children:["Top States for ",a.label]})]}
1),e.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-5 gap-2",children:a.topStates.map(t=>e.jsxs(o,{href:`/specialty/${a.slug}/${t.state}`,className:"flex items-center justify-between p-3 rounded-md border border-border hover-elevate","data-testid":`link-state-${t.state}`,children:[e.jsx("span",{className:"font-medium text-sm",children:f[t.state]||t.state}),e.jsx("span",{className:"text-xs text-muted-foreground",children:t.count.toLocaleString()})]},t.state))})]})}),e.jsx(v,{})]})]})}export{P as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.