1import{f as K,w as ut,j as t,h as E,i as H,B as d,r as o,T as z,a1 as Dt,z as At,D as It,o as Mt}from"./index-_eNdN4Js.js";import{S as s}from"./Skeleton-CORv3vSS.js";import{S as l}from"./Stack-D5AjnWMI.js";import{E as kt,b as Gt,T as Pt,D as Tt,V as zt}from"./AnalyticsAPI-eFJVhDla.js";import{T as Et}from"./TopHeader-BGAPZsmd.js";import{A as Ht,P as xt,C as Ot,a as Vt,b as Wt}from"./ChartProviderDistribution-DADv0Rds.js";import{C as Bt}from"./Chip-DxI2lEMx.js";import{L as Ft}from"./LineChart-CQcEQuJ3.js";import{P as mt}from"./Person2Outlined-BnNuDlpT.js";import{A as Kt}from"./AccessTimeOutlined-Dl1M1swr.js";import{W as Ut}from"./WarningAmberRounded-BQa_XtK7.js";import{C as $t}from"./CalendarMonthOutlined-B4DkdeFf.js";import{f as F,i as _t}from"./AdapterDateFns-Bgry09a_.js";import{A as Jt}from"./Alert-CP2ROx5D.js";import{G as j}from"./Grid-CvKev5ZI.js";import"./CheckRounded-B4TFsvES.js";import"./SparkLineChart-yAjkPD71.js";import"./PickerViewRoot-DtrLz4Lw.js";import"./useControlled-BEeieUbk.js";import"./useThemeProps-nqRv-rxw.js";import"./useSlotProps-YA8UxGuh.js";import"./wiggle-9KKUtQJO.js";import"./Popper-DgDCVp2Q.js";import"./ToggleButtonGroup-CvcT-NAD.js";import"./toggleButtonGroupClasses-C0sAr3nm.js";import"./ToggleButton-DFJCDsR7.js";import"./toggleButtonClasses-BKAHdtQo.js";import"./useRovingTabIndex-DzVEojs1.js";import"./with-selector-Bv61jQ5F.js";import"./Popover-DGN6T1uE.js";import"./Grow-D0yUcrps.js";import"./InputLabel-D34ayV_C.js";import"./useFormControl-CkGXkoLw.js";import"./Input-DSTJIT3-.js";import"./TextField-C6jRR99D.js";import"./Select-CVODo0QG.js";import"./isMuiElement-CXvr9MBD.js";import"./Menu-Cxs_kIPA.js";import"./MenuItem-Cac0UMvd.js";import"./menuItemClasses-B5SH4gE1.js";import"./listItemIconClasses-CDuuTCG8.js";import"./DateCalendar-Cpc0_ws1.js";import"./CalendarTodayOutlined-D16vFD0K.js";import"./dayjs.min-Dp3RWiKu.js";import"./AdapterDayjs-BUmxbAZ7.js";import"./highcharts-react.min-CfD4OAJE.js";import"./chipClasses-BIBmwDS5.js";import"./ChartsWrapper-lVWmS7bA.js";import"./Close-C5vhJiwN.js";const ht=({cardHeight:i})=>{const a=K(),r=ut(a.breakpoints.down("sm")),f=i??364;return t.jsx(E,{variant:"outlined",sx:{display:"flex",flexDirection:"column",flexGrow:1,minWidth:0,minHeight:f},children:t.jsxs(H,{sx:{flex:1,display:"flex",flexDirection:"column",minHeight:0,p:{xs:1.25,sm:2,md:3}},children:[t.jsx(s,{variant:"text",height:26,width:"70%",sx:{mb:1}}),t.jsx(s,{variant:"text",height:18,width:"80%",sx:{mb:2}}),t.jsxs(l,{direction:r?"column":"row",spacing:r?2:4,sx:{flex:1,alignItems:"center",justifyContent:"center",width:"100%"},children:[t.jsxs(d,{sx:{position:"relative",width:{xs:180,sm:220,md:240},height:{xs:180,sm:220,md:240},mb:{xs:2,sm:0}},children:[t.jsx(s,{variant:"circular",width:"100%",height:"100%"}),t.jsx(d,{sx:{position:"absolute",inset:"18%",borderRadius:"50%",bgcolor:h=>h.palette.background.paper}}),t.jsxs(d,{sx:{position:"absolute",left:0,right:0,top:"50%",transform:"translateY(-50%)",textAlign:"center",px:1},children:[t.jsx(s,{variant:"text",width:60,height:28,sx:{mx:"auto",mb:.5}}),t.jsx(s,{variant:"text",width:100,height:18,sx:{mx:"auto"}})]})]}),t.jsx(l,{spacing:1.5,sx:{minWidth:{xs:"auto",sm:220},alignItems:{xs:"center",sm:"center"}},children:Array.from({length:4}).map((h,y)=>t.jsxs(l,{direction:"row",spacing:1.5,sx:{alignItems:"center"},children:[t.jsx(s,{variant:"circular",width:12,height:12}),t.jsx(s,{variant:"text",width:180,height:18})]},y))})]})]})})},Nt=()=>t.jsx(E,{variant:"outlined",sx:{display:"flex",flexDirection:"column",flexGrow:1,minWidth:0,minHeight:364},children:t.jsxs(H,{sx:{display:"flex",flexDirection:"column",flexGrow:1,minHeight:0,p:{xs:1.25,sm:2,md:3}},children:[t.jsx(s,{variant:"text",height:26,width:"70%",sx:{mb:1}}),t.jsx(s,{variant:"text",height:18,width:"60%",sx:{mb:1.5}}),t.jsxs(l,{direction:"row",spacing:1.25,sx:{minWidth:0,mb:1,display:{xs:"none",md:"flex"},alignItems:"center"},children:[t.jsx(d,{sx:{width:36,height:36,flexShrink:0}}),t.jsx(s,{variant:"text",height:18,width:200,sx:{flexBasis:200,flexShrink:0}}),t.jsx(s,{variant:"text",height:18,width:"40%",sx:{flexGrow:1}})]}),t.jsx(d,{sx:{flexGrow:1,minHeight:0,overflowY:"auto",pr:.5,scrollbarGutter:"stable"},children:t.jsx(l,{spacing:1.25,children:Array.from({length:3}).map((i,a)=>t.jsxs(o.Fragment,{children:[t.jsxs(l,{direction:"row",spacing:1.25,sx:{minWidth:0,display:{xs:"none",md:"flex"},alignItems:"center"},children:[t.jsx(s,{variant:"circular",width:36,height:36}),t.jsx(s,{variant:"text",width:200,height:18}),t.jsx(s,{variant:"rectangular",sx:{flexGrow:1,height:30,borderRadius:1}})]}),t.jsxs(l,{direction:"column",spacing:1,sx:{display:{xs:"flex",md:"none"},alignItems:"stretch",minWidth:0,pt:.75,pb:1.25,borderBottom:1,borderColor:"divider"},children:[t.jsxs(l,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[t.jsx(s,{variant:"circular",width:28,height:28}),t.jsx(s,{variant:"text",width:"60%",height:18})]}),t.jsx(s,{variant:"rectangular",width:"100%",height:24,sx:{borderRadius:1}})]})]},a))})})]})});function Yt({color:i,id:a}){return t.jsx("defs",{children:t.jsxs("linearGradient",{id:a,x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[t.jsx("stop",{offset:"0%",stopColor:i,stopOpacity:.5}),t.jsx("stop",{offset:"100%",stopColor:i,stopOpacity:0})]})})}function Qt(){const i=K(),a=["Aug '24","Sep '24","Oct '24","Nov '24","Dec '24","Jan '25","Feb '25","Mar '25","Apr '25","May '25","Jun '25","Jul '25"],r=[],f=r.length>0,h=f?a.slice(0,r.length):[];return t.jsx(E,{variant:"outlined",sx:{width:"100%"}
1,children:t.jsxs(H,{children:[t.jsx(z,{variant:"h6",gutterBottom:!0,sx:{fontWeight:550},children:"Readmission Rate Trends"}),t.jsx(z,{variant:"body2",sx:{color:"text.secondary"},children:"Monthly readmission rates over the past 12 months"}),f?t.jsxs(t.Fragment,{children:[t.jsx(l,{sx:{justifyContent:"space-between"},children:t.jsxs(l,{direction:"row",sx:{alignItems:"center",gap:1},children:[t.jsxs(z,{variant:"h4",component:"p",children:[r[r.length-1].toFixed(1),"%"]}),t.jsx(Bt,{size:"small",color:"success",label:"â from last year"})]})}),t.jsx(Ft,{colors:[i.palette.primary.main],xAxis:[{scaleType:"point",data:h,tickInterval:(y,M)=>(M+1)%2===0}],yAxis:[{min:8,max:16,label:"Readmission Rate (%)"}],series:[{id:"readmission",label:"Readmission Rate (%)",showMark:!1,curve:"linear",area:!0,data:r}],height:250,margin:{left:60,right:20,top:20,bottom:20},grid:{horizontal:!0},sx:{"& .MuiAreaElement-series-readmission":{fill:"url('#readmission-gradient')"}},hideLegend:!0,children:t.jsx(Yt,{color:i.palette.primary.main,id:"readmission-gradient"})})]}):t.jsx(d,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:270},children:t.jsx(kt,{size:"md",primary:"No readmission data available",secondary:"There are no recorded patient readmissions"})})]})})}const I=i=>i>1.5?"up":i<-1.5?"down":"neutral",G=i=>`${i>=0?"+":""}${i.toFixed(1)}%`,qt=i=>i.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2});function Xt(i){if(!i.length)return"";const a=new Date(i[0]),r=new Date(i[i.length-1]),f=a.toLocaleDateString("en-US",{month:"short",day:"numeric"}),h=r.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"});return`${f} â ${h}`}const Zt=()=>t.jsx(E,{variant:"outlined",sx:{height:"100%",flexGrow:1,bgcolor:"#fff"}
1,children:t.jsxs(H,{children:[t.jsx(d,{sx:{mb:1,width:40,height:40,borderRadius:"15%",overflow:"hidden"}}),t.jsx(s,{variant:"text",width:"40%",height:24,sx:{mb:1}}),t.jsxs(l,{direction:"row",sx:{mb:1,alignItems:"center",justifyContent:"space-between"},children:[t.jsx(s,{variant:"text",width:"30%",height:42}),t.jsx(s,{variant:"rounded",width:72,height:24,sx:{borderRadius:12}})]}),t.jsx(d,{sx:{width:"100%",height:50,position:"relative",mb:1},children:t.jsx(s,{variant:"rounded",width:"100%",height:50})}),t.jsx(s,{variant:"text",width:"45%",height:18})]})});function qe(){var ot,lt,dt;const{selectedFacilityId:i}=Dt(),[a,r]=o.useState(!0),[f,h]=o.useState(null),[y,M]=o.useState(null),U="https://api.carexa.ai",[$,_]=o.useState(null),[J,gt]=o.useState("range"),[k,pt]=o.useState(()=>{const e=new Date,n=new Date;return n.setDate(e.getDate()-29),{start:n,end:e}}),[w,O]=o.useState(null),[S,N]=o.useState(null),ft=K(),jt=ut(ft.breakpoints.up("md"))?"lg":"md",[te,bt]=o.useState(!1),vt=e=>_(e.currentTarget),yt=()=>_(null),Y=e=>e&&_t(e)?F(e,"MMM d, yyyy"):"â",Q=o.useCallback(async e=>{var n,p,P,ct;try{r(!0),h(null);const b=(n=e==null?void 0:e.range)!=null&&n.start?F(e.range.start,"yyyy-MM-dd"):void 0,W=(p=e==null?void 0:e.range)!=null&&p.end?F(e.range.end,"yyyy-MM-dd"):void 0,T=await Gt({baseurl:U,startDate:b,endDate:W,granularity:e==null?void 0:e.granularity,selectedFacilityId:i});M(T);const Ct=T.results.find(B=>B.measure==="acuityDistribution"),Lt=T.results.find(B=>B.measure==="vitalDistribution");return O(Ct??null),N(Lt??null),T}catch(b){const W=(At.isAxiosError(b)?((ct=(P=b.response)==null?void 0:P.data)==null?void 0:ct.message)||b.message:b==null?void 0:b.message)||"Unknown error";return h(`Unable to fetch vitals. ${W}`),M(null),O(null),null}finally{r(!1)}},[U,i]);o.useEffect(()=>{let e=!0;return i?((async()=>e&&await Q({range:k,granularity:J}))(),()=>{e=!1}):(e&&(r(!1),M(null),O(null),N(null),h("No facilities found. Please contact your administrator.")),()=>{e=!1})},[Q,i,k,J]);const C=(y==null?void 0:y.results)??[],L=o.useMemo(()=>{const e=new Map;
1return C.forEach(n=>e.set(n.measure,n)),e},[C]),u=L.get("patientsRegistered"),v=L.get("providersRegistered"),V=o.useMemo(()=>{const e=C.find(p=>p.measure==="providerShares");if(!e)return;const n=[...e.data??[]].sort((p,P)=>(P.percentOfScope??0)-(p.percentOfScope??0));return{...e,data:n}},[C]),c=L.get("vitalsCollected"),x=L.get("timeSavedHours"),m=L.get("moneySavedUsd"),g=L.get("entryErrorsPrevented"),q=(ot=c==null?void 0:c.data)!=null&&ot.length?c.data:(lt=x==null?void 0:x.data)!=null&<.length?x.data:(dt=m==null?void 0:m.data)!=null&&dt.length?m.data:(g==null?void 0:g.data)??[],D=e=>{const n=(e==null?void 0:e.data)??[];return{data:n.map(p=>p.value??0),xLabels:n.map(p=>p.date)}},X=D(c),Z=D(x),R=D(m),tt=D(g),et=D(u),it=D(v),A=q.length?Xt(q.map(e=>e.date)):"â",st=((c==null?void 0:c.percentChange)??0)*100,nt=((x==null?void 0:x.percentChange)??0)*100,at=((m==null?void 0:m.percentChange)??0)*100,rt=((g==null?void 0:g.percentChange)??0)*100,wt=C.length?[{title:"Vital Taken",value:((c==null?void 0:c.total)??0).toLocaleString(),interval:A,trend:I(st),data:X.data,deltaLabel:G(st),icon:Pt,iconKind:"trend",xLabels:X.xLabels},{title:"Time Saved",value:(x==null?void 0:x.total)??0,interval:A,trend:I(nt),data:Z.data,deltaLabel:G(nt),icon:Kt,iconKind:"time",valueSuffix:"hrs",valueVariants:{main:"h4",suffix:"h5"},xLabels:Z.xLabels},{title:"Money Saved",value:qt((m==null?void 0:m.total)??0),interval:A,trend:I(at),data:R.data,deltaLabel:G(at),icon:Ht,iconKind:"money",valueVariants:{prefix:"h4",main:"h4"},valuePrefix:"$",xLabels:R.xLabels},{title:"Entry Errors Prevented",value:Math.round((g==null?void 0:g.total)??0).toLocaleString(),interval:A,trend:I(rt),data:tt.data,deltaLabel:G(rt),icon:Ut,iconKind:"warning",xLabels:tt.xLabels}]:[],St=C.length?[{title:"Patients Registered",value:((u==null?void 0:u.total)??0).toLocaleString(),interval:A,trend:I(((u==null?void 0:u.percentChange)??0)*100),data:et.data,deltaLabel:G(((u==null?void 0:u.percentChange)??0)*100),icon:mt,iconKind:"trend",xLabels:et.xLabels},{title:"Providers Registered",value:((v==null?void 0:v.total)??0).toLocaleString(),interval:A,trend:I(((v==null?void 0:v.percentChange)??0)*100),data:it.data,deltaLabel:"",icon:xt,iconKind:"time",xLabels:it.xLabels},{title:"High-Risk Patients",value:"",interval:"",trend:"neutral",data:[],deltaLabel:"",icon:mt,iconKind:void 0,xLabels:[]},{title:"Active Care Provider",value:"",interval:"",trend:"neutral",data:[],deltaLabel:"",icon:xt,iconKind:void 0,xLabels:[]}]:[];return t.jsx(d,{sx:{display:"flex"},children:t.jsx(d,{component:"main",sx:{flexGrow:1,bgcolor:"#fff",overflow:"auto"},children:t.jsx(l,{spacing:2,sx:{alignItems:"center",mx:3,pb:5},children:t.jsxs(d,{sx:{width:"100%",maxWidth:{sm:"100%",md:"1700px"}},children:[t.jsx(Et,{}),t.jsx(It,{sx:{mb:3,mt:3}}),t.jsxs(l,{direction:{xs:"column",sm:"row"},sx:{mb:2,alignItems:{xs:"flex-start",sm:"center"},justifyContent:"space-between"},children:[t.jsx(z,{component:"h2",variant:"h4",sx:{fontWeight:"bold"},children:"Overview"}),t.jsxs(Mt,{variant:"outlined",startIcon:t.jsx($t,{}),onClick:vt,sx:{textTransform:"none",mt:{xs:1.5,sm:0},alignSelf:{xs:"flex-start",sm:"auto"}},children:[Y(k.start)," â ",Y(k.end)]})]}),t.jsx(Tt,{anchorEl:$,open:!!$,onClose:yt,initialRange:k,onApply:(e,n)=>{pt(e),gt(n),bt(!0)}}),f?t.jsx(Jt,{severity:"error",sx:{mb:2},children:f}):null,t.jsx(j,{container:!0,spacing:2,columns:12,sx:{mb:2,alignItems:"stretch"},children:a?Array.from({length:8}).map((e,n)=>t.jsx(j,{size:{xs:12,md:6,lg:3},sx:{display:"flex"},children:t.jsx(Zt,{})},`loader-${n}`)):[...wt,...St].map((e,n)=>t.jsx(j,{size:{xs:12,md:6,lg:3},sx:{display:"flex"},children:t.jsx(d,{sx:{width:"100%",display:"flex"},children:t.jsx(zt,{size:"md",...e})})},n))}),t.jsxs(j,{container:!0,spacing:2,columns:12,sx:{mb:e=>e.spacing(2)},children:[t.jsx(j,{size:{xs:12,md:12,lg:6},sx:{display:"flex"},children:a?t.jsx(Nt,{}):t.jsx(Ot,{size:"md",rows:(V==null?void 0:V.data)??[],sx:{flexGrow:1},cardHeight:400})}),t.jsx(j,{size:{xs:12,md:12,lg:6},sx:{display:"flex"},children:a?t.jsx(ht,{}):t.jsx(Vt,{size:"md",rows:(w==null?void 0:w.data)??[],total:w==null?void 0:w.total,sx:{flexGrow:1}})})]}),t.jsxs(j,{container:!0,spacing:2,columns:12,sx:{mb:e=>e.spacing(2)},children:[t.jsx(j,{size:{xs:12,md:12,lg:6},children:a?t.jsx(ht,{}):t.jsx(Wt,{size:jt,rows:(S==null?void 0:S.data)??[],total:S==null?void 0:S.total})}),t.jsx(j,{size:{xs:12,md:6},children:a?t.jsx(s,{variant:"rounded",height:364}):t.jsx(Qt,{})})]})]})})})})}export{qe 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.