1import{j as i,r as a}from"./react-vendor-CU6Sz31W.js";import{R as xI,b as ai,g as ce,e as PI,S as NI,c as bu,d as Iu,T as kI,r as CI,U as Us,J as jI,K as vI,l as ii,j as mo,k as po,x as sy,h as id,a as hu,V as MI,L as EI}from"./formularyVariants-BV7CaEYS.js";import{H as Xu,e as Be,I as Zu,J as xg,K as AI,d as _r,L as Mo,M as oa,b as LI,N as qI,O as BI,Q as VI,f as Su,R as FI,S as ny,T as iy,U as fo,W as ay,X as Hi,Y as yo,C as OI,Z as TI,_ as _I,$ as $I,a0 as KI,a1 as wI,a2 as QI,a3 as DI,a4 as xu,a5 as Yi,a6 as Pu,a7 as oy,G as UI,a8 as zI,a9 as GI,aa as JI,ab as cy,ac as WI,p as HI,V as dy,ad as YI,F as XI,s as ZI,w as Nu,D as ku,q as RI,ae as eh,af as rh,ag as th,ah as sh,r as nh,ai as ih}from"./useViosPatientIdentity-DYOm_6fL.js";import{C as Cu}from"./ChartingCardLoader-CQVKFtie.js";import{dQ as ah,an as oh,ao as ch,gL as oi,i as Ze,a3 as dh,j as G,S as Pd,cd as Nd,a2 as Pg,bN as lm,bO as um,bP as mm,aY as pm,bQ as fm,df as lh,jh as ly,at as uh,L as Je,I as Kt,cf as mh,un as ph,e as ym,fy as kd,uo as Ru,op as Ng,up as kg,N as fh,i7 as pt,kI as yh,kJ as uy,C as xs,al as gh,b as bh,u as Ih,au as hh,be as Sh,bg as ju,t as C,tA as xh,os as Ph,b8 as zr,tz as Nh,R as ae,uq as kh,m_ as Ch,n1 as jh,fe as vh,ur as Mh,us as Eh,as as Ne,ak as my,ut as Ah,uu as Lh,uv as py,cj as xt,uw as fy,ux as yy,gA as qh,ij as Bh,cu as Vh,i3 as Fh,jb as gy,aT as by,uy as Oh,qy as ad,uz as Th,uA as _h,uB as $h,aV as Kh,c7 as od,c8 as cd,c9 as dd,ca as ld,cb as ud,d as vu,dP as Iy,ae as hy,af as Sy,bY as xy,ag as Py,bZ as Ny,b_ as ky,b$ as Cy,c0 as jy,c1 as vy,c2 as Mu,aQ as md,U as wh,az as Qh}from"./index-DEXJEDAi.js";import{g as zs,d as Ss,c as em,q as rm,w as Co,e as tm,f as My}from"./firebase-w6DYUbFN.js";import{u as Dh,e as Uh,f as zh,h as Gh,i as Xi,j as Jh,k as Wh,l as Hh,m as Yh,n as Eu,o as Xh,p as Zh,S as Rh,q as eS,t as rS,P as tS,v as sS}from"./EditQueuedPrescriptionHost-IuEX148R.js";import{a as nS,d as iS,v as aS,b as oS,e as cS,c as dS}from"./chartingWorkflow-C6kNA8aD.js";import{C as lS}from"./combobox-D0C_yDo2.js";import{Q as Cg}from"./quill-editor-D-DS6c39.js";import{T as uS}from"./text-highlight-BFqqfcjs.js";import{c as Ey,n as mS,s as pS}from"./soapUtils-zvO4AHg3.js";import{C as fS}from"./clock-3-31WD3-4z.js";import{n as go}from"./utils-Dz921pUq.js";import{a0 as sm,a1 as yS,a2 as jg,a3 as Au,a4 as gS,a5 as Lu,a6 as Ay,w as bS,a7 as IS,a as qu,a8 as Bu,a9 as Ly,aa as Vu,ab as qy,ac as By,ad as hS,ae as Zi,af as vg,u as Gs,ag as SS,ah as xS,v as PS,ai as NS,aj as kS,ak as Fu,al as Ri,C as Ou,U as Tu,W as _u,E as Vy,D as ea,am as $u,an as CS,ao as jS,V as Fy,ap as vS,Q as Oy,R as MS,I as ES,J as AS,$ as LS,aq as Ty,ar as qS,Y as BS,X as VS,H as FS,Z as _y,l as OS,m as $y,j as TS,as as _S,at as $S,au as Is,T as bo,av as KS,aw as wS,ax as QS,G as Io,_ as ra,ay as Ky,az as wy,aA as DS,F as US,M as zS,aB as GS}from"./formularyRules-DurNzATt.js";import{n as pd,h as JS,i as WS,f as HS}from"./providerOperations-ELdKx_YD.js";import{f as YS}from"./networkLicensurePolicy-Ct3PZM4V.js";import{a as XS,b as Ku,E as ZS}from"./chartingAttestations-B6EQggPo.js";import{m as Qy}from"./patientSelectedProducts-DDm2VD_T.js";import{Q as na,i as jr,Z as wu,_ as Dy,$ as RS,Y as ex,a0 as rx,k as tx,S as sx,P as Uy,D as zy,l as nx,a1 as Gy}from"./formularyMappings-C8mJfsp2.js";import{b as ix,m as ax,r as ox,c as cx,P as fd,d as ho}from"./resolveClientProductToPrescriptionLine-B2vrGarB.js";import{s as dx}from"./chartingActions-CTZzxOeM.js";import{r as lx,l as ux,P as mx}from"./PurchasedProductTile-Br2c_ZbP.js";import{g as px}from"./prescriptionStatusMeta-BUeievc2.js";import{g as fx}from"./scheduledPrescriptionSend-B48kL9DF.js";import{P as yx,e as gx}from"./PrescriptionErrorTooltip-pt2YDS_z.js";import{h as bx,a as Ix}from"./patientPrescriptionDisplay-C-KtuAmp.js";import{P as hx}from"./pencil-CpqYHolO.js";import{u as Sx}from"./useFormularyVisibility-DLbkVZJM.js";import{b as Qu}from"./patientAddress-D6GhuKXS.js";import{u as xx}from"./providerLicenseDocument-CEC9wNR3.js";import"./prescriptionPatientDetails-CTqUfNLV.js";import"./package-check-BNvVCLtI.js";import"./formReviewWorkflowSettings-BffZ3dCL.js";import"./clientWorkflowSettingsCache-Bq3pRC3F.js";import"./patientProfileImagePresentation-2S0zk7yR.js";import"./user-round-c4EWOTq5.js";import"./useFormularySendTiming-PW-jkqj4.js";import"./formularySendSchedules-hEX-RQcj.js";import"./minus-Du80G9MU.js";import"./modal-form-CqN5DZuv.js";import"./UnsavedGuard-CHqsTdlf.js";import"./use-unsaved-changes-B6nL5Xdd.js";import"./shield-alert-DjOj07_r.js";import"./useClientsById-BI_N6qCU.js";import"./usePatientTypesenseSearch-245dVN16.js";import"./payment-icons-Daq1K3F1.js";import"./alert-WsBxL0qd.js";import"./ProductNotesClinicalDisclaimerCard-Ceq9b46A.js";import"./providerAssignments-C7MWOvAk.js";import"./editor-D8UbQKN1.js";import"./markdownToEditorHtml-CEcC5rdd.js";import"./send-horizontal-D2BzseLj.js";import"./useTemplateVariableInsertion-DRs-_PWy.js";import"./prescriptionMessageTemplateVariables-AMxKc8BX.js";import"./ellipsis-tooltip-CfKm8VFV.js";import"./audio-lines-GJL3_Ka2.js";import"./square-D7DkS8S2.js";import"./link-2-a8lhpkQ6.js";import"./code-BEcI87AG.js";import"./strikethrough-CiKozLGy.js";import"./underline-B_XtWKJP.js";import"./list-ordered-GNrnoOhB.js";import"./productSupplyUnit-CNM1yKaW.js";import"./patientStatusPresentation-E5PKaeUS.js";async function Jy(s,{pharmacies:o=[],...u}){const f=[];for(let k=0;k<o.length;k+=25)f.push(o.slice(k,k+25));return{pharmacies:(await Promise.all(f.map(k=>s({...u,pharmacies:k})))).flatMap(k=>(k==null?void 0:k.pharmacies)||[])}}async function Px({db:s,requests:o,prefills:u=[],clientId:f,providerNetworkId:b,getOverrideKey:k,normalizeVariant:I,readDocument:F=async Y=>{const h=await zs(Ss(s,...Y));return h.exists()?{id:h.id,...h.data()}:null},readMedicationOverrides:_=async(Y,h)=>(await em(rm(tm(s,...Y),Co("medicationId","==",h)))).docs.map(P=>({id:P.id,...P.data()}))}){const Y={clientOverrides:{},networkOverrides:{},variants:{}},h=new Map,oe=(P,se)=>{h.has(P)||h.set(P,se())};for(const[P,se,ue]of[["Clients",f,Y.clientOverrides],["ProviderNetworks",b,Y.networkOverrides]])if(se)for(const{item:m,pharmacy:Pe}of o)for(const Le of m.medicationIds){const Re=[P,se,"FormularyMedicationOverrides"],we=k(Pe,Le,se);oe(`${Re.join("/")}/${we}`,async()=>{const Pt=await F([...Re,we]);Pt&&(ue[Pt.id]=Pt)}),oe(`${Re.join("/")}?${Le}`,async()=>
1{(await _(Re,Le)).forEach(Js=>{ue[Js.id]=Js})})}for(const P of u.filter(Boolean)){const se=P.formularyVariantId||P.variantId;if(!se)continue;const ue=xI(se);ue&&ue.networkId!==b||!ue&&(!f||se.startsWith("network:"))||oe(`variant:${se}`,async()=>{const m=await F([ue?"ProviderNetworks":"Clients",(ue==null?void 0:ue.networkId)||f,"FormularyMedicationVariants",(ue==null?void 0:ue.variantId)||se]);m&&m.active!==!1&&m.medicationId===P.medicationId&&(!ue||m.pharmacyId===P.pharmacyId)&&(Y.variants[se]=I({...m,...ue?{ownerScope:"providerNetwork",ownerId:ue.networkId}:{}},se))})}return await Promise.all(h.values()),Y}function Wy({line:s={},pharmacies:o=[],contextReady:u=!1,requestedPrescriptionIds:f=null,preservedLineIds:b=null}={}){return!u||s.mode==="manual"||s.status==="submitted"||s.prescriptionPrefillSnapshot||!s.pharmacyOptionId||s.prescriptionId&&(f!=null&&f.has(s.prescriptionId))||s.id&&(b!=null&&b.has(s.id))?!1:!o.some(k=>k.id===s.pharmacyOptionId)}function Nx({line:s={},pharmacies:o=[],contextReady:u=!1}={}){return!u||s.mode==="manual"||s.status==="submitted"||!s.pharmacyOptionId?!1:!o.some(f=>f.id===s.pharmacyOptionId)}const Gr=s=>String(s??"").trim();function kx(s){const o=s.formularySelection,u=o==null?void 0:o.medication,f=o==null?void 0:o.pharmacy;if(!u||typeof u!="object"||!Gr(f==null?void 0:f.id))return null;const b=o.resolved||{},k=Xu(u)||s.medication;return{pharmacyOptionId:f.id,pharmacyId:Gr(f.pharmacyId),externalPharmacyId:Gr(f.pharmacyId),pharmacyName:Gr(f.name)||s.pharmacyName||"",pharmacyIntegrationId:Gr(f.integrationId),pharmacyIntegrationScopeType:Gr(f.integrationScopeType),pharmacyIntegrationScopeId:Gr(f.integrationScopeId),pharmacyIntegrationName:Gr(f.integrationName),pharmacySource:Gr(f.source),pharmacyProductId:s.medicationId,pharmacyProductName:k,medicationName:k,dosage:Gr(u.dosage||u.description),ndc:Gr(u.ndc),csn:Gr(u.csn),formularyVariantId:s.formularyVariantId||s.variantId||"",instructions:Gr(b.instructions),formularyDirectionId:s.formularyDirectionId||"",formularyDirectionSnapshot:s.formularyDirectionSnapshot||null,quantity:b.quantity??"",units:Gr(b.units)||Gr(u.units)||"each",daysSupply:b.daysSupply??"",refills:b.refills??""}}function Du(s,o){var I;if((o==null?void 0:o.verified)===!1||!(o!=null&&o.medicationId)||!(o!=null&&o.medication)||s.pharmacyProductId||s.instructions||s.mode==="manual"||s.customFormularyId)return s;const u=((I=o.prescribingDefaults)==null?void 0:I.source)==="llm"?o.prescribingDefaults:{},f=Object.fromEntries(["instructions","quantity","units","daysSupply","refills"].filter(F=>u[F]!==void 0).map(F=>[F,u[F]])),b=kx(o),k=b||{pharmacyOptionId:o.pharmacyOptionId||o.pharmacyId||"",pharmacyId:o.pharmacyId||"",externalPharmacyId:o.pharmacyId||"",pharmacyName:o.pharmacyName||"",pharmacyProductId:o.medicationId,pharmacyProductName:o.medication,medicationName:o.medication,formularyVariantId:o.formularyVariantId||o.variantId||"",instructions:o.dosage||"",formularyDirectionId:o.formularyDirectionId||"",formularyDirectionSnapshot:o.formularyDirectionSnapshot||null,quantity:"",daysSupply:"",refills:"",...f,...o.formularyDirectionSnapshot?{instructions:o.formularyDirectionSnapshot.text}:{}};return{...s,...k,prefillRunId:o.prefillRunId||null,prescriptionPrefillSnapshot:{...k,dosage:k.dosage??s.dosage,units:k.units??s.units,explicitFields:b?["instructions","quantity","units","daysSupply","refills"].filter(F=>k[F]!==""&&k[F]!=null):Object.keys(f),additionalNotes:s.additionalNotes,daw:s.daw}}}function Cx(s,o){var b;const u=s.prescriptionPrefillSnapshot;if(!u)return{...s,...o};const f={...s,...o,prescriptionPrefillSnapshot:null};for(const k of["instructions","dosage","quantity","daysSupply","refills","units","additionalNotes","daw"])(k==="instructions"&&s.formularyDirectionSnapshot||s[k]!==u[k]||(b=u.explicitFields)!=null&&b.includes(k))&&(f[k]=s[k]);return f}function Hy(s,o){if(!s||!o||s.prescriptionId||s.status&&s.status!=="draft"||["medicationName","pharmacyProductId","customFormularyId","dosage","instructions"].some(F=>String(s[F]||"").trim()))return s;const u={},f=o.prescriptionFillQuantity,b=o.prescriptionRefills;f!=null&&f!==""&&Number.isFinite(Number(f))&&Number(f)>0&&(s.quantity==null||s.quantity===1)&&(u.quantity=Number(f)),b!=null&&b!==""&&Number.isInteger(Number(b))&&Number(b)>=0&&(s.refills==null||s.refills===0)&&(u.refills=Number(b));const k=o.prescriptionDaysSupply;k!=null&&k!==""&&Number.isInteger(Number(k))&&Number(k)>0&&(s.daysSupply==null||s.daysSupply===""||Number(s.daysSupply)===30)&&(u.daysSupply=Number(k));const I=typeof o.prescriptionDirections=="string"?o.prescriptionDirections.trim():"";return I&&(u.instructions=I),Object.keys(u).some(F=>u[F]!==s[F])?{...s,...u}:s}function vn(s,o="Not set"){return(s==null?"":String(s).trim())||o}function jx(s={}){const o=vn(s.quantity,"Not set"),u=vn(s.units,"").toLowerCase();
1return[o,u].filter(Boolean).join(" ")}function vx(s){const o=Number(s);return Number.isFinite(o)?String(Math.max(0,o)):"0"}function Mx(s={}){return vn(s.medicationName||s.pharmacyProductName||s.pharmacyProductLabel||s.associatedProductLabel,"Medication not selected")}function Ex(s={}){return vn(s.pharmacyName||s.pharmacyLabel,s.mode==="manual"?"Manual pharmacy":"Pharmacy not selected")}function Mg({title:s,entry:o,bundleSharedContent:u=null}){var F,_;if((F=o.bundleComponents)!=null&&F.length){const Y=Number((_=String(s).match(/\d+/))==null?void 0:_[0])||1;return i.jsxs("fieldset",{className:"min-w-0 space-y-3 rounded-xl border border-border p-3",children:[i.jsx("legend",{className:"px-2 text-sm font-medium text-foreground",children:"Bundle Selected"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:o.bundleMedicationName}),o.bundleComponents.map((h,oe)=>i.jsx(Mg,{title:`Prescription ${Y+oe}`,entry:{...o,...h,bundleComponents:[]}},h.id)),u?i.jsx("div",{className:"space-y-3 border-t border-border pt-3",children:u}):null]})}const f=Mx(o),b=Ex(o),k=vn(o.instructions,"Directions not set"),I=Array.isArray(o.suppliesDetails)?o.suppliesDetails:[];return i.jsxs("div",{className:"space-y-3","data-testid":G("section","charting","fulfillment-summary-card"),children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(oi,{className:"size-3.5 shrink-0 text-content-secondary"}),i.jsx("h4",{className:"break-words text-sm font-semibold text-foreground",children:s})]}),i.jsxs("div",{className:"mt-2 space-y-2",children:[i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Medication"}),i.jsx("p",{className:"mt-0.5 text-sm font-medium leading-snug text-content-primary max-lg:text-xs",children:f})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Pharmacy"}),i.jsx("p",{className:"mt-0.5 text-sm font-medium leading-snug text-content-primary max-lg:text-xs",children:b})]})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Quantity"}),i.jsx("p",{className:"mt-0.5 text-xs font-medium text-content-primary",children:jx(o)})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Days supply"}),i.jsxs("p",{className:"mt-0.5 text-xs font-medium text-content-primary",children:[vn(o.daysSupply,"â")," days"]})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Refills"}),i.jsx("p",{className:"mt-0.5 text-xs font-medium text-content-primary",children:vx(o.refills)})]})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Directions"}),i.jsx("p",{className:"mt-0.5 whitespace-pre-wrap break-words text-sm leading-relaxed text-foreground",children:k})]}),o.clinicalDifferenceStatement?i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Clinical difference statement"}),i.jsx("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm text-foreground",children:o.clinicalDifferenceStatement})]}):null,o.additionalNotes?i.jsxs("div",{children:[i.jsx("p",{className:"text-xs text-muted-foreground",children:"Pharmacy notes / justification"}),i.jsx("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm text-foreground",children:o.additionalNotes})]}):null,I.length>0?i.jsx("div",{className:"flex flex-wrap gap-1.5",children:I.map((Y,h)=>i.jsxs("span",{className:"inline-flex items-center rounded-full border border-subtle bg-surface-raised px-2 py-0.5 text-3xs font-medium text-content-secondary",children:[vn(Y.description,"Supply")," à ",vn(Y.quantity,"1")]},`${Y.description||"supply"}-${h}`))}):null]})]})}function Yy({label:s,children:o}){return s?a.cloneElement(o,{title:s,"aria-description":s}):o}function Ax({fulfillmentPrescriptions:s=[],readOnly:o=!1,formularyOptions:u=[],formularyLoading:f=!1,pharmacies:b=[],pharmacyProductsById:k={},getPreferredProductIdsForPharmacy:I=()=>new Set,getPharmacyLabel:F,getProductLabel:_,isInjectableProduct:Y=()=>!1,isSupplyDrug:h=()=>!1,getSupplyDirections:oe=()=>"",getBaseDaysSupply:P=null,onAddLine:se,onRemoveLine:ue,allowRemoveLastLine:m=!1,onUpdateLine:Pe,onSelectFormularyOption:Le,onSelectPharmacy:Re,onSelectProduct:we,showPrimaryAction:Pt=!1,primaryActionDisabled:Js=!1,primaryActionLoading:Ns=!1,primaryActionSavingLabel:Ws="Prescribingâ¦",primaryActionLabel:ks="Prescribe",primaryActionTestId:Cs,primaryActionTooltip:js=null,headerContent:tt=null,sharedPrescriptionContent:Qt=null,afterPrescriptionsContent:er=null,accentColor:ve="#2563eb",onPrimaryAction:vs,getComplianceContent:Nt,providerDea:ci="",providerDeaResolved:Mn=!0,onApplyDeaLicense:j=null,onDeaApplied:En=null,getLineTitle:Mr=null,sectionDescription:kt=null,getLineDisclaimer:ne=null,getMedicationAction:w=null,getMedicationInvalid:Er=null,getMedicationNotice:An=null,getFormularyOptions:Hs=null,getMedicationSearch:ar=null,getShowMedicationSelector:da=null,getDirectionsAction:Ms=null,reviewMode:Ys=!1,reviewDescription:gr=null,reviewActionLabel:Ln=null,reviewSavingLabel:S="Submittingâ¦",reviewSecondaryActionLabel:de=null,onReviewConfirm:Xs=null,onReviewSecondaryConfirm:la=null,onReviewBack:qn=null,reviewActionDisabled:Zs=!1,dispatchChoiceHint:Dt=null,prefilledMedicationId:Es="",prefilledMedicationName:Cd="",prefilledPharmacyOptionId:ua="",prefilledPharmacyId:jd=""}){const Bn=s.findIndex(X=>{var v;return!!(X!=null&&X.bundleMedicationId)||((v=X==null?void 0:X.bundleComponents)==null?void 0:v.length)>0}),Eo=Ys&&gr?gr:kt,K=ah()?{}:{initial:{opacity:0}
1,animate:{opacity:1},exit:{opacity:0},transition:{duration:.2,ease:[.22,1,.36,1]}};return i.jsxs("div",{className:"charting-rx-section","data-review":Ys?"true":"false","data-testid":G("section","charting","fulfillment-prescriptions"),children:[Ys?i.jsx("h2",{className:"font-display text-base font-semibold text-foreground",children:"Review prescriptions"}):null,Eo?i.jsx("p",{className:"text-xs text-muted-foreground",children:Eo}):null,i.jsx(oh,{mode:"wait",initial:!1,children:i.jsxs(ch.div,{className:"space-y-3 max-lg:space-y-2",...K,children:[tt,Bn<0?Qt:null,i.jsx("div",{className:"space-y-3 max-lg:space-y-2",children:s.length===0?i.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-subtle bg-surface-sunken px-4 py-6 text-center max-lg:gap-2 max-lg:px-2.5 max-lg:py-3.5",children:[i.jsx("div",{className:"rounded-full bg-surface-raised p-2 text-content-tertiary shadow-sm max-lg:p-1.5",children:i.jsx(oi,{className:"size-4"})}),i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"Add a prescription line to fulfill this visit."})]},"empty"):s.map((X,v)=>{var di;const cr=Be(X),Ar=(di=cr.linkedProtocolName)==null?void 0:di.trim(),Vn=o||cr.status==="submitted",Rs=(Mr==null?void 0:Mr(cr,v))||`Prescription ${Zu(s,v)}`;if(Ys)return i.jsxs("div",{className:Ar?"charting-rx-line space-y-2":"charting-rx-line",children:[Ar?i.jsxs("p",{className:"text-xs font-medium text-violet-700 dark:text-violet-300 max-lg:text-2xs",children:["Protocol: ",Ar]}):null,i.jsx(Mg,{title:Rs,entry:cr,bundleSharedContent:v===Bn?Qt:null})]},X.id);const ma=(Hs==null?void 0:Hs(X,v))??u,Ut=ne==null?void 0:ne(X,v),Ao=w==null?void 0:w(X,v),Fn=(da==null?void 0:da(X,v))??!0,en=(Ms==null?void 0:Ms(X,v))||null;return i.jsxs("div",{className:"charting-rx-line t-resize space-y-2",children:[Ar?i.jsxs("p",{className:"text-xs font-medium text-violet-700 dark:text-violet-300 max-lg:text-2xs",children:["Protocol: ",Ar]}):null,Ut?i.jsx("div",{className:"space-y-2",children:Ut}):null,i.jsx(xg,{title:Rs,layout:"compact",formularyOptions:ma,formularyLoading:f,medicationSearch:(ar==null?void 0:ar(X,v))||null,medicationAction:Ao,medicationInvalid:(Er==null?void 0:Er(X,v))===!0,medicationNotice:(An==null?void 0:An(X,v))||null,showMedicationSelector:Fn,prescription:X,onChange:br=>Pe(X.id,br),onRemove:()=>ue(X.id),onSelectFormularyOption:br=>Le==null?void 0:Le(X.id,br),removable:(s.length>1||m)&&cr.status!=="submitted",readOnly:Vn,pharmacies:b,pharmacyProductsById:k,getPreferredProductIds:I,getPharmacyLabel:F,getProductLabel:_,isInjectableProduct:Y,showSupplies:!0,buildSupplyOptions:br=>{const dr=(br==null?void 0:br.id)||X.pharmacyOptionId||X.pharmacyId||"";return(k[dr]||[]).filter(st=>h(st))},getSupplyDirections:oe,getBaseDaysSupply:P,complianceContent:Nt==null?void 0:Nt(X,v),bundleSharedContent:v===Bn?Qt:null,roundSupplyQuantity:br=>{const dr=Number(br);return!Number.isFinite(dr)||dr<=0?"10":String(Math.max(10,Math.round(dr/10)*10))},onSelectPharmacy:br=>Re(X.id,br),onSelectProduct:br=>we(X.id,br),providerDea:ci,providerDeaResolved:Mn,canEditDea:!!j&&!Vn,onApplyDeaLicense:j,onDeaApplied:En,accentColor:ve,prefilledMedicationId:v===0?Es:"",prefilledMedicationName:v===0?Cd:"",prefilledPharmacyOptionId:v===0?ua:"",prefilledPharmacyId:v===0?jd:"",autoSelectPrefill:!1,directionsAction:en?{label:en.label,onClick:()=>Pe(X.id,{instructions:en.directions})}:null})]},X.id)})}),er,i.jsx("div",{className:"charting-rx-actions",children:Ys?i.jsxs("div",{className:"space-y-2",children:[Dt?i.jsx("p",{className:"text-xs text-content-tertiary max-lg:text-2xs",children:Dt}):null,i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[qn?i.jsxs(Ze,{type:"button",variant:"outline",onClick:qn,disabled:Ns,className:"h-10 w-full rounded-full border-subtle sm:w-auto max-lg:h-9","data-testid":G("button","charting","edit-prescription-review"),children:[i.jsx(dh,{className:"mr-1 size-3.5"}),"Back"]}):i.jsx("span",{}),i.jsx("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center",children:de&&la?i.jsx(AI,{submitMenuLabel:Ln||ks,label:Ln||ks,loadingLabel:S,loading:Ns,disabled:Zs,onSubmit:Xs,onSaveForLater:la,saveMenuLabel:de,accentColor:ve,testIdScope:"charting",submitTestId:Cs}):i.jsx(Yy,{label:js,children:i.jsx(Ze,{type:"button",onClick:Xs,disabled:Zs||Ns,className:"h-10 w-full rounded-full text-white sm:w-auto max-lg:h-9",style:{backgroundColor:ve},"data-testid":Cs,children:Ns?i.jsxs(i.Fragment,{children:[i.jsx(Pd,{size:"md",className:"mr-2"}),S]}):i.jsxs(i.Fragment,{children:[i.jsx(oi,{className:"mr-2 size-4"}),Ln||ks]})})})})]})]}):!o||Pt?i.jsxs("div",{className:"grid grid-cols-2 gap-2 max-lg:gap-1.5",children:[o?i.jsx("span",{}):i.jsxs(Ze,{type:"button",variant:"outline",onClick:se,className:"h-10 rounded-full border-default bg-surface-raised text-slate-700 hover:bg-slate-50 dark:bg-slate-900/30 dark:text-slate-200 dark:hover:bg-slate-800/50 max-lg:h-9","data-testid":G("button","charting","add-fulfillment-line"),children:[i.jsx(Nd,{className:"mr-2 size-4"}),"Add another"]}),Pt?i.jsx(Yy,{label:js,children:i.jsx(Ze,{type:"button",onClick:vs,disabled:Js,className:"h-10 rounded-full text-white max-lg:h-9",style:{backgroundColor:ve},"data-testid":Cs,children:Ns?i.jsxs(i.Fragment,{children:[i.jsx(Pd,{size:"md",className:"mr-2"}),Ws]}):i.jsxs(i.Fragment,{children:[i.jsx(oi,{className:"mr-2 size-4"}),ks]})})}):null]}):null})]},Ys?"review":"edit")})]})}const Lx=[{icon:oi,label:"You write the prescription"},{icon:Pg,label:"Patient reviews add-ons"},{icon:lh,label:"Patient pays for accepted items"},{icon:fS,label:"Pharmacy receives Rx automatically"}];function qx(){return i.jsx(lm,{delayDuration:150,children:i.jsxs(um,{children:[i.jsx(mm,{asChild:!0,children:i.jsx("button",{type:"button",className:"inline-flex size-6 shrink-0 items-center justify-center rounded-full text-content-tertiary transition hover:bg-slate-100 hover:text-slate-900 focus:outline-none focus:ring-2 focus:ring-slate-300 dark:hover:bg-slate-800 dark:hover:text-slate-100 dar
1k:focus:ring-slate-600","aria-label":"What happens next","data-testid":G("button","charting","add-ons-what-happens-next"),children:i.jsx(pm,{className:"size-4","aria-hidden":"true"})})}),i.jsxs(fm,{side:"top",align:"start",className:"max-w-xs",children:[i.jsx("p",{className:"text-2xs font-semibold uppercase tracking-wide",children:"What happens next"}),i.jsx("ol",{className:"mt-1.5 space-y-1.5",children:Lx.map(({icon:s,label:o})=>i.jsxs("li",{className:"flex items-start gap-1.5 text-xs",children:[i.jsx(s,{className:"mt-0.5 size-3.5 shrink-0","aria-hidden":"true"}),i.jsx("span",{className:"leading-4",children:o})]},o))})]})]})})}function Bx(s=""){const o=String(s||"").trim().toLowerCase();return o==="pending_patient_decision"?{label:"Awaiting patient review",tone:"pending"}:o==="pending_payment"?{label:"Awaiting patient payment",tone:"pending"}:o==="approved"?{label:"Paid â sending to pharmacy",tone:"active"}:o==="cancelled"?{label:"Cancelled",tone:"inactive"}:null}function Vx(s){const o=Number(s);return!Number.isFinite(o)||o<=0?null:new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}
1).format(o/100)}function Fx({addOnPrescriptions:s=[],addOnRequestStatus:o="",addOnRequestOrderId:u="",readOnly:f=!1,accentColor:b,formularyOptions:k=[],formularyLoading:I=!1,pharmacies:F=[],pharmacyProductsById:_={},getPreferredProductIdsForPharmacy:Y=()=>new Set,getPharmacyLabel:h,getProductLabel:oe,isInjectableProduct:P=()=>!1,isSupplyDrug:se=()=>!1,getSupplyDirections:ue=()=>"",getBaseDaysSupply:m=null,onAddLine:Pe,onRemoveLine:Le,onUpdateLine:Re,onSelectFormularyOption:we,onSelectPharmacy:Pt,onSelectProduct:Js,onSave:Ns,saveDisabled:Ws=!1,saving:ks=!1,providerDea:Cs="",providerDeaResolved:js=!0,onApplyDeaLicense:tt=null,onDeaApplied:Qt=null}){const er=Bx(o),ve=!!(u&&er),vs=!f&&!ve,[Nt,ci]=a.useState(()=>s.length>0||ve);a.useEffect(()=>{(s.length>0||ve)&&ci(!0)},[s.length,ve]);const Mn=()=>{ci(!0),vs&&s.length===0&&(Pe==null||Pe())};return i.jsxs("div",{"data-testid":G("section","charting","add-ons"),children:[Nt?i.jsx("div",{className:"w-full rounded-lg bg-surface-raised text-left",children:i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex items-center gap-1.5",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Prescription add-ons"}),i.jsx(qx,{})]}),i.jsx("p",{className:"max-w-2xl text-xs leading-5 text-content-secondary max-lg:text-2xs max-lg:leading-4",children:"Write additional prescriptions for this visit. Each add-on is submitted for the patient to review, accept, and pay before it is sent to the pharmacy."})]}),er?i.jsx("span",{className:er.tone==="active"?"rounded-full border border-emerald-300 bg-emerald-50 px-2.5 py-1 text-2xs font-medium text-emerald-800 dark:border-emerald-800 dark:bg-emerald-950/40 dark:text-emerald-100":er.tone==="inactive"?"rounded-full border border-subtle bg-slate-100 px-2.5 py-1 text-2xs font-medium text-content-secondary dark:bg-slate-900/50":"rounded-full border border-amber-300 bg-amber-50 px-2.5 py-1 text-2xs font-medium text-amber-900 dark:border-amber-800 dark:bg-amber-950/40 dark:text-amber-100",children:er.label}):null]})}):i.jsx("button",{type:"button",onClick:Mn,"aria-expanded":Nt,className:"flex min-h-[132px] w-full items-center justify-center rounded-lg bg-surface-raised px-4 text-center transition-colors duration-300 hover:bg-slate-50 dark:bg-slate-800/50 dark:hover:bg-slate-800 max-lg:min-h-[88px] max-lg:px-2.5","data-testid":G("button","charting","expand-add-ons"),children:i.jsxs("div",{className:"max-w-2xl space-y-2 text-center transition duration-300",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Prescription add-ons"}),i.jsx("p",{className:"max-w-2xl text-xs leading-5 text-content-secondary max-lg:text-2xs max-lg:leading-4",children:"Write additional prescriptions for this visit. Each add-on is submitted for the patient to review, accept, and pay before it is sent to the pharmacy."})]})}),Nt?i.jsxs("div",{className:"mt-4 space-y-3 max-lg:mt-2.5 max-lg:space-y-2",children:[s.length===0?i.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-subtle bg-surface-sunken px-4 py-6 text-center max-lg:gap-2 max-lg:px-2.5 max-lg:py-3.5",children:[i.jsx("div",{className:"rounded-full bg-surface-raised p-2 text-content-tertiary shadow-sm max-lg:p-1.5",children:i.jsx(oi,{className:"size-4"})}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-slate-800 dark:text-slate-100 max-lg:text-xs",children:"No add-on prescriptions yet"}),i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"Select a medication, complete the Rx details, then submit the add-ons for patient payment."})]})]}):s.map((j,En)=>{var ne;const Mr=Vx(j.priceCents??j.amountCents),kt=(ne=j.medicationName)!=null&&ne.trim()?`Add-on ${En+1}: ${j.medicationName}`:`Add-on ${En+1}`;return i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2 px-0.5",children:[i.jsx("p",{className:"text-2xs font-semibold uppercase tracking-wide text-content-tertiary",children:"Submitted prescription"}),Mr?i.jsxs("span",{className:"text-xs font-medium text-slate-700 dark:text-slate-200",children:["Patient price ",Mr]}):null]}),i.jsx(xg,{title:kt,layout:"compact",formularyOptions:k,formularyLoading:I,prescription:j,onChange:w=>Re(j.id,w),onRemove:()=>Le(j.id),onSelectFormularyOption:w=>we==null?void 0:we(j.id,w),removable:vs,readOnly:f||ve,pharmacies:F,pharmacyProductsById:_,getPreferredProductIds:Y,getPharmacyLabel:h,getProductLabel:oe,isInjectableProduct:P,showSupplies:!0,buildSupplyOptions:w=>{const Er=(w==null?void 0:w.id)||j.pharmacyOptionId||j.pharmacyId||"";return(_[Er]||[]).filter(Hs=>se(Hs))},getSupplyDirections:ue,getBaseDaysSupply:m,roundSupplyQuantity:w=>{const Er=Number(w);return!Number.isFinite(Er)||Er<=0?"10":String(Math.max(10,Math.round(Er/10)*10))},onSelectPharmacy:w=>Pt(j.id,w),onSelectProduct:w=>Js(j.id,w),providerDea:Cs,providerDeaResolved:js,canEditDea:!!tt&&!(f||ve),onApplyDeaLicense:tt,onDeaApplied:Qt,accentColor:b})]},j.id)}),vs?i.jsxs("div",{className:"grid grid-cols-2 gap-2 max-lg:gap-1.5",children:[i.jsxs(Ze,{type:"button",variant:"outline",onClick:Pe,className:"h-10 rounded-full border-default bg-surface-raised text-slate-700 hover:bg-slate-50 dark:bg-slate-900/30 dark:text-slate-200 dark:hover:bg-slate-800/50 max-lg:h-9","data-testid":G("button","charting","add-add-on"),children:[i.jsx(Nd,{className:"mr-2 size-4"}),"Add another"]}),i.jsx(Ze,{type:"button",onClick:Ns,disabled:Ws||ks,className:"h-10 rounded-full text-white max-lg:h-9",style:{backgroundColor:b},"data-testid":G("button","charting","save-add-ons"),children:ks?i.jsxs(i.Fragment,{children:[i.jsx(Pd,{size:"md",className:"mr-2"}),"Sending add-ons to patient..."]}):i.jsxs(i.Fragment,{children:[i.jsx(Pg,{className:"mr-2 size-4"}),"Send to patient for payment"]})})]}):ve?i.jsx("p",{className:"rounded-lg border border-subtle bg-surface-raised px-3 py-2 text-xs text-content-secondary max-lg:px-2 max-lg:text-2xs",children:"These add-ons have already been submitted. The patient must review and pay before pharmacy submission."}):null]}):null]})}function Ox({recommendations:s=[],readOnly:o=!1,accentColor:u,onAddLine:f,onRemoveLine:b,onUpdateLine:k,onSave:I,saveDisabled:F=!1}){const[_,Y]=a.useState(()=>s.length>0);a.useEffect(()=>{s.length>0&&Y(!0)},[s.length]);function h(){Y(!0),!o&&s.length===0&&(f==null||f())}return i.jsxs("div",{"data-testid":G("section","charting","recommendations"),children:[_?i.jsx("div",{className:"w-full rounded-lg bg-surface-raised text-left",children:i.jsxs("div",{className:"space-y-1",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Recommendations"}),i.jsx("p",{className:"max-w-2xl text-xs leading-5 text-content-secondary max-lg:text-2xs max-lg:leading-4",children:"Add informational recommendations with a title and rich description for the patient record."})]})}):i.jsx("button",{type:"button",onClick:h,"aria-expanded":_,className:"flex min-h-[132px] w-full items-center justify-center rounded-lg bg-surface-raised px-4 text-center transition-colors duration-300 hover:bg-slate-50 dark:bg-slate-800/50 dark:hover:bg-slate-800 max-lg:min-h-[88px] max-lg:px-2.5","data-testid":G("button","charting","expand-recommendations"),children:i.jsxs("div",{className:"max-w-2xl space-y-2 text-center transition duration-300",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Recommendations"}),i.jsx("p",{className:"max-w-2xl text-xs leading-5 text-content-secondary max-lg:text-2xs max-lg:leading-4",children:"Add informational recommendations with a title and rich description for the patient record."})]})}),_?i.jsxs("div",{className:"mt-4 space-y-3 max-lg:mt-2.5 max-lg:space-y-2",children:[s.length===0?i.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-subtle bg-surface-sunken px-4 py-6 text-center max-lg:gap-2 max-lg:px-2.5 max-lg:py-3.5",children:[i.jsx("div",{className:"rounded-full bg-surface-raised p-2 text-content-tertiary shadow-sm max-lg:p-1.5",children:i.jsx(ly,{className:"size-4"})}),i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"Add a recommendation for this encounter."})]}):s.map((oe,P)=>
1i.jsxs("div",{className:"rounded-lg bg-slate-100 p-2 dark:bg-slate-900/50 max-lg:p-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(ly,{className:"size-3.5 shrink-0 text-content-secondary"}),i.jsxs("h4",{className:"truncate text-xs font-semibold text-slate-950 dark:text-slate-100",children:["Recommendation ",P+1]})]}),o?null:i.jsx(Ze,{type:"button",variant:"ghost",size:"icon",onClick:()=>b(oe.id),disabled:o,className:"size-7","aria-label":`Remove recommendation ${P+1}`,"data-testid":G("button","charting","remove-recommendation"),children:i.jsx(uh,{className:"size-4"})})]}),i.jsxs("div",{className:"mt-2 space-y-2",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Je,{className:"text-3xs font-medium uppercase text-content-tertiary",children:"Title"}),i.jsx(Kt,{value:oe.title||"",onChange:se=>k(oe.id,{title:se.target.value}),disabled:o,placeholder:"Recommendation title",className:"h-8 bg-surface-raised text-sm","aria-label":`Recommendation ${P+1} title`,"data-testid":G("input","charting","recommendation-title")})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx(Je,{className:"text-3xs font-medium uppercase text-content-tertiary",children:"Description"}),i.jsx(Cg,{value:oe.descriptionHtml||"",onChange:o?void 0:se=>k(oe.id,{descriptionHtml:se}),placeholder:"Write a recommendationâ¦",readOnly:o,className:"[&_.ql-editor]:min-h-[9rem] [&_.ql-container]:rounded-md [&_.ql-container]:border [&_.ql-container]:border-slate-300 [&_.ql-container]:bg-white dark:[&_.ql-container]:border-slate-700 dark:[&_.ql-container]:bg-slate-950"})]})]})]},oe.id)),o?null:i.jsxs("div",{className:"grid grid-cols-2 gap-2 max-lg:gap-1.5",children:[i.jsxs(Ze,{type:"button",variant:"outline",onClick:f,className:"h-10 rounded-full border-default bg-surface-raised text-slate-700 hover:bg-slate-50 dark:bg-slate-900/30 dark:text-slate-200 dark:hover:bg-slate-800/50 max-lg:h-9","data-testid":G("button","charting","add-recommendation"),children:[i.jsx(Nd,{className:"mr-2 size-4"}),"Add another"]}),i.jsx(Ze,{type:"button",onClick:I,disabled:F,className:"h-10 rounded-full text-white max-lg:h-9",style:{backgroundColor:u},"data-testid":G("button","charting","save-recommendations"),children:"Save recommendations"})]})]}):null]})}function yr(s){return s==null?"":String(s).trim()}function So(s){return yr(s).replace(/\s+/g," ")}function Tx(s={}){return[yr(s.clientProductId),yr(s.productId),yr(s.rank)].join(":")}function gm(s){return(Array.isArray(s)?s:[]).filter(o=>o&&typeof o=="object").map((o,u)=>{const f=o.recommendation&&typeof o.recommendation=="object"?{...o.recommendation,medicationId:yr(o.recommendation.medicationId),pharmacyId:yr(o.recommendation.pharmacyId),pharmacyOptionId:yr(o.recommendation.pharmacyOptionId),medication:So(o.recommendation.medication),rationale:So(o.recommendation.rationale)}:null;return{key:Tx({...o,rank:o.rank??u+1}),rank:Number(o.rank)||u+1,productId:yr(o.productId),clientProductId:yr(o.clientProductId),productName:So(o.productName||o.sourceProductName),sourceProductName:So(o.sourceProductName||o.productName),recommendation:f,hasPick:!!(f!=null&&f.medicationId),rationale:So((f==null?void 0:f.rationale)||o.notes)}})}function Eg(s={}){return!yr(s.clientProductId)&&!yr(s.advertisedClientProductId)&&!yr(s.linkedClientProductId)&&!yr(s.pharmacyProductId)&&!yr(s.customFormularyId)&&!yr(s.productResolutionKind)&&(s.mode!=="manual"||!yr(s.medicationName))}function _x({items:s=[],lines:o=[],prescribeByProductEnabled:u=!1}={}){const f=gm(s);if(f.length<2)return null;const b=Array.isArray(o)?o:[];if(!b.every(Eg))return null;const k={},I={};return{lines:f.map((_,Y)=>{var se;const h=b[Y]||_r({mode:((se=b[0])==null?void 0:se.mode)==="manual"?"manual":"associated"}),oe=u&&_.clientProductId?{clientProductId:_.clientProductId,advertisedClientProductId:_.clientProductId,advertisedProductId:_.productId,advertisedProductName:_.productName,genericProductDisplay:_.productName}:{advertisedProductId:_.productId,advertisedProductName:_.productName,genericProductDisplay:_.productName},P=Be({...h,...oe});return k[_.key]=P.id,I[P.id]=_.key,P}),lineIdByItemKey:k,itemKeyByLineId:I,items:f}}function Xy({items:s=[],lineIdByItemKey:o={},lines:u=[],isApplied:f=()=>!1}={}){const b=new Map((Array.isArray(u)?u:[]).map(k=>[yr(k==null?void 0:k.id),k]));
1for(const k of gm(s)){if(!k.hasPick||f(k.key))continue;const I=yr(o[k.key]),F=I?b.get(I):null;if(!(!F||String(F.status||"").toLowerCase()==="submitted"))return{item:k,line:F}}return null}function ft(s){return s==null?"":String(s).trim()}function $x(s={}){const o=ft(s.providerNetworkId),u=ft(s.productId||s.id),f=ft(s.catalogEntryId||s.clientProductId||s.productId||s.id);return[o,u,f].join("::")}function Kx(s={}){const o=ft(s.pharmacyId||s.externalPharmacyId);if(o)return o;const u=ft(s.id).split(":").filter(Boolean);return u.length>=3?u[u.length-1]:ft(s.id)}function Uu({products:s=[],mappingsByKey:o={},pharmacies:u=[],prescriptionPrefills:f=[]}={}){const b=Array.isArray(s)?s.filter(Boolean):[],k=Array.isArray(u)?u.filter(Boolean):[];if(k.length===0)return null;const I=new Map;b.forEach(h=>{const oe=$x(h),P=oe&&(o==null?void 0:o[oe])||null;P&&!I.has(oe)&&I.set(oe,P)});const F=new Map,_=new Map;if(k.forEach(h=>{const oe=ft(h.id),P=Kx(h);if(!oe||!P)return;const se=new Set;I.forEach(ue=>{ai(ue,h).forEach(m=>{const Pe=ft(m);Pe&&se.add(Pe)})}),f.filter(Boolean).forEach(ue=>{const m=ft(ue.pharmacyOptionId)?ft(ue.pharmacyOptionId)===oe:!ft(ue.pharmacyId)||ft(ue.pharmacyId)===P,Pe=ft(ue.medicationId);m&&Pe&&se.add(Pe)}),se.size!==0&&(_.set(oe,P),F.set(oe,[...se].sort()))}),F.size===0)return null;const Y=[...F.keys()].sort().map(h=>({optionId:h,pharmacyId:_.get(h),medicationIds:F.get(h)}));return{key:Y.map(h=>`${h.optionId}>${h.medicationIds.join(",")}`).join("|"),items:Y}}function vr(s){return s==null?"":String(s).trim()}const nm=">",im="|";function wx(s={}){const o=vr(s.pharmacyId||s.externalPharmacyId);if(o)return o;const u=vr(s.pharmacyOptionId).split(":").filter(Boolean);return u.length>=3?u[u.length-1]:""}function Qx(s=[],o=[]){const u=new Set,f=new Map((Array.isArray(o)?o:[]).filter(b=>vr(b==null?void 0:b.id)).map(b=>[vr(b.id),b]));return(Array.isArray(s)?s:[]).forEach(b=>{if(!b||b.mode==="manual"||b.status==="submitted")return;const k=f.get(vr(b.pharmacyOptionId))||{},I=[vr(b.pharmacyOptionId),vr(b.pharmacyIntegrationId)||vr(k.integrationId),vr(b.pharmacyIntegrationScopeType)||vr(k.integrationScopeType),vr(b.pharmacyIntegrationScopeId)||vr(k.integrationScopeId),wx(b)||vr(k.pharmacyId),vr(b.pharmacyProductId)];I.some(F=>!F||F.includes(nm)||F.includes(im))||u.add(I.join(nm))}),[...u].sort().join(im)}function Dx(s=""){const o=new Map;return vr(s).split(im).filter(Boolean).forEach(u=>{const[f,b,k,I,F,_]=u.split(nm),Y=o.get(f)||{optionId:f,integrationId:b,integrationScopeType:k,integrationScopeId:I,pharmacyId:F,medicationIds:[]};Y.medicationIds.includes(_)||Y.medicationIds.push(_),o.set(f,Y)}),[...o.values()]}function xo(s=[],o=[]){const u=new Map;return(Array.isArray(s)?s:[]).forEach(f=>{u.set(vr(f==null?void 0:f.id),f)}),(Array.isArray(o)?o:[]).forEach(f=>{u.set(vr(f==null?void 0:f.id),f)}),[...u.values()]}const Ux=1e4,zx="Couldn't load this chart's clinical review.",Gx="This is taking longer than expected.",Zy="Couldn't load this order's payment details.",yd="Couldn't load pharmacies for this order.";function Jx({isEditingQueuedPrescriptionReview:s=!1,chartReviewError:o=null,recommendationOnly:u=!1,chartReviewHydrated:f=!1,chartReviewId:b=null,resolvedOrderId:k=null,isFormRequestMultiProduct:I=!1,effectiveAssessmentFirstCheckoutMeta:F=null,formRequestPharmacyLoadSettled:_=!1,pharmaciesPreloaded:Y=!1,loadingPharmacies:h=!1}={}){return s?!1:o?!0:u?!1:!f&&b?!0:k?I?F===null||!_:!!(F===null||!Y&&h):!1}function Wx({chartReviewError:s=null,orderLoadError:o="",prescribeContextTimedOut:u=!1}={}){return s?zx:o||(u?Gx:"")}function Hx({showPrescribeContextLoader:s=!1,loadingPharmacies:o=!1,pharmacyLoadError:u=""}={}){return s||o?!1:!!u}function Ag(s){return String(s||"").trim().toLowerCase()}function Yx(s=[]){return(Array.isArray(s)?s:[]).find(o=>Ag(o==null?void 0:o.source)==="scriptsure")||null}function Ry({lines:s=[],pharmacies:o=[],pharmacyProductsById:u={}}={}){return(Array.isArray(s)?s:[]).filter(f=>{if(!f||f.mode==="manual"||Ag(f.status)==="submitted")return!1;const b=o.find(I=>(I==null?void 0:I.id)===f.pharmacyOptionId),k=(u[f.pharmacyOptionId]||[]).find(I=>(I==null?void 0:I.id)===f.pharmacyProductId);return sm(b,k)})}function Xx(){let s=0,o=0;const u=new WeakMap;return{wrap(f){return typeof f!="function"?f:(u.has(f)||u.set(f,(...b)=>(s+=1,f(...b))),u.get(f))}
1,capture(){return{revision:s,providerInitiated:s>o}},saved(f){o=Math.max(o,f.revision)},reset(){s=0,o=0}}}function ca(s){return typeof s=="string"?s.trim():""}function eg(s=null,{medicationId:o=""}={}){const u=ca(s==null?void 0:s.clinicalDifferenceStatement);if(u)return u;const f=Array.isArray(s==null?void 0:s.includedProductContexts)?s.includedProductContexts:[],b=ca(o),k=b?f.filter(F=>Array.isArray(F==null?void 0:F.formularyMedicationIds)&&F.formularyMedicationIds.some(_=>ca(_)===b)):f,I=Array.from(new Set(k.map(F=>ca(F==null?void 0:F.clinicalDifferenceStatement)).filter(Boolean)));return I.length===1?I[0]:""}function Zx({currentValue:s,previousPrefill:o}={}){const u=ca(s);return!u||u===ca(o)}function Ps(s){return typeof s=="string"?s.trim():""}function rg(s,o){return o?Array.isArray(s==null?void 0:s.formularyMedicationIds)&&s.formularyMedicationIds.some(u=>Ps(u)===o):!1}function Lg(s){return Ps(s).toLowerCase().replace(/[^a-z0-9.]+/g," ").trim()}function tg(s,o){return!o||o.length<3?!1:(Array.isArray(s==null?void 0:s.formularyMedicationNames)?s.formularyMedicationNames:[]).some(f=>{const b=Lg(f);if(!b)return!1;if(b===o)return!0;const[k,I]=b.length<=o.length?[b,o]:[o,b];return k.length>=3&&` ${I} `.includes(` ${k} `)})}function Rx(s){return Array.isArray(s==null?void 0:s.formularyMedicationIds)&&s.formularyMedicationIds.some(o=>Ps(o))}function eP(s,{medicationId:o="",medicationName:u="",singleLine:f=!1}={}){if(!s)return[];const b=Ps(o),k=Lg(u),I=Array.isArray(s.includedProductContexts)?s.includedProductContexts:[];if(I.length>0){const F=I.filter(Y=>rg(Y,b));if(F.length>0)return F;const _=I.filter(Y=>tg(Y,k));return _.length>0?_:f&&I.length===1?I:[]}return Rx(s)?rg(s,b)?[s]:tg(s,k)?[s]:f?[s]:[]:[s]}function bm(s,o,u){const f=Array.from(new Set(eP(s,o).map(u).filter(b=>b!=null&&b!=="")));return f.length===1?f[0]:null}function qg(s){if(s==null||s==="")return null;const o=Number(s);return Number.isInteger(o)&&o>=0?o:null}function rP(s){const o=qg(s);return o!=null&&o>0?o:null}function ta(s=null,o={}){return bm(s,o,u=>Ps(u==null?void 0:u.prescriptionDirections))||""}function gd(s=null,o={}){return bm(s,o,u=>qg(u==null?void 0:u.prescriptionRefills))}function bd(s=null,o={}){return bm(s,o,u=>rP(u==null?void 0:u.prescriptionDaysSupply))}function Id(s){return(s==null?void 0:s.catalogDispensePair)!==!0}function tP({currentInstructions:s="",clientDirections:o="",networkDirections:u="",clientName:f="Client",networkName:b="Network"}={}){const k=Ps(s),I=Ps(o),F=Ps(u);return!I||!F||I===F?null:k===I?{label:`Use ${Ps(b)||"Network"} directions`,directions:F}:{label:`Use ${Ps(f)||"Client"} directions`,directions:I}}const zu=(...s)=>s.map(o=>String(o??"").trim()).find(Boolean)||"";function sg(s,o=0){var I,F,_,Y,h,oe,P,se;const u={...(_=(F=(I=s.onlyScriptsResponse)==null?void 0:I.prescription)==null?void 0:F.medications)==null?void 0:_[o],...(oe=(h=(Y=s.onlyScriptsRequestPayload)==null?void 0:Y.prescriptionDetails)==null?void 0:h.medications)==null?void 0:oe[o],...(P=s.medications)==null?void 0:P[o
1]},f=[u.refills,u.refillsTotal,u.totalRefills,s.refills,s.refillsTotal,s.totalRefills].find(ue=>ue!=null&&String(ue).trim()!==""),b=String(u.clinicalDifferenceSource||"").trim().toLowerCase(),k=String(u.clinicalDifferenceStatement||"").trim();return{refills:f??"â",clinicalDifferenceStatement:b==="edited"||b==="none"?k:zu(u.clinicalDifferenceStatement,s.clinicalDifferenceStatement,(se=s.onlyScriptsRequestPayload)==null?void 0:se.clinicalDifferenceStatement),pharmacyNotes:zu(u.additionalNotes,u.notes,s.additionalNotes,s.notes),justification:zu(u.justification,u.dirxMedicalNecessityStatement,s.justification,s.dirxMedicalNecessityStatement)}}function sP(s){if(!s)return null;if(typeof s.toDate=="function")return s.toDate();if(typeof s.seconds=="number")return new Date(s.seconds*1e3);const o=new Date(s);return Number.isNaN(o.getTime())?null:o}function nP(s){const o=sP((s==null?void 0:s.sentAt)||(s==null?void 0:s.prescribedAt)||(s==null?void 0:s.createdAt)||(s==null?void 0:s.updatedAt));return o?o.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}):null}function hs({label:s,children:o,className:u=""}){return i.jsxs("div",{className:ym("min-w-0 bg-card px-3 py-2.5 max-lg:px-2.5 max-lg:py-2",u),children:[i.jsx("dt",{className:"text-xs text-muted-foreground",children:s}),i.jsx("dd",{className:"mt-0.5 whitespace-pre-wrap break-words text-sm text-foreground",children:o})]})}function iP({prescription:s,index:o,editable:u=!1,onEdit:f=null}){var m,Pe;const b=bx(s),k=Ix(s),I=nP(s),F=px(s.status),_=fx(s),Y=_?{...F,label:_,className:mh("sky")}:F,h=s.providerName||s.prescriberName||s.providerDisplayName,oe=!ph(s),P=(Pe=(m=s.onlyScriptsRequestPayload)==null?void 0:m.prescriptionDetails)==null?void 0:Pe.notes,se=[h,I,oe?"Not sent to pharmacy":null].filter(Boolean).join(" · "),ue=b.some((Le,Re)=>{const we=sg(s,Re);return we.justification===P||we.pharmacyNotes===P});return b.map((Le,Re)=>{const we=sg(s,Re);return i.jsxs("article",{className:"min-w-0 overflow-hidden rounded-lg border border-border bg-card","data-testid":G("row","charting",`existing-prescription-${o}${Re>0?`-${Re}`:""}`),"data-prescription-id":s.id,children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-2 border-b border-border px-3 py-2.5 max-lg:px-2.5 max-lg:py-2",children:[i.jsx("h2",{className:"min-w-0 grow basis-full break-words text-sm font-semibold text-foreground sm:basis-40",children:Le.name}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[Y!=null&&Y.label?i.jsx(yx,{record:s,children:i.jsx("span",{className:ym("text-xs",Y.className),children:Y.label})}):null,Re===0&&u&&f?i.jsxs(Ze,{type:"button",variant:"outline",size:"sm",onClick:()=>f(s),className:"rounded-full","aria-label":`Edit ${Le.name}`,"data-testid":G("button","charting",`edit-existing-prescription-${o}`),children:[i.jsx(hx,{className:"mr-1.5 size-3.5","aria-hidden":"true"}),"Edit"]}):null]})]}),i.jsxs("dl",{className:"grid grid-cols-3 gap-px bg-border",children:[i.jsx(hs,{label:"Pharmacy",className:"col-span-3",children:k||"â"}),Le.dosage?i.jsx(hs,{label:"Strength",className:"col-span-3",children:Le.dosage}):null,i.jsx(hs,{label:"Quantity",children:Le.quantity??"â"}),i.jsx(hs,{label:"Days supply",children:Le.daysSupply??"â"}),i.jsx(hs,{label:"Refills",children:we.refills}),i.jsx(hs,{label:"Directions",className:"col-span-3",children:Le.directions||"â"}),we.clinicalDifferenceStatement?i.jsx(hs,{label:"Clinical difference statement",className:"col-span-3",children:we.clinicalDifferenceStatement}):null,we.pharmacyNotes&&we.pharmacyNotes!==we.justification?i.jsx(hs,{label:"Pharmacy notes / justification",className:"col-span-3",children:we.pharmacyNotes}):null,we.justification?i.jsx(hs,{label:"Justification",className:"col-span-3",children:we.justification}):null,Re===0&&P&&!ue?i.jsx(hs,{label:"Pharmacy notes / justification",className:"col-span-3",children:P}):null]}),se?i.jsx("p",{className:"border-t border-border px-3 py-2 text-xs text-muted-foreground max-lg:px-2.5",children:se}):null]},Le.id)})}function Gu({prescriptions:s=[],loading:o=!1,className:u="",onAddAnother:f=null,canEditPrescription:b=null,onEditPrescription:k=null}){return o?i.jsxs("div",{className:`space-y-3 ${u}`.trim(),"aria-busy":"true",children:[i.jsx("span",{className:"inline-block h-2.5 w-32 animate-pulse rounded bg-muted"}),i.jsx("div",{className:"h-28 w-full animate-pulse rounded-lg bg-muted"})]}):!Array.isArray(s)||s.length===0?null:i.jsxs("div",{className:`space-y-3 ${u}`.trim(),"data-testid":G("section","charting","existing-prescriptions"),"data-preview-mode":"true",children:[i.jsx("div",{className:"space-y-3 rounded-xl border border-border bg-surface-sunken p-3 max-lg:space-y-2 max-lg:p-2",children:s.map((I,F)=>i.jsx(iP,{prescription:I,index:F,editable:!!(b!=null&&b(I)),onEdit:k},I.id||F))}),f?i.jsxs(Ze,{type:"button",variant:"outline",onClick:f,className:"h-10 w-full rounded-full border-default bg-surface-raised max-lg:h-9","data-testid":G("button","charting","add-another-prescription"),children:[i.jsx(Nd,{className:"mr-2 size-4","aria-hidden":"true"}),"Add another prescription"]}):null]})}function am(s,o={}){if(!(s!=null&&s.product)||s.isManual)return!1;const u=ce(s.product),f=s.isCustom?{pharmacyId:"custom",pharmacyMappingKey:"custom"}:s.pharmacy;return!f||!ai(o,f).includes(u)?!1:PI(o,f,u).includes(String(s.product.formularyVariantId||"").trim())}function aP(s,o=[]){var b;if(!(s!=null&&s.product)||s.isManual||o.length===0)return!1;const u=String(ce(s.product)||"").trim(),f=String(((b=s.pharmacy)==null?void 0:b.id)||"").trim();return o.some(k=>String((k==null?void 0:k.medicationId)||"").trim()===u&&String((k==null?void 0:k.pharmacyOptionId)||"").trim()===f)}function Ju(s=[],o=new Set,u={},f=[]){return s.filter(b=>b.isManual||!o.has(ce(b.product))||am(b,u)||aP(b,f)).map(b=>{if(b.isManual||!o.has(ce(b.product)))return b;const k=am(b,u)?"Client-paired":"Requested";return{...b,isPreferred:!0,secondaryLabel:[b.secondaryLabel,`${k}
1 · Hidden from catalog`].filter(Boolean).join(" · ")}})}function oP({approvalStatus:s,prescribeBeforeSignoff:o=!1,readOnly:u=!1,isDelegate:f=!1,recommendationOnly:b=!1,decisionReadyForPrescription:k=!1}){const I=String(s||"").trim().toLowerCase(),F=["denied","deferred","not_approved"].includes(I),_=!F&&I!=="approved"&&!u&&!f&&!b,Y=_&&!o,h=_&&o,oe=Y||h;return{signoffRequired:Y,prescribeBeforeSignoffActive:h,dispatchAllowedWithoutDecision:oe,prescriptionDecisionReady:!F&&(k||oe)}}function cP({className:s}){return i.jsx("div",{role:"alert",className:ym("rounded-lg border-2 border-rose-300 bg-rose-50 px-4 py-3 shadow-sm max-lg:px-2.5 max-lg:py-2 dark:border-rose-800 dark:bg-rose-950/50",s),children:i.jsxs("div",{className:"flex items-start gap-3 max-lg:gap-2",children:[i.jsx(kd,{className:"mt-0.5 size-5 shrink-0 text-rose-600 max-lg:size-4 dark:text-rose-400"}),i.jsxs("div",{className:"space-y-1 max-lg:space-y-0.5",children:[i.jsx("p",{className:"text-sm font-semibold text-rose-950 max-lg:text-xs dark:text-rose-50",children:yS}),i.jsx("p",{className:"text-sm leading-relaxed text-rose-900 max-lg:text-xs max-lg:leading-snug dark:text-rose-100",children:jg})]})]})})}function Sd(s={}){return String((s==null?void 0:s.prescriptionId)||(s==null?void 0:s.prescriptionDocId)||"").trim()}function dP(s={},o=[],u=null,f=new Set){const b=Sd(s),k=String((u==null?void 0:u.id)||"").trim();return!b||f.has(b)||!o.some(F=>String(F.id)===b)?!0:!!(k&&b===k)}function om(s=[],o=[],u=null,f=new Set){return s.filter(b=>dP(b,o,u,f))}function lP(s=[],o=null){const u=String((o==null?void 0:o.id)||"").trim();return u?!s.some(b=>Sd(b)===u)&&s.length===1&&!Sd(s[0])?[u]:s.map(b=>Sd(b)===u?u:null):s.map(()=>null)}function uP(s=[],o=[],u=null,{editablePrescriptionIds:f=new Set,fallbackDraft:b=null}={}){const k=om(s,o,u,f);return k.length>0?k:[b||_r()]}const sa="__manual__",mP="bg-emerald-50 text-emerald-950 data-[selected=true]:bg-emerald-100 data-[selected=true]:text-emerald-950 dark:bg-emerald-950/40 dark:text-emerald-50 dark:data-[selected=true]:bg-emerald-900/60 dark:data-[selected=true]:text-emerald-50",pP="shrink-0 rounded-full bg-emerald-100 px-2 py-0.5 text-3xs font-medium text-emerald-800 dark:bg-emerald-900/70 dark:text-emerald-100",fP="ml-auto shrink-0 rounded-sm bg-red-50 px-2 py-0.5 text-3xs font-semibold text-red-700 ring-1 ring-red-200 dark:bg-red-950/40 dark:text-red-200 dark:ring-red-800/70",yP="ml-auto shrink-0 rounded-sm bg-blue-50 px-2 py-0.5 text-3xs font-semibold text-blue-700 ring-1 ring-blue-200 dark:bg-blue-950/40 dark:text-blue-200 dark:ring-blue-800/70",ng="shrink-0 rounded-full bg-sky-50 px-2 py-0.5 text-3xs font-medium text-sky-700 ring-1 ring-sky-200 dark:bg-sky-950/40 dark:text-sky-200 dark:ring-sky-800/70",gP="shrink-0 rounded-full bg-amber-100 px-2 py-0.5 text-3xs font-medium text-amber-800 dark:bg-amber-900/70 dark:text-amber-100",bP="border-blue-300 bg-blue-50 pr-8 text-blue-900 ring-1 ring-blue-200 dark:border-blue-800 dark:bg-blue-950/30 dark:text-blue-100 dark:ring-blue-800/70",IP=Object.freeze({queued_rx_context_required:"Patient and visit details are missing. Reopen this visit and try again.",queued_rx_product_required:"Select the product the patient will pay for before queueing.",queued_rx_product_not_found:"That product is not available for this patientâs client. Pick a product from the client catalog.",queued_rx_product_inactive:"That product is not active. Activate it in the catalog or pick another product.",queued_rx_product_network_inactive:"That product is retired in the provider network catalog, so it cannot be charged. Pick another product, or ask the provider network to reactivate it.",queued_rx_product_is_visit:"A Visit product cannot be queued for prescription payment. Select a medication product instead.",queued_rx_product_price_unresolved:"This product has no customer price. Set the productâs customer price before queueing payment.",queued_rx_product_already_paid:"This product is already paid. Reopen the visit before sending the prescription."}),hP=new Set(["voided","void","cancelled","canceled","rejected","draft"]);function Po(s,o){try{return JSON.stringify(s)===JSON.stringify(o)}catch{return s===o}}function ig(s){return IP[s==null?void 0:s.code]||(s==null?void 0:s.message)||"Unable to queue prescription for patient payment."}function No({paymentStatus:s,rxQueued:o,vaultMedAutoChargePending:u}={}){return u?"Visit is paid. Medication will be charged to the stored payment method when you send the prescription.":s==="paid"?"The patient has paid for this product.":o?"Prescription is queued. The patient must pay for this product before it is sent to the pharmacy.":"The patient has not paid for this product yet. Queue the prescription so they are prompted to pay; pharmacy dispatch happens after payment."}function Wu({currentQuantity:s,currentDaysSupply:o,nextQuantity:u,fallbackBaseDaysSupply:f=30,shouldMultiplyDaysSupply:b=!0}){const k=Number(u);
1if(!Number.isFinite(k)||k<=0)return null;const I=Number(o);if(!b){if(Number.isFinite(I)&&I>0)return Math.max(1,Math.round(I));const oe=Number(f);return Number.isFinite(oe)&&oe>0?oe:30}const F=Number(s),_=Number.isFinite(F)&&F>0&&Number.isFinite(I)&&I>0?I/F:null,Y=Number(f),h=_??(Number.isFinite(Y)&&Y>0?Y:30);return Math.max(1,Math.round(k*h))}const Cn={socialSecurityNumber:"",stateIssuedId:"",driverLicenseNumber:"",driverLicenseState:""};function ia(s=null){return!s||typeof s!="object"?null:{orderType:s.type||null,checkoutFlow:s.checkoutFlow||null,paymentCollectionMode:s.paymentCollectionMode||null,vaultChargeOrder:s.vaultChargeOrder===!0,formRequestProductApproval:s.formRequestProductApproval===!0,visitPurchase:fh(s),paymentStatus:s.paymentStatus||null,prescriptionSubmissionJobStatus:s.prescriptionSubmissionJobStatus||null,medicationVaultCharge:s.medicationVaultCharge||null,vaultCharge:s.vaultCharge||s.splitVaultCharge||null,storedPaymentReference:s.storedPaymentReference||null,customerVaultId:s.customerVaultId||null}}function ag(s=null,o=null){if(!(s!=null&&s.id)||!Ng(s)||!kg({prescription:s}))return null;const u=o&&typeof o=="object"?{checkoutFlow:o.checkoutFlow||null,formRequestProductApproval:o.formRequestProductApproval===!0}:{};return{...u,prescriptionSubmissionJobStatus:"pending_payment",paymentStatus:"unpaid",formRequestProductApproval:u.formRequestProductApproval===!0}}function og(s=null){if(!(s!=null&&s.id)||!Ru(s))return[_r()];const o=Mo({prescription:s});return oa(o)||o.pharmacyProductId||o.pharmacyOptionId?[o]:[_r()]}function ko(s={},o={}){const u=Array.isArray(s==null?void 0:s.approvalProducts)?s.approvalProducts:[];return u.length===0?[_r(o)]:u.map(f=>_r({...o,advertisedProductName:f.approvalProductName||"Advertised product",advertisedProductId:f.approvalProductId||"",advertisedClientProductId:f.approvalClientProductId||"",linkedProductId:f.approvalProductId||"",linkedClientProductId:f.approvalClientProductId||"",genericProductDisplay:f.approvalProductName||""}))}function Im(s={},o={},u={}){const f=String((s==null?void 0:s.id)||"").trim(),b=String((o==null?void 0:o.id)||"").trim(),k=String((u==null?void 0:u.fulfillmentLineId)||"").trim(),I=String((u==null?void 0:u.id)||"").trim();return!!(f&&b&&f===b||f&&k&&f===k||I&&String((s==null?void 0:s.prescriptionId)||"").trim()===I||I&&String((s==null?void 0:s.prescriptionDocId)||"").trim()===I)}function SP({normalizedDraft:s,queuedLine:o,editingQueuedPrescription:u}){const f=Array.isArray(s==null?void 0:s.fulfillmentPrescriptions)?s.fulfillmentPrescriptions.map(I=>Be(I)):[];if(f.length===0)return[o];let b=!1;const k=f.map(I=>Im(I,o,u)?(b=!0,Be({...I,...o,id:I.id||o.id})):I);return b?k:[...k,o]}function xP({normalizedDraft:s,failedPrescription:o,chartPrescriptionData:u=null}){const f=Array.isArray(s==null?void 0:s.fulfillmentPrescriptions)?s.fulfillmentPrescriptions.map(_=>Be(_)):[],b=f.find(_=>Im(_,{},o))||null,k=Mo({prescription:o,chartPrescriptionData:u,fallbackDraft:b}),I=Be({...k,id:"",status:"",submissionError:"",prescriptionId:""});if(b)return{replacementLine:I,fulfillmentPrescriptions:f.map(_=>_===b?I:_)};const F=f.filter(_=>_.prescriptionId||oa(_)||_.pharmacyProductId);return{replacementLine:I,fulfillmentPrescriptions:[...F,I]}}const jn={pharmacyOptionId:"",medicationName:"",dosage:"",dosePerInjection:"",dosesPerWeek:"1",frequency:"",duration:"4",instructions:"",additionalNotes:"",pharmacyId:"",externalPharmacyId:"",pharmacyName:"",pharmacyIntegrationId:"",pharmacyIntegrationScopeType:"",pharmacyIntegrationScopeId:"",pharmacyIntegrationName:"",pharmacySource:"",pharmacyProductId:"",pharmacyProductName:"",vendor:"",vendorId:"",ndc:"",csn:"",quantity:1,packCount:null,packQuantityConfirmed:!1,units:"",daysSupply:30,refills:0,daw:0,suppliesDetails:[]};function wt(s){return(s||"").toString().trim().toLowerCase()}function Bg(s,o=""){return(s||"").toString().trim()||o}function PP(s){return Bg(s,"Received").replace(/[_-]+/g," ").replace(/\b\w/g,o=>o.toUpperCase())}function jo(s){if(!s)return 0;if(typeof s.toMillis=="function")return s.toMillis();if(typeof s.toDate=="function")return s.toDate().getTime();const o=new Date(s);return Number.isNaN(o.getTime())?0:o.getTime()}function NP(s){const o=jo(s);
1return o?new Date(o).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}):""}function D(s){return s==null?"":String(s).trim()}function cg(s={},o="client"){const u=D(s.productId||s.id||s.sourceProductId),f=D(s.catalogEntryId||s.clientProductId||s.id||u),b=o==="business"?"":D(s.legacyClientProductId||s.clientProductId||f);return{id:[o,b||f||u,u].filter(Boolean).join(":"),scope:o,productId:u,clientProductId:b,catalogEntryId:f,businessId:D(s.businessId),providerNetworkId:D(s.providerNetworkId),displayName:D(s.displayName||s.name||s.productName||u||"Protocol"),customerPrice:s.customerPrice??s.price??s.amount??null,quantityMonths:Number(s.quantityMonths)||null}}function kP(s,o){const u=D(o);return!u||!Array.isArray(s)?null:s.find(f=>[jr(f),f.clientProductId,f.id,f.productId,f.legacyClientProductId,f.catalogEntryId].some(b=>D(b)===u))||null}function CP(s,o){return kP(o,(s==null?void 0:s.clientProductId)||(s==null?void 0:s.linkedClientProductId)||(s==null?void 0:s.advertisedClientProductId))}function Hu(s,o){const u=D(o);return!s||!u?!1:[s.id,s.productId,s.clientProductId,s.catalogEntryId].some(f=>D(f)===u)}function cm(s){const o=Number(s);return Number.isFinite(o)?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}
1).format(o):"Price not set"}function Vg(s){const o=Number(s);return!Number.isFinite(o)||o<=0?0:Math.round(o*100)}function dm(s){const o=Number(s);return Number.isFinite(o)?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(o/100):""}function Fg(s={}){const o=D(s.clientProductId),u=D(s.productId);return!o&&!u?{}:{clientProductId:o,linkedClientProductId:o,advertisedClientProductId:o,catalogEntryId:D(s.catalogEntryId)||o,productId:u,linkedProductId:u,genericProductDisplay:s.displayName||""}}function jP(s,o){const u=Fg(o);return u.clientProductId?{...s,...u}:s}function vP(s={}){return D(s.displayName||s.name||s.productName||s.productId||s.id||"Product")}function dg(s={}){const o=na(s),u=D(s.productId||s.sourceProductId||s.id),f=vP(s),b=Vg(s.customerPrice);return{addOnProduct:s,addOnProductKey:jr(s),addOnProductLabel:f,productId:u,clientProductId:o,genericProductDisplay:f,priceCents:b,amountCents:b,priceLabel:dm(b)}}function Fe(s){return String(s||"").trim().replace(/\s+/g," ")}function MP(s){return Fe(s).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function lg(s,o){const u=Fe(s),f=Fe(o);return!u||!f?u:u.replace(new RegExp(`^${MP(f)}(?:\\s|-|:|\\u2013|\\u2014|,)*`,"i"),"").trim()}function ug(s){const o=wt(s).replace(/[\s_-]+/g,"");return o==="business"?"business":o==="client"?"client":o==="providernetwork"?"providerNetwork":""}function hd(s=null,o={}){const u=ug((s==null?void 0:s.integrationScopeType)||(s==null?void 0:s.scopeType)),f=D((s==null?void 0:s.integrationScopeId)||(s==null?void 0:s.scopeId)),b=u&&f?[[u,f]]:[["business",o.businessId],["client",o.clientId],["providerNetwork",o.providerNetworkId]];for(const[k,I]of b){const F=ug(k),_=D(I);if(!(!F||!_))return`${F}_${_}`}return""}function mg(s,o){const u=D(s),f=D(o);return u&&f?`${u}:${f}`:""}function EP(s){return!s||typeof s!="object"?!1:!!(D(s.prescriberId||s.scriptSurePrescriberId||s.doctorId)&&wt(s.idVerificationStatus)==="verified")}function vo(s=null,o=null){const u=(s==null?void 0:s.orderId)||(o==null?void 0:o.orderId)||null,f=o!=null&&o.orderData&&String(o.orderId||"")===String(u||"")?o.orderData:null;return{orderId:u||null,clientId:(s==null?void 0:s.clientId)||(f==null?void 0:f.clientId)||null,businessId:(s==null?void 0:s.businessId)||(f==null?void 0:f.businessId)||null,providerNetworkId:(s==null?void 0:s.providerNetworkId)||(f==null?void 0:f.providerNetworkId)||null,clientProductId:(s==null?void 0:s.clientProductId)||(f==null?void 0:f.clientProductId)||null,productName:(s==null?void 0:s.productName)||(f==null?void 0:f.productName)||"",shippingInfo:(f==null?void 0:f.shippingInfo)||(s==null?void 0:s.shippingInfo)||null,billingInfo:(f==null?void 0:f.billingInfo)||null}}const Og=["orderId","clientId","businessId","providerNetworkId","clientProductId","productName"];function pg(s,o){return s===o?!0:!s||!o?!1:JSON.stringify(s)===JSON.stringify(o)}function AP(s,o){return s===o?!0:!s||!o||!Og.every(u=>(s[u]??null)===(o[u]??null))?!1:pg(s.shippingInfo,o.shippingInfo)&&pg(s.billingInfo,o.billingInfo)}function LP(s={},o={}){const u={...s,...o};return Og.forEach(f=>{u[f]=o[f]||s[f]||(f==="productName"?"":null)}),u.shippingInfo=o.shippingInfo||s.shippingInfo||null,u.billingInfo=o.billingInfo||s.billingInfo||null,u}function xd(s=null){const o=Array.isArray(s==null?void 0:s.formRequestProductOrderIds)?s.formRequestProductOrderIds:[],u=s!=null&&s.orderId?[s.orderId]:[];return[...new Set([...o,...u].map(f=>String(f||"").trim()).filter(Boolean))]}function fg(s=null){return(s==null?void 0:s.formRequestProductApproval)!==!0?!1:(Array.isArray(s==null?void 0:s.approvalProducts)?s.approvalProducts.length:0)>1||xd(s).length>1}function yg(s={}){return String(s.paymentStatus||"").trim().toLowerCase()==="paid"?"Paid":String(s.prescriptionSubmissionJobStatus||"").trim().toLowerCase()==="pending_payment"?String(s.queuePrescriptionReviewStatus||"").trim().toLowerCase()==="pending_admin_review"?"Awaiting client review":"Queued for payment":"Needs prescription"}function gg(s={}){const o=D(s.providerNetworkId),u=D(s.clientId),f=D(s.businessId);if(o||u||f)return{providerNetworkId:o,clientId:u,businessId:f};const b=String(s.orderId||"").trim();return b?{orderId:b}:null}function Yu(s=[],o){return(Array.isArray(s)?s:[]).map(u=>({...u,source:u.source||"onlyscripts",name:u.name||u.pharmacyName||u.id,integrationId:u.integrationId||"",integrationScopeType:u.integrationScopeType||"",integrationScopeId:u.integrationScopeId||"",integrationName:u.integrationName||""})).sort((u,f)=>o(u).localeCompare(o(f)))}function aa(s,o,u){return o!=="pending_payment"?s:{orderType:"product",checkoutFlow:"visit_first",formRequestProductApproval:!1,paymentStatus:"unpaid",...s||{},prescriptionSubmissionJobStatus:"pending_payment",queuedPaymentOrderId:u||(s==null?void 0:s.queuedPaymentOrderId)||null}}function bg(s=null,o=null){const u=(s==null?void 0:s.orderId)||(o==null?void 0:o.orderId)||null,f=u&&(o!=null&&o.orderData)&&String(o.orderId)===String(u)?ia(o.orderData):null;return aa(f,s==null?void 0:s.prescriptionSubmissionJobStatus,s==null?void 0:s.queuedPaymentOrderId)}function qP(s=null,o=null){const u=(s==null?void 0:s.orderId)||(o==null?void 0:o.orderId);return u?!(String(o==null?void 0:o.orderId)===String(u)&&Array.isArray(o==null?void 0:o.pharmacies)):!1}function Tg(s=null,o=null){const u=(s==null?void 0:s.orderId)||(o==null?void 0:o.orderId);return!!(u&&String((o==null?void 0:o.purchasedProductOrderId)||"")===String(u)&&(o==null?void 0:o.purchasedProductContextLoaded)===!0)}function BP(s=null,o=null,u=!1){return u||Tg(s,o)?!1:!!vo(s,o).orderId}function Ig({label:s}){return s?i.jsx(lm,{delayDuration:150,children:i.jsxs(um,{children:[i.jsx(mm,{asChild:!0,children:i.jsx("button",{type:"button",className:"inline-flex size-6 shrink-0 items-center justify-center rounded-full text-content-tertiary transition hover:bg-slate-100 hover:text-slate-900 focus:outline-none focus:ring-2 focus:ring-slate-300 dark:hover:bg-slate-800 dark:hover:text-slate-100 dar
1k:focus:ring-slate-600","aria-label":s,children:i.jsx(pm,{className:"size-4","aria-hidden":"true"})})}),i.jsx(fm,{side:"top",align:"start",className:"max-w-xs text-xs",children:s})]})}):null}function VP({label:s,children:o}){return s?a.cloneElement(o,{title:s,"aria-description":s}):o}function hg({value:s,onValueChange:o,customerPrice:u,installmentSchedulePreview:f,className:b="mt-4 space-y-3 rounded-lg border border-subtle bg-surface-sunken p-3"}){return i.jsxs("div",{className:b,children:[i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Je,{className:"text-xs font-medium text-slate-700 dark:text-slate-200",children:["Medication payment",i.jsx(pt,{})]}),i.jsx("p",{className:"text-xs text-content-secondary",children:"Choose how to charge the stored payment method when this prescription is sent."})]}),i.jsxs(yh,{value:s||"pay_in_full",onValueChange:o,className:"space-y-2","data-testid":G("radio-group","charting","deferred-vault-payment-option"),children:[i.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-md border border-subtle bg-surface-raised p-3",children:[i.jsx(uy,{value:"pay_in_full",className:"mt-0.5"}),i.jsxs("span",{className:"min-w-0 space-y-0.5",children:[i.jsx("span",{className:"block text-sm font-medium text-content-primary",children:"Collect in full"}),i.jsxs("span",{className:"block text-xs text-content-secondary",children:["One charge of ",cm(u),"."]})]})]}),i.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-md border border-subtle bg-surface-raised p-3",children:[i.jsx(uy,{value:"split_3",className:"mt-0.5"}),i.jsxs("span",{className:"min-w-0 space-y-0.5",children:[i.jsx("span",{className:"block text-sm font-medium text-content-primary",children:"Split into 3 payments"}),i.jsx("span",{className:"block text-xs text-content-secondary",children:f?`${dm(f.first)} today, then ${dm(f.recurring)} every 30 days (2 more payments).`:"Three payments over 60 days, then stop."})]})]})]})]})}function FP({selectedProducts:s=[],unavailable:o=[]}){if(s.length===0)return null;const u=f=>f.displayName||f.clientProductId;return i.jsxs("div",{className:"space-y-1","data-testid":G("note","charting","patient-selected-product"),children:[i.jsx("p",{className:"text-xs text-content-tertiary",children:`Patient selected ${s.map(u).join(", ")} during intake. Change it if a different product is clinically appropriate.`}),o.length>0?i.jsx("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:`${o.map(u).join(", ")} ${o.length===1?"is":"are"} no longer available in this catalog, so ${o.length===1?"it was":"they were"} not prefilled.`}):null]})}function OP(){return i.jsx(xs,{className:"rounded-xl border border-subtle bg-surface-raised p-4 max-lg:p-2.5","data-testid":G("section","charting","prescribe-context-loading"),"aria-busy":"true","aria-live":"polite",children:i.jsx("div",{className:"flex min-h-48 items-center justify-center",children:i.jsx(Pd,{size:"lg",className:"text-content-tertiary",label:"Loading prescription"})})})}function Sg({message:s,onRetry:o}){return i.jsxs(xs,{className:"rounded-xl border border-rose-200 bg-rose-50/60 p-4 dark:border-rose-900/60 dark:bg-rose-950/20 max-lg:p-2.5","data-testid":G("section","charting","prescribe-context-error"),role:"alert",children:[i.jsxs("div",{className:"flex items-start gap-3 max-lg:gap-2",children:[i.jsx(kd,{className:"mt-0.5 size-5 shrink-0 text-rose-500 max-lg:size-4","aria-hidden":"true"}),i.jsxs("div",{className:"min-w-0 space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-content-primary max-lg:text-xs",children:"Couldn't prepare the prescription"}),i.jsxs("p",{className:"text-xs text-content-secondary max-lg:text-2xs",children:[s," Prescribing stays locked until it loads."]})]})]}),i.jsx(Ze,{type:"button",variant:"outline",size:"sm",className:"mt-3 h-8 bg-surface-raised dark:bg-slate-950 max-lg:mt-2.5",onClick:o,"data-testid":G("button","charting","prescribe-context-retry"),children:"Retry"})]})}function TP({message:s,onRetry:o}){return i.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-lg border border-rose-200 bg-rose-50/60 px-3 py-2 text-xs text-rose-700 dark:border-rose-900/60 dark:bg-rose-950/20 dark:text-rose-300 max-lg:gap-1.5 max-lg:text-2xs",role:"alert","data-testid":G("text","charting","pharmacy-load-error"),children:[i.jsx(kd,{className:"size-3.5 shrink-0","aria-hidden":"true"}),i.jsxs("span",{children:[s," The pharmacy list may be incomplete."]}),i.jsx("button",{type:"button",onClick:o,className:"underline underline-offset-2 hover:no-underline","data-testid":G("button","charting","pharmacy-load-retry"),children:"Retry"})]})}function _P(s){const o=Gs(s);if(o)return i.jsxs("span",{className:yP,children:[o,"-unit pack"]});const u=vg(s);return u.isQuantityLocked?i.jsxs("span",{className:fP,children:[u.fixedQuantityString," vials"]}):null}function $P(s){const o=ih(s);return o?i.jsxs(i.Fragment,{children:[i.jsxs("span",{className:ng,children:["Total ",o.totalMg," mg"]}),i.jsxs("span",{className:ng,children:["Weekly ",o.weeklyMg," mg/wk"]})]}):null}function ZN({chartingWorkflow:s=null,chartReviewId:o,patientId:u,patientName:f,onClose:b,onComplete:k,readOnly:I=!1,effectiveProviderId:F,allowProviderSelection:_=!1,backgroundColor:Y="#f8fafc",recommendationOnly:h=!1,decisionReadyForPrescription:oe=!0,preload:P=null,patientData:se=null,patientDataReady:ue=null,chartReviewData:m=null,chartReviewHydrated:Pe=!1,chartReviewError:Le=null,onRetryChartReview:Re=null,chartReviewVersion:we
1=0,headerControls:Pt=null,scrollContainerRef:Js=null,contentBottomPaddingClassName:Ns="pb-6",onRegisterSaveAndExit:Ws=null,editingQueuedPrescription:ks=null,attestations:Cs=ZS,setAttestations:js=null,decisionAnswersById:tt={},onDecisionAnswerChange:Qt=null,patientFields:er=null,onFocusSignoffControls:ve=null,onNavigateToChartSignoff:vs=null}){var Df,Uf,zf,Gf,Jf,Wf,Hf,Yf,Xf,Zf,Rf;const{branding:Nt}=gh(),[ci,Mn]=a.useState(null),j=ci||ks,En=(j==null?void 0:j.providerNetworkId)||(m==null?void 0:m.providerNetworkId)||(P==null?void 0:P.providerNetworkId)||null,{reviewWindowMs:Mr}=Dh(En),kt=(Nt==null?void 0:Nt.accentColor)||bh,ne=nS(s),[w,Er]=a.useState(()=>(m==null?void 0:m.prescriptionRecommendation)||null),[An,Hs]=a.useState(""),[ar,da]=a.useState(()=>(m==null?void 0:m.prescriptionRecommendationItems)||[]),[Ms,Ys]=a.useState({lineIdByItemKey:{},itemKeyByLineId:{}}),[gr,Ln]=a.useState(!1),[S,de]=a.useState(jn),[Xs,la]=a.useState(""),[qn,Zs]=a.useState([]),[Dt,Es]=a.useState([]),[Cd,ua]=a.useState(""),[jd,Bn]=a.useState(""),[Eo,vd]=a.useState(!1),[K,X]=a.useState(()=>j?og(j):ko(m)),[v,cr]=a.useState(()=>{const e=bg(m,P),r=ag(j,m);return r?{...e||{},...r}:e}),[Ar,Vn]=a.useState([]),[Rs,ma]=a.useState(""),[Ut,Ao]=a.useState(!1),[Fn,en]=a.useState(""),[di,br]=a.useState(!1),[dr,Md]=a.useState(null),st=a.useCallback((e,{onDone:r,reviewWindowMs:t}={})=>{Md({variant:e,onDone:r||null,reviewWindowMs:Number.isFinite(Number(t))?Number(t):null})},[]),{userType:On,userDoc:We}=Ih(),pa=Uh({isProvider:Sh(On,"Provider")||On==="Business Provider",userDoc:We,currentUser:hh.currentUser}),_g=(We==null?void 0:We.providerNetworkId)||null,$g=(We==null?void 0:We.fullName)||[We==null?void 0:We.firstName,We==null?void 0:We.lastName].filter(Boolean).join(" "),[nt,Ed]=a.useState(null),hm=!!_g&&ju(On,["Provider","Provider Network Admin","Provider Delegate"]),Ad=(s==null?void 0:s.combineAttestations)===!0,fa=a.useMemo(()=>Array.isArray(s==null?void 0:s.decisionQuestions)?s.decisionQuestions:[],[s==null?void 0:s.decisionQuestions]),Ld=String((m==null?void 0:m.approvalStatus)||"").trim().toLowerCase(),{signoffRequired:li,prescribeBeforeSignoffActive:Sm,dispatchAllowedWithoutDecision:Lo,prescriptionDecisionReady:qo}=oP({approvalStatus:Ld,prescribeBeforeSignoff:iS(s),readOnly:I,isDelegate:ju(On,["Provider Delegate","Business Provider Delegate"]),recommendationOnly:h,decisionReadyForPrescription:oe}),qd=(er==null?void 0:er.loading)!==!0&&(!(er!=null&&er.validation)||er.validation.valid),xm=(Ad||XS(Cs))&&aS(fa,tt).valid&&qd,zt=a.useRef({}),Bo=a.useCallback((e,r)=>({approveChartReview:!0,attestations:e,decisionQuestionAnswers:oS(fa,r,(We==null?void 0:We.id)||null)}),[We==null?void 0:We.id,fa]);a.useEffect(()=>{zt.current=li?Bo(Ad?Ku:Cs,tt):{}},[li,Ad,Cs,Bo,tt]);const Bd=a.useRef(!1),Vo=a.useCallback(async({apply:e})=>{var n;if(!qo)return C.error("Record a decision before prescribing."),ve==null||ve(),!1;if(Bd.current)return!1;Bd.current=!0;try{if(!await(((n=er==null?void 0:er.flushPendingPatientFieldWrites)==null?void 0:n.call(er))??!0))return C.error("Some patient data fields could not be saved. Fix them before signing."),ve==null||ve(),!1}finally{Bd.current=!1}if(!li||xm)return!0;if(!qd)return C.error("Complete all required patient data fields before signing."),ve==null||ve(),!1;const{answersById:r,unresolvedQuestionIds:t}=cS(fa,tt);return t.length>0?(C.error("Answer the required decision questions before signing."),ve==null||ve(),!1):(e&&(zt.current=Bo(Ku,r),js==null||js(()=>({...Ku})),Object.entries(r).forEach(([c,l])=>{l!==(tt==null?void 0:tt[c])&&(Qt==null||Qt(c,l))})),!0)},[Bo,qo,tt,Qt,ve,qd,er,js,xm,fa,li]),ui=a.useCallback(()=>Vo({apply:!0}),[Vo]),Pm=a.useCallback(()=>Vo({apply:!1}),[Vo]),As=a.useCallback(({prescriptionIds:e,medicationNames:r,orderId:t,after:n})=>{const c=(e||[]).filter(Boolean);if(!hm||c.length===0||!u){n==null||n();return}Ed({prescriptionIds:c,medicationNames:(r||[]).filter(Boolean),orderId:t||null,after:n||null})},[hm,u]),Qe=a.useMemo(()=>(v==null?void 0:v.prescriptionSubmissionJobStatus)==="pending_payment",[v==null?void 0:v.prescriptionSubmissionJobStatus]),it=!!(j!=null&&j.id&&Ng(j)),Ls=!!(j!=null&&j.id&&xh(j)),mi=!!(j!=null&&j.id&&!it&&!Ls&&Ph(j)),[ya,Nm]=a.useState(()=>new Set),Fo=a.useCallback(async(e=[])=>
1{const r=(Array.isArray(e)?e:[]).filter(Boolean),t=j==null?void 0:j.id;if(!(!mi||!t||r.length===0))try{await zr("managePrescription",{action:"voidFailedPrescription",prescriptionId:t,voidReason:Nh(r),replacedByPrescriptionIds:r})}catch(n){ae(n,{area:"prescribing",surface:"Step3Prescribe",operation:"retireReplacedFailedPrescription"}),C.warning("The corrected prescription was sent, but the original could not be voided automatically. Void it from the Prescriptions page.")}},[j==null?void 0:j.id,mi]),or=Qe||it||Ls,pi=a.useMemo(()=>kh(v||{}),[v]),Vd=a.useMemo(()=>Ch(v||{}),[v]),Gt=a.useMemo(()=>pi||jh(v||{})?!1:it&&Qe||Vd?!0:(v==null?void 0:v.checkoutFlow)==="visit_first"||(v==null?void 0:v.formRequestProductApproval)===!0,[pi,it,Qe,Vd,v==null?void 0:v.checkoutFlow,v==null?void 0:v.formRequestProductApproval]),Ct=a.useMemo(()=>vh(v||{}),[v]),sr=a.useMemo(()=>Mh(v||{})&&Ct,[v,Ct]),Oo=a.useMemo(()=>!!(Gt&&(v==null?void 0:v.paymentStatus)!=="paid"&&!Qe)||!!(Eh(v||{})&&!Qe),[Gt,v==null?void 0:v.paymentStatus,v==null?void 0:v.paymentCollectionMode,Qe]),qs=a.useMemo(()=>h||I||Qe||!v||pi||Oo||Ld!=="approved"&&!Lo||Gt?!1:(v==null?void 0:v.orderType)==="visit_charge"||(v==null?void 0:v.visitPurchase)===!0?!0:(v==null?void 0:v.paymentStatus)!=="paid",[h,I,Qe,pi,Oo,Ld,Lo,Gt,v==null?void 0:v.orderType,v==null?void 0:v.visitPurchase,v==null?void 0:v.paymentStatus]),km=Gt,fi=a.useMemo(()=>pi?{title:"Patient preference",description:null,infoLabel:No({paymentStatus:v==null?void 0:v.paymentStatus,rxQueued:Qe,vaultMedAutoChargePending:Ct}),testId:Ct?"vault-charge-product-pending-medication":"vault-charge-product"}:km?(v==null?void 0:v.paymentStatus)==="paid"&&!Ct?{title:"Patient preference",description:null,infoLabel:No({paymentStatus:v==null?void 0:v.paymentStatus,rxQueued:Qe,vaultMedAutoChargePending:Ct}),testId:"purchased-product"}:Qe?{title:"Patient preference",description:null,infoLabel:No({paymentStatus:v==null?void 0:v.paymentStatus,rxQueued:!0,vaultMedAutoChargePending:Ct}),testId:"assessment-first-product-pending-payment"}:{title:"Patient preference",description:null,infoLabel:No({paymentStatus:v==null?void 0:v.paymentStatus,rxQueued:!1,vaultMedAutoChargePending:Ct}),testId:Ct?"vault-charge-product-pending-medication":"assessment-first-product"}:{title:"Purchased product",description:null,infoLabel:null,testId:"purchased-product"},[v==null?void 0:v.paymentStatus,Qe,km,pi,Ct]),[Bs,Lr]=a.useState(!1),[Cm,jm]=a.useState(!1),qr=a.useCallback(async e=>{jm(!0);try{await e()}finally{jm(!1)}},[]),[yi,Kg]=a.useState({}),[vm,wg]=a.useState(null),[gi,To]=a.useState(null),[p,bi]=a.useState(()=>vo(m,P));a.useEffect(()=>{const e=D(p.clientId);if(!e){br(!1);return}const r=My(Ss(Ne,"Clients",e),t=>{const n=t.exists()?t.data():{};br((n==null?void 0:n.finiteInstallmentBillingEnabled)===!0&&(n==null?void 0:n.vaultChargeOrdersEnabled)===!0)},()=>br(!1));return()=>r()},[p.clientId]);const{pharmacySendDisabled:Br,pharmacySendResolved:Qg}=LI(D(p.clientId||(m==null?void 0:m.clientId)||((Df=P==null?void 0:P.orderData)==null?void 0:Df.clientId)),D(En)||null),jt=Qg&&!Br,[Mm,Fd]=a.useState([]),[,Em]=a.useState(!1),[vt,Am]=a.useState(()=>xd(m)[0]||(m==null?void 0:m.orderId)||null),[Lm,qm]=a.useState(null),Me=fg(m),[re,Ii]=a.useState(()=>Tg(m,P)&&P.purchasedProductContext||null),[nr,Od]=a.useState([]),ga=a.useRef(null);ga.current||(ga.current=_r());
1const[Bm,_o]=a.useState(!1),[Td,$o]=a.useState(!1),[Vm,Ko]=a.useState(!1),hi=[m==null?void 0:m.reviewPurpose,m==null?void 0:m.requestSource].some(e=>String(e||"").trim()==="client_prescription_request"),Tn=a.useMemo(()=>{if(!hi)return"";const e=String((m==null?void 0:m.formReviewDraftGroupId)||(m==null?void 0:m.clientPrescriptionRequestId)||"").trim();if(e)return e;const r=nr.find(t=>(t==null?void 0:t.clientPrescriptionRequest)===!0&&String((t==null?void 0:t.status)||"").trim().toLowerCase()==="pending_provider_finalization");return String((r==null?void 0:r.draftGroupId)||"").trim()},[m==null?void 0:m.clientPrescriptionRequestId,m==null?void 0:m.formReviewDraftGroupId,nr,hi]),Fm=hi?String((m==null?void 0:m.prescriberNotes)||"").trim():"",Mt=a.useMemo(()=>Tn?nr.filter(e=>String((e==null?void 0:e.draftGroupId)||"").trim()===Tn&&String((e==null?void 0:e.status)||"").trim().toLowerCase()==="pending_provider_finalization"):[],[Tn,nr]),Vr=!I&&!h&&Mt.length>0,at=a.useMemo(()=>new Set(Vr?Mt.map(e=>e.id).filter(Boolean):[]),[Mt,Vr]),_d=Vr&&String(((Uf=Mt[0])==null?void 0:Uf.requestedDispatchMode)||"").trim().toLowerCase()==="patient_payment",Om=a.useRef(""),[ba,Ia]=a.useState(()=>BP(m,P,h)),[He,ha]=a.useState(()=>{const r=vo(m,P).orderId;return!r||!(P!=null&&P.orderData)||String(P.orderId)!==String(r)?null:D(P.orderData.productId)||null}),[wo,Qo]=a.useState({}),[Si,Do]=a.useState({}),[Sa,Uo]=a.useState({}),[Tm,zo]=a.useState({}
1),[_m,$m]=a.useState(!1),[Dg,Km]=a.useState(""),[rn,$d]=a.useState([]),[yt,Kd]=a.useState({}),[wd,Qd]=a.useState(!1),[Ye,Go]=a.useState([]),[Ir,Jo]=a.useState({}),[_n,Dd]=a.useState({}),[Ve,Wo]=a.useState({}),[xi,Ud]=a.useState(!1),[hr,Ho]=a.useState(!1),wm=a.useRef(new Set),xa=a.useRef(new Map),Qm=a.useRef(""),[gt,Yo]=a.useState({}),[Xo,Zo]=a.useState({}),[O,Ro]=a.useState(()=>{const r=vo(m,P).orderId;return r&&String(P==null?void 0:P.orderId)===String(r)&&Array.isArray(P==null?void 0:P.pharmacies)?P.pharmacies:[]}),[Jt,Pa]=a.useState({}),[zd,ec]=a.useState({}),[Gd,Jd]=a.useState(""),[tn,Dm]=a.useState(""),[Ug,zg]=a.useState(""),sn=a.useRef(new Set),[$r,bt]=a.useState(()=>fg(m)?!1:qP(m,P)),[,Gg]=a.useState(!1),[Na,ka]=a.useState(!1),[Um,Et]=a.useState(""),[nn,$n]=a.useState(""),[Ca,rc]=a.useState(""),[ja,Jg]=a.useState(0),[zm,Wd]=a.useState(!1),tc=a.useCallback(()=>{rc(""),$n(""),Wd(!1),Jg(e=>e+1),Re==null||Re()},[Re]),[Wt,va]=a.useState(""),[sc,Ma]=a.useState(""),[Wg,Kn]=a.useState(!1),[an,Hd]=a.useState(null),[Ht,Gm]=a.useState(null),[nc,Jm]=a.useState(!1),[Wm,Yd]=a.useState({}),[ic,Xd]=a.useState(!1),[on,Ea]=a.useState(""),[cn,Yt]=a.useState(Cn),[Se,Hm]=a.useState(""),[Pi,Ym]=a.useState([]),[lr,wn]=a.useState(""),[Xe,Qn]=a.useState(""),[Ni,Xm]=a.useState(""),[Ee,ac]=a.useState(""),[rr,Zd]=a.useState(!1),[ur,Rd]=a.useState(null),[Hg,Zm]=a.useState(!1),[Rm,ep]=a.useState(""),rp=a.useRef(""),tp=a.useRef(""),sp=a.useRef(""),[Z,Sr]=a.useState(""),[ke,Jr]=a.useState(""),[xr,It]=a.useState("associated"),[el,np]=a.useState(!0),[ip,rl]=a.useState(!1),[ap,tl]=a.useState(!1),[op,sl]=a.useState(""),[cp,oc]=a.useState(!1),[Dn,Yg]=a.useState(null),[fe,cc]=a.useState(!1),[dn,dc]=a.useState([]),[Wr,Aa]=a.useState(""),[Un,La]=a.useState(!1),[qa,ki]=a.useState({code:"",patientState:""}),[zn,lc]=a.useState([]),[nl,dp]=a.useState(!1),[Gn,Ba]=a.useState(""),[Jn,uc]=a.useState(!1),[Xt,Fr]=a.useState(!1),Zt=a.useRef(null),Wn=a.useRef(null);Wn.current||(Wn.current=Xx());const ee=a.useCallback(e=>Wn.current.wrap(e),[]),mc=a.useRef(!0),pc=a.useRef(!1),il=a.useRef(null),al=a.useRef(""),ol=a.useRef(""),cl=a.useRef(""),Va=a.useRef(""),dl=a.useRef(""),At=a.useRef(""),ll=a.useRef(""),ul=a.useRef(new Set),fc=a.useRef(new Map),lp=a.useRef(null),Pr=a.useRef(P),Vs=a.useRef({}),ml=a.useRef(""),pl=a.useRef(""),fl=a.useRef(!1),yl=a.useRef(null),gl=a.useRef(o);gl.current=o;const bl=a.useRef(new Map),up=a.useRef(null),yc=a.useRef(""),mp=a.useRef(new Map),Fa=a.useRef(new Map),pp=a.useRef(!1),Ci=a.useRef(!1),Xg=a.useRef(!1),[fp,Zg]=a.useState(!1),ln=a.useCallback(()=>{Xg.current=!0,Zg(!0)},[]),yp=a.useRef([]),gc=a.useRef(null),Il=a.useRef(0),Oa=a.useRef(""),bc=a.useRef(null),gp=a.useRef("associated"),Lt=a.useRef(O),Ic=a.useRef({});lp.current=m,Pr.current=P,Vs.current=Jt;const bp=(P==null?void 0:P.chartReviewId)??null,hl=(P==null?void 0:P.orderId)??"",Rg=(P==null?void 0:P.pharmaciesLoading)===!0,Sl=Array.isArray(P==null?void 0:P.pharmacies)?P.pharmacies.length:0,Ip=(P==null?void 0:P.purchasedProductContextLoaded)===!0,hp=(P==null?void 0:P.purchasedProductOrderId)??"",xe=a.useMemo(()=>{const e=D(p.providerNetworkId),r=D(p.clientId),t=D(p.businessId);return p.orderId?{orderId:p.orderId}:e||t?{providerNetworkId:e,clientId:r,businessId:t,...p.orderId?{orderId:p.orderId}:{}}:p.orderId?{orderId:p.orderId}:null},[p.clientId,p.orderId,p.businessId,p.providerNetworkId]),Hn=a.useMemo(()=>({shippingInfo:p.shippingInfo||null,billingInfo:p.billingInfo||null}),[p.shippingInfo,p.billingInfo]),{launchScriptSure:ji,correctionModalProps:eb}=zh({patientId:u,patientData:se,orderData:Hn,canCorrectAddress:!I&&ju(On,["Provider","Provider Network Admin","Business Provider"]),accentColor:kt}),ot=!!xe,vi=JSON.stringify([We==null?void 0:We.id,On,o,xe]),Sp=a.useRef(vi),xl=a.useRef(null);Sp.current=vi;const Pl=a.useRef(new Map),hc=a.useRef(new Map);a.useLayoutEffect(()=>{Vs.current={},Pa({}),Et("")},[vi]);const qt=a.useMemo(()=>Gh({allowProviderSelection:_,selectedProviderId:Wr,effectiveProviderId:F,encounterProviderId:Dn,actingProviderId:pa}),[_,Wr,F,Dn,pa]),Sc=pd(Qu({patientData:se,orderData:Hn})),Mi=!_&&!!qt&&(ue===!1||(ur==null?void 0:ur.providerId)!==qt||(ur==null?void 0:ur.providerNetworkId)!==(p.providerNetworkId||null)),xc=_||Mi?"":ur!=null&&ur.failed?Xi.CHECK_FAILED:(ur==null?void 0:ur.active)===!1?Xi.NO_ACTIVE_PROVIDER:Sc&&(ur==null?void 0:ur.enforced)!==!1&&!JS(((ur==null?void 0:ur.licenses)||[]).filter(e=>pd(e.stateCode)===Sc&&WS(e)).map(e=>e.licenseType))?Xi.NO_LICENSED_PROVIDER:"",Nl=_?Un||!!qa.code||!dn.some(e=>e.id===qt):Mi||!!xc,Ei=Nl?"":qt,Pc=a.useMemo(()=>Jh({issue:_?qa.code:xc,patientState:_?qa.patientState:Sc,loading:_?Un:Mi,allowProviderSelection:_,hasProviderOptions:dn.length>0}),[xc,Sc,Mi,_,Un,qa.code,qa.patientState,dn.length]),rb=15e3,Ta=a.useRef(null);Ta.current={loading:_?Un:Mi,providerId:Ei,message:Pc};const xp=a.useRef([]);a.useEffect(()=>
1{Ta.current.loading||xp.current.splice(0).forEach(e=>e())});const Kr=a.useCallback(async()=>(Ta.current.loading&&await new Promise(e=>{xp.current.push(e),setTimeout(e,rb)}),Ta.current),[]),Yn=a.useMemo(()=>({clientId:p.clientId,businessId:p.businessId,providerNetworkId:p.providerNetworkId}),[p.clientId,p.businessId,p.providerNetworkId]),Ae=a.useCallback(e=>{const r=((e==null?void 0:e.pharmacyName)||(e==null?void 0:e.name)||(e==null?void 0:e.id)||"").trim(),t=((e==null?void 0:e.integrationName)||"").trim();return!t||r.includes(t)?r:`${r} (${t})`},[]),Te=a.useCallback((e,r="")=>({pharmacyOptionId:r||(e==null?void 0:e.id)||"",pharmacyId:(e==null?void 0:e.pharmacyId)||"",externalPharmacyId:(e==null?void 0:e.pharmacyId)||"",pharmacyName:e?Ae(e):"",pharmacyIntegrationId:(e==null?void 0:e.integrationId)||"",pharmacyIntegrationScopeType:(e==null?void 0:e.integrationScopeType)||"",pharmacyIntegrationScopeId:(e==null?void 0:e.integrationScopeId)||"",pharmacyIntegrationName:(e==null?void 0:e.integrationName)||"",pharmacySource:(e==null?void 0:e.source)||""}),[Ae]),_a=a.useCallback(async({force:e=!1,routingPayload:r=xe}={})=>{if(!Me||!r)return!1;const t=JSON.stringify(r);if(!e&&Lt.current.length>0&&Oa.current===t)return Ci.current=!0,bt(!1),Lt.current.length,!0;if(bc.current)return bc.current;const n=(async()=>{bt(!0);try{const c=await my(r),l=Yu(c==null?void 0:c.pharmacies,Ae);Ro(l),Oa.current=t,Ci.current=l.length>0;const d=Au(l,pl.current),y=ml.current;if(gp.current!=="manual"&&!y&&d.length>0){const g=d[0];Sr(g.id),de(x=>({...x,...Te(g)}))}return l.length,$n(""),l.length>0}catch(c){return ae(c,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:1310"}),console.error("Error loading shared form-request pharmacies:",c),c!=null&&c.message||String(c),Ci.current=!1,$n(yd),!1}finally{ln(),bt(!1),bc.current=null}})();return bc.current=n,n},[Te,Ae,ln,Me,xe]),be=a.useCallback(e=>Xu(e),[]),Oe=a.useMemo(()=>({clientOverridesByKey:Tm,networkOverridesByKey:Sa,clientId:p.clientId,providerNetworkId:p.providerNetworkId}),[Tm,Sa,p.clientId,p.providerNetworkId]),Fs=a.useCallback((e,r=null)=>{const t=be(e);if(!e||!p.clientId&&!p.providerNetworkId)return t;const n=gS({...Oe,pharmacy:r,medicationId:ce(e)});return n?Xu({...e,displayName:n}):t},[be,p.clientId,p.providerNetworkId,Oe]),Rt=a.useCallback(e=>{var n;const r=wt([e==null?void 0:e.category,e==null?void 0:e.drugCategory,e==null?void 0:e.type,e==null?void 0:e.dosageForm,e==null?void 0:e.standardizedDoseForm,(n=e==null?void 0:e.rawMedication)==null?void 0:n.dosageForm].filter(Boolean).join(" ")),t=wt(be(e));return r.includes("supplies")||r.includes("syringe")||r.includes("needle")||t.includes("syringe")||t.includes("needle")},[be]),Nc=a.useCallback(e=>{var n,c;const r=wt([e==null?void 0:e.type,e==null?void 0:e.category,e==null?void 0:e.drugCategory,e==null?void 0:e.dosageForm,e==null?void 0:e.form,e==null?void 0:e.route,e==null?void 0:e.standardizedDoseForm,e==null?void 0:e.standardizedRoute,(n=e==null?void 0:e.rawMedication)==null?void 0:n.dosageForm,(c=e==null?void 0:e.rawMedication)==null?void 0:c.route].filter(
1Boolean).join(" ")),t=wt(be(e));return r.includes("inject")||r.includes("inj")||t.includes("inject")||t.includes("vial")},[be]),Pp=a.useCallback(e=>{const r=D((e==null?void 0:e.linkedClientProductId)||(e==null?void 0:e.clientProductId)||(e==null?void 0:e.advertisedClientProductId)||"");return r&&Ye.find(t=>D(t.clientProductId||t.catalogEntryId||t.id)===r||jr(t)===r)||null},[Ye]),Np=a.useCallback(()=>{const e=[p.clientProductId,He].map(t=>D(t)).filter(Boolean),r=new Set;for(const t of e){if(r.has(t))continue;r.add(t);const n=Ye.find(c=>D(c.clientProductId||c.catalogEntryId||c.id)===t||jr(c)===t);if(n)return n}return null},[p.clientProductId,He,Ye]),kp=a.useCallback((e,r)=>{const t=ce(r||{});return!t||!p.clientId?null:Lu({...Oe,networkOverridesByKey:{},pharmacy:e||{},medicationId:t})},[p.clientId,Oe]),Cp=a.useCallback((e,r)=>{const t=ce(r||{});return!t||!p.providerNetworkId?null:Lu({...Oe,clientOverridesByKey:{},pharmacy:e||{},medicationId:t})},[p.providerNetworkId,Oe]),Hr=a.useCallback((e,r,{variantQuantity:t=null,presetQuantity:n=null,catalogProduct:c=null,allowPurchasedFillQuantity:l=!1,line:d=null}={})=>{const y=qI({catalogProduct:c||(d?Pp(d):null)||Np(),orderClientProductId:p.clientProductId,purchasedFillQuantity:(re==null?void 0:re.prescriptionFillQuantity)??null,purchasedProductDisplayName:(re==null?void 0:re.displayName)??null}),g=BI({variantQuantity:t,presetQuantity:n,clientMedicationQuantity:kp(e,r),networkMedicationQuantity:Cp(e,r),catalogProduct:y,purchasedFillQuantity:(re==null?void 0:re.prescriptionFillQuantity)??null,orderClientProductId:p.clientProductId,allowPurchasedFillQuantity:l});return Ay(e,r,g)},[kp,Cp,p.clientProductId,re==null?void 0:re.displayName,re==null?void 0:re.prescriptionFillQuantity,Pp,Np]),es=a.useCallback((e,r,t)=>bS(e,r,t),[]),rs=a.useCallback((e,r)=>IS(e,r),[]),$a=a.useMemo(()=>Au(O,Se),[O,Se]),kl=a.useMemo(()=>{const e=new Set;$a.forEach(t=>{if(wt(t==null?void 0:t.source)!=="scriptsure")return;const n=hd(t,Yn);n&&e.add(n)});const r=hd(null,Yn);return r&&e.add(r),Array.from(e).sort()},[Yn,$a]);a.useEffect(()=>{if(!qt||kl.length===0){Yd({}),Xd(!1);return}let e=!1;return Xd(!0),(async()=>{try{const r=await Promise.all(kl.map(async t=>{const n=mg(qt,t);if(!n)return null;const c=await zs(Ss(Ne,"Users",qt,"ScriptSureMappings",t));return[n,c.exists()?c.data():null]}));if(e)return;Yd(Object.fromEntries(r.filter(Boolean)))}catch(r){ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:1513"}),console.error("Error loading ScriptSure provider mappings:",r),e||Yd({})}finally{e||Xd(!1)}})(),()=>{e=!0}},[qt,kl]);const Cl=a.useCallback(e=>{const r=mg(qt,e);return!r||ic?!1:EP(Wm[r])},[ic,qt,Wm]),jp=a.useCallback(e=>{if(wt(e==null?void 0:e.source)!=="scriptsure")return!0;const r=hd(e,Yn);return Cl(r)},[Cl,Yn]),Ka=$a,tb=a.useCallback(e=>wt(e==null?void 0:e.source)!=="scriptsure"?null:ic?"Checking your ScriptSure prescriber mappingâ¦":jp(e)?null:"A verified ScriptSure prescriber mapping is required before you can prescribe from this pharmacy. Ask a Provider Network Admin to verify it in ScriptSure settings.",[jp,ic]),$e=a.useMemo(()=>[...Ka].sort((e,r)=>Ae(e).localeCompare(Ae(r))),[Ka,Ae]),vp=a.useMemo(()=>$e.filter(e=>String((e==null?void 0:e.source)||"").toLowerCase()!=="scriptsure"),[$e]),Ce=vp,sb=a.useMemo(()=>Ka.length===0?!1:Ka.every(e=>wt(e==null?void 0:e.source)==="scriptsure"),[Ka]),E=!h&&!sb,wa=ne&&E,kc=a.useMemo(()=>{if(!wa)return!1;const e=K.filter(r=>String((r==null?void 0:r.status)||"").toLowerCase()!=="submitted");return e.length>0&&e.every(r=>!!String((r==null?void 0:r.clientProductId)||(r==null?void 0:r.linkedClientProductId)||(r==null?void 0:r.advertisedClientProductId)||"").trim())},[K,wa]),ts=(qs||sr)&&!wa,Ie=a.useMemo(()=>zn.find(e=>Hu(e,Gn))||null,[zn,Gn]),Cc=a.useMemo(()=>Ie?{productId:Ie.productId,clientProductId:Ie.clientProductId||null,catalogEntryId:Ie.catalogEntryId||null,businessId:Ie.businessId||null,providerNetworkId:Ie.providerNetworkId||null,displayName:Ie.displayName,customerPrice:Ie.customerPrice??null,type:"protocol"}
1:null,[Ie]),he=a.useMemo(()=>Ar.find(e=>Hu(e,Rs))||null,[Ar,Rs]),ct=a.useMemo(()=>K.find(e=>String((e==null?void 0:e.status)||"").toLowerCase()!=="submitted")||null,[K]),nb=a.useMemo(()=>wa?CP(ct,Ye):null,[ct,Ye,wa]),wr=he||nb,Os=a.useMemo(()=>sr&&di&&Ah(wr||{}),[sr,di,wr]),jl=a.useMemo(()=>!Os||!wr?null:Lh(Vg(wr.customerPrice)),[Os,wr]),Ai=a.useMemo(()=>Os?Fn==="split_3"?"split_3":"pay_in_full":null,[Os,Fn]);a.useEffect(()=>{en(Os?e=>e||"pay_in_full":"")},[Os,wr]);const vl=a.useMemo(()=>!ne||!E?[]:h||I||or?[]:K.filter(e=>(e==null?void 0:e.status)!=="submitted"&&(e==null?void 0:e.productResolutionKind)==="custom"),[K,or,ne,I,h,E]),Qr=vl.length>0,Qa=a.useMemo(()=>{const e=vl[0];return e?String(e.clientProductId||e.linkedClientProductId||e.advertisedClientProductId||"").trim():""},[vl]),Mp=String((m==null?void 0:m.approvalStatus)||"").trim().toLowerCase()==="approved",jc=Qr&&(Mp||Lo)&&!!Qa,Ep=Qe&&!Br,un=a.useMemo(()=>!jt||h||I||Qe?!1:Oo||jc?!0:qs&&(!!he||kc),[jt,h,I,Qe,Oo,jc,qs,kc,he]),mn=a.useMemo(()=>jt&&(un||qs||Qe||Qr),[jt,un,qs,Qe,Qr]),Ts=a.useMemo(()=>{var e,r,t,n,c,l,d;return{...vo(m,P),...p,orderId:p.orderId||(m==null?void 0:m.orderId)||(P==null?void 0:P.orderId)||null,clientId:p.clientId||(m==null?void 0:m.clientId)||((e=P==null?void 0:P.orderData)==null?void 0:e.clientId)||null,businessId:p.businessId||(m==null?void 0:m.businessId)||((r=P==null?void 0:P.orderData)==null?void 0:r.businessId)||null,providerNetworkId:p.providerNetworkId||(m==null?void 0:m.providerNetworkId)||((t=P==null?void 0:P.orderData)==null?void 0:t.providerNetworkId)||null,clientProductId:p.clientProductId||(m==null?void 0:m.clientProductId)||((n=P==null?void 0:P.orderData)==null?void 0:n.clientProductId)||null,productName:p.productName||(m==null?void 0:m.productName)||((c=P==null?void 0:P.orderData)==null?void 0:c.productName)||"",shippingInfo:p.shippingInfo||((l=P==null?void 0:P.orderData)==null?void 0:l.shippingInfo)||(m==null?void 0:m.shippingInfo)||null,billingInfo:p.billingInfo||((d=P==null?void 0:P.orderData)==null?void 0:d.billingInfo)||null}},[m,p,P]),Bt=Ts.orderId,Da=a.useCallback(async()=>{const e=xd(m);if(!(m!=null&&m.formRequestProductApproval)||e.length===0)return Fd([]),[];const t=(await Promise.all(e.map(async n=>{const c=await zs(Ss(Ne,"Orders",n));if(!c.exists())return null;const l=c.data()||{};return{orderId:n,productName:l.productName||l.displayName||"Product",clientProductId:l.clientProductId||null,productId:l.productId||null,paymentStatus:l.paymentStatus||null,prescriptionSubmissionJobStatus:l.prescriptionSubmissionJobStatus||null,queuePrescriptionReviewStatus:l.queuePrescriptionReviewStatus||null,statusLabel:yg(l)}}))).filter(Boolean);return Fd(t),t},[m]),Ap=a.useCallback(()=>{const e=$e[0]||null;if(!e){It("manual"),Sr(sa),Jr(""),Er(null),Fr(!1),E?X(ko(m,{mode:"manual"})):de({...jn,mode:"manual"});return}const r=Te(e);if(It("associated"),Jr(""),Er(null),Fr(!1),Sr(e.id),E){X(ko(m,r));return}de({...jn,...r,mode:"associated"})},[Te,$e,E,m]),Lp=a.useCallback(e=>{e&&(de(e.prescriptionData||jn),X(Array.isArray(e.fulfillmentPrescriptions)&&e.fulfillmentPrescriptions.length>0?e.fulfillmentPrescriptions:[_r()]),Sr(e.selectedPharmacyId||""),Jr(e.selectedProductId||""),It(e.primaryPrescriptionMode||"associated"),Er(e.prescriptionRecommendation||null),e.viosClinicalDifferenceStatement&&wn(e.viosClinicalDifferenceStatement),e.dirxMedicalNecessityStatement&&Qn(e.dirxMedicalNecessityStatement),Fr(!1))},[]),vc=a.useCallback(async e=>{const r=String(e||"").trim();if(!r||gc.current===r)return;if(String(p.orderId||"")===r){if(Am(r),Lt.current.length===0){const d=gg({...p,clientId:p.clientId||(m==null?void 0:m.clientId)||null,businessId:p.businessId||(m==null?void 0:m.businessId)||null,providerNetworkId:p.providerNetworkId||(m==null?void 0:m.providerNetworkId)||null,orderId:r});d?_a({force:!0,routingPayload:d}):(bt(!1),ln())}return}const t=String(p.orderId||vt||"").trim();t&&t!==r&&Fa.current.set(t,{...Ic.current}),gc.current=r,qm(r),Am(r),Fr(!1),Qo({}),Do({}),Er(null),Ln(!1);const n=yp.current.find(d=>String(d.orderId)===r),c={orderId:r,clientId:(m==null?void 0:m.clientId)||p.
1clientId||null,businessId:(m==null?void 0:m.businessId)||p.businessId||null,providerNetworkId:(m==null?void 0:m.providerNetworkId)||p.providerNetworkId||null,clientProductId:(n==null?void 0:n.clientProductId)||p.clientProductId||null,productName:(n==null?void 0:n.productName)||p.productName||"",shippingInfo:p.shippingInfo||null,billingInfo:p.billingInfo||null,prescriptionSubmissionJobId:p.prescriptionSubmissionJobId||null,prescriptionDocId:p.prescriptionDocId||null};bi(c),ha(D(n==null?void 0:n.productId)||null),cr({orderType:"product",checkoutFlow:null,formRequestProductApproval:!0,paymentStatus:(n==null?void 0:n.paymentStatus)||null,prescriptionSubmissionJobStatus:(n==null?void 0:n.prescriptionSubmissionJobStatus)||null});const l=gg(c);Lt.current.length===0&&l?_a({force:!0,routingPayload:l}):(bt(!1),ln(),Lt.current.length>0&&(Ci.current=!0)),Lt.current.length,Ci.current;try{const d=await zs(Ss(Ne,"Orders",r));if(!d.exists()){return}const y=d.data()||{};bi({orderId:r,clientId:y.clientId||(m==null?void 0:m.clientId)||null,businessId:y.businessId||(m==null?void 0:m.businessId)||null,providerNetworkId:y.providerNetworkId||(m==null?void 0:m.providerNetworkId)||null,clientProductId:y.clientProductId||null,productName:y.productName||y.displayName||"",shippingInfo:y.shippingInfo||null,billingInfo:y.billingInfo||null,prescriptionSubmissionJobId:y.prescriptionSubmissionJobId||null,prescriptionDocId:y.prescriptionDocId||null}),ha(D(y.productId)||null),cr(ia(y)),Ii(null),Ia(!0);const g=Fa.current.get(r);g?Lp(g):Ap(),D(y.productId),y.clientProductId,yg(y)}catch(d){ae(d,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:1975"}),console.error("Unable to load form-request product order",d),d!=null&&d.message||String(d),C.error("Unable to load the selected product order.")}finally{gc.current===r&&(gc.current=null,qm(d=>d===r?null:d))}},[vt,Lp,ln,Ap,m==null?void 0:m.clientId,m==null?void 0:m.businessId,m==null?void 0:m.providerNetworkId,_a,p.billingInfo,p.clientProductId,p.orderId,p.prescriptionDocId,p.prescriptionSubmissionJobId,p.productName,p.providerNetworkId,p.shippingInfo]);a.useEffect(()=>{if(!(m!=null&&m.formRequestProductApproval)){Fd([]);return}let e=!1;return Em(!0),Da().catch(r=>{ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Unable to load form-request product orders",r)}).finally(()=>{e||Em(!1)}),()=>{e=!0}},[m==null?void 0:m.formRequestProductApproval,m==null?void 0:m.formRequestProductOrderIds,m==null?void 0:m.orderId,Da]),a.useEffect(()=>{yp.current=Mm},[Mm]),a.useEffect(()=>{!Me||!vt||String(p.orderId||"")!==String(vt)&&(Lm||vc(vt))},[Me,vt,p.orderId,Lm,vc]),a.useEffect(()=>{if(!Me||v!==null)return;const e=String(vt||Bt||"").trim();if(!e)return;let r=!1;return(async()=>{try{const t=await zs(Ss(Ne,"Orders",e));if(r)return;const n=t.exists()?ia(t.data()||{}):{orderType:"product",checkoutFlow:null,formRequestProductApproval:!0,paymentStatus:null,prescriptionSubmissionJobStatus:null};cr(c=>c!==null?c:aa(n,m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId)),t.exists()}catch(t){if(ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:2094"}),r)return;console.error("Unable to resolve form-request checkout meta",t),rc(Zy)}})(),()=>{r=!0}},[Me,v,vt,Bt,m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId]),a.useEffect(()=>{Lt.current=O},[O]),a.useEffect(()=>{Ic.current={prescriptionData:S,fulfillmentPrescriptions:K,selectedPharmacyId:Z,selectedProductId:ke,primaryPrescriptionMode:xr,prescriptionRecommendation:w,viosClinicalDifferenceStatement:lr,dirxMedicalNecessityStatement:Xe}},[Xe,K,S,w,xr,Z,ke,lr]),a.useEffect(()=>{if(!fe||!Me||pp.current)return;const e=String(vt||p.orderId||"").trim();e&&(Fa.current.has(e)||Fa.current.set(e,{...Ic.current}),pp.current=!0)},[vt,fe,Me,p.orderId]);const ib=a.useMemo(()=>bg(m,P),[m,P]),Ml=v??ib,El=a.useMemo(()=>!!(Bt&&String(P==null?void 0:P.orderId)===String(Bt)&&Array.isArray(P==null?void 0:P.pharmacies)),[P==null?void 0:P.orderId,P==null?void 0:P.pharmacies,Bt]),Dr=a.useMemo(()=>Jx({isEditingQueuedPrescriptionReview:it,chartReviewError:Le,recommendationOnly:h,chartReviewHydrated:Pe,chartReviewId:o,resolvedOrderId:Bt,isFormRequestMultiProduct:Me,effectiveAssessmentFirstCheckoutMeta:Ml,formRequestPharmacyLoadSettled:fp,pharmaciesPreloaded:El,loadingPharmacies:$r}),[it,Le,h,Pe,o,Bt,Me,Ml,fp,El,$r]),ab=K.some(e=>e.pharmacyProductId||e.medicationName)||!!(S.pharmacyProductId||S.medicationName),pn=Dr&&!(Pe&&!Le&&ab);a.useEffect(()=>{if(!Dr){Wd(!1);return}const e=setTimeout(()=>Wd(!0),Ux);return()=>clearTimeout(e)},[Dr,ja,Bt,o]);const Mc=a.useMemo(()=>Wx({chartReviewError:Le,orderLoadError:Ca,prescribeContextTimedOut:zm}),[Le,Ca,zm]);a.useEffect(()=>{},[vt,Pe,Ml,O.length,Me,$r,p.orderId,He,El,xe,Bt,pn]);const ob=a.useMemo(()=>
1{if(h)return!1;if(Bt)return!0;const e=D(He),r=D(Ts.clientProductId);return!e&&!r&&!String(Ts.productName||"").trim()?!1:!!(Ts.clientId||Ts.businessId)},[h,Bt,He,Ts.clientProductId,Ts.clientId,Ts.businessId,Ts.productName]),Al=(P==null?void 0:P.purchasedProductCard)||null,Ll=Al&&(!p.orderId||String(p.orderId)===String(Al.orderId||""))?Al:{purchasedProduct:re,fallbackName:p.productName||"",pending:ba},Ec=Fm?i.jsx(Wh,{note:Fm,productLabel:String((re==null?void 0:re.displayName)||p.productName||"").trim()||null,testId:G("section","charting","client-request-note")}):null,qp=!!(ob&&(Ll.pending||lx(Ll))),cb=!!(it&&Ep&&!re),A=a.useMemo(()=>he!=null&&he.productId&&ts?{id:he.productId,productId:he.productId,clientProductId:he.clientProductId||"",catalogEntryId:he.catalogEntryId||he.clientProductId||he.productId,providerNetworkId:he.providerNetworkId||p.providerNetworkId||"",displayName:he.displayName||p.productName||""}:Ie!=null&&Ie.productId&&Ie.scope!=="business"?{id:Ie.productId,productId:Ie.productId,clientProductId:Ie.clientProductId||"",catalogEntryId:Ie.catalogEntryId||Ie.clientProductId||Ie.productId,providerNetworkId:Ie.providerNetworkId||p.providerNetworkId||"",displayName:Ie.displayName||p.productName||""}:He?{id:He,productId:He,clientProductId:p.clientProductId||"",catalogEntryId:p.clientProductId||He,providerNetworkId:p.providerNetworkId||"",displayName:p.productName||""}:null,[p.clientProductId,p.productName,p.providerNetworkId,He,Ie,he,ts]),ht=a.useMemo(()=>ne?wo:wu(A)?{}:wo,[ne,A,wo]),Yr=a.useMemo(()=>({mappings:ht,fallbackMappings:Si,isVisit:!0}),[ht,Si]),ql=a.useMemo(()=>{const e=[A==null?void 0:A.clientProductId,p.clientProductId,A==null?void 0:A.catalogEntryId,A==null?void 0:A.productId,A==null?void 0:A.id,He],r=VI(Ye,e);return r?jr(r):""},[p.clientProductId,He,Ye,A==null?void 0:A.catalogEntryId,A==null?void 0:A.clientProductId,A==null?void 0:A.id,A==null?void 0:A.productId]),Li=a.useCallback(e=>{if(!e)return Yr;const r=jr(e);return!r||(ql?r===ql:[A==null?void 0:A.clientProductId,p.clientProductId].some(n=>{const c=D(n);return!!c&&(D(e.clientProductId||e.id)===c||na(e)===c)}))?Yr:{mappings:Ir[r]||{},fallbackMappings:{},isVisit:!1}},[p.clientProductId,Ir,A==null?void 0:A.clientProductId,Yr,ql]),fn=a.useCallback(e=>{const r=[e==null?void 0:e.clientProductId,e==null?void 0:e.linkedClientProductId,e==null?void 0:e.advertisedClientProductId,e==null?void 0:e.productFanoutProductKey];for(const t of r){const n=Su(Ye,t);if(n)return Li(n)}return Yr},[Li,Ye,Yr]),ss=a.useMemo(()=>{const e=O.find(r=>r.id===Z);return new Set(Dy(ht,Si,e||{},p.clientId||p.providerNetworkId))},[ht,O,Si,p.clientId,p.providerNetworkId,Z]),Ua=a.useCallback(e=>{const r=O.find(t=>t.id===e);return new Set(Dy(ht,Si,r||{},p.clientId||p.providerNetworkId))},[ht,O,Si,p.clientId,p.providerNetworkId]),{hiddenIds:Vt,ready:Xn}=Sx(Ne,{clientId:p.clientId,providerNetworkId:p.providerNetworkId}),R=a.useMemo(()=>{if(Object.keys(zd).length===0)return Jt;const e={...zd};return Object.entries(Jt).forEach(([r,t])=>{Array.isArray(t)&&(e[r]=t)}),e},[Jt,zd]),Ac=a.useCallback((e,r=[],t=[])=>{[...t,...r.map(n=>n.id)].forEach(n=>{n&&sn.current.add(`${e}>${n}`)}),r.length!==0&&ec(n=>({...n,[e]:xo(n[e],r)}))},[]),yn=a.useCallback(async(e,r=[])=>{if(!xe||!(e!=null&&e.id))return[];const t=await FI({routingPayload:xe,pharmacy:e,medicationIds:r,normalize:go});return Ac(e.id,t,r),t},[Ac,xe]),[Bp,db]=a.useState(0),Lc=a.useCallback((e,r)=>{const t=fc.current.get(e);if(t)return t;const n=ny(Ce,xt),c=n.filter(x=>x.id===(r==null?void 0:r.pharmacyOptionId)),l=c.length>0?c:n,d=D(r==null?void 0:r.medicationId),y=Fe((r==null?void 0:r.medicationName)||(r==null?void 0:r.medication)).toLowerCase();if(!xe||l.length===0||!d&&!y){const x={status:"done",promise:Promise.resolve({})};return fc.current.set(e,x),x}const g={status:"pending",promise:null};return g.promise=(async()=>{const x={};try{const N=await py({...xe,query:d||y,pharmacyOptionIds:l.map(q=>q.id),...Se?{patientState:Se}:{},page:1,perPage:30}),L=new Map;(Array.isArray(N==null?void 0:N.medications)?N.medications:[]).forEach(q=>{!(d?D(q.medicationId)===d:[q.medicationName,q.displayName,q.name].some(te=>Fe(te).toLowerCase()===y))||!q.pharmacyOptionId||(L.has(q.pharmacyOptionId)||L.set(q.pharmacyOptionId,[]),L.get(q.pharmacyOptionId).push(q.medicationId))}),await Promise.all([...L.entries()].map(async([q,Q])=>{const te=l.find(M=>M.id===q);te&&(x[q]=await yn(te,Q))}))}catch(N){console.warn("Unable to look up the recommended medication",(N==null?void 0:N.message)||N)}finally{g.status="done",db(N=>N+1)}return x})(),fc.current.set(e,g),g},[Ce,yn,Se,xe]),qc=a.useCallback((e,r)=>Lc(e,r).status,[Lc]),za=a.useMemo(()=>Xn?iy({pharmacies:Ce,pharmacyProductsById:R,customMedications:Object.values(_n),variantsById:Ve,getPharmacyKeys:e=>Gy(e,[p.clientId,p.providerNetworkId]),getPharmacyLabel:Ae,getProductLabel:Fs,getPreferredProductIds:Ua,isSupplyDrug:Rt,includeManualOption:!0,patientState:Se}):[],[Ce,_n,Ve,R,Se,Ae,Fs,Ua,Rt,Xn,p.clientId,p.providerNetworkId]),_s=a.useMemo(()=>Ju(za,Vt),[za,Vt]),Bl=!Xn||xi,Vp=a.useMemo(()=>
1{if(!ne||!E||h)return"";const e=new Set,r=t=>{const n=D(t);n&&e.add(n)};return K.forEach(t=>{r(t==null?void 0:t.clientProductId),r(t==null?void 0:t.linkedClientProductId),r(t==null?void 0:t.advertisedClientProductId)}),(Array.isArray(P==null?void 0:P.patientSelectedProducts)?P.patientSelectedProducts:[]).forEach(t=>{r(t==null?void 0:t.clientProductId),r(t==null?void 0:t.productId)}),r(A==null?void 0:A.clientProductId),r(A==null?void 0:A.catalogEntryId),r(A==null?void 0:A.productId),r(p.clientProductId),r(He),[...e].sort().join("|")},[K,p.clientProductId,He,P==null?void 0:P.patientSelectedProducts,ne,A,h,E]),Bc=JSON.stringify([p.orderId,p.clientId,p.providerNetworkId,A==null?void 0:A.productId,p.clientProductId,ne]),Fp=Dg===Bc,tr=a.useMemo(()=>Uu({pharmacies:Ce,prescriptionPrefills:[w,...ar.map(e=>e.recommendation)]}),[Ce,w,ar]),Vc=tr?`${vi}|${tr.key}|${[w,...ar.map(e=>e.recommendation)].map(e=>(e==null?void 0:e.formularyVariantId)||(e==null?void 0:e.variantId)||"").join("|")}`:"",gn=!!Vc&&Ug===Vc,lb=!!(w!=null&&w.medicationId||(zf=m==null?void 0:m.prescriptionRecommendation)!=null&&zf.medicationId||ar.some(e=>{var r;return(r=e.recommendation)==null?void 0:r.medicationId})),qi=!!(tr||$r&&lb)&&!gn&&(!tr||tn!==tr.key),Bi=a.useMemo(()=>{if(!ot)return null;if(tr&&!gn&&tn!==tr.key)return tr;const e=(hr?"":Vp).split("|").map(r=>Su(Ye,r)).filter(Boolean);return Uu({products:e,mappingsByKey:Ir,pharmacies:Ce,prescriptionPrefills:[w,...ar.map(r=>r.recommendation)]})},[tr,gn,tn,w,ar,Ce,hr,ot,Ye,Ir,Vp]),dt=(Bi==null?void 0:Bi.key)||"";a.useEffect(()=>{if(!Bi||!xe||Gd===dt&&(dt!==(tr==null?void 0:tr.key)||gn)||tn===dt)return;const e=Bi.items.map(t=>
1({item:t,pharmacy:Ce.find(n=>n.id===t.optionId)})).filter(({pharmacy:t})=>xt(t==null?void 0:t.source)&&(t==null?void 0:t.integrationId));if(e.length===0){Jd(dt);return}let r=!1;return(async()=>{try{const t=dt===(tr==null?void 0:tr.key),[n,c]=await Promise.all([Jy(fy,{...xe,pharmacies:e.map(({item:y,pharmacy:g})=>({integrationId:g.integrationId,integrationScopeType:g.integrationScopeType,integrationScopeId:g.integrationScopeId,pharmacyId:y.pharmacyId,medicationIds:y.medicationIds}))}),t?Px({db:Ne,requests:e,getOverrideKey:qu,normalizeVariant:NI,prefills:[w,...ar.map(y=>y.recommendation)],clientId:p.clientId,providerNetworkId:p.providerNetworkId}):null]);if(r)return;const l=Array.isArray(n==null?void 0:n.pharmacies)?n.pharmacies:[],d={};e.forEach(({item:y,pharmacy:g})=>{const x=yy(l,g);if(!x||x.success===!1)throw new Error((x==null?void 0:x.error)||"Unable to load selected medication.");d[y.optionId]=go(x.drugs)}),e.forEach(({item:y})=>{y.medicationIds.forEach(g=>{sn.current.add(`${y.optionId}>${g}`)})}),c&&(zo(y=>({...y,...c.clientOverrides})),Uo(y=>({...y,...c.networkOverrides})),Wo(y=>({...y,...c.variants})),zg(Vc)),ec(y=>{const g={...y};return Object.entries(d).forEach(([x,N])=>{g[x]=xo(y[x],N)}),g}),Jd(dt)}catch(t){if(ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:2549"}),r)return;console.warn("Unable to load targeted prefill medications",(t==null?void 0:t.message)||t),Dm(dt)}})(),()=>{r=!0}},[Ce,xe,tr==null?void 0:tr.key,gn,Vc,w,ar,p.clientId,p.providerNetworkId,tn,Bi,dt,Gd]);const Vl=a.useMemo(()=>Qx(K,O),[O,K]);a.useEffect(()=>{if(!Vl||!xe)return;const e=Dx(Vl).map(t=>({...t,medicationIds:t.medicationIds.filter(n=>!sn.current.has(`${t.optionId}>${n}`)&&!(Vs.current[t.optionId]||[]).some(c=>c.id===n))})).filter(t=>t.medicationIds.length>0);if(e.length===0)return;let r=!1;return(async()=>{try{const t=await Jy(fy,{...xe,pharmacies:e.map(l=>({integrationId:l.integrationId,integrationScopeType:l.integrationScopeType,integrationScopeId:l.integrationScopeId,p
1harmacyId:l.pharmacyId,medicationIds:l.medicationIds}))});if(r)return;const n=Array.isArray(t==null?void 0:t.pharmacies)?t.pharmacies:[],c={};if(e.forEach(l=>{const d=yy(n,l);(d==null?void 0:d.success)===!0&&(c[l.optionId]=go(d.drugs))}),Object.keys(c).length===0)return;e.forEach(l=>{c[l.optionId]&&l.medicationIds.forEach(d=>{sn.current.add(`${l.optionId}>${d}`)})}),ec(l=>{const d={...l};return Object.entries(c).forEach(([y,g])=>{d[y]=xo(l[y],g)}),d})}catch(t){r||console.warn("Unable to load saved prescription medications",(t==null?void 0:t.message)||t)}})(),()=>{r=!0}},[Vl,xe]);const Fl=!!dt&&Gd===dt,Ga=!!dt&&tn===dt,Ja=!dt||Fl||Ga,Op=a.useMemo(()=>[ot?"1":"0",String(Ce.length),Bl?"1":"0",Fl?"1":"0",Ga?"1":"0",xi?"1":"0",hr?"1":"0"].join(":"),[xi,Ce.length,Bl,hr,ot,Ga,Fl]),Ol=ot&&!xi&&!hr,Vi=Ol&&Ja,ub=a.useMemo(()=>{const e=[],r=new Set;return $e.forEach(t=>{const n=(t==null?void 0:t.id)||"";if(!n)return;const c=new Map;(R[n]||[]).forEach(l=>{if(Rt(l))return;const d=ce(l);d&&c.set(d,l)}),rn.forEach(l=>{const d=jr(l);if(!d)return;const y=ai(yt[d]||{},t,p.clientId),g=dg(l);y.forEach(x=>{const N=c.get(x);if(!N||!fo(N,Se))return;const L=`${n}:${N.id}:${g.clientProductId}`;r.has(L)||(r.add(L),e.push({key:L,pharmacy:t,product:N,pharmacyLabel:Ae(t),productLabel:be(N),secondaryLabel:[g.genericProductDisplay,g.priceLabel].filter(Boolean).join(" · "),isPreferred:!0,...g}))})})}),e.sort((t,n)=>{const c=t.pharmacyLabel.localeCompare(n.pharmacyLabel,void 0,{sensitivity:"base"});if(c!==0)return c;const l=t.productLabel.localeCompare(n.productLabel,void 0,{sensitivity:"base"});return l!==0?l:(t.secondaryLabel||"").localeCompare(n.secondaryLabel||"",void 0,{sensitivity:"base"})})},[rn,yt,Se,Ae,be,Rt,p.clientId,R,$e]),Fi=a.useMemo(()=>{if(wd||!ot)return"";const e=[];return $e.forEach(r=>{if(!(r!=null&&r.id)||!r.integrationId||!xt(r.source))return;const t=new Set;rn.forEach(n=>{const c=jr(n);c&&ai(yt[c]||{},r,p.clientId).forEach(l=>{l&&t.add(String(l))})}),t.size>0&&e.push(`${r.id}>${[...t].sort().join(",")}`)}),e.sort().join("|")},[rn,yt,wd,p.clientId,ot,$e]),[mb,pb]=a.useState("");a.useEffect(()=>{if(!Fi)return;let e=!1;const r=Fi.split("|").map(t=>{const[n,c]=t.split(">");return{pharmacy:$e.find(l=>l.id===n),medicationIds:c.split(",").filter(l=>!sn.current.has(`${n}>${l}`))}}).filter(t=>t.pharmacy&&t.medicationIds.length>0);return Promise.allSettled(r.map(t=>yn(t.pharmacy,t.medicationIds))).then(t=>{t.forEach(n=>{var c;n.status==="rejected"&&console.warn("Unable to load add-on medications",((c=n.reason)==null?void 0:c.message)||n.reason)}),e||pb(Fi)}),()=>{e=!0}},[Fi,yn]);const fb=wd||!!(Fi&&mb!==Fi),yb=a.useCallback(e=>{const r=$e.find(n=>n.id===e),t=new Set;return rn.forEach(n=>{const c=jr(n);c&&ai(yt[c]||{},r||{},p.clientId).forEach(l=>t.add(l))}),t},[rn,yt,p.clientId,$e]),Or=a.useCallback((e,r,t=Yr)=>{const n=Bu({...Oe,pharmacy:e||{},medicationId:r});return n||bu(t==null?void 0:t.mappings,e||{},r)||bu(t==null?void 0:t.fallbackMappings,e||{},r)||""},[Oe,Yr]),Tp=a.useCallback((e,r)=>Or(e,r,Yr),[Or,Yr]),Oi=a.useCallback((e,r)=>Ly({...Oe,pharmacy:e||{},medicationId:r}),[Oe]),ns=a.useCallback((e,r,t=Yr)=>Iu(t==null?void 0:t.mappings,e||{},r)??Iu(t==null?void 0:t.fallbackMappings,e||{},r),[Yr]),Xr=a.useCallback((e,r,t,n)=>{const c=Oi(e,n);return c!=null?Vu(e)?qy(r,c,t):c:By(e,r,t)},[Oi]),St=a.useCallback((e,{singleLine:r=!1}={})=>({medicationId:ce(e||{}),medicationName:be(e||{})||(e==null?void 0:e.name)||"",singleLine:r}),[be]),_p=a.useCallback((e,r)=>Oi(e,ce(r||{})),[Oi]),$p=a.useCallback((e,r)=>{const t=ce({id:r});if(!t)return null;for(const n of rn){const c=jr(n);if(!c)continue;if(ai(yt[c]||{},e||{},p.clientId).includes(t))return dg(n)}return null},[rn,yt,p.clientId]),Fc=a.useCallback((e,r,t)=>{if(t){const n=bu(yt[t]||{},e||{},r);if(n)return n}return Bu({...Oe,pharmacy:e||{},medicationId:r})||""},[yt,Oe]),Oc=a.useCallback((e,r,t)=>t?Iu(yt[t]||{},e||{},r):null,[yt]),Ft=a.useMemo(()=>{if(!Xn)return[];const e=(kI(Jt,O,Ve)[Z]||[]).filter(r=>(!Vt.has(ce(r))||am({product:r,pharmacy:O.find(t=>t.id===Z)},ht))&&fo(r,Se));return RS(e,ss,be)},[Xn,Vt,Jt,O,Ve,Z,ss,ht,be,Se]),Wa=a.useMemo(()=>Ft.some(e=>ss.has(ce(e))),[ss,Ft]),Kp=a.useMemo(()=>{const e=t=>sh(ce(t),w),r=[...Ft].sort((t,n)=>{const c=e(t),l=e(n);return c!==l?c?-1:1:0});return!Wa||el?r:r.filter(t=>ss.has(ce(t))||e(t))},[Wa,ss,w,el,Ft]),B=a.useMemo(()=>$e.find(e=>e.id===(S.pharmacyOptionId||Z)),[S.pharmacyOptionId,Z,$e]),J=a.useMemo(()=>Ft.find(e=>e.id===ke&&(e.formularyVariantId||"")===(S.formularyVariantId||""))||null,[Ft,ke,S.formularyVariantId]),wp=a.useMemo(()=>J||{displayName:S.pharmacyProductName,medicationName:S.medicationName}
1,[S.medicationName,S.pharmacyProductName,J]),Tl=a.useMemo(()=>hS(wp),[wp]),_l=a.useMemo(()=>{const e=Oi(B,ce(J||{}));return e??(J==null?void 0:J.defaultDaysSupply)??30},[Oi,B,J]),mr=xt(B==null?void 0:B.source),gb=a.useMemo(()=>$e.some(e=>Zi(e)),[$e]),De=(B==null?void 0:B.source)==="scriptsure",Qp=a.useMemo(()=>Yx($a),[$a]),bb=a.useMemo(()=>hd(De?B:Qp,Yn),[De,Qp,Yn,B]),Ur=Cl(bb),$l=tb(B),Kl=sm(B,J),Ti=a.useMemo(()=>Kl&&Ur,[Kl,Ur]),Dp=Kl&&!Ur,bn=vg(J),Up=Gs(J||S),$s=SS(J||S,S.quantity),zp=xS(B,J),Gp=PS(B,J),wl=NS(J,B),Ib=kS(B,J),Tc=Kp.length>0,hb=!Na&&!!Z&&!De&&!Tc,_i=a.useMemo(()=>ke?Ft.some(e=>e.id===ke):!1,[ke,Ft]),Sb=a.useMemo(()=>Wa&&ke&&!ss.has(ke),[Wa,ss,ke]),xb=a.useMemo(()=>!ke||_i?"":S.pharmacyProductName||S.medicationName||ke,[ke,_i,S.pharmacyProductName,S.medicationName]),is=a.useMemo(()=>{if(!Z||!ke)return null;const e=$e.find(t=>t.id===Z)||B,r=Ft.find(t=>t.id===ke)||J;return{pharmacyOptionId:Z,pharmacyId:(e==null?void 0:e.pharmacyId)||"",externalPharmacyId:(e==null?void 0:e.pharmacyId)||"",pharmacyLabel:Ae(e),pharmacyIntegrationId:(e==null?void 0:e.integrationId)||"",pharmacyIntegrationScopeType:(e==null?void 0:e.integrationScopeType)||"",pharmacyIntegrationScopeId:(e==null?void 0:e.integrationScopeId)||"",pharmacyIntegrationName:(e==null?void 0:e.integrationName)||"",pharmacySource:(e==null?void 0:e.source)||"",productId:ke,productLabel:be(r)||S.pharmacyProductName||S.medicationName||""}},[Z,ke,$e,B,Ft,J,S.pharmacyProductName,S.medicationName,Ae,be]);a.useEffect(()=>{gp.current=xr},[xr]);const _e=xr==="manual",Zn=_e||Br,Jp=a.useRef("");a.useEffect(()=>{if(!Zn||!fe||I||h||j||Me||ba||!re||!p.orderId)return;const e=`${o}:${p.orderId}`;Jp.current!==e&&(Jp.current=e,E?X(r=>{if(r.length!==1)return r;const t=Hy(r[0],re);return t===r[0]?r:[t]}):de(r=>Hy(r,re)))},[o,fe,j,Zn,Me,ba,p.orderId,re,I,h,E]),a.useEffect(()=>{if(!Me||h||$r||!fe||!Pe||O.length>0||_e&&Z===sa)return;const e=!!(Z&&Z!==sa&&!O.some(r=>r.id===Z));xr==="manual"&&!e&&Z===sa||(It("manual"),Sr(sa),Jr(""),E?X(r=>r.length===0?ko(m,{mode:"manual"}):r.map(t=>Be({...t,mode:"manual",pharmacyOptionId:""}))):de(r=>({...r,mode:"manual",pharmacyOptionId:""})),p.orderId,void 0)},[Pe,m,fe,O,Me,_e,$r,p.orderId,xr,h,Z,E]),a.useEffect(()=>{if(I||E||_e||!Wy({line:{...S,pharmacyOptionId:Z},pharmacies:$e,contextReady:fe&&!Dr&&!$r&&!nn}))return;const e=$e[0]||null;Sr((e==null?void 0:e.id)||""),de(r=>({...r,...Te(e)}))},[$e,Z,_e,Te,I,E,S,fe,Dr,$r,nn]),a.useEffect(()=>{!E||h||I||X(e=>{const r=Ce[0]||null;let t=!1;const n=e.map(c=>{const l=Be(c);return Wy({line:l,pharmacies:Ce,contextReady:fe&&!Dr&&!$r&&!nn,requestedPrescriptionIds:at,preservedLineIds:ya})?(t=!0,Be({...l,...Te(r,(r==null?void 0:r.id)||""),pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",medicationName:"",dosage:"",instructions:"",ndc:"",csn:"",suppliesDetails:[]})):c});return t?n:e})},[E,h,Ce,Te,I,fe,Dr,$r,nn,at,ya]);const Pb=a.useMemo(()=>{if(!E)return[];if(at.size===0&&ya.size===0)return[];const e=fe&&!Dr&&!$r&&!nn,r=new Set;return K.forEach(t=>{const n=Be(t);if(!at.has(n.prescriptionId)&&!ya.has(n.id)||!Nx({line:n,pharmacies:Ce,contextReady:e}))return;const c=O.find(l=>l.id===n.pharmacyOptionId);r.add((c==null?void 0:c.name)||n.pharmacyName||"The requested pharmacy")}),[...r]},[at,fe,O,ya,Ce,K,$r,nn,Dr,E]),Nb=a.useMemo(()=>{var r;if(_e){const t=(r=S.pharmacyName)==null?void 0:r.trim();return t?`Manual: ${t}`:"Manual"}if(!Z)return"Select pharmacy or manual";const e=$e.find(t=>t.id===Z);return e?Ae(e):"Select pharmacy or manual"},[Ae,_e,S.pharmacyName,Z,$e]);a.useEffect(()=>{A&&na(A,p.clientId),O.find(e=>e.id===Z)},[O,p.clientId,p.orderId,p.clientProductId,p.productName,He,A,wo,Z]);const me=a.useMemo(()=>E&&K[0]?Be(K[0]):Be({...S,mode:xr}),[E,K,S,xr]),ge=a.useMemo(()=>K.map(e=>Be(e)),[K]),Ot=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(n=>n.id===r.pharmacyOptionId);return Fu(t)};
1return E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):!mr||!B?!1:Fu(B)},[O,mr,ge,h,B,E]),Ha=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(l=>l.id===r.pharmacyOptionId);if(!Zi(t))return!1;const c=(R[r.pharmacyOptionId]||[]).find(l=>l.id===r.pharmacyProductId);return Ri(c)};return Ot?!0:E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):!mr||!J||!B||!Zi(B)?!1:Ri(J)},[O,mr,ge,R,h,Ot,B,J,E]),Ya=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(l=>l.id===r.pharmacyOptionId);if(!Zi(t))return!1;const c=(R[r.pharmacyOptionId]||[]).find(l=>l.id===r.pharmacyProductId);return Ri(c)};return E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):!mr||!J||!B||!Zi(B)?!1:Ri(J)},[O,mr,ge,R,h,B,J,E]),Wp=a.useCallback(e=>{const r=Be(e||{});if(!e||r.mode==="manual"||r.status==="submitted")return{requiresPatientIdentity:!1,requiresProviderDea:!1,requiresDriverLicenseIdentity:!1};const t=O.find(g=>g.id===r.pharmacyOptionId),n=Fu(t),c=Zi(t),d=(R[r.pharmacyOptionId]||[]).find(g=>g.id===r.pharmacyProductId),y=c&&Ri(d);return{requiresPatientIdentity:n||y,requiresProviderDea:y,requiresDriverLicenseIdentity:n}},[O,R]),$i=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(l=>l.id===r.pharmacyOptionId),c=(R[r.pharmacyOptionId]||[]).find(l=>l.id===r.pharmacyProductId);return Ou(t,c,r.medicationName||r.pharmacyProductName)};
1return E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):mr&&Ou(B,J,S.medicationName||S.pharmacyProductName||be(J))},[O,be,mr,ge,R,S.medicationName,S.pharmacyProductName,h,B,J,E]),kb=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(l=>l.id===r.pharmacyOptionId);if(!xt(t==null?void 0:t.source)||!Tu(t))return!1;const c=(R[r.pharmacyOptionId]||[]).find(l=>l.id===r.pharmacyProductId);return!!_u(c)};return E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):!mr||!Tu(B)?!1:!!_u(J)},[O,mr,ge,R,h,B,J,E]),Rn=a.useCallback((e,r,t="")=>{const n=CI(Us({variantsById:Ve,explicitVariantId:t}));if(n)return n;const c=ce(r||{}),l=eg(re,{medicationId:c});return l||(!c||!e?"":Vy({...Oe,pharmacy:e,medicationId:c,field:"clinicalDifferenceStatement"}))},[Ve,re,Oe]),Ki=a.useCallback(e=>{if(!e)return null;const r=(R[e.pharmacyOptionId]||[]).find(t=>t.id===e.pharmacyProductId);return r||((J==null?void 0:J.id)===e.pharmacyProductId?J:null)},[R,J]),wi=a.useMemo(()=>{if(E&&!h){for(const e of ge){if(!e||e.status==="submitted"||e.mode==="manual")continue;const r=O.find(c=>c.id===e.pharmacyOptionId);if(!xt(r==null?void 0:r.source))continue;const t=Ki(e),n=Rn(r,t,e.formularyVariantId);if(n)return n}return""}return mr?Rn(B,J,S.formularyVariantId):""},[O,Ki,mr,ge,S.formularyVariantId,h,Rn,B,J,E]),Tt=$i||!!wi||kb,lt=a.useMemo(()=>{const e=r=>{if(!r||r.mode==="manual")return!1;const t=O.find(n=>n.id===r.pharmacyOptionId);return ea(t)};
1return E&&!h?ge.some(r=>r.status!=="submitted"&&e(r)):!(!mr||!ea(B))},[O,mr,ge,h,B,E]),Xa=a.useMemo(()=>{const e=(r,t,n)=>{const c=ce(t||{}),l=Us({variantsById:Ve,explicitVariantId:n}),d=c&&r?EI(l)||Vy({...Oe,pharmacy:r,medicationId:c,field:"dirxMedicalNecessityStatement"}):"";return nh({purchasedProductContext:re,medicationId:c,networkOverrideValue:d})};if(E&&!h){for(const r of ge){if(!r||r.status==="submitted"||r.mode==="manual")continue;const t=O.find(l=>l.id===r.pharmacyOptionId);if(!ea(t))continue;const n=(R[r.pharmacyOptionId]||[]).find(l=>l.id===r.pharmacyProductId),c=e(t,n,r.formularyVariantId);if(c.value)return c}return{value:"",source:null}}return!mr||!ea(B)?{value:"",source:null}:e(B,J,S.formularyVariantId)},[O,Ve,mr,ge,R,S.formularyVariantId,re,h,B,J,Oe,E]),as=qt,os=a.useCallback(()=>Ha?{patientIdentity:$u(Ot?"driverLicense":on,cn),requiresViosControlledSubstanceIdentity:!0}:{patientIdentity:null,requiresViosControlledSubstanceIdentity:!1},[Ot,Ha,cn,on]),cs=a.useCallback(()=>{if(Ot){const r=$u("driverLicense",cn);return!r||!CS(r)?(C.error(jS),!1):!0}if(!Ha)return!0;if(!on)return C.error(Fy),!1;const e=$u(on,cn);return!e||!vS(e)?(C.error(Fy),!1):!0},[Ot,Ha,cn,on]),ds=a.useCallback(()=>!Ya&&!Ee?{providerDea:null,requiresProviderDea:!1}:{providerDea:Oy(Ee),requiresProviderDea:Ya},[Ya,Ee]),ls=a.useCallback(()=>!Ya&&!Ee||MS(Ee)?!0:(Zm(!0),!1),[Ya,Ee]),Hp=a.useCallback(e=>{Ea(e),e==="ssn"?Yt(r=>({...Cn,socialSecurityNumber:r.socialSecurityNumber})):e==="stateIssuedId"?Yt(r=>({...Cn,stateIssuedId:r.stateIssuedId})):e==="driverLicense"&&Yt(r=>({...Cn,driverLicenseNumber:r.driverLicenseNumber,driverLicenseState:r.driverLicenseState}))},[]),us=a.useCallback(()=>Tt?{clinicalDifferenceStatement:String(lr||"").trim()||null}:{clinicalDifferenceStatement:null},[Tt,lr]),ms=a.useCallback(()=>$i?String(lr||"").trim()?!0:(C.error(ES),!1):!0,[$i,lr]),Zr=a.useCallback(()=>lt?{dirxMedicalNecessityStatement:String(Xe||"").trim()||null}:{dirxMedicalNecessityStatement:null},[lt,Xe]),Rr=a.useCallback(()=>lt?String(Xe||"").trim()?!0:(C.error(AS),!1):!0,[lt,Xe]),ei=a.useCallback((e={})=>{const r=O.find(t=>t.id===(e.pharmacyOptionId||e.pharmacyId||""));return LS(e,r,Xe)},[Xe,O]),Ks=a.useMemo(()=>Dt.map(e=>Be(e)),[Dt]),Ql=Dt.length>0,_c=a.useMemo(()=>qn.map(e=>ay(e)),[qn]),W=a.useMemo(()=>{if(!w)return null;const e=Fe(w.medication),r=Fe(w.pharmacyName);return{...w,medication:r?`${e} · ${r}`:e,medicationId:Fe(w.medicationId),pharmacyId:Fe(w.pharmacyId),pharmacyOptionId:Fe(w.pharmacyOptionId),dosage:lg(w.dosage,e),frequency:Fe(w.frequency)}},[w]),Za=a.useMemo(()=>gm(ar),[ar]),ps=Za.length>1,Yp=a.useCallback(e=>{if(!ps)return null;const r=Ms.itemKeyByLineId[String((e==null?void 0:e.id)||"")];return r&&Za.find(t=>t.key===r)||null},[ps,Za,Ms]),Xp=a.useMemo(()=>{const e=Fe(w==null?void 0:w.rationale),r=Fe(An);return e&&r&&!e.includes(r)?`${e} ${r}`:e||r||""},[w==null?void 0:w.rationale,An]),ws=a.useMemo(()=>{if(ps)return null;const e=ct,r=D(e==null?void 0:e.pharmacyProductId),t=D(W==null?void 0:W.medicationId);if(!(e!=null&&e.id)||!r||!t||r===t)return null;const n=Fe(w==null?void 0:w.medication);return n?{lineId:e.id,medicationId:t,medicationName:n,paired:(w==null?void 0:w.paired)!==!1}:null},[ct,ps,W==null?void 0:W.medicationId,w==null?void 0:w.medication,w==null?void 0:w.paired]),$c=a.useMemo(()=>{const e=E&&ge[0]?ge[0]:me,r={primaryPrescriptionMode:e.mode||xr,primaryPrescription:e,fulfillmentPrescriptions:h?[]:ge,addOnPrescriptions:h?[]:Ks,recommendations:h?[]:_c,...Tt&&String(lr||"").trim()?{clinicalDifferenceStatement:String(lr).trim()}:{},...lt&&String(Xe||"").trim()?{dirxMedicalNecessityStatement:String(Xe).trim()}:{}};return h?{...r,recommendationProtocol:Cc,recommendationPrescription:me}:r},[xr,me,ge,Ks,_c,h,Cc,E,Tt,lr,lt,Xe]),Ra=!!(p.orderId||!h&&o),Dl=!!(jt&&Ra&&Z&&mr&&_i&&((Gf=S.instructions)!=null&&Gf.trim())&&Number(S.quantity)>0&&Number(S.daysSupply)>0&&!Dp),Ul=!!(jt&&(p.orderId||o)&&Z&&De&&Ur),Qi=a.useRef(""),Kc=a.useRef("");a.useLayoutEffect(()=>{if(!it||!(j!=null&&j.id))return;const e=Mo({prescription:j});
1!oa(e)&&!e.pharmacyProductId&&!e.pharmacyOptionId||(Kc.current=[j.id,e.id,e.pharmacyOptionId,e.pharmacyProductId,e.medicationName].join(":"))},[it,j==null?void 0:j.id,j==null?void 0:j.fulfillmentLineId,j==null?void 0:j.submissionJobId]);const Ue=a.useMemo(()=>{const e=p.orderId||(m==null?void 0:m.orderId)||(P==null?void 0:P.orderId)||null;return!e||!(P!=null&&P.orderData)||String(P.orderId)!==String(e)?null:P.orderData},[p.orderId,m==null?void 0:m.orderId,P==null?void 0:P.orderId,P==null?void 0:P.orderData]);a.useEffect(()=>{if(!E||h)return;const e=Be(K[0]||{}),r=JSON.stringify(e);Qi.current!==r&&(Qi.current=r,It(e.mode||"associated"),Sr(e.pharmacyOptionId||""),Jr(e.pharmacyProductId||""),de(t=>({...jn,...t,...e})))},[E,h,K]);const wc=a.useMemo(()=>om(ge,nr,j,at),[ge,nr,j,at]),Nr=a.useMemo(()=>wc.filter(e=>e.status!=="submitted"),[wc]),Qc=a.useMemo(()=>Ry({lines:Nr,pharmacies:O,pharmacyProductsById:R}),[O,Nr,R]),ri=Nr.length===1&&Qc.length===1?Qc[0]:null,zl=a.useMemo(()=>!E||h?!1:Ty(Nr,O),[E,h,Nr,O]),Dc=a.useCallback(e=>Ty(e,O)?(C.error(jg),!1):!0,[O]),Cb=a.useMemo(()=>ge.some(e=>e.status==="failed"),[ge]),jb=a.useMemo(()=>{const e=ge.find(t=>t.status==="failed"&&t.submissionError);if(!e)return"Some prescriptions failed to send. Fix any issues and retry the failed lines.";const r=gx({submissionError:e.submissionError});return r&&r.code!=="unknown_error"?`${r.title}. ${r.fix}`:e.submissionError},[ge]),eo=a.useCallback(e=>{var r,t,n;return e!=null&&e.prescriptionPrefillSnapshot?!1:(e==null?void 0:e.mode)!=="manual"||!Br?Hi(e):!!((r=e.pharmacyName)!=null&&r.trim()&&((t=e.medicationName)!=null&&t.trim())&&((n=e.instructions)!=null&&n.trim())&&Number(e.quantity)>0&&Number(e.daysSupply)>0)},[Br]),Gl=a.useCallback(e=>{if(!Se||(e==null?void 0:e.mode)==="manual")return null;const t=(R[e==null?void 0:e.pharmacyOptionId]||[]).find(n=>n.id===(e==null?void 0:e.pharmacyProductId));return t&&!fo(t,Se)?t:Pi.includes(e==null?void 0:e.id)?t||e:null},[Se,R,Pi]),vb=a.useCallback(e=>Gl(e)?i.jsxs("p",{role:"alert",className:"text-2xs text-[var(--status-danger-text)]",children:["This medication does not ship to ",Se,". Choose another medication."]}):null,[Gl,Se]),Jl=a.useMemo(()=>!E||!Ra||Nr.length===0||zl?!1:Nr.every(e=>{if(e.prescriptionPrefillSnapshot||Dr||!eo(e))return!1;if(e.mode==="manual")return!0;if(Pi.includes(e.id))return!1;const r=Ce.find(d=>d.id===e.pharmacyOptionId);if(!xt(r==null?void 0:r.source))return!1;const n=(R[e.pharmacyOptionId]||[]).find(d=>d.id===e.pharmacyProductId);return!(!n||!fo(n,Se)||sm(r,n)||!es(e.quantity,r,n).valid||!rs(e.daysSupply,r).valid)}),[Dr,E,Ra,Nr,Ce,zl,R,Se,Pi,es,rs,eo]),Wl=E?!!(Ra&&Nr.length>0&&Nr.every(e=>e.mode==="manual"&&eo(e))):!!(Ra&&((Jf=S.pharmacyName)!=null&&Jf.trim())&&((Wf=S.medicationName)!=null&&Wf.trim())&&(Br||(Hf=S.dosage)!=null&&Hf.trim())&&((Yf=S.instructions)!=null&&Yf.trim())&&Number(S.quantity)>0&&Number(S.daysSupply)>0),Hl=Nr.length,Yl=Hl>0&&Nr.every(e=>e.mode==="manual"),Zp=a.useMemo(()=>O.some(e=>wt(e==null?void 0:e.source)==="scriptsure"),[O]),Rp=a.useMemo(()=>!ne||!E?!1:Nr.some(e=>{const r=e.productResolutionKind;return r!=="custom"&&r!=="none"?!1:Xo[e.id]!==!0}),[Xo,Nr,ne,E]),Xl=E?ri?!!(Ur&&Hi(ri)):Jl&&(Yl||Zn||Qr||!Rp):Zn?Wl:Dl||Ul,Mb=!!(Ie&&(Zn?Wl:Dl)),Eb=!Zn&&!De&&_i,Ab=$l||(Dp||Qc.length>0&&!Ur?"A verified ScriptSure prescriber mapping is required for controlled e-prescribing.":Ti||ri?"Controlled medication can only be prescribed via ScriptSure":Qc.length>0?"Prescribe each controlled medication through ScriptSure before sending the remaining lines.":_e?Wl?"Saving creates a prescription record without sending it to the pharmacy.":"Complete the manual prescription fields to save the prescription.":E?Hl===0?"Every fulfillment line has been submitted.":Pb.length>0?`Choose a pharmacy that ships to ${Se||"the patient's state"} before sending.`:Cb?jb:Hl>1?"All complete lines are submitted together in one action.":Jl&&Yl?"Saving creates a prescription record without sending it to the pharmacy.":"":Ql?"Save the primary prescription now. Add-on prescriptions are submitted separately for patient review and payment before pharmacy submission.":Dl?`Only this primary selection is submitted${mr?" via OnlyScripts":""}.`:""),In=a.useMemo(()=>{const e=Fe(S.medicationName||(W==null?void 0:W.medication)||S.pharmacyProductName),r=lg(S.dosage||(W==null?void 0:W.dosage),e||(W==null?void 0:W.medication)),t=Fe(S.frequency||(W==null?void 0:W.frequency)),n=Fe(S.instructions||[r,t].filter(
1Boolean).join(" "));return{medicationName:e,dosage:r,frequency:t,instructions:n,aiRecommendation:w?{medication:(W==null?void 0:W.medication)||"",dosage:(W==null?void 0:W.dosage)||"",frequency:(W==null?void 0:W.frequency)||""}:null}},[S.medicationName,S.pharmacyProductName,S.dosage,S.frequency,S.instructions,w,W]),ef=!!(In.medicationName||In.dosage||In.frequency||In.instructions),Lb=a.useMemo(()=>{var e;return((e=dn.find(r=>r.id===Wr))==null?void 0:e.label)||"Select provider"},[dn,Wr]);a.useEffect(()=>{ml.current=Z},[Z]),a.useEffect(()=>{pl.current=Se},[Se]);const hn=a.useCallback(async(e,{showLoading:r=!1}={})=>{if(!e||!xe)return[];const t=Vs.current[e];if(Array.isArray(t))return t;const n=Lt.current.find(N=>N.id===e);if(!n)return[];const c=n.pharmacyId||e,l=vi,d=[l,n.integrationId,n.integrationScopeType,n.integrationScopeId,e].join("|"),y=()=>Sp.current===l,g=Pl.current.get(d);if(g){r&&(ka(!0),Et(""));const N=await g;return r&&y()&&(Et(hc.current.get(d)||""),ka(!1)),N}hc.current.delete(d);const x=(async()=>{r&&(ka(!0),Et(""));try{if(n.source==="scriptsure")return Pa(q=>({...q,[e]:[]})),r&&Et(""),[];if(!xt(n.source)||!n.integrationId)return Pa(q=>({...q,[e]:[]})),r&&Et("This pharmacy cannot receive prescriptions from GEN Health."),[];const N=await qh({...xe,integrationId:n.integrationId,integrationScopeType:n.integrationScopeType,integrationScopeId:n.integrationScopeId,p
1harmacyId:c});if(!y())return[];if((N==null?void 0:N.success)===!1)throw new Error(N.error||"Unable to load pharmacy prescriptions.");const L=go(N.drugs);return Vs.current={...Vs.current,[e]:L},Pa(q=>({...q,[e]:L})),r&&Et(""),L}catch(N){return y()?Array.isArray(Vs.current[e])?(hc.current.delete(d),r&&Et(""),Vs.current[e]):(hc.current.set(d,(N==null?void 0:N.message)||"Unable to load pharmacy prescriptions."),ae(N,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Load pharmacy medication catalog"}),r&&(console.error("Error loading pharmacy products:",N),Et((N==null?void 0:N.message)||"Unable to load pharmacy prescriptions.")),[]):[]}finally{r&&y()&&ka(!1)}})();Pl.current.set(d,x);try{return await x}finally{Pl.current.delete(d)}},[xe,vi]);a.useEffect(()=>{var g,x;if(!it||!(j!=null&&j.id)){Kc.current="";return}const e=Mo({prescription:j});if(!!!(oa(e)||e.pharmacyProductId||e.pharmacyOptionId)&&(!fe||!Pe))return;const t=Pe?(m==null?void 0:m.prescribeDraft)||{}:{}
1,n=yo(t),c=(j==null?void 0:j.fulfillmentLineId)||"",l=((g=n.fulfillmentPrescriptions)==null?void 0:g.find(N=>Im(N,j,j)))||((x=n.fulfillmentPrescriptions)==null?void 0:x.find(N=>N.id===c))||n.primaryPrescription,d=Mo({prescription:j,orderQueuedPrescription:Ue==null?void 0:Ue.queuedProductPrescription,chartPrescriptionData:Pe?m==null?void 0:m.prescriptionData:null,fallbackDraft:l});if(!oa(d)&&!d.pharmacyProductId&&!d.pharmacyOptionId)return;const y=[j.id,d.id,d.pharmacyOptionId,d.pharmacyProductId,d.medicationName,(Ue==null?void 0:Ue.prescriptionSubmissionJobId)||""].join(":");Kc.current!==y&&(Kc.current=y,E&&!h?(X(SP({normalizedDraft:n,queuedLine:d,editingQueuedPrescription:j})),Qi.current=""):(de(N=>({...N,...d,mode:d.mode})),Sr(d.pharmacyOptionId||""),Jr(d.pharmacyProductId||""),It(d.mode||"associated")),!E&&d.pharmacyOptionId&&ot&&hn(d.pharmacyOptionId),((Ue==null?void 0:Ue.prescriptionSubmissionJobStatus)==="pending_payment"||Gt||kg({prescription:j}))&&cr(N=>({...N||ia(Ue)||{},prescriptionSubmissionJobStatus:(Ue==null?void 0:Ue.prescriptionSubmissionJobStatus)||"pending_payment",paymentStatus:(Ue==null?void 0:Ue.paymentStatus)||(N==null?void 0:N.paymentStatus)||"unpaid",formRequestProductApproval:(Ue==null?void 0:Ue.formRequestProductApproval)===!0||(N==null?void 0:N.formRequestProductApproval)===!0,checkoutFlow:(Ue==null?void 0:Ue.checkoutFlow)||(N==null?void 0:N.checkoutFlow)||null})))},[it,j,fe,Pe,m==null?void 0:m.prescribeDraft,m==null?void 0:m.prescriptionData,Ue,E,h,Gt,ot,hn]);const Zl=a.useRef("");a.useEffect(()=>{if(!mi||h){Zl.current="",Nm(t=>t.size>0?new Set:t);return}if(!fe||!Pe||Zl.current===j.id)return;Zl.current=j.id;const{fulfillmentPrescriptions:e,replacementLine:r}=xP({normalizedDraft:yo((m==null?void 0:m.prescribeDraft)||{}),failedPrescription:j,chartPrescriptionData:(m==null?void 0:m.prescriptionData)||null});E?(X(e),Nm(new Set([r.id])),Qi.current=""):(de(t=>({...t,...r,mode:r.mode})),Sr(r.pharmacyOptionId||""),Jr(r.pharmacyProductId||""),It(r.mode||"associated")),!E&&r.pharmacyOptionId&&ot&&hn(r.pharmacyOptionId)},[mi,h,fe,Pe,j,m==null?void 0:m.prescribeDraft,m==null?void 0:m.prescriptionData,E,ot,hn]),a.useEffect(()=>{const e=F||Dn||"";if(!_){Aa(e),dc([]),La(!1),ki({code:"",patientState:""});return}if(!p.clientId||!p.providerNetworkId||!u){dc([]),Aa(e),La(!1),ki({code:Xi.MISSING_CONTEXT,patientState:""});return}if(ue===!1){La(!0),ki({code:"",patientState:""});return}let r=!1;return La(!0),ki({code:"",patientState:""}),(async()=>{try{const[t,n]=await Promise.all([se||ue===!0?Promise.resolve(null):zs(Ss(Ne,"Users",u)),em(rm(tm(Ne,"Users"),Co("userType","in",Bh(["Provider"])),Co("providerNetworkId","==",p.providerNetworkId),
1Co("status","==","active")))]);if(r)return;const c=se||(t==null?void 0:t.data())||{},l=n.docs.map(N=>({id:N.id,...N.data()})),d=pd(Qu({patientData:c,orderData:Hn})),y=d?await HS(d,l.map(N=>N.id),{providerNetworkId:p.providerNetworkId}):new Set(l.map(N=>N.id));if(r)return;const g=l.filter(N=>y.has(N.id)).map(N=>({id:N.id,label:N.fullName||`${N.firstName||""} ${N.lastName||""}`.trim()||N.email||"Provider"})).sort((N,L)=>N.label.localeCompare(L.label,void 0,{sensitivity:"base"})),x=l.length;dc(g),ki({code:Hh({activeProviderCount:l.length,assignedProviderCount:x,eligibleProviderCount:g.length,patientState:d}),patientState:d}),Aa(N=>{var L;return N&&g.some(q=>q.id===N)?N:e&&g.some(q=>q.id===e)?e:((L=g[0])==null?void 0:L.id)||""})}catch(t){ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:4515"}),console.error("Error loading prescriber options:",t),r||(dc([]),Aa(e),ki({code:Xi.CHECK_FAILED,patientState:""}))}finally{r||La(!1)}})(),()=>{r=!0}},[_,p.clientId,p.providerNetworkId,Hn,se,ue,u,F,Dn]),a.useEffect(()=>{if(!u){Ea(""),Yt(Cn),Hm("");return}if(ue===!1)return;let e=!1;return(async()=>{try{const r=!!se||ue===!0,t=r?null:await zs(Ss(Ne,"Users",u));if(e||!r&&!(t!=null&&t.exists()))return;const n=se||(t==null?void 0:t.data())||{},c={socialSecurityNumber:n.socialSecurityNumber||"",stateIssuedId:n.stateIssuedId||"",driverLicenseNumber:n.driverLicenseNumber||"",driverLicenseState:n.driverLicenseState||""};Yt(c),Ea(qS(c)),Hm(pd(Qu({patientData:n,orderData:Hn}))||"")}catch(r){ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:4577"}),console.error("Error loading patient Vios identity fields:",r)}})(),()=>{e=!0}},[u,se,ue,Hn]),a.useEffect(()=>{Ot&&Ea(e=>e==="driverLicense"?e:"driverLicense")},[Ot]),a.useEffect(()=>{if(Rd(null),!as){ac(""),ep(""),Zd(!0);return}let e=!1;return Zd(!1),(async()=>{try{const[r,t,n]=await Promise.all([zs(Ss(Ne,"Users",as)),em(Vh(as)),YS(p.providerNetworkId)]);if(e)return;const c=t.docs.map(y=>y.data()),l=r.data()||{};if(Rd({providerId:as,providerNetworkId:p.providerNetworkId||null,licenses:c,enforced:n,active:r.exists()&&l.status==="active"}),!r.exists())return;const d=BS(l,c);d.dea&&ac(d.dea),ep(l.fullName||l.displayName||`${l.firstName||""} ${l.lastName||""}`.trim()||"Provider")}catch(r){ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:4632"}),console.error("Error loading provider DEA:",r),e||Rd({providerId:as,providerNetworkId:p.providerNetworkId||null,failed:!0})}finally{e||Zd(!0)}})(),()=>{e=!0}},[as,p.providerNetworkId,ja]);const Rl=a.useCallback(async e=>{if(!as||!(e!=null&&e.licenseNumber))return;const r=e.file?await xx(e.file,as):null,t=await zr("manageProviderApplication",{action:"addLicense",stateCode:String(e.stateCode||"").trim().toUpperCase(),licenseType:"DEA",licenseNumber:String(e.licenseNumber||"").trim(),licenseeName:Rm||"Provider",expiration_date:e.expirationDate||null,sourceDocumentId:r,targetUserId:as});if(!(t!=null&&t.success))throw new Error((t==null?void 0:t.error)||"Unable to submit DEA license. Please try again.");C.success("DEA license submitted for review")},[as,Rm]),eu=a.useCallback(e=>{ac(Oy(e))},[]),kr=a.useMemo(()=>{if(!Tt)return{medicationName:"",pharmacy:null,product:null,lineId:""};if(E&&!h){const e=ge.find(n=>{if(n.status==="submitted"||n.mode==="manual")return!1;const c=O.find(d=>d.id===n.pharmacyOptionId),l=(R[n.pharmacyOptionId]||[]).find(d=>d.id===n.pharmacyProductId);return Ou(c,l,n.medicationName||n.pharmacyProductName)?!0:Tu(c)&&!!_u(l)});if(!e)return{medicationName:"",pharmacy:null,product:null,lineId:""};const r=O.find(n=>n.id===e.pharmacyOptionId)||null,t=(R[e.pharmacyOptionId]||[]).find(n=>n.id===e.pharmacyProductId);return{pharmacy:r,product:t||null,lineId:e.id||"",medicationName:be(t)||e.medicationName||e.ph
1armacyProductName||""}}return{pharmacy:B||null,product:J||null,lineId:(me==null?void 0:me.id)||"",medicationName:be(J)||S.medicationName||S.pharmacyProductName||""}},[O,be,ge,me==null?void 0:me.id,R,S.medicationName,S.pharmacyProductName,h,B,J,Tt,E]),ru=kr.medicationName,Qs=a.useCallback((e={})=>{const r=O.find(n=>n.id===(e.pharmacyOptionId||e.pharmacyId||"")),t=Ki(e);return VS(e,r,t,{configuredStatement:Rn(r,t,e.formularyVariantId),sharedStatement:lr,isActiveLine:!!kr.lineId&&String(e.id||"")===String(kr.lineId)})},[kr.lineId,O,Ki,Rn,lr]),Sn=a.useCallback((e=[])=>FS(e,O,{getProduct:Ki,getConfiguredStatement:(r,t,n)=>Rn(t,n,r==null?void 0:r.formularyVariantId),sharedStatement:lr,activeLineId:kr.lineId}),[kr.lineId,O,Ki,Rn,lr]),ro=a.useMemo(()=>{if(!lt)return{medicationName:"",pharmacy:null};if(E&&!h){const e=ge.find(n=>{if(n.status==="submitted"||n.mode==="manual")return!1;const c=O.find(l=>l.id===n.pharmacyOptionId);return ea(c)});if(!e)return{medicationName:"",pharmacy:null};const r=O.find(n=>n.id===e.pharmacyOptionId)||null,t=(R[e.pharmacyOptionId]||[]).find(n=>n.id===e.pharmacyProductId);return{pharmacy:r,medicationName:be(t)||e.medicationName||e.pharmacyProductName||""}}return{pharmacy:B||null,medicationName:be(J)||S.medicationName||S.pharmacyProductName||""}},[O,be,ge,R,S.medicationName,S.pharmacyProductName,h,lt,B,J,E]);a.useEffect(()=>{if(!Tt)return;const e=wi||_y(kr.pharmacy,ru,kr.product);if(!e)return;const r=lr||"",t=tp.current||_y(kr.pharmacy,rp.current,kr.product);Zx({currentValue:r,previousPrefill:t})&&wn(e),rp.current=ru,tp.current=e},[kr.pharmacy,kr.product,ru,wi,Tt,lr]),a.useEffect(()=>{if(!lt)return;const{value:e}=Xa;if(!e)return;const r=Xe||"",t=sp.current;OI({currentValue:r,previousPrefill:t})&&Qn(e),sp.current=e},[Xa,lt,Xe]);const Di=a.useCallback(async e=>{const r=e==="clinical_difference"?kr:ro;if(!o||!u||!r.medicationName){C.error("Patient, visit, and medication details are required to generate a statement.");return}Xm(e);try{const t=await zr("generatePrescriptionStatement",{statementType:e,reviewId:o,patientId:u,medicationName:r.medicationName,pharmacyName:Ae(r.pharmacy),formData:gi??{},soapNotes:Ey(yi)});if(!(t!=null&&t.statement)){C.error((t==null?void 0:t.reason)||"The available patient information is not enough to generate this statement.");return}e==="clinical_difference"?wn(t.statement):Qn(t.statement),C.success("Statement generated. Review it before sending.")}catch(t){ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:4895"}),C.error((t==null?void 0:t.message)||"Unable to generate a prescription statement.")}finally{Xm("")}},[kr,ro,o,Ae,u,gi,yi]);a.useEffect(()=>{cc(!1),Fr(!1),mc.current=!0,Wn.current.reset(),pc.current=!1,il.current=null,al.current="",ol.current="",cl.current="",fc.current.clear(),At.current="",Ko(!1),Mn(null)},[o]),a.useEffect(()=>{if(!o)return;if(!Pe){cc(!1);return}let e=!1;return(async()=>{var r,t,n,c,l,d,y,g,x,N,L,q,Q,te,M,U,$,H,z;try{const T=lp.current;if(e||!T)return;const V=Pr.current,pe=T.prescribeDraft||{},le=il.current!==o,Ke=le||I&&!pc.current,qe=JSON.stringify({chartReviewId:o,patientName:f,recommendationOnly:h,isInitialHydration:le,canHydrateDraft:Ke,prescriptionRecommendation:T.prescriptionRecommendation||null,prescriptionRecommendationItems:T.prescriptionRecommendationItems||null,prescriptionRecommendationGeneratedAt:T.prescriptionRecommendationGeneratedAt||null,categoryId:T.categoryId||null,providerId:T.providerId||T.assignedTo||null,soapNotes:T.soapNotes||"",formSubmissionId:T.formSubmissionId||"",hasInlineResponses:!!(T.formData||T.responses),additionalProviderNotes:T.additionalProviderNotes??"",...Ke?{prescribeDraft:pe}:{}});if(!le&&al.current===qe)return;al.current=qe;const mt=xd(T)[0]||T.orderId||(V==null?void 0:V.orderId)||null;if(le||!T.formRequestProductApproval){const ye={orderId:mt,clientId:T.clientId||((r=V==null?void 0:V.orderData)==null?void 0:r.clientId)||null,businessId:T.businessId||((t=V==null?void 0:V.orderData)==null?void 0:t.businessId)||null,providerNetworkId:T.providerNetworkId||((n=V==null?void 0:V.orderData)==null?void 0:n.providerNetworkId)||null,clientProductId:T.clientProductId||((c=V==null?void 0:V.orderData)==null?void 0:c.clientProductId)||null,productName:T.productName||((l=V==null?void 0:V.orderData)==null?void 0:l.productName)||"",shippingInfo:((d=V==null?void 0:V.orderData)==null?void 0:d.shippingInfo)||T.shippingInfo||null,billingInfo:((y=V==null?void 0:V.orderData)==null?void 0:y.billingInfo)||null};bi(rt=>{if(le)return ye;const ni=LP(rt,ye);return AP(rt,ni)?rt:ni})}const Ge={...jn,...T.prescriptionData||{}};!Ge.pharmacyOptionId&&((g=pe.selectedAssociatedPrescription)!=null&&g.pharmacyOptionId)&&(Ge.pharmacyOptionId=pe.selectedAssociatedPrescription.pharmacyOptionId),!Ge.pharmacyOptionId&&((x=pe.selectedAssociatedPrescription)!=null&&x.pharmacyId
1)&&(Ge.pharmacyOptionId=pe.selectedAssociatedPrescription.pharmacyId),!Ge.pharmacyId&&((N=pe.selectedAssociatedPrescription)!=null&&N.externalPharmacyId)&&(Ge.pharmacyId=pe.selectedAssociatedPrescription.externalPharmacyId),!Ge.externalPharmacyId&&((L=pe.selectedAssociatedPrescription)!=null&&L.externalPharmacyId)&&(Ge.externalPharmacyId=pe.selectedAssociatedPrescription.externalPharmacyId),!Ge.pharmacyProductId&&((q=pe.selectedAssociatedPrescription)!=null&&q.productId)&&(Ge.pharmacyProductId=pe.selectedAssociatedPrescription.productId),!Ge.pharmacyProductName&&((Q=pe.selectedAssociatedPrescription)!=null&&Q.productLabel)&&(Ge.pharmacyProductName=pe.selectedAssociatedPrescription.productLabel);const ir=yo(pe),lo=mS(T.soapNotes,f);Kg(ye=>Po(ye,lo)?ye:lo);const uo=!!(T.prescriptionRecommendation||T.prescriptionRecommendationGeneratedAt);oc(le?uo:ye=>ye||uo);const fr=T.prescriptionRecommendation||null;Er(ye=>Po(ye,fr)?ye:fr);const kn=String(T.prescriptionRecommendationNotes??"");Hs(ye=>ye===kn?ye:kn);const Ji=Array.isArray(T.prescriptionRecommendationItems)?T.prescriptionRecommendationItems:[];da(ye=>Po(ye,Ji)?ye:Ji);const ey=T.categoryId||null;wg(ye=>ye===ey?ye:ey);const ry=T.providerId||T.assignedTo||null;if(Yg(ye=>ye===ry?ye:ry),Ke){const ye=h&&ir.recommendationPrescription?ir.recommendationPrescription:ir.primaryPrescription,rt=ye.mode||ir.primaryPrescriptionMode;de({...Ge,...ye,mode:rt}),la(String(T.additionalProviderNotes??"")),ir.clinicalDifferenceStatement&&wn(ir.clinicalDifferenceStatement),ir.dirxMedicalNecessityStatement&&Qn(ir.dirxMedicalNecessityStatement),It(rt),Ba(D(((te=ir.recommendationProtocol)==null?void 0:te.clientProductId)||((M=ir.recommendationProtocol)==null?void 0:M.catalogEntryId)||((U=ir.recommendationProtocol)==null?void 0:U.productId)));const ni=ye.pharmacyOptionId||Ge.pharmacyOptionId||ye.pharmacyId||"",nd=ye.pharmacyProductId||Ge.pharmacyProductId||"";if(Sr(ni),Jr(nd),Es(ir.addOnPrescriptions),ua(ir.addOnRequestStatus||""),Bn(ir.addOnRequestOrderId||""),Zs(ir.recommendations),!h){const ty=ir.fulfillmentPrescriptions.some(Wi=>Wi.medicationName||Wi.pharmacyProductId||Wi.instructions);X(T.formRequestProductApproval===!0&&!ty?ko(T):ir.fulfillmentPrescriptions.map((Wi,SI)=>SI===0&&!ty&&Ji.length<2?Be(Du(Wi,fr)):Wi)),Qi.current=""}}if(il.current=o,cc(!0),T.formData||T.responses){const ye=T.formData||T.responses||{};To(rt=>Po(rt,ye)?rt:ye)}else if(T.formSubmissionId){if(cl.current!==T.formSubmissionId){cl.current=T.formSubmissionId;try{const ye=await Fh({submissionId:T.formSubmissionId,providerNetworkId:T.providerNetworkId||(($=V==null?void 0:V.orderData)==null?void 0:$.providerNetworkId)||(V==null?void 0:V.providerNetworkId)||null,businessId:T.businessId||((H=V==null?void 0:V.orderData)==null?void 0:H.businessId)||null,clientId:T.clientId||((z=V==null?void 0:V.orderData)==null?void 0:z.clientId)||(V==null?void 0:V.clientId)||null});if(!e&&ye.exists()){const ni=ye.data().responses||{};To(nd=>Po(nd,ni)?nd:ni)}}catch(ye){ae(ye,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5140"}),e||console.error("Error fetching form submission:",ye),To(rt=>rt==null||Object.keys(rt).length===0?rt:{})}}}else le&&To(ye=>ye==null||Object.keys(ye).length===0?ye:{})}catch(T){ae(T,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5148"}),e||console.error("Error hydrating visit review:",T)}finally{e||cc(!0)}})(),()=>{e=!0}},[Pe,o,we,f,I,h]),a.useEffect(()=>{if(!h){lc([]),Ba("");return}const e=p.providerNetworkId||"",r=p.businessId||"",t=p.clientId||"";if(!e||!r&&!t){lc([]);return}let n=!1;return dp(!0),(async()=>{try{const c=r?(await gy(Ne,r,{type:"protocol"})).products:(await by(Ne,t,{providerNetworkIds:[e],type:"protocol",skipFormCoverage:!0})).products;if(n)return;const l=(Array.isArray(c)?c:[]).filter(d=>String((d==null?void 0:d.status)||"active").toLowerCase()==="active").filter(d=>String((d==null?void 0:d.type)||"protocol").toLowerCase()==="protocol").filter(d=>!e||!(d!=null&&d.providerNetworkId)||String(d.providerNetworkId)===e).map(d=>cg(d,r?"business":"client")).filter(d=>d.productId).sort((d,y)=>d.displayName.localeCompare(y.displayName));lc(l)}catch(c){ae(c,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5198"}),console.error("Error loading recommendation protocols:",c),n||(lc([]),C.error("Unable to load recommendation protocols."))}finally{n||dp(!1)}})(),()=>{n=!0}},[h,p.clientId,p.businessId,p.providerNetworkId]),a.useEffect(()=>{if(!ts){Vn([]),ma("");return}const e=p.providerNetworkId||"",r=p.businessId||"",t=p.clientId||"";if(!e||!r&&!t){Vn([]);return}let n=!1;return Ao(!0),(async()=>{try{const c=r?(await gy(Ne,r)).products:(await by(Ne,t,{providerNetworkIds:[e],skipFormCoverage:!0,includeClientOwnedProducts:!0})).products;if(n)return;const l=(Array.isArray(c)?c:[]).filter(d=>String((d==null?void 0:d.status)||"active").toLowerCase()==="active").filter(d=>{const y=String((d==null?void 0:d.type)||(d==null?void 0:d.itemType)||"product").toLowerCase();return y!=="visit"&&y!=="lab"&&y!=="package"}).filter(d=>!e||!(d!=null&&d.providerNetworkId)||String(d.providerNetworkId)===e).map(d=>cg(d,r?"business":"client")).filter(d=>d.productId).sort((d,y)=>d.displayName.localeCompare(y.displayName));Vn(l)}catch(c){ae(c,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5262"}),console.error("Error loading provider product options:",c),n||(Vn([]),C.error("Unable to load client products for patient payment."))}finally{n||Ao(!1)}})(),()=>{n=!0}},[ts,p.clientId,p.businessId,p.providerNetworkId]),a.useEffect(()=>{if(!Gn||zn.length===0)return;const e=zn.find(r=>Hu(r,Gn));e&&e.id!==Gn&&Ba(e.id)},[zn,Gn]),a.useEffect(()=>{h&&ha((Ie==null?void 0:Ie.productId)||null)},[h,Ie==null?void 0:Ie.productId]),a.useEffect(()=>{var r,t;if(h||!p.orderId){p.orderId||cr(null);return}if(Me)return;bt(!0);const e=((r=Pr.current)==null?void 0:r.chartReviewId)===o&&((t=Pr.current)==null?void 0:t.orderId)===p.orderId?Pr.current:null;cr(aa(e!=null&&e.orderData?ia(e.orderData):null,m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId))},[m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId,o,Me,p.orderId,h,bp,hl]),a.useEffect(()=>{var c,l;if(!xe){if(Me&&Lt.current.length>0){p.orderId,Lt.current.length,bt(!1);return}Me||(ha(null),Ro([]),Pa({}),ec({}
1),Jd(""),Dm(""),sn.current=new Set,cr(null));return}if(Me)return;const e=((c=Pr.current)==null?void 0:c.chartReviewId)===o&&((l=Pr.current)==null?void 0:l.orderId)===p.orderId?Pr.current:null;if((e==null?void 0:e.pharmaciesLoading)===!0){bt(!0);return}let r=!1;const t=Il.current+1;Il.current=t;async function n(){var d,y;bt(!0),Gg(!1);try{const g=p.orderId?e!=null&&e.orderData?Promise.resolve(e.orderData):zs(Ss(Ne,"Orders",p.orderId)).then(z=>z.exists()?z.data():null):Promise.resolve(null),x=Array.isArray(e==null?void 0:e.pharmacies)?Promise.resolve(e.pharmacies):my(xe).then(z=>Array.isArray(z.pharmacies)?z.pharmacies:[]),[N,L]=await Promise.allSettled([g,x]);if(r)return;if(N.status==="rejected"){console.error("Error loading order for prescribe step:",N.reason),rc(Zy),L.status==="rejected"&&(console.error("Error loading pharmacies:",L.reason),$n(yd));return}rc("");const q=N.value,Q=L.status==="fulfilled"?L.value:[];if(L.status==="rejected"?(console.error("Error loading pharmacies:",L.reason),p.orderId,(d=L.reason)!=null&&d.message||String(L.reason),$n(yd)):$n(""),q&&!h&&ha(q.productId||null),q?(cr(aa(ia(q),m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId)),bi(z=>({...z,clientProductId:q.clientProductId||z.clientProductId||null,productName:q.productName||z.productName||"",shippingInfo:q.shippingInfo||z.shippingInfo||null,billingInfo:q.billingInfo||z.billingInfo||null}))):p.orderId?cr(aa({orderType:null,checkoutFlow:null,formRequestProductApproval:!1,paymentStatus:null,prescriptionSubmissionJobStatus:null},m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId)):cr(aa(null,m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId)),r||L.status==="rejected")return;const te=Yu(Q,Ae);Ro(te),Oa.current=JSON.stringify(xe);const M=ml.current,U=(e==null?void 0:e.selectedPharmacyId)||"",$=Au(te,pl.current),H=$.some(z=>z.id===U)?U:((y=$[0])==null?void 0:y.id)||"";if(!_e&&!M&&$.length>0){const z=$.find(T=>T.id===H)||$[0];Sr(z.id),de(T=>({...T,...Te(z)}))}else if(!_e&&M&&!$.some(z=>z.id===M)&&$.length>0){const z=$.find(T=>T.id===H)||$[0];Sr(z.id),de(T=>({...T,...Te(z)}))}}catch(g){ae(g,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5499"}),r||(console.error("Error preparing prescription context:",g),p.orderId,g!=null&&g.message||String(g),$n(yd))}finally{Il.current===t&&bt(!1)}}return n(),()=>{r=!0}},[p.orderId,xe,Me,_e,Ae,Te,h,o,m==null?void 0:m.prescriptionSubmissionJobStatus,m==null?void 0:m.queuedPaymentOrderId,bp,hl,Rg,Sl,ja]),a.useEffect(()=>{var e;if(!Me||!xe){Me&&(ln(),bt(!1));return}if(Lt.current.length===0&&Sl>0&&Array.isArray((e=Pr.current)==null?void 0:e.pharmacies)){const r=Yu(Pr.current.pharmacies,Ae);Ro(r),Oa.current=JSON.stringify(xe),Ci.current=!0,ln(),bt(!1),r.length,Oa.current;return}_a(ja>0?{force:!0}:void 0)},[Ae,Me,_a,ln,xe,Sl,ja]),a.useEffect(()=>{var g,x,N;const e=D(He),r=D(p.clientProductId),t=D(p.clientId),n=D(p.businessId),c=D(p.providerNetworkId),l=Array.from(new Set([e,r].filter(Boolean))),d=((g=Pr.current)==null?void 0:g.chartReviewId)===o&&((x=Pr.current)==null?void 0:x.orderId)===p.orderId?Pr.current:null;if(String(hp)===String(p.orderId||"")){const L=Ip;Ii(L&&((N=Pr.current)==null?void 0:N.purchasedProductContext)||null),Ia(!L);return}if(h||l.length===0||!t&&!n){Ii(null),Ia(!1);return}let y=!1;return Ii(null),Ia(!0),(async()=>{var L;try{const q=(d==null?void 0:d.orderData)||((L=Pr.current)!=null&&L.orderData&&String(Pr.current.orderId)===String(p.orderId)?Pr.current.orderData:null),Q=await ux(Ne,{productId:e,clientProductId:r,clientId:t,businessId:n,providerNetworkId:c,orderProductName:p.productName,orderData:q});if(y)return;Ii(Q)}catch(q){ae(q,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5627"}),y||(console.error("Error loading purchased product context:",q),Ii(null))}finally{y||Ia(!1)}})(),()=>{y=!0}},[h,He,p.clientProductId,p.clientId,p.businessId,p.providerNetworkId,p.orderId,p.productName,Gt,v==null?void 0:v.paymentStatus,o,Ip,hp]),a.useEffect(()=>{if(!(A!=null&&A.productId)||!p.clientId&&!p.providerNetworkId){Km(Bc),Qo({}),Do({}),Me&&(p.orderId,p.clientProductId,void 0);return}const e=!ne&&wu(A);let r=!1;return $m(!0),p.orderId,p.clientProductId,(async()=>{try{const[t,n]=await Promise.all([p.clientId&&!e?ex(Ne,{clientId:p.clientId,product:A}):Promise.resolve({}),p.providerNetworkId?rx(Ne,{providerNetworkId:p.providerNetworkId,product:A}):Promise.resolve({})]);if(r)return;Qo(t),Do(n),Km(Bc),p.orderId,Object.keys(t||{}),Object.keys(n||{});const c=na(A,p.clientId)}catch(t){ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5731"}),r||(console.error("Error loading product prescription mapping:",t),p.orderId,t!=null&&t.message||String(t),Qo({}),Do({}))}finally{r||$m(!1)}})(),()=>{r=!0}},[p.clientId,p.providerNetworkId,A,He,p.clientProductId,Me,p.orderId,ne,Bc]
1),a.useEffect(()=>{if(qi)return;const e=D(p.providerNetworkId),r=D(p.clientId);if(h||!e&&!r){Dd({}),Wo({}),Ud(!1);return}let t=!1;Ud(!0);const n=e?tx(Ne,e).catch(d=>(ae(d,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Error loading provider-network custom formulary:",d),[])):Promise.resolve([]),c=r?sx(Ne,r).catch(d=>(ae(d,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Error loading client custom formulary:",d),[])):Promise.resolve([]),l=r||e?jI(Ne,r,{providerNetworkId:e}).catch(d=>(ae(d,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Error loading formulary medication variants:",d),new Map)):Promise.resolve(new Map);return Promise.all([n,c,l]).then(([d,y,g])=>{t||(Dd(Object.fromEntries([...d||[],...y||[]].filter(x=>x==null?void 0:x.id).map(x=>[x.id,x]))),Wo(vI(g)))}).catch(d=>{ae(d,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),!t&&(console.error("Error loading custom formulary:",d),Dd({}),Wo({}))}).finally(()=>{t||Ud(!1)}),()=>{t=!0}},[p.clientId,p.providerNetworkId,h,qi]),a.useEffect(()=>{if(!ne||!E||h){Go([]),Jo({}),Ho(!1);return}const e=D(p.clientId),r=D(p.providerNetworkId);if(!e||!r){Go([]),Jo({}),Ho(!1);return}let t=!1;return Ho(!0),(async()=>{try{const c=(await Uy(Ne,e,{providerNetworkIds:[r],includeClientOwned:!0})||[]).filter(g=>ix(g)?!!(na(g)&&D(g.productId||g.id)):!1),l=c.filter(g=>!wu(g)),[d,y]=await Promise.all([zy(Ne,{clientId:e,products:c}),l.length>0?nx(Ne,{providerNetworkId:r,products:l}).catch(g=>(ae(g,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Error loading provider-network formulary ties:",g),{})):Promise.resolve({})]);if(t)return;Go(c),Jo(ax(d,y))}catch(n){ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5844"}),t||(console.error("Error loading prescribe-by-product catalog:",n),Go([]),Jo({}))}finally{t||Ho(!1)}})(),()=>{t=!0}},[p.clientId,p.providerNetworkId,ne,h,E]),a.useEffect(()=>{const e=D(p.clientId),r=D(p.providerNetworkId);if(h||!e||!r){$d([]),Kd({}),Qd(!1);return}let t=!1;return Qd(!0),(async()=>{try{const c=(await Uy(Ne,e,{providerNetworkIds:[r]})).filter(d=>{const y=String((d==null?void 0:d.status)||"active").toLowerCase(),g=Number(d==null?void 0:d.customerPrice);return y!=="active"||!Number.isFinite(g)||g<0?!1:na(d)&&D(d.productId||d.id)}),l=await zy(Ne,{clientId:e,products:c});if(t)return;$d(c),Kd(l)}catch(n){ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5899"}),t||(console.error("Error loading add-on prescription mappings:",n),$d([]),Kd({}))}finally{t||Qd(!1)}})(),()=>{t=!0}},[p.clientId,p.providerNetworkId,h]),a.useEffect(()=>{if(qi)return;if(!p.providerNetworkId){Uo({});return}let e=!1;return(async()=>{try{const r=await OS(Ne,p.providerNetworkId);e||Uo($y(r))}catch(r){ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:5930"}),e||(console.error("Error loading provider network formulary medication overrides:",r),Uo({}))}})(),()=>{e=!0}},[p.providerNetworkId,qi]),a.useEffect(()=>{if(qi)return;if(!p.clientId){zo({});return}let e=!1;return(async()=>{try{const r=await TS(Ne,p.clientId);e||zo($y(r))}catch(r){ae(r,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:client-overrides"}),e||(console.error("Error loading client formulary medication overrides:",r),zo({}))}})(),()=>{e=!0}},[p.clientId,qi]),a.useEffect(()=>{np(!0)},[p.clientId,A==null?void 0:A.catalogEntryId,A==null?void 0:A.productId,Z]),a.useEffect(()=>{if(E||!Z||!ot)return;if(Array.isArray(Vs.current[Z])){ka(!1),Et("");return}let e=!1;return(async()=>await hn(Z,{showLoading:!0}))(),()=>{e=!0}},[hn,Z,ot,E]),a.useEffect(()=>{if(!Z||!S.pharmacyProductId||ke)return;(Jt[Z]||[]).some(t=>t.id===S.pharmacyProductId)&&Jr(S.pharmacyProductId)},[Z,ke,S.pharmacyProductId,Jt]);const et=a.useCallback(async({showErrorToast:e=!0}={})=>
1{if(p.orderId)return p.orderId;if(h||yl.current===o)return null;const r=bl.current.get(o);if(r)return r;const t=(async()=>{try{const n=await zr("ensureChartReviewOrder",{action:"ensureChartReviewOrder",chartReviewId:o});if(gl.current!==o)return;if(n!=null&&n.success&&(n!=null&&n.skipped)&&["no_order_required","recommendation_only_review"].includes(n.reason))return yl.current=o,null;if(!(n!=null&&n.success)||!(n!=null&&n.orderId))throw new Error((n==null?void 0:n.error)||"Unable to ensure order context for this visit.");return bi(c=>({...c,orderId:n.orderId})),n.orderId}catch(n){if(gl.current!==o)return;ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:6005"}),e&&C.error(n.message||"Unable to prepare prescription order context.");return}})();bl.current.set(o,t);try{return await t}finally{bl.current.delete(o)}},[o,p.orderId,h]);a.useEffect(()=>{fl.current=!1,yl.current=null},[o]),a.useEffect(()=>{if(!o||!fe||p.orderId||fl.current||h)return;let e=!1;return fl.current=!0,(async()=>{const r=await et({showErrorToast:!1})})(),()=>{e=!0}},[o,fe,p.orderId,et,h]);const Uc=a.useCallback(async({showErrorToast:e=!1}={})=>{if(I||!o||!fe)return!0;const r=JSON.stringify({prescribeDraft:$c,additionalProviderNotes:Xs||"",prescriptionData:!h&&S&&(S.medicationName||S.dosage||S.instructions||S.pharmacyId)?{...S,submissionMode:xr}:void 0}),t=Wn.current.capture();if(ol.current===r)return Wn.current.saved(t),!0;try{return await dx(o,{prescriptionData:!h&&S&&(S.medicationName||S.dosage||S.instructions||S.pharmacyId)?{...S,submissionMode:xr}:void 0,prescribeDraft:$c,additionalProviderNotes:Xs||""},{providerInitiated:t.providerInitiated}),ol.current=r,Wn.current.saved(t),pc.current=!1,!0}catch(n){return ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:6066"}),e&&C.error(n.message||"Unable to save prescribe draft. Please try again."),!1}},[I,o,fe,S,xr,$c,Xs,h]),ze=a.useCallback(async()=>(Zt.current&&(clearTimeout(Zt.current),Zt.current=null),Uc({showErrorToast:!0})),[Uc]),rf=a.useCallback(async()=>I||!o||!fe?!0:ze(),[o,fe,ze,I]);a.useEffect(()=>{if(typeof Ws=="function")return Ws(rf),()=>Ws(null)},[rf,Ws]),a.useEffect(()=>{if(!(I||!o||!fe)){if(mc.current){mc.current=!1;return}return Zt.current&&clearTimeout(Zt.current),pc.current=!0,Zt.current=setTimeout(()=>{Uc()},800),()=>{Zt.current&&clearTimeout(Zt.current)}}},[I,o,fe,$c,Xs,Uc]),a.useEffect(()=>()=>{Zt.current&&clearTimeout(Zt.current)},[]);const zc=a.useCallback(async({trigger:e="provider"}={})=>{var r;if(o){oc(!0),Ln(!0);try{const t=await zr("generatePrescriptionRecommendation",{reviewId:o,trigger:e,categoryId:vm||null,formData:gi??{},soapNotes:Ey(yi)});
1if(t.success)return Er(t.recommendation??null),Hs(Fe(t.notes)||""),(r=t.recommendation)!=null&&r.medicationId&&C.success("Recommendation generated"),t;C.error(t.error||"Unable to generate recommendation. Please try again.")}catch(t){ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:6151"}),C.error(t.message||"Unable to generate recommendation. Please try again.")}finally{Ln(!1)}return null}},[o,vm,gi,yi]),tu=!!o&&E&&!I&&!h&&!hi&&fe&&!K.some(e=>(e==null?void 0:e.status)==="submitted"),qb=a.useCallback(async()=>{if(!tu||gr)return;const e=await zc({trigger:"provider"});if(!e)return;At.current="",ll.current="",ul.current=new Set;const r=Array.isArray(e.items)&&e.items.length>1;X([r?_r():Be(Du(_r(),e.recommendation))])},[tu,gr,zc]),tf=((Xf=m==null?void 0:m.prescriptionRecommendationDiagnostics)==null?void 0:Xf.intakeSubmissionCount)??null,sf=Array.isArray(m==null?void 0:m.formSubmissionIds)?m.formSubmissionIds.length:0;a.useEffect(()=>{TI({chartReviewId:o,readOnly:I,draftReady:fe,isFormRequestMultiProduct:Me,prefillGeneratedAt:m==null?void 0:m.prescriptionRecommendationGeneratedAt,generatingPrescription:gr,prescriptionPrefill:w,autoPrefillRequested:cp,responseData:gi,clientPrescriptionRequest:hi,intakeCountAtGeneration:tf,reviewIntakeCount:sf})&&(oc(!0),zc({trigger:"automatic"}))},[o,I,fe,m==null?void 0:m.prescriptionRecommendationGeneratedAt,tf,sf,gi,gr,w,cp,zc,Me,hi]);const Bb=a.useCallback(e=>{const r=O.find(t=>t.id===e);Fr(!1),It("associated"),Sr(e),Jr(""),rl(!1),Et(""),va(""),Ma(""),Kn(!1),yc.current="",de(t=>({...t,...Te(r,e),pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",medicationName:"",dosage:"",frequency:"",ndc:"",csn:"",quantity:1,packCount:null,packQuantityConfirmed:!1,units:"",daysSupply:30,refills:0,daw:0,suppliesDetails:[]}))},[O,Te]),Vb=a.useCallback(e=>{const r=e==="manual"?"manual":"associated";Fr(!1),It(r),r==="manual"&&(Sr(""),Jr(""),rl(!1),tl(!1),sl(""),va(""),Ma(""),Kn(!1),yc.current="",de(t=>({...t,pharmacyOptionId:"",pharmacyId:"",externalPharmacyId:"",pharmacyIntegrationId:"",pharmacyIntegrationScopeType:"",pharmacyIntegrationScopeId:"",pharmacyIntegrationName:"",pharmacySource:"",pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",ndc:"",csn:"",packCount:null,packQuantityConfirmed:!1,customFormularyId:"",customMedicationSnapshot:null,suppliesDetails:[]})))},[]),Gc=a.useCallback(async({pharmacy:e,medicationId:r})=>{if(!e||!r)return"";const t=Bu({...Oe,networkOverridesByKey:{},pharmacy:e,medicationId:r});if(t)return t;if(!p.providerNetworkId)return"";try{return await _S(Ne,{providerNetworkId:p.providerNetworkId,pharmacy:e,medicationId:r})}catch(n){return ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:6267"}),console.error("Error spot-checking formulary medication override directions:",n),""}},[p.providerNetworkId,Oe]),Jc=a.useCallback((e,r)=>{const t=String(e??""),n=String(r??"");return t.trim()?t===n:!0},[]),nf=a.useCallback(({pharmacy:e,medicationId:r,productId:t,initialInstructions:n})=>{(async()=>{const c=await Gc({pharmacy:e,medicationId:r});c&&de(l=>l.pharmacyProductId!==t||l.formularyDirectionSnapshot||!Jc(l.instructions,n)?l:{...l,instructions:c})})()},[Gc,Jc]),fs=a.useCallback(({lineType:e,entryId:r,pharmacy:t,medicationId:n,productId:c,initialInstructions:l})=>{(async()=>{const d=await Gc({pharmacy:t,medicationId:n});if(!d)return;(e==="fulfillment"?X:Es)(g=>g.map(x=>x.id!==r||x.pharmacyProductId!==c||x.formularyDirectionSnapshot||!Jc(x.instructions,l)?x:Be({...x,instructions:d})))})()},[Gc,Jc]),Wc=a.useCallback(async({pharmacy:e,medicationId:r})=>{if(!e||!r)return null;const t=Lu({...Oe,networkOverridesByKey:{},pharmacy:e,medicationId:r}),n=Ly({...Oe,networkOverridesByKey:{},pharmacy:e,medicationId:r});let c=null;if(p.providerNetworkId)try{c=await $S(Ne,{providerNetworkId:p.providerNetworkId,pharmacy:e,medicationId:r,fields:["quantity","daysSupply"]})}catch(y){ae(y,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:6328"}),console.error("Error spot-checking formulary medication overrides:",y),c=null}const l=t??(c==null?void 0:c.quantity)??null,d=n??(c==null?void 0:c.daysSupply)??null;return l==null&&d==null?null:{quantity:l,daysSupply:d}},[p.providerNetworkId,Oe]),Hc=a.useCallback(({pharmacy:e,product:r,fresh:t,pairingQuantity:n,appliedQuantity:c,appliedDaysSupply:l,currentQuantity:d,currentDaysSupply:y,lockDaysSupply:g=!1})=>_I({appliedQuantity:c,appliedDaysSupply:l,currentQuantity:d,currentDaysSupply:y,pairingQuantity:n,freshQuantity:(t==null?void 0:t.quantity)??null,freshDaysSupply:(t==null?void 0:t.daysSupply)??null,coerceQuantity:x=>Ay(e,r,x),resolveDaysSupply:(x,N,L)=>g?null:N!=null?Vu(e)?qy(x,N,r):N:!L||!Vu(e)?null:By(e,x,r)}),[]),af=a.useCallback(({pharmacy:e,medicationId:r,productId:t,product:n,quantity:c,pairingQuantity:l=null,appliedDaysSupply:d,lockDaysSupply:y=!1})=>{(async()=>{const g=await Wc({pharmacy:e,medicationId:r});g&&(g.quantity==null&&g.daysSupply==null||de(x=>
1{if(x.pharmacyProductId!==t)return x;const N=Hc({pharmacy:e,product:n,fresh:g,pairingQuantity:l,appliedQuantity:c,appliedDaysSupply:d,currentQuantity:x.quantity,currentDaysSupply:x.daysSupply,lockDaysSupply:y});return N?{...x,...N}:x}))})()},[Hc,Wc]),ys=a.useCallback(({lineType:e,entryId:r,pharmacy:t,medicationId:n,productId:c,product:l,quantity:d,pairingQuantity:y=null,appliedDaysSupply:g,lockDaysSupply:x=!1})=>{(async()=>{const N=await Wc({pharmacy:t,medicationId:n});if(!N||N.quantity==null&&N.daysSupply==null)return;(e==="fulfillment"?X:Es)(q=>q.map(Q=>{if(Q.id!==r||Q.pharmacyProductId!==c)return Q;const te=Hc({pharmacy:t,product:l,fresh:N,pairingQuantity:y,appliedQuantity:d,appliedDaysSupply:g,currentQuantity:Q.quantity,currentDaysSupply:Q.daysSupply,lockDaysSupply:x});return te?Be({...Q,...te}):Q}))})()},[Hc,Wc]);a.useEffect(()=>{!fe||h||K.length===0||X(e=>{let r=!1;const t=e.map(n=>{const c=Be(n);if(c.mode==="manual"||!c.pharmacyProductId)return n;const l=O.find(M=>M.id===c.pharmacyOptionId||M.id===c.pharmacyId||M.pharmacyId===c.pharmacyId||M.pharmacyId===c.externalPharmacyId);if(!l)return n;const y=(R[l.id]||R[c.pharmacyOptionId]||[]).find(M=>M.id===c.pharmacyProductId);if(!y)return n;const g=ce(y),x=fn(c),N=Us({variantsById:Ve,explicitVariantId:c.formularyVariantId}),L=ii(N,"")||(x.isVisit?ta(re,St(y,{singleLine:e.length<=1})):"")||Or(l,g,x)||y.defaultSig||"";if(!L)return n;const q=`fulfillment:${c.id}:${l.id}:${c.pharmacyProductId}`,Q=mp.current.get(q)||"";if(c.formularyDirectionSnapshot)return n;const te=Fe(c.instructions);return te&&te!==Fe(Q)||te===Fe(L)?n:(mp.current.set(q,L),r=!0,Be({...c,instructions:L}))});return r?t:e})},[fe,O,Ve,K.length,Or,fn,St,R,re,h]);const su=a.useCallback((e,r="",t="")=>{var pe;const n=r||Z;if(!n)return;const c=(pe=R[n])==null?void 0:pe.find(le=>le.id===e),l=Us({variantsById:Ve,explicitVariantId:t}),d=l?{...c,directions:l.directions,formularyVariantId:l.id,variantLabel:l.label,quantity:l.quantity,daysSupply:l.daysSupply,refills:l.refills}:c;if(!d)return;const y=O.find(le=>le.id===n);if(Is(y,d,Ee,{deaResolved:rr}))return;const g=[be(d),d.variantLabel].filter(Boolean).join(" · ");Fr(!1),Sr(n),Jr(e),tl(!1),sl("");const x=ce(d),N=ns(y,x),L=Hr(y,d,{presetQuantity:N,variantQuantity:l==null?void 0:l.quantity,allowPurchasedFillQuantity:!0}),q=Or(y,x,Yr),Q=St(d,{singleLine:!0}),te=ta(re,Q),M=ii(l,""),U=M||te||q||d.defaultSig||"",$=gd(re,Q),H=Id(d)?bd(re,Q):null,z=mo(l),T=z??H??Xr(y,L,d,x),V=bo(d);de(le=>({...le,pharmacyOptionId:n,...Te(y,n),pharmacyName:y?Ae(y):le.pharmacyName,pharmacyProductId:d.id,formularyVariantId:d.formularyVariantId||"",formularyDirectionId:"",formularyDirectionSnapshot:null,pharmacyProductName:g,medicationName:g||le.medicationName,vendor:V.vendor,vendorId:V.vendorId,dosage:d.dosage||d.description||le.dosage,instructions:U,ndc:d.ndc||"",csn:d.csn||"",quantity:L,packCount:Gs(d),packQuantityConfirmed:!1,units:d.units||le.units||"each",daysSupply:T,refills:(l==null?void 0:l.refills)??$??d.defaultRefills??le.refills??0,daw:d.daw??le.daw??0,suppliesDetails:[]})),!te&&!M&&nf({pharmacy:y,medicationId:x,productId:d.id,initialInstructions:U}),af({pharmacy:y,medicationId:x,productId:d.id,product:d,quantity:L,pairingQuantity:po(l,null)??N,appliedDaysSupply:T,lockDaysSupply:z!=null||H!=null})},[Z,R,Ve,O,Hr,re,Te,Ae,be,Or,ns,Yr,St,Xr,nf,af,Ee,rr]),Fb=a.useCallback(()=>{const e=pS(yi.plan||"").trim();if(!e){C.error("No P (Plan) section content to fill from.");return}de(r=>({...r,instructions:e})),C.success("Instructions filled from SOAP plan")},[yi]),Ob=a.useCallback(e=>{(e.key===" "||e.code==="Space")&&e.stopPropagation()},[]),xn=a.useCallback((e,r)=>{Es(t=>t.map(n=>n.id===e?Be({...n,...r}):n))},[]),Tb=a.useCallback((e,r)=>{Zs(t=>t.map(n=>n.id===e?ay({...n,...r}):n))},[]),_b=a.useCallback(()=>{Es(e=>[...e,_r({mode:xr==="manual"?"associated":xr,pharmacyOptionId:S.pharmacyOptionId||Z||"",pharmacyId:S.pharmacyId||"",externalPharmacyId:S.externalPharmacyId||S.pharmacyId||"",pharmacyName:S.pharmacyName||"",pharmacyIntegrationId:S.pharmacyIntegrationId||"",pharmacyIntegrationScopeType:S.pharmacyIntegrationScopeType||"",pharmacyIntegrationScopeId:S.pharmacyIntegrationScopeId||"",pharmacyIntegrationName:S.pharmacyIntegrationName||"",pharmacySource:S.pharmacySource||"",pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",medicationName:"",dosage:"",instructions:"",additionalNotes:"",quantity:1,units:S.units||"each",daysSupply:30,refills:0,daw:0,ndc:"",csn:"",suppliesDetails:[]})])},[xr,S,Z]),$b=a.useCallback(()=>{Zs(e=>[...e,$I()])},[]),Kb=a.useCallback(e=>{Es(r=>r.filter(t=>t.id!==e))},[]),wb=a.useCallback(e=>{Zs(r=>r.filter(t=>t.id!==e))},[]),pr=a.useCallback((e,r,t=!1)=>{r.pharmacyProductId!==void 0&&Ym(n=>n.filter(c=>c!==e)),X(n=>{const c=ga.current;return(e===c.id&&!n.some(d=>d.id===e)?[...n,c]:n).map(d=>{if(d.id!==e)return d;const y=Be(t?Cx(d,r):{...d,...r,...r.pharmacyProductId!==void 0?{prescriptionPrefillSnapshot:null}:{}});return d.status==="failed"&&r.status===void 0?Be({...y,status:"draft",submissionError:""}):y})})},[]),Qb=a.useCallback(()=>{X(e=>{const r=om(e,nr,j,at),t=ga.current,c=r.length===0&&!e.some(g=>g.id===t.id)?[...e,t]:e,l=r.length>0?r[r.length-1]:t,d=(l==null?void 0:l.pharmacyOptionId)||(l==null?void 0:l.pharmacyId
1)||"",y=O.find(g=>g.id===d);return[...c,_r({mode:(l==null?void 0:l.mode)==="manual"?"manual":"associated",...y&&d?Te(y,d):{}})]})},[Te,at,j,O,nr]),of=a.useCallback(e=>{X(r=>{const t=r.find(c=>c.id===e);if(t){const c=String(t.clientProductId||t.linkedClientProductId||t.advertisedClientProductId||"").trim(),l=String(t.pharmacyProductId||t.customFormularyId||"").trim(),d=String(t.formularyVariantId||"").trim();c&&l&&wm.current.add(KI(o,c,l,d))}const n=r.filter(c=>c.id!==e);return n.length>0?n:[_r()]})},[o]),Db=a.useCallback((e,r)=>{const t=(r==null?void 0:r.id)||"";pr(e,{mode:"associated",...Te(r,t),pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",medicationName:"",dosage:"",instructions:"",ndc:"",csn:"",packCount:null,packQuantityConfirmed:!1,suppliesDetails:[]})},[Te,pr]),Ub=a.useCallback((e,r)=>{if(!r)return;const t=K.find(V=>V.id===e),n=(t==null?void 0:t.pharmacyOptionId)||(t==null?void 0:t.pharmacyId)||"",c=O.find(V=>V.id===n);if(Is(c,r,Ee,{deaResolved:rr}))return;const l=ce(r),d=fn(t),y=St(r,{singleLine:K.length<=1}),g=d.isVisit?ta(re,y):"",x=d.isVisit?gd(re,y):null,N=Id(r)&&d.isVisit?bd(re,y):null,L=Us({variantsById:Ve,explicitVariantId:sy(r)}),q=ii(L,""),Q=Or(c,l,d),te=q||g||Q||r.defaultSig||"",M=ns(c,l,d),U=po(L,null),$=Hr(c,r,{variantQuantity:U,presetQuantity:M,line:t}),H=mo(L),z=H??N??Xr(c,$,r,l),T=bo(r);pr(e,{mode:"associated",pharmacyProductId:r.id,pharmacyProductName:be(r),medicationName:be(r),vendor:T.vendor,vendorId:T.vendorId,dosage:r.dosage||r.description||"",instructions:te,quantity:$,packCount:Gs(r),packQuantityConfirmed:!1,units:r.units||"each",daysSupply:z,refills:x??id(L)??r.defaultRefills??0,daw:r.daw??0,ndc:r.ndc||"",csn:r.csn||"",customFormularyId:"",formularyVariantId:(L==null?void 0:L.id)||"",customMedicationSnapshot:null,suppliesDetails:[]}),!g&&!q&&fs({lineType:"fulfillment",entryId:e,pharmacy:c,medicationId:l,productId:r.id,initialInstructions:te}),ys({lineType:"fulfillment",entryId:e,pharmacy:c,medicationId:l,productId:r.id,product:r,quantity:$,pairingQuantity:U??M,appliedDaysSupply:z,lockDaysSupply:H!=null||N!=null})},[K,O,Ve,Or,fn,Hr,ns,be,St,Xr,fs,ys,pr,Ee,rr,re]),je=a.useCallback(e=>Su(Ye,e),[Ye]),cf=a.useCallback((e,r)=>ea(e)?KS(r):wS(e)?QS(r):"",[]),df=a.useCallback(e=>{if(sn.current.size===0)return!1;const r=Uu({products:[e],mappingsByKey:Ir,pharmacies:Ce});return r?r.items.every(t=>t.medicationIds.every(n=>sn.current.has(`${t.optionId}>${n}`))):!0},[Ce,Ir]),Yc=a.useCallback(e=>Ol&&(df(e)||Ga),[df,Ol,Ga]),Pn=a.useCallback(e=>{const r=jr(e),t=r?Ir[r]||{}:{},n=eg(re,{medicationId:""});return ox(e,{pharmacies:Ce,mappings:t,patientState:Se,hiddenFormularyIds:Vt,allowHiddenPairedMedications:!0,pharmacyProductsByPharmacyId:R,customFormularyById:_n,drugsLoaded:Yc(e),customFormularyLoaded:!xi,purchasedClinicalDifference:n,overridesByKey:Oe.networkOverridesByKey,getOverrideKey:(c,l)=>qu(c,l,Oe.providerNetworkId),clientOverridesByKey:Oe.clientOverridesByKey,getClientOverrideKey:(c,l)=>qu(c,l,Oe.clientId),getNameMatchedClinicalDifference:cf,variantsById:Ve})},[_n,xi,Ve,Ce,cf,Vt,Yc,Se,R,Ir,re,Oe]),Ui=a.useCallback(e=>cx(e,{pharmacies:Ce,mappings:(()=>{const r=jr(e);return r?Ir[r]||{}:{}})(),patientState:Se,hiddenFormularyIds:Vt,pharmacyProductsByPharmacyId:R,customFormularyById:_n,drugsLoaded:Yc(e),plan:Pn(e)}),[_n,Ce,Vt,Yc,Se,R,Ir,Pn]),ti=a.useMemo(()=>je(A==null?void 0:A.clientProductId)||je(A==null?void 0:A.catalogEntryId)||je(A==null?void 0:A.productId)||je(A==null?void 0:A.id)||je(p.clientProductId)||je(He),[je,p.clientProductId,He,A==null?void 0:A.catalogEntryId,A==null?void 0:A.clientProductId,A==null?void 0:A.id,A==null?void 0:A.productId]),zi=ti&&(jr(ti)||D(ti.clientProductId||ti.id))||"",gs=String((A==null?void 0:A.clientProductId)||p.clientProductId||(A==null?void 0:A.productId)||He||"").trim(),Cr=!!(ne&&E&&gs&&!qs&&!ts&&!sr),lf=a.useCallback(e=>{var r;return e?e.status==="pending"||e.kind==="pending"?"Loading pharmacy catalogâ¦":e.needsPharmacyChoice?"Select a pharmacy for this medication.":e.needsDisambiguation?e.kind==="custom"?"Select the tied medication below.":"Select a pharmacy for this medication.":e.capped?`This product is tied to more than ${fd} prescription lines. The first ${fd} were added.`:e.kind==="onlyscripts"&&e.medication?`â ${hu(e.medication)} â will be sent to pharmacy`:e.kind==="custom"&&e.medication?`â ${((r=e.medication)==null?void 0:r.medicationName)||e.medicationId||"Custom medication"}
1 â will be saved (submit externally)`:e.kind==="none"?"â No formulary mapping â select a medication below":e.unavailableForPatientState?"â No state-eligible mapped medication â select an available medication below":"":""},[]),uf=a.useCallback((e,r,t)=>{const n=t.pharmacy,c=t.medication;if(!n||!c)return;if(Is(n,c,Ee,{deaResolved:rr})){const le=ho({kind:"none",medication:null,pharmacy:null},{clientProduct:r});pr(e,{...le,mode:"associated",productResolutionKind:"onlyscripts"});return}const l=ce(c),d=ho(t,{clientProduct:r}),y=Li(r),g=St(c,{singleLine:K.length<=1}),x=y.isVisit?ta(re,g):"",N=y.isVisit?gd(re,g):null,L=Id(c)&&y.isVisit?bd(re,g):null,q=Number.parseInt(r==null?void 0:r.prescriptionRefills,10),Q=Number.isFinite(q)&&q>=0?q:null,te=Us({variantsById:Ve,planVariantId:t.variantId||t.formularyVariantId,scopeMappings:y.mappings,scopeFallbackMappings:y.fallbackMappings,pharmacy:n,medicationId:l}),M=ii(te,""),U=Or(n,l,y),$=M||x||U||d.instructions||c.defaultSig||"",H=ns(n,l,y),z=po(te,null),T=Hr(n,c,{variantQuantity:z,presetQuantity:H??t.quantity,catalogProduct:r}),V=mo(te),pe=V??L??t.daysSupply??Xr(n,T,c,l);pr(e,{...d,instructions:$,quantity:T,packCount:Gs(c),packQuantityConfirmed:!1,daysSupply:pe,refills:N??id(te)??Q??d.refills??0,formularyVariantId:(te==null?void 0:te.id)||"",productResolutionKind:"onlyscripts"}),!x&&!M&&fs({lineType:"fulfillment",entryId:e,pharmacy:n,medicationId:l,productId:c.id,initialInstructions:$}),ys({lineType:"fulfillment",entryId:e,pharmacy:n,medicationId:l,productId:c.id,product:c,quantity:T,pairingQuantity:z??H??t.quantity??null,appliedDaysSupply:pe,lockDaysSupply:V!=null||L!=null}),Yo(le=>{const Ke={...le};return delete Ke[e],Ke}),Zo(le=>{if(!le[e])return le;const Ke={...le};return delete Ke[e],Ke})},[K.length,Ve,Or,ns,Li,St,Ee,rr,re,Hr,Xr,fs,ys,pr]),mf=a.useRef({}),pf=a.useRef([]),ff=a.useCallback((e,r,t)=>{if(!t||t.status==="pending"){xa.current.set(e,!0);return}xa.current.delete(e),t.capped&&C.warning(`This product is tied to more than ${fd} prescription lines. The first ${fd} were added.`);const n=jr(r)||D(r.clientProductId||r.id);X(c=>{const{next:l,pendingByLineId:d,removedLineIds:y}=wI({prev:c,hostLineId:e,plan:t,clientProduct:r,chartReviewId:o,productKey:n,dismissedKeys:wm.current,isEntryBlocked:g=>g.kind==="onlyscripts"&&g.pharmacy&&g.medication&&Is(g.pharmacy,g.medication,Ee,{deaResolved:rr}),enrichLine:(g,x)=>{if(x.kind!=="onlyscripts"||x.needsPharmacyChoice||!x.pharmacy||!x.medication)return g;const N=ce(x.medication),L=Li(r),q=Us({planVariantId:x.variantId,scopeMappings:L.mappings,scopeFallbackMappings:L.fallbackMappings,pharmacy:x.pharmacy,medicationId:N,variantsById:Ve}),Q=Or(x.pharmacy,N,L),te=mo(q),M=Hr(x.pharmacy,x.medication,{variantQuantity:po(q,null),presetQuantity:ns(x.pharmacy,N,L)??x.quantity,catalogProduct:r});return{...g,instructions:ii(q,Q)||g.instructions||x.medication.defaultSig||"",quantity:M,packCount:Gs(x.medication),packQuantityConfirmed:!1,daysSupply:te??x.daysSupply??Xr(x.pharmacy,M,x.medication,N),refills:id(q)??x.refills??g.refills,formularyVariantId:(q==null?void 0:q.id)||""}}});return mf.current=d,pf.current=y||[],l}),Yo(c=>{const l={...c};return delete l[e],(pf.current||[]).forEach(d=>{delete l[d]}),{...l,...mf.current}})},[o,Ve,Or,ns,Li,Ee,rr,Hr,Xr]),Xc=a.useCallback((e,r)=>{const t=je(r);if(!t)return;Fr(!1),Zo(c=>{if(!c[e])return c;const l={...c};return delete l[e],l});const n=Pn(t);if(n.status==="pending"){xa.current.set(e,!0);return}ff(e,t,n)},[ff,je,Pn]),yf=a.useCallback((e,r)=>{const t=K.find(x=>x.id===e),n=je((t==null?void 0:t.clientProductId)||(t==null?void 0:t.linkedClientProductId)||(t==null?void 0:t.advertisedClientProductId));if(!n||!r)return;const c=gt[e],l=((c==null?void 0:c.candidates)||[]).find(x=>{var N;return String((x==null?void 0:x.medicationId)||((N=x==null?void 0:x.medication)==null?void 0:N.medicationId)||(x==null?void 0:x.id)||"")===String(r)}),d=(l==null?void 0:l.medication)||l;if(!d)return;const y={kind:"custom",medication:d,pharmacy:null,medicationId:d.medicationId||r,directions:d.directions,quantity:d.quantity},g=ho(y,{clientProduct:n});pr(e,{...g,productResolutionKind:"custom"}),Yo(x=>{const N={...x};return delete N[e],N})},[je,K,gt,pr]),gf=a.useCallback((e,r)=>{var y;const t=K.find(g=>
1g.id===e),n=je((t==null?void 0:t.clientProductId)||(t==null?void 0:t.linkedClientProductId)||(t==null?void 0:t.advertisedClientProductId)),c=gt[e];if(!n||!(c!=null&&c.needsPharmacyChoice))return;const l=(c.pharmacyChoices||[]).find(g=>String((g==null?void 0:g.id)||"")===String(r));if(!l||!c.medication)return;const d=((y=c.candidatesByPharmacyId)==null?void 0:y[l.id])||c;uf(e,n,{kind:"onlyscripts",pharmacy:l,medication:d.medication||c.medication,medicationId:d.medicationId||c.medicationId,directions:d.directions,quantity:d.quantity,daysSupply:d.daysSupply,refills:d.refills,variantId:d.variantId,variantLabel:d.variantLabel,clinicalDifferenceStatement:d.clinicalDifferenceStatement,clinicalDifferenceSource:d.clinicalDifferenceSource})},[uf,je,K,gt]),Tr=a.useCallback(e=>{const r=je((e==null?void 0:e.clientProductId)||(e==null?void 0:e.linkedClientProductId)||(e==null?void 0:e.advertisedClientProductId));return r&&(jr(r)||D(r.clientProductId||r.id))||""},[je]),bf=a.useRef(new Set);a.useEffect(()=>{if(!ne||!E||!Vi)return;const e=`repair:${o||""}`,r=Qm.current!==e;
1K.forEach(t=>{if(t.prescriptionId&&at.has(t.prescriptionId))return;const n=Tr(t);if(!n)return;const c=String(t.productResolutionKind||"").trim().toLowerCase();if(c==="onlyscripts"||c==="custom"||t.pharmacyProductId||t.customFormularyId||gt[t.id]||xa.current.get(t.id)||QI(t)&&c==="none")return;const d=`${t.id}:${n}:${Op}`;if(bf.current.has(d))return;const y=je(n);if(!y)return;const g=Pn(y);if(g.status==="pending"){xa.current.set(t.id,!0);return}const x=DI(t)&&g.status==="ready";c==="none"&&!x||x&&!r||(bf.current.add(d),x&&(Qm.current=e),Xc(t.id,n))})},[o,at,je,K,gt,Tr,Xc,Vi,ne,Op,Pn,E]),a.useEffect(()=>{if(!Cr||sr)return;const e=K[0];if(!(!(e!=null&&e.id)||e.status==="submitted")&&!(e.pharmacyProductId&&!e.prescriptionPrefillSnapshot||e.customFormularyId)&&!(Tr(e)||e.clientProductId)){if(e.prescriptionPrefillSnapshot){if(!gs)return;pr(e.id,{clientProductId:gs,linkedClientProductId:gs,advertisedClientProductId:gs,advertisedProductName:(A==null?void 0:A.displayName)||""});return}if(ti&&!hr){const r=ho({kind:"none",medication:null,pharmacy:null},{clientProduct:ti});pr(e.id,{...r,mode:"associated",productResolutionKind:"none"});return}gs&&pr(e.id,{clientProductId:gs,linkedClientProductId:gs,advertisedClientProductId:gs,advertisedProductName:(A==null?void 0:A.displayName)||"",productResolutionKind:"none"})}},[Cr,K,Tr,hr,sr,A==null?void 0:A.displayName,ti,gs,pr]);const ut=a.useMemo(()=>Array.isArray(P==null?void 0:P.patientSelectedProducts)?P.patientSelectedProducts:[],[P==null?void 0:P.patientSelectedProducts]),nu=a.useRef(""),If=a.useRef(""),Zc=ut.length>0&&!h&&!I&&fe;a.useEffect(()=>{if(!Zc||!ne||!E||hr||Ye.length===0)return;const e=`lines:${o||""}`;if(nu.current===e)return;const r=ut.map(n=>je(n.clientProductId)||je(n.productId)).filter(Boolean);if(r.length===0)return;const t=n=>!(n!=null&&n.clientProductId)&&!(n!=null&&n.advertisedClientProductId)&&!(n!=null&&n.linkedClientProductId)&&!(n!=null&&n.pharmacyProductId)&&!(n!=null&&n.customFormularyId)&&!(n!=null&&n.productResolutionKind)&&((n==null?void 0:n.mode)!=="manual"||!(n!=null&&n.medicationName));if(!K.every(t)){nu.current=e;return}nu.current=e,X(n=>n.every(t)?r.map((c,l)=>{var g;const d=D(c.clientProductId||c.id),y=n[l]||_r({mode:((g=n[0])==null?void 0:g.mode)==="manual"?"manual":"associated"});return Be({...y,clientProductId:d,advertisedClientProductId:d})}):n)},[Zc,o,je,K,hr,ut,ne,Ye.length,E]),a.useEffect(()=>{if(!Zc||!ts||Ut||Ar.length===0||Rs)return;const e=`provider-product:${o||""}`;if(If.current===e)return;const{matched:r}=Qy(ut,Ar);r.length!==0&&(If.current=e,ma(r[0].option.id))},[Zc,o,Ut,ut,Ar,Rs,ts]);const to=a.useMemo(()=>ut.length===0?[]:ts?Ut||Ar.length===0?[]:Qy(ut,Ar).unavailable:!ne||hr?[]:Ye.length===0?[]:ut.filter(e=>!(je(e.clientProductId)||je(e.productId))),[je,hr,Ut,ut,ne,Ye.length,Ar,ts]),bs=a.useCallback((e,r,t=!1)=>{if(r!=null&&r.isManual){pr(e,{mode:"manual",pharmacyOptionId:"",pharmacyId:"",externalPharmacyId:"",pharmacyName:"",pharmacyIntegrationId:"",pharmacyIntegrationScopeType:"",pharmacyIntegrationScopeId:"",pharmacyIntegrationName:"",pharmacySource:"",pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",ndc:"",csn:"",packCount:null,packQuantityConfirmed:!1,customFormularyId:"",customMedicationSnapshot:null,suppliesDetails:[]});return}if(r!=null&&r.isCustom&&(r!=null&&r.product)){pr(e,{...ho({kind:"custom",medication:r.product,medicationId:r.product.id||r.product.medicationId,directions:r.product.directions,quantity:r.product.quantity}),packCount:null,packQuantityConfirmed:!1,productResolutionKind:"custom"},t);return}const n=r==null?void 0:r.pharmacy,c=r==null?void 0:r.product;if(!n||!c||Is(n,c,Ee,{deaResolved:rr}))return;const l=n.id||"",d=ce(c),y=K.find(le=>le.id===e),g=fn(y),x=St(c,{singleLine:K.length<=1}),N=g.isVisit?ta(re,x):"",L=g.isVisit?gd(re,x):null,q=Id(c)&&g.isVisit?bd(re,x):null,Q=Us({variantsById:Ve,explicitVariantId:sy(c)}),te=ii(Q,""),M=Or(n,d,g),U=te||N||M||c.defaultSig||"",$=ns(n,d,g),H=po(Q,null),z=Hr(n,c,{variantQuantity:H,presetQuantity:$,line:y}),T=mo(Q),V=T??q??Xr(n,z,c,d),pe=bo(c);pr(e,{mode:"associated",...Te(n,l),pharmacyProductId:c.id,pharmacyProductName:be(c),medicationName:be(c),vendor:pe.vend
1or,vendorId:pe.vendorId,dosage:c.dosage||c.description||"",instructions:U,quantity:z,packCount:Gs(c),packQuantityConfirmed:!1,units:c.units||"each",daysSupply:V,refills:L??id(Q)??c.defaultRefills??0,daw:c.daw??0,ndc:c.ndc||"",csn:c.csn||"",customFormularyId:"",formularyVariantId:(Q==null?void 0:Q.id)||"",customMedicationSnapshot:null,suppliesDetails:[],productResolutionKind:"onlyscripts"},t),!N&&!te&&fs({lineType:"fulfillment",entryId:e,pharmacy:n,medicationId:d,productId:c.id,initialInstructions:U}),ys({lineType:"fulfillment",entryId:e,pharmacy:n,medicationId:d,productId:c.id,product:c,quantity:z,pairingQuantity:H??$,appliedDaysSupply:V,lockDaysSupply:T!=null||q!=null}),Yo(le=>{const Ke={...le};return delete Ke[e],Ke}),Zo(le=>{if(!le[e])return le;const Ke={...le};return delete Ke[e],Ke})},[Te,K,Ve,Hr,Or,fn,ns,be,St,Xr,fs,ys,pr,Ee,rr,re]),hf=a.useCallback(async({silent:e=!1}={})=>{var c;if(!(W!=null&&W.medicationId))return e||C.error("This recommendation is not tied to a Formulary medication."),!1;if(E){const l=K[0];if(!(l!=null&&l.id))return e||C.error("Add a prescription line first."),!1;if(e&&!xu(l))return"skipped";const d=Yi({options:_s,prefill:W,getFormularyMedicationId:ce});if(d)return bs(l.id,d),e||C.success("Applied to prescription 1"),!0}else if(e&&(ke||S.pharmacyProductId))return"skipped";const r=E?Ce:O;let t=R,n=Pu({prefill:W,pharmacies:r,pharmacyProductsById:t,getFormularyMedicationId:ce});if(n!=null&&n.pharmacy&&!n.product){const l=E?await yn(n.pharmacy,[W.medicationId]).catch(()=>[]):await hn(n.pharmacy.id);t={...t,[n.pharmacy.id]:xo(t[n.pharmacy.id],l)},n=Pu({prefill:W,pharmacies:r,pharmacyProductsById:t,getFormularyMedicationId:ce})}if(E&&!(n!=null&&n.product)){const l=await Lc(`apply:${W.medicationId}`,W).promise;Object.entries(l).forEach(([d,y])=>{t={...t,[d]:xo(t[d],y)}}),n=Pu({prefill:W,pharmacies:r,pharmacyProductsById:t,getFormularyMedicationId:ce})}if(!(n!=null&&n.pharmacy)||!n.product)return e||C.error("That medication is no longer on the live Formulary list."),!1;if(E){const l=(c=K[0])==null?void 0:c.id;return l?(bs(l,{pharmacy:n.pharmacy,product:n.product}),e||C.success("Applied to prescription 1"),!0):(e||C.error("Add a prescription line first."),!1)}return su(n.product.id,n.pharmacy.id,n.product.formularyVariantId||""),e||C.success("Applied to prescription 1"),!0},[O,hn,Ce,_s,K,bs,su,yn,Lc,W,R,S.pharmacyProductId,ke,E]);a.useEffect(()=>{if(E||I||h||!fe||!(W!=null&&W.medicationId)||gr)return;const e=oy(o,w);if(At.current===e)return;if(ke||S.pharmacyProductId){At.current=e;return}let r=!1;return(async()=>{const t=await hf({silent:!0});r||(t===!0||t==="skipped")&&(At.current=e)})(),()=>{r=!0}},[o,fe,gr,hf,W,w,S.pharmacyProductId,I,h,ke,E]);const zb=a.useCallback((e,r)=>{const t=(r==null?void 0:r.id)||"";xn(e,{mode:"associated",...Te(r,t),pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",medicationName:"",dosage:"",instructions:"",ndc:"",csn:"",packCount:null,packQuantityConfirmed:!1,suppliesDetails:[],productId:"",clientProductId:"",genericProductDisplay:"",priceCents:0,amountCents:0})},[Te,xn]),Gb=a.useCallback((e,r)=>{if(!r)return;const t=Dt.find(M=>M.id===e),n=(t==null?void 0:t.pharmacyOptionId)||(t==null?void 0:t.pharmacyId)||"",c=O.find(M=>M.id===n);if(Is(c,r,Ee,{deaResolved:rr}))return;const l=ce(r),d=$p(c,l),y=Fc(c,l,d==null?void 0:d.addOnProductKey),g=(r.formularyVariantId?r.directions:"")||y||r.defaultSig||"",x=Oc(c,l,d==null?void 0:d.addOnProductKey),N=Hr(c,r,{presetQuantity:x,variantQuantity:r.formularyVariantId?r.quantity:null,catalogProduct:(d==null?void 0:d.addOnProduct)||null}),L=(r.formularyVariantId?r.daysSupply:null)??Xr(c,N,r,l),q=bo(r);xn(e,{mode:"associated",pharmacyProductId:r.id,formularyVariantId:r.formularyVariantId||"",pharmacyProductName:be(r),medicationName:be(r),vendor:q.vendor,vendorId:q.vendorId,dosage:r.dosage||r.description||"",instructions:g,quantity:N,packCount:Gs(r),packQuantityConfirmed:!1,units:r.units||"each",daysSupply:L,refills:(r.formularyVariantId?r.refills:null)??r.defaultRefills??0,daw:r.daw??0,ndc:r.ndc||"",csn:r.csn||"",suppliesDetails:[],productId:(d==null?void 0:d.productId)||"",clientProductId:(d==null?void 0:d.clientProductId)||"",genericProductDisplay:(d==null?void 0:d.genericProductDisplay)||"",priceCents:(d==null?void 0:d.priceCents)??0,amountCents:(d==null?void 0:d.amountCents)??0});const Q=!!r.formularyVariantId&&!!r.directions,te=!!r.formularyVariantId&&r.daysSupply!=null;Q||fs({lineType:"addOn",entryId:e,pharmacy:c,medicationId:l,productId:r.id,initialInstructions:g}),ys({lineType:"addOn",entryId:e,pharmacy:c,medicationId:l,productId:r.id,product:r,quantity:N,pairingQuantity:r.formularyVariantId?r.quantity??x:x,appliedDaysSupply:L,lockDaysSupply:te})},[Dt,O,Hr,Fc,Oc,$p,be,Xr,fs,ys,xn,Ee,rr]),Jb=a.useCallback((e,r)=>{if(r!=null&&r.isManual){xn(e,{mode:"manual",pharmacyOptionId:"",pharmacyId:"",externalPharmacyId:"",pharmacyName:"",pharmacyIntegrationId:"",pharmacyIntegrationScopeType:"",pharmacyIntegrationScopeId:"",pharmacyIntegrationName:"",pharmacySource:"",pharmacyProductId:"",formularyVariantId:"",pharmacyProductName:"",ndc:"",csn:"",packCount:null,packQuantityConfirmed:!1,suppliesDetails:[],productId:"",clientProductId:"",genericProductDisplay:"",priceCents:0,amountCents:0});return}const t=r==null?void 0:r.pharmacy,n=r==null?void 0:r.product;if(!t||!n||Is(t,n,Ee,{deaResolved:rr}))return;const c=t.id||"",l=ce(n),d=Fc(t,l,r==null?void 0:r.addOnProductKey),y=(n.formularyVariantId?n.directions:"")||d||n.defaultSig||"",g=Oc(t,l,r==null?void 0:r.addOnProductKey),x=
1Hr(t,n,{presetQuantity:g,variantQuantity:n.formularyVariantId?n.quantity:null,catalogProduct:(r==null?void 0:r.addOnProduct)||null}),N=(n.formularyVariantId?n.daysSupply:null)??Xr(t,x,n,l),L=bo(n);xn(e,{mode:"associated",...Te(t,c),pharmacyProductId:n.id,formularyVariantId:n.formularyVariantId||"",pharmacyProductName:be(n),medicationName:be(n),vendor:L.vendor,vendorId:L.vendorId,dosage:n.dosage||n.description||"",instructions:y,quantity:x,packCount:Gs(n),packQuantityConfirmed:!1,units:n.units||"each",daysSupply:N,refills:(n.formularyVariantId?n.refills:null)??n.defaultRefills??0,daw:n.daw??0,ndc:n.ndc||"",csn:n.csn||"",suppliesDetails:[],productId:r.productId||"",clientProductId:r.clientProductId||"",genericProductDisplay:r.genericProductDisplay||"",priceCents:r.priceCents??0,amountCents:r.amountCents??r.priceCents??0});const q=!!n.formularyVariantId&&!!n.directions,Q=!!n.formularyVariantId&&n.daysSupply!=null;q||fs({lineType:"addOn",entryId:e,pharmacy:t,medicationId:l,productId:n.id,initialInstructions:y}),ys({lineType:"addOn",entryId:e,pharmacy:t,medicationId:l,productId:n.id,product:n,quantity:x,pairingQuantity:n.formularyVariantId?n.quantity??g:g,appliedDaysSupply:N,lockDaysSupply:Q})},[Te,Hr,Fc,Oc,be,Xr,fs,ys,xn,Ee,rr]),_t=a.useCallback((e={})=>{if(e.mode==="manual")return"manual";if(e.pharmacySource==="scriptsure")return"scriptsure";if(e.pharmacyIntegrationId||xt(e.pharmacySource))return"onlyscripts";const r=O.find(t=>t.id===(e.pharmacyOptionId||e.pharmacyId||""));return xt(r==null?void 0:r.source)?"onlyscripts":String((r==null?void 0:r.source)||"").toLowerCase()==="scriptsure"?"scriptsure":"manual"},[O]),Ds=a.useCallback(e=>{var n,c,l;if(!e||typeof e!="object")return;const r=yo(e),t=h?r.recommendationPrescription:r.primaryPrescription;It(t.mode||r.primaryPrescriptionMode),de(d=>({...d,...t})),Sr(t.pharmacyOptionId||t.pharmacyId||""),Jr(t.pharmacyProductId||""),Ba(D(((n=r.recommendationProtocol)==null?void 0:n.clientProductId)||((c=r.recommendationProtocol)==null?void 0:c.catalogEntryId)||((l=r.recommendationProtocol)==null?void 0:l.productId))),Es(r.addOnPrescriptions),ua(r.addOnRequestStatus||""),Bn(r.addOnRequestOrderId||""),Zs(r.recommendations),h||X(r.fulfillmentPrescriptions),mc.current=!0},[h]),Rc=a.useCallback(async({successMessage:e}={})=>{var y;if(I)return!1;if(Ks.find(g=>g.mode!=="associated"||!g.pharmacyOptionId||!g.pharmacyProductId||!g.productId||!g.clientProductId||!g.medicationName))return C.error("Select each add-on from client product-paired medications before submitting."),!1;if(Ks.find(g=>!Hi(g)))return C.error("Complete medication, instructions, quantity, and days supply for each add-on prescription."),!1;const n=me.mode==="manual"?!!((y=me.medicationName)!=null&&y.trim()):!!me.pharmacyProductId,c=!!me.prescriptionId||me.status==="submitted";if(n&&!c&&!Hi(me))return C.error(`${me.medicationName||"The primary prescription"} is sent to the pharmacy with the add-ons. Complete its directions, quantity, and days supply, or remove that line if you are only sending add-ons.`),!1;const l=Ks.map(g=>Io(g,g.quantity,g.packQuantityConfirmed)).find(g=>!g.valid);if(l)return C.error(l.error),!1;if(!Dc([me,...Ks])||!await ze()||!o)return!1;vd(!0);try{const g=await zr("saveGroupedAddOnRequests",{action:"saveGroupedAddOnRequests",chartReviewId:o,primaryPrescription:{...me,submissionMode:_t(me)},addOnPrescriptions:Ks.map(x=>({...x,submissionMode:_t(x)}))});return g.success?(g.prescribeDraft?Ds(g.prescribeDraft):(Bn(g.addOnRequestOrderId||g.addOnRequestGroupId||""),ua("pending_patient_decision")),e&&C.success(e),!0):(C.error(g.error||"Unable to submit add-ons. Please try again."),!1)}catch(g){return ae(g,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:7996"}),C.error(g.message||"Unable to submit add-ons. Please try again."),!1}finally{vd(!1)}},[I,ze,o,me,Ks,_t,Ds,Dc]),Sf=a.useCallback(async({successMessage:e}={})=>
1{if(I||!await ze()||!o)return!1;try{const t=await zr("savePatientRecommendations",{action:"savePatientRecommendations",chartReviewId:o,recommendations:_c});return t.success?(t.prescribeDraft&&Ds(t.prescribeDraft),e&&C.success(e),!0):(C.error(t.error||"Unable to save recommendations. Please try again."),!1)}catch(t){return ae(t,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:8039"}),C.error(t.message||"Unable to save recommendations. Please try again."),!1}},[I,ze,o,_c,Ds]),Wb=a.useCallback(async()=>{if(!oe){C.error("Record a decision before submitting add-on prescriptions."),ve==null||ve();return}if(!await Rc({successMessage:"Add-on prescriptions submitted. The patient will review, pay, and then they are sent to the pharmacy."})){C.error("Unable to submit add-on prescriptions. Please try again.");return}nr.length>0||(m==null?void 0:m.prescriptionCreated)===!0||(k&&k(),b&&b())},[oe,ve,Rc,nr.length,m==null?void 0:m.prescriptionCreated,k,b]),Hb=a.useCallback(async()=>{await Sf({successMessage:"Recommendations saved"})||C.error("Unable to save recommendations. Please try again.")},[Sf]),xf=a.useCallback(async()=>{if(I||Jn||!jt)return;if(!Ie){C.error("Select a protocol before submitting.");return}const e=await Kr(),r=e.providerId||null;if(!r){C.error(e.message);return}const t=E&&!h?ge.map(Q=>({...Q,submissionMode:_t(Q)})):null,n=(t==null?void 0:t[0])||{...me,submissionMode:_t(me)};if(n.submissionMode==="scriptsure"||String(n.pharmacySource||"").toLowerCase()==="scriptsure"){C.error("ScriptSure recommendation fulfillment is not supported yet.");return}if(n.mode==="manual"){if(!n.pharmacyName||!n.medicationName||!n.dosage||!n.instructions){C.error("Complete pharmacy, medication, dosage, and instructions before submitting.");return}if(!(Number(n.quantity)>0)||!(Number(n.daysSupply)>0)){C.error("Enter a valid quantity and days supply before submitting.");return}}else if(n.submissionMode!=="onlyscripts"||!n.pharmacyIntegrationId||!n.externalPharmacyId||!n.pharmacyProductId||!n.instructions){C.error("Select an OnlyScripts pharmacy, medication, and instructions before submitting.");return}const c=es(n.quantity??1,B,J);if(!c.valid){C.error(c.error);return}const l=Io(J||n,n.quantity,n.packQuantityConfirmed);if(!l.valid){C.error(l.error);return}const d=rs(n.daysSupply??S.daysSupply,B);if(!d.valid){C.error(d.error);return}if(!cs()||!ls()||!ms()||!Rr())return;if(!await ze()){C.error("Could not save prescription changes before submitting.");return}const{patientIdentity:g,requiresViosControlledSubstanceIdentity:x}=os(),N=ds(),L=us(),q=Zr();uc(!0);try{const Q=await zr("publishRecommendationOrder",{action:"publishRecommendationOrder",chartReviewId:o,productId:Ie.productId,clientProductId:Ie.clientProductId||null,protocol:Cc,providerId:r,prescription:Qs(ei(n)),...g?{patientIdentity:g}:{},...x?{requiresViosControlledSubstanceIdentity:!0}:{},...N.providerDea?{providerDea:N.providerDea}:{},...N.requiresProviderDea?{requiresProviderDea:!0}:{},...L.clinicalDifferenceStatement?{clinicalDifferenceStatement:L.clinicalDifferenceStatement}:{},...q.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:q.dirxMedicalNecessityStatement}:{}});if(!Q.success){C.error(Q.error||"Unable to submit prescription.");return}Q.prescribeDraft&&Ds(Q.prescribeDraft),st("flow_b_queued",{onDone:()=>{k&&k(),b&&b()}})}catch(Q){ae(Q,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:8222"}),C.error(Q.message||"Unable to submit prescription.")}finally{uc(!1)}},[I,Jn,Ie,p.orderId,et,Ei,Kr,Pc,me,_t,B,J,es,rs,S.daysSupply,ze,o,Cc,Ds,os,ds,us,cs,ls,ms,Rr,Zr,ra,Xe,Rr,Zr,ei,Qs,Sn,k,b,st,jt]),Pf=a.useCallback(async()=>{if(I||Jn||!jt)return;const e=await Kr(),r=e.providerId||null;if(!r){C.error(e.message);return}const t=p.orderId||null,c=(E&&!h?ge:[me]).some(H=>
1!!String((H==null?void 0:H.clientProductId)||(H==null?void 0:H.linkedClientProductId)||"").trim());if(!o||!u)return;if(qs&&!he&&!c){C.error("Select a product before prescribing.");return}if(Qr&&!jc){C.error(Qa?"Approve the chart review before prescribing.":"Select a product for each prescription.");return}const l=E&&!h?ge.map(H=>({...H,submissionMode:_t(H)})):null,d=(l==null?void 0:l[0])||{...me,submissionMode:_t(me)};if(d.submissionMode==="scriptsure"||String(d.pharmacySource||"").toLowerCase()==="scriptsure"){C.error("ScriptSure is not supported for assessment-first product submission yet.");return}if(d.mode==="manual"){if(!d.pharmacyName||!d.medicationName||!d.dosage||!d.instructions){C.error("Complete pharmacy, medication, dosage, and instructions before submitting.");return}}else if(d.submissionMode!=="onlyscripts"||!d.pharmacyIntegrationId||!d.externalPharmacyId||!d.pharmacyProductId||!d.instructions){C.error("Select an OnlyScripts pharmacy, medication, and instructions before submitting.");return}const y=es(d.quantity??1,B,J);if(!y.valid){C.error(y.error);return}const g=Io(J||d,d.quantity,d.packQuantityConfirmed);if(!g.valid){C.error(g.error);return}const x=rs(d.daysSupply??S.daysSupply,B);if(!x.valid){C.error(x.error);return}if(!cs()||!ls()||!ms()||!Rr())return;if(!await ze()){C.error("Could not save prescription changes before submitting.");return}const{patientIdentity:L,requiresViosControlledSubstanceIdentity:q}=os(),Q=ds(),te=us(),M=Zr(),U=c?"":String((he==null?void 0:he.clientProductId)||Qa||(d==null?void 0:d.clientProductId)||(d==null?void 0:d.linkedClientProductId)||(d==null?void 0:d.advertisedClientProductId)||"").trim(),$=c?"":String((he==null?void 0:he.productId)||(d==null?void 0:d.productId)||(d==null?void 0:d.linkedProductId)||(d==null?void 0:d.advertisedProductId)||"").trim();uc(!0);try{const H=await zr("queueAssessmentFirstProductPrescription",{...zt.current,chartReviewId:o,orderId:t,patientId:u,providerId:r,...U?{clientProductId:U}:{},...$?{productId:$}:{},prescription:Qs(ei(d)),...Array.isArray(l)?{fulfillmentPrescriptions:Sn(ra(l,O,M.dirxMedicalNecessityStatement||Xe))}:{},...L?{patientIdentity:L}:{},...q?{requiresViosControlledSubstanceIdentity:!0}:{},...Q.providerDea?{providerDea:Q.providerDea}:{},...Q.requiresProviderDea?{requiresProviderDea:!0}:{},...te.clinicalDifferenceStatement?{clinicalDifferenceStatement:te.clinicalDifferenceStatement}:{},...M.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:M.dirxMedicalNecessityStatement}:{}});if(!H.success){C.error(ig(H));return}cr(V=>({...V,checkoutFlow:(V==null?void 0:V.checkoutFlow)||(V!=null&&V.formRequestProductApproval?null:"visit_first"),formRequestProductApproval:(V==null?void 0:V.formRequestProductApproval)===!0||!0,paymentStatus:"unpaid",prescriptionSubmissionJobStatus:"pending_payment"}));const z=H.orderId||t;z&&(bi(V=>({...V,orderId:z})),Fa.current.set(z,{...Ic.current})),Da().catch(V=>{ae(V,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"Promise rejection"}),console.error("Unable to refresh form-request product orders",V)});const T=H.awaitingPrescriptionReview===!0?"flow_b_awaiting_client_review":"flow_b_queued";st(T,{onDone:()=>{var V,pe;return As({prescriptionIds:Array.isArray(H.prescriptionDocIds)?H.prescriptionDocIds:[],medicationNames:[((V=d==null?void 0:d.medicationName)==null?void 0:V.trim())||((pe=d==null?void 0:d.pharmacyProductName)==null?void 0:pe.trim())||""],orderId:z,after:async()=>{if(!Me){k&&k(),b&&b();return}const le=await Da(),Ke=le.find(mt=>mt.statusLabel==="Needs prescription");if(Ke){C.success(`Prescription submitted. Continue with ${Ke.productName}.`),await vc(Ke.orderId);return}le.length>0&&le.every(mt=>mt.statusLabel!=="Needs prescription")&&C.success("All product prescriptions have been submitted.")}})}})}catch(H){ae(H,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:8540"}),C.error(ig(H))}finally{uc(!1)}},[I,Jn,p.orderId,et,o,u,Kr,me,ge,_t,E,h,B,J,es,rs,S.daysSupply,ze,os,ds,us,cs,ls,ms,Rr,Zr,ra,O,Xe,Rr,Zr,ei,Qs,Sn,k,b,Da,Me,vc,qs,he,m,st,As,jc,Qa,Qr,jt]),Nf=a.useCallback(async()=>
1{if(I||!or||!o)return!1;const e=(j==null?void 0:j.submissionJobId)||(m==null?void 0:m.prescriptionSubmissionJobId)||(v==null?void 0:v.prescriptionSubmissionJobId)||p.prescriptionSubmissionJobId||null,r=(j==null?void 0:j.id)||(m==null?void 0:m.prescriptionDocId)||p.prescriptionDocId||null;if(!e||!r)return C.error("Prescription details are unavailable."),!1;if(!await ze())return C.error("Could not save prescription changes."),!1;if(!cs()||!ls()||!ms()||!Rr())return!1;const{patientIdentity:n,requiresViosControlledSubstanceIdentity:c}=os(),l=ds(),d=us(),y=Zr();let g=null,x=null;if(E&&!h){const L=(j==null?void 0:j.fulfillmentLineId)||null,q=ge.find(Q=>L&&Q.id===L||Q.prescriptionId===r||Q.prescriptionDocId===r)||ge[0];g=q?{...q,submissionMode:q.mode==="manual"?"manual":"onlyscripts"}:null,x=ge.map(Q=>({...Q,submissionMode:Q.mode==="manual"?"manual":"onlyscripts"}))}else g={...me,submissionMode:_t(me)};return await Yh({prescription:{id:r,submissionJobId:e},...g?{prescriptionPayload:Qs(g)}:{},...Array.isArray(x)?{fulfillmentPrescriptions:Sn(x)}:{},...n?{patientIdentity:n}:{},...c?{requiresViosControlledSubstanceIdentity:!0}:{},...l.providerDea?{providerDea:l.providerDea}:{},...l.requiresProviderDea?{requiresProviderDea:!0}:{},...d.clinicalDifferenceStatement?{clinicalDifferenceStatement:d.clinicalDifferenceStatement}:{},...y.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:y.dirxMedicalNecessityStatement}:{}})},[I,or,o,j==null?void 0:j.submissionJobId,j==null?void 0:j.id,j==null?void 0:j.fulfillmentLineId,m==null?void 0:m.prescriptionSubmissionJobId,m==null?void 0:m.prescriptionDocId,v==null?void 0:v.prescriptionSubmissionJobId,p.prescriptionSubmissionJobId,p.prescriptionDocId,ze,E,h,ge,me,_t,cs,ls,ms,Rr,os,ds,us,Zr,Qs,Sn]),so=a.useCallback(async()=>{Lr(!0);try{const e=await Nf();if(!(e!=null&&e.success))return;const r=Oh({assessmentFirstRxQueued:Qe,isDeferredProductPaymentOrder:Gt,prescription:j});st(r,{...r==="prescription_updated"?{reviewWindowMs:ad(e,Mr)}:{},onDone:()=>{it&&(b&&b(),k&&k())}})}catch(e){ae(e,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:8745"}),C.error((e==null?void 0:e.message)||"Unable to update prescription.")}finally{Lr(!1)}},[Nf,Qe,Gt,j,it,Mr,b,k,st]),no=a.useCallback(async({saveForLater:e=!1}={})=>{if(I||!o||Dr||Ca||Le)return;if(Qr&&!Br&&!Vr){C.error("Products that are not connected to a pharmacy require patient payment â use Submit RX on the prescription card.");return}const r=wc.filter(M=>{const U=String(M.status||"").toLowerCase();return U!=="submitted"&&U!=="queued_for_review"});if(r.length===0){if(or){await so();return}C.error("All prescriptions have already been submitted.");return}const t=r.map(M=>Io(M,M.quantity,M.packQuantityConfirmed)).find(M=>!M.valid);if(t){C.error(t.error);return}if((Br||Ls)&&!Vr){const M=p.orderId||await et();if(M===void 0)return;const U=await Kr(),$=U.providerId||null;if(!$){C.error(U.message);return}for(const V of r)if(!eo(V)){C.error("Complete every prescription line before saving.");return}if(!await ze()){C.error("Could not save prescription changes before saving.");return}const z=lP(r,j!=null&&j.id?{id:j.id}:null),T=new Map;Lr(!0);try{const V=[],pe=[];for(const[Ke,qe]of r.entries()){const mt=z[Ke],Ge=await zr("saveManualPrescription",{...zt.current,orderId:M,chartReviewId:o,patientId:u,providerId:$,...mt?{existingPrescriptionDocId:mt}:{},pharmacyId:qe.externalPharmacyId||qe.pharmacyId||null,prescriptionData:{clinicalDifferenceStatement:qe.clinicalDifferenceStatement||null,clinicalDifferenceSource:qe.clinicalDifferenceSource||null,medicationName:(qe.medicationName||qe.pharmacyProductName||"").trim(),pharmacyProductName:(qe.pharmacyProductName||qe.medicationName||"").trim(),dosage:(qe.dosage||"").trim(),instructions:(qe.instructions||"").trim(),quantity:Number(qe.quantity)||1,daysSupply:Number(qe.daysSupply)||30,units:(qe.units||"each").trim(),refills:Number(qe.refills)||0,daw:Number(qe.daw)||0,...qe.ph
1armacyName?{pharmacyName:qe.pharmacyName.trim()}:{},submissionMode:"manual",source:"manual"}});if(!Ge.success)throw new Error(Ge.error||"Unable to save prescription.");T.set(qe.id,{status:"submitted",submissionError:"",prescriptionId:Ge.prescriptionDocId||mt||qe.prescriptionId}),mt||(V.push(Ge.prescriptionDocId),pe.push((qe.medicationName||qe.pharmacyProductName||"").trim()))}const le=V.length;if(C.success(le===0?"Prescription updated":r.length===1?"Prescription saved":"Prescriptions saved"),le===0){b&&b(),k&&k();return}As({prescriptionIds:V.filter(Boolean),medicationNames:pe.filter(Boolean),orderId:M,after:()=>{b&&b(),k&&k()}})}catch(V){ae(V,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:8924"});const pe=T.size;C.error(pe>0?`Saved ${pe} of ${r.length} prescriptions. ${V.message||"Fix the remaining lines and save again."}`:V.message||"Unable to save prescriptions.")}finally{T.size>0&&X(V=>V.map(pe=>T.has(pe.id)?Be({...pe,...T.get(pe.id)}):pe)),Lr(!1)}return}const n=r.every(M=>!!String((M==null?void 0:M.clientProductId)||(M==null?void 0:M.linkedClientProductId)||(M==null?void 0:M.advertisedClientProductId)||"").trim()),c=p.orderId||null;if(sr&&!he&&!n){C.error("Select the product to charge before sending.");return}const l=sr&&!n?r.map(M=>jP(M,he)):r,d=await Kr(),y=d.providerId||null;if(!y){C.error(d.message);return}for(const M of l){if(!Hi(M)){C.error("Complete every prescription line before sending.");return}if(M.mode!=="manual"){if(Pi.includes(M.id)){C.error(`This medication does not ship to ${Se}. Choose another medication.`);return}const U=O.find(V=>V.id===M.pharmacyOptionId),H=(R[M.pharmacyOptionId]||[]).find(V=>V.id===M.pharmacyProductId);if(H&&!fo(H,Se)){C.error(`This medication does not ship to ${Se}. Choose another medication.`);return}const z=es(M.quantity,U,H);if(!z.valid){C.error(z.error);return}const T=rs(M.daysSupply,U);if(!T.valid){C.error(T.error);return}}}if(!Dc(l)||!cs()||!ls()||!ms()||!Rr())return;if(!await ze()){C.error("Could not save prescription changes before sending.");return}const{patientIdentity:x,requiresViosControlledSubstanceIdentity:N}=os(),L=ds(),q=us(),Q=Zr(),te=Sn(ra(l,O,Xe).map(M=>{const U=O.find(z=>z.id===M.pharmacyOptionId),$=M.externalPharmacyId||(U==null?void 0:U.pharmacyId)||M.pharmacyId||"",H=Br||M.mode==="manual";return{...M,mode:H?"manual":M.mode,submissionMode:H?"manual":"onlyscripts",externalPharmacyId:$,pharmacyId:$,pharmacyIntegrationId:M.pharmacyIntegrationId||(U==null?void 0:U.integrationId)||null,pharmacyIntegrationScopeType:M.pharmacyIntegrationScopeType||(U==null?void 0:U.integrationScopeType)||null,pharmacyIntegrationScopeId:M.pharmacyIntegrationScopeId||(U==null?void 0:U.integrationScopeId)||null,pharmacyIntegrationName:M.pharmacyIntegrationName||(U==null?void 0:U.integrationName)||null,pharmacySource:M.pharmacySource||(U==null?void 0:U.source)||(H?null:"onlyscripts")}}));if(Vr){const M=_d;Lr(!0);try{const U=await zr("finalizeQueuedFormPrescriptionDraft",{draftGroupId:Tn,providerId:y,fulfillmentPrescriptions:te,...M?{dispatchMode:"patient_payment",approveChartReview:!0}:{},...x?{patientIdentity:x}:{},...N?{requiresViosControlledSubstanceIdentity:!0}:{},...L.providerDea?{providerDea:L.providerDea}:{},...L.requiresProviderDea?{requiresProviderDea:!0}:{},...q.clinicalDifferenceStatement?{clinicalDifferenceStatement:q.clinicalDifferenceStatement}:{},...Q.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:Q.dirxMedicalNecessityStatement}:{}});if(!U.success)throw new Error(U.error||"Unable to finalize the prescription request.");const $=()=>{b&&b(),k&&k()};if(M){C.success(U.awaitingPrescriptionReview?"Prescription submitted for client review.":"Prescription submitted â the patient will be prompted to pay."),$();return}st("flow_a_queued",{reviewWindowMs:ad(U,Mr),onDone:$})}catch(U){ae(U,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"finalizeClientPrescriptionRequest"}),C.error(U.message||"Unable to finalize the prescription request.")}finally{Lr(!1)}return}Lr(!0);try{const M=await zr("queuePrescriptionSubmissions",{...zt.current,orderId:c,chartReviewId:o,patientId:u,providerId:y,...x?{patientIdentity:x}:{}
1,...N?{requiresViosControlledSubstanceIdentity:!0}:{},...L.providerDea?{providerDea:L.providerDea}:{},...L.requiresProviderDea?{requiresProviderDea:!0}:{},...q.clinicalDifferenceStatement?{clinicalDifferenceStatement:q.clinicalDifferenceStatement}:{},...Q.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:Q.dirxMedicalNecessityStatement}:{},...Ai?{paymentOption:Ai}:{},sendImmediately:!1,...mi&&(j!=null&&j.id)?{replacesPrescriptionId:j.id}:{},saveForLater:e,prescriptions:te},{requireSuccess:!1});if((M==null?void 0:M.code)==="medication_unavailable_in_state"&&Ym(Array.isArray(M.invalidLineIds)?M.invalidLineIds:[]),Ky(M,Ds),M.success){const U=Array.isArray(M.results)?M.results.filter($=>($==null?void 0:$.success)&&($==null?void 0:$.prescriptionId)).map($=>$.prescriptionId):[];Fo(U),st(e?"flow_a_saved_for_later":"flow_a_queued",{reviewWindowMs:ad(M,Mr),onDone:()=>{if(e){b&&b(),k&&k();return}As({prescriptionIds:U,medicationNames:l.map($=>{var H,z;return((H=$.medicationName)==null?void 0:H.trim())||((z=$.pharmacyProductName)==null?void 0:z.trim())||""}),orderId:c,after:()=>{b&&b(),k&&k()}})}});return}C.error(wy(M))}catch(M){ae(M,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:9093"}),Ky(M,Ds),C.error(wy(M,M.message||"Unable to send prescriptions. Please try again."))}finally{Lr(!1)}},[Dr,Ca,Le,Fo,I,o,wc,or,Ls,j==null?void 0:j.id,so,p.orderId,et,_,Wr,F,Dn,pa,Kr,O,R,Se,Pi,es,rs,ze,os,ds,us,Dc,cs,ls,ms,Rr,Zr,ra,Xe,Rr,Zr,ei,Qs,Sn,u,Ds,b,k,Mr,st,As,sr,he,Ai,Qr,Br,eo,Vr,Tn,_d]),ed=a.useCallback(async({saveForLater:e=!1,autoLaunch:r=!1}={})=>{var le,Ke,qe,mt,Ge,ir,lo,uo;if(I)return;if(!Br&&(un||Qe)){C.error("This product order requires patient payment â use Submit RX on the prescription card.");return}if(!o)return;const t=p.orderId||await et();if(t===void 0)return;if(sr&&!he){C.error("Select the product to charge before sending.");return}const n=Fg(he),c=Z||S.pharmacyOptionId||(is==null?void 0:is.pharmacyOptionId)||"",l=ke||S.pharmacyProductId||(is==null?void 0:is.productId)||"";if(!c){C.error("Select the prescription integration to submit.");return}const d=c,y=O.find(fr=>fr.id===d),g=xt(y==null?void 0:y.source),x=(y==null?void 0:y.source)==="scriptsure",N=x||Ti;if(!x){if(!l){C.error("Select the associated prescription to submit.");return}if(!Tc){C.error("No pharmacy prescriptions are available for this visit.");return}if(!((le=S.instructions)!=null&&le.trim())){C.error("Enter patient instructions before sending.");return}if(!(Number(S.quantity)>0)||!(Number(S.daysSupply)>0)){C.error("Enter a valid quantity and days supply before sending.");return}}const L=(y==null?void 0:y.pharmacyId)||S.externalPharmacyId||S.pharmacyId||(is==null?void 0:is.externalPharmacyId)||"",q=es(S.quantity??1,B,J);if(!q.valid){C.error(q.error);return}const Q=Io(J||S,S.quantity,S.packQuantityConfirmed);if(!Q.valid){C.error(Q.error);return}const te=rs(S.daysSupply,B);if(!te.valid){C.error(te.error);return}if(!g&&!x){C.error("Prescription sending is only supported through configured integrations.");return}const M=await Kr(),U=M.providerId||null;if(!U){C.error(M.message);return}if(N&&!Ur){C.error("Provider must have a verified ScriptSure prescriber mapping before ScriptSure can open.");return}if(!N&&(!cs()||!ls()||!ms()||!Rr()))return;if(!await ze()){C.error("Could not save prescription changes before sending.");return}const{patientIdentity:H,requiresViosControlledSubstanceIdentity:z}=os(),T=ds(),V=us(),pe=Zr();Lr(!0);try{if(N){const fr=await ji({...r?{}:zt.current,orderId:t,chartReviewId:o,patientId:u,providerId:U,...Ti?{onlyScriptsPharmacyId:L,onlyScriptsPharmacyIntegrationId:(B==null?void 0:B.integrationId)||"",onlyScriptsPharmacyIntegrationScopeType:(B==null?void 0:B.integrationScopeType)||"",onlyScriptsPharmacyIntegrationScopeId:(B==null?void 0:B.integrationScopeId)||"",onlyScriptsPharmacyIntegrationName:(B==null?void 0:B.integrationName)||"",onlyScriptsPharmacySource:(B==null?void 0:B.source)||"onlyscripts",onlyScriptsAddressType:"patient",onlyScriptsDrugId:ce(J)||l,onlyScriptsMedicationName:((Ke=S.medicationName)==null?void 0:Ke.trim())||((qe=S.pharmacyProductName)==null?void 0:qe.trim())||"",onlyScriptsDosage:((mt=S.dosage)==null?void 0:mt.trim())||"",onlyScriptsDirections:((Ge=S.instructions)==null?void 0:Ge.trim())||"",onlyScriptsQuantity:Number(S.quantity)||null,onlyScriptsDaysSupply:Number(S.daysSupply)||null,onlyScriptsRefills:Number(S.refills)||0}:{}});if(!fr)return;const kn=fr.iframeUrl||"";va(kn),Ma(fr.launchId||""),Hd(null),Kn(!!kn),C.success("ScriptSure opened");return}if(g){const fr=await zr("queuePrescriptionSubmission",{...zt.current,orderId:t,chartReviewId:o,patientId:u,providerId:U,sendImmediately:!1,...mi&&(j!=null&&j.id)?{replacesPrescriptionId:j.id}:{},saveForLater:e,...H?{patientIdentity:H}:{},...z?{requiresViosControlledSubstanceIdentity:!0}:{},...T.providerDea?{providerDea:T.providerDea}:{}
1,...T.requiresProviderDea?{requiresProviderDea:!0}:{},...V.clinicalDifferenceStatement?{clinicalDifferenceStatement:V.clinicalDifferenceStatement}:{},...pe.dirxMedicalNecessityStatement?{dirxMedicalNecessityStatement:pe.dirxMedicalNecessityStatement}:{},...Ai?{paymentOption:Ai}:{},prescription:Qs(ei({...me,...sr?n:{},submissionMode:"onlyscripts",pharmacyOptionId:d,pharmacyId:L,externalPharmacyId:L,pharmacyIntegrationId:(y==null?void 0:y.integrationId)||S.pharmacyIntegrationId||null,pharmacyIntegrationScopeType:(y==null?void 0:y.integrationScopeType)||S.pharmacyIntegrationScopeType||null,pharmacyIntegrationScopeId:(y==null?void 0:y.integrationScopeId)||S.pharmacyIntegrationScopeId||null,pharmacyIntegrationName:(y==null?void 0:y.integrationName)||S.pharmacyIntegrationName||null,pharmacySource:(y==null?void 0:y.source)||S.pharmacySource||"onlyscripts",pharmacyProductId:l,instructions:((ir=S.instructions)==null?void 0:ir.trim())||"",quantity:Number(S.quantity)||1,daysSupply:Number(S.daysSupply)||30,refills:Number(S.refills)||0,addressType:"patient",suppliesDetails:S.suppliesDetails||[],dosage:((lo=S.dosage)==null?void 0:lo.trim())||void 0,medicationName:((uo=S.medicationName)==null?void 0:uo.trim())||void 0}))});fr.success?(Fo([fr.prescriptionDocId]),st(e?"flow_a_saved_for_later":"flow_a_queued",{reviewWindowMs:ad(fr,Mr),onDone:()=>{var kn,Ji;if(e){b&&b(),k&&k();return}As({prescriptionIds:[fr.prescriptionDocId].filter(Boolean),medicationNames:[((kn=S.medicationName)==null?void 0:kn.trim())||((Ji=S.pharmacyProductName)==null?void 0:Ji.trim())||""],orderId:t,after:()=>{b&&b(),k&&k()}})}})):C.error(fr.error||"Unable to submit prescription. Please try again.");return}}catch(fr){ae(fr,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:9425"}),C.error(Eu(fr)||"Unable to send prescription. Please try again.")}finally{Lr(!1)}},[Fo,un,Qe,Br,I,ze,o,p.orderId,et,Z,ke,Tc,S,is,me,O,B,J,Ti,Ur,es,rs,_,F,Dn,pa,Kr,Wr,os,ds,us,cs,ls,ms,Rr,Zr,ra,Xe,Rr,Zr,ei,Qs,Sn,u,b,k,Mr,st,As,sr,he,Ai,ji]),Yb=a.useCallback(async()=>{if(I||!o||!await ui())return;const e=p.orderId||await et();if(e===void 0)return;const r=await Kr(),t=r.providerId||null;if(!t){C.error(r.message);return}if(!Ur){C.error("Provider must have a verified ScriptSure prescriber mapping before ScriptSure can open.");return}await ze(),Lr(!0);try{const n=await ji({...zt.current,orderId:e,chartReviewId:o,patientId:u,providerId:t,onlyScriptsPharmacyId:(B==null?void 0:B.pharmacyId)||"",onlyScriptsPharmacyIntegrationId:(B==null?void 0:B.integrationId)||"",onlyScriptsPharmacyIntegrationScopeType:(B==null?void 0:B.integrationScopeType)||"",onlyScriptsPharmacyIntegrationScopeId:(B==null?void 0:B.integrationScopeId)||"",onlyScriptsPharmacyIntegrationName:(B==null?void 0:B.integrationName)||"",onlyScriptsPharmacySource:(B==null?void 0:B.source)||"onlyscripts",onlyScriptsAddressType:"patient",onlyScriptsDrugId:ce(J)||ke||"",onlyScriptsMedicationName:me.medicationName||me.pharmacyProductName||"",onlyScriptsDosage:me.dosage||"",onlyScriptsDirections:me.instructions||"",onlyScriptsQuantity:Number(me.quantity)||null,onlyScriptsDaysSupply:Number(me.daysSupply)||null,onlyScriptsRefills:Number(me.refills)||0});if(!n)return;const c=n.iframeUrl||"";va(c),Ma(n.launchId||""),Hd(null),Kn(!!c),C.success("ScriptSure opened")}catch(n){ae(n,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:9543"}),C.error(Eu(n))}finally{Lr(!1)}},[I,o,p.orderId,et,Kr,ze,u,B,J,ke,me,Ur,ui,ji]),rd=a.useCallback(async e=>{if(I||!e||!o||!await ui())return;const r=p.orderId||await et();if(r===void 0)return;const t=await Kr(),n=t.providerId||null;if(!n){C.error(t.message);return}if(!Ur){C.error("Provider must have a verified ScriptSure prescriber mapping before ScriptSure can open.");return}const c=O.find(y=>y.id===e.pharmacyOptionId)||null,l=(R[e.pharmacyOptionId]||[]).find(y=>y.id===e.pharmacyProductId)||null;if(!await ze()){C.error("Could not save prescription changes before opening ScriptSure.");return}Lr(!0);try{const y=await ji({...zt.current,orderId:r,chartReviewId:o,patientId:u,providerId:n,onlyScriptsPharmacyId:e.externalPharmacyId||e.pharmacyId||(c==null?void 0:c.pharmacyId
1)||"",onlyScriptsPharmacyIntegrationId:e.pharmacyIntegrationId||(c==null?void 0:c.integrationId)||"",onlyScriptsPharmacyIntegrationScopeType:e.pharmacyIntegrationScopeType||(c==null?void 0:c.integrationScopeType)||"",onlyScriptsPharmacyIntegrationScopeId:e.pharmacyIntegrationScopeId||(c==null?void 0:c.integrationScopeId)||"",onlyScriptsPharmacyIntegrationName:e.pharmacyIntegrationName||(c==null?void 0:c.integrationName)||"",onlyScriptsPharmacySource:e.pharmacySource||(c==null?void 0:c.source)||"onlyscripts",onlyScriptsAddressType:"patient",onlyScriptsDrugId:ce(l||{})||e.pharmacyProductId||"",onlyScriptsMedicationName:(e.medicationName||e.pharmacyProductName||"").trim(),onlyScriptsDosage:(e.dosage||"").trim(),onlyScriptsDirections:(e.instructions||"").trim(),onlyScriptsQuantity:Number(e.quantity)||null,onlyScriptsDaysSupply:Number(e.daysSupply)||null,onlyScriptsRefills:Number(e.refills)||0});if(!y)return;const g=y.iframeUrl||"";va(g),Ma(y.launchId||""),Hd({product:l,pharmacy:c,prescription:e}),Kn(!!g),C.success("ScriptSure opened")}catch(y){ae(y,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:9626"}),C.error(Eu(y))}finally{Lr(!1)}},[o,O,et,ui,ze,p.orderId,u,R,I,Kr,Ur,ji]),iu=a.useCallback(()=>{var r;const e=(r=up.current)==null?void 0:r.contentWindow;!e||!Wt||!ef||e.postMessage({type:"gen-health:scriptsure-prefill",source:"gen-health",payload:In},"*")},[ef,Wt,In]);a.useEffect(()=>{Wt&&iu()},[iu,Wt]);const Xb=a.useMemo(()=>{const e=an?an.product:J,r=an?an.pharmacy:B,t=(an==null?void 0:an.prescription)||{...S,...In},n=t.medicationName||t.pharmacyProductName||(e?hu(e):"");return{providerNetworkId:p.providerNetworkId||"",medicationId:ce(e||{}),medicationLabel:n,medicationDetails:Xh({product:e,prescription:n?t:null,pharmacy:r,providerNetworkId:p.providerNetworkId,overridesByKey:Sa}),canPost:!I}},[Sa,p.providerNetworkId,S,I,an,In,B,J]),kf=p.orderId||(m==null?void 0:m.orderId)||(j==null?void 0:j.orderId)||hl||"",Zb=o||(m==null?void 0:m.id)||(j==null?void 0:j.chartReviewId)||"",Cf=kf?"orderId":"chartReviewId",au=kf||Zb,[jf,ou]=a.useState([]);a.useEffect(()=>{if(!au){Va.current="",ou([]),Od([]),_o(!1),$o(!0);return}const e={field:Cf,value:au};let r=!1,t=!1;const n=d=>{const y=d.filter(x=>!hP.has(String(x.status||"").trim().toLowerCase())).sort((x,N)=>jo(N.sentAt||N.createdAt||N.updatedAt)-jo(x.sentAt||x.createdAt||x.updatedAt)),g=JSON.stringify(y.map(x=>x.id));Va.current!==g&&(Va.current=g,Od(y)),ou(d),_o(!1),$o(!0)},c=Th(e);c?n(c):(Va.current="",_o(!0),$o(!1),_h(e).then(d=>{!t&&!r&&d&&n(d)}));const l=My(rm(tm(Ne,"Prescriptions"),Co(e.field,"==",e.value)),d=>{r=!0,n(d.docs.map(y=>({id:y.id,...y.data()})))},d=>{console.error("Error listening for existing prescriptions:",d),Va.current="",ou([]),Od([]),_o(!1),$o(!0)});return()=>{t=!0,l()}},[Cf,au]),a.useEffect(()=>{if(!De){dl.current="",Gm(null);return}const e=jf.filter(t=>String(t.source||t.pharmacySource||"").toLowerCase()==="scriptsure").sort((t,n)=>jo(n.scriptSureWebhookReceivedAt||n.updatedAt||n.createdAt)-jo(t.scriptSureWebhookReceivedAt||t.updatedAt||t.createdAt))[0]||null,r=(e==null?void 0:e.id)||"";dl.current!==r&&(dl.current=r,Gm(e))},[jf,De]);const Rb=a.useMemo(()=>uP(K,nr,j,{editablePrescriptionIds:at,fallbackDraft:ga.current}),[K,nr,j,at]),vf=a.useMemo(()=>{const e=String((j==null?void 0:j.id)||"").trim(),r=new Set(Vr?Mt.map(t=>t.id):[]);return e&&r.add(e),r.size===0?nr:nr.filter(t=>!r.has(t.id))},[Mt,j==null?void 0:j.id,nr,Vr]);a.useEffect(()=>{if(!Vr||!fe||!E)return;const e=`${Tn}:${Mt.map(n=>n.id).join("|")}`;if(Om.current===e||(Om.current=e,(yo((m==null?void 0:m.prescribeDraft)||{}).fulfillmentPrescriptions||[]).some(n=>oa(n))))return;const t=UI(Mt).map(n=>({...n,status:"draft"}));t.length!==0&&(X(t),de(t[0]),Qi.current="")},[m==null?void 0:m.prescribeDraft,Tn,Mt,fe,Vr,E]);const eI=a.useCallback(e=>{if(!Ru(e))return;const r=og(e);Fr(!1),Ko(!1),Mn(e),X(r),de(r[0]||jn);
1const t=ag(e,m);t&&cr(n=>({...n||{},...t}))},[m]),rI=a.useCallback(()=>{Fr(!1),Ko(!0),Mn(null),X([_r()]),de(jn),It("associated"),Sr(""),Jr("")},[]),cu=Vm&&nr.length>0,tI=a.useCallback(e=>{if(cu&&K.length<=1){Ko(!1),X([_r()]);return}of(e)},[cu,K.length,of]),du=!Vm&&!j&&!Vr&&(!Td||nr.length>0),sI=a.useCallback(async()=>{if(!(!u||nc)){Jm(!0);try{const e=Ei,r=await zr("syncScriptSurePrescriptionMailbox",{patientId:u,...sc?{launchId:sc}:{},...p.orderId?{orderId:p.orderId}:{},...o?{chartReviewId:o}:{},...e?{providerId:e}:{}}),t=Number(r==null?void 0:r.syncedCount)||0;t>0?C.success(`Synced ${t} prescription${t===1?"":"s"} from ScriptSure.`):C.info("No new ScriptSure prescriptions yet.")}catch(e){ae(e,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:9851"}),C.error((e==null?void 0:e.message)||"Unable to refresh ScriptSure prescriptions.")}finally{Jm(!1)}}},[u,nc,Ei,sc,p.orderId,o]);a.useEffect(()=>{if(I||h||!De||!Ul||Wt||Bs||_&&!Wr)return;const e=Ei,r=[p.orderId,o,u,e,Z].filter(Boolean).join(":");!r||yc.current===r||(yc.current=r,ed({autoLaunch:!0}))},[I,h,De,Ul,Wt,Bs,_,Wr,F,Dn,pa,Ei,p.orderId,o,u,Z,ed]);const io=a.useCallback(async()=>{var c,l,d,y,g,x;if(I)return;if(!await ze()){C.error("Could not save prescription changes before creating the manual prescription.");return}const r=p.orderId||await et();if(r===void 0)return;if(!((c=S.pharmacyName)!=null&&c.trim())){C.error("Enter a pharmacy name before saving.");return}if(!((l=S.medicationName)!=null&&l.trim())){C.error("Enter a medication name before saving.");return}if(!Br&&!((d=S.dosage)!=null&&d.trim())){C.error("Enter dosage before saving.");return}if(!((y=S.instructions)!=null&&y.trim())){C.error("Enter patient instructions before saving.");return}if(!(Number(S.quantity)>0)){C.error("Enter a valid quantity before saving.");return}if(!(Number(S.daysSupply)>0)){C.error("Enter a valid days supply before saving.");return}const t=await Kr(),n=t.providerId||null;if(!n){C.error(t.message);return}Lr(!0);try{const N=await zr("saveManualPrescription",{...zt.current,orderId:r,chartReviewId:o,patientId:u,pharmacyId:S.externalPharmacyId||S.pharmacyId||null,providerId:n,...Ls&&(j!=null&&j.id)?{existingPrescriptionDocId:j.id}:{},prescriptionData:{...S,pharmacyOptionId:"",pharmacyId:S.pharmacyId||"",externalPharmacyId:S.externalPharmacyId||S.pharmacyId||"",pharmacyName:((g=S.pharmacyName)==null?void 0:g.trim())||"",quantity:Number(S.quantity)||1,daysSupply:Number(S.daysSupply)||30,refills:Number(S.refills)||0,daw:Number(S.daw)||0,submissionMode:"manual",source:"manual"}});if(!N.success){C.error(N.error||"Unable to save prescription. Please try again.");return}Ls?(C.success("Prescription updated"),b&&b(),k&&k()):Ql?(await Rc({successMessage:"Primary prescription saved. Add-ons sent to the patient for review and payment."})||C.error("Prescription was saved, but add-ons could not be submitted for patient payment."),b&&b(),k&&k()):(C.success("Prescription saved"),As({prescriptionIds:[N.prescriptionDocId].filter(Boolean),medicationNames:[((x=S.medicationName)==null?void 0:x.trim())||""],orderId:r,after:()=>{b&&b(),k&&k()}}))}catch(N){ae(N,{area:"prescribing",surface:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx",operation:"frontend/src/components/charting/VisitChartingModal/columns/StepColumn/steps/Step3Prescribe/Step3Prescribe.jsx:10015"}),C.error(N.message||"Unable to save prescription. Please try again.")}finally{Lr(!1)}},[I,ze,p.orderId,et,S,Ls,j==null?void 0:j.id,Br,Kr,o,u,b,k,Ql,Rc,As]),nI=(Ie==null?void 0:Ie.id)||Gn||"",iI=(he==null?void 0:he.id)||Rs||"",ie=I&&!or||h&&!Ie&&!or,aI=!!(!ie&&gb&&Ri(J)&&!DS(Ee)),oI=h?vp:E?Ce:$e,lu=Cm||(h?Jn:Bs),ao=Dr||!!Ca||!!Le||Cm||Nl&&!Ta.current.loading||!qo||!!$l||(or?I||Bs||!Xl||_&&!Wr:h?I||Jn||!Mb||_&&!Wr:mn?I||Jn||!un||!Xl||_&&!Wr:I||Bs||!Xl||sr&&!he&&!kc||_&&!Wr),uu=h||mn?G("button","charting","queue-prescription"):G("button","charting",_e?"save-manual-prescription":"send-prescription"),Mf=_d?"The patient is prompted to pay after approval; the prescription is sent once paid.":mn&&!or?Vd?"The prescription will be held until the client reports payment.":"The patient will be prompted to pay for this medication before it is dispatched to the pharmacy.":null,Ef=$h(Mr),td=or?Ep?"You can update this prescription until the patient pays. After payment, it is sent to the pharmacy automatically.":Qe?"You can update this prescription and save your changes. Pharmacy send is disabled for this client.":`Changes reset the ${Ef} review window. Use Send now on the Prescriptions page for immediate p
1harmacy submission.`:qo?mn?Qr&&!Qa?"Select a product for each prescription.":Qr&&!Mp&&!Lo?"Approve the chart review before prescribing.":Qr?"The patient pays for the product first; the prescription is then saved for external processing and you are notified.":qs&&!he&&!kc?"Select a product before prescribing.":"Pharmacy submission follows payment confirmation.":sr?he?"Medication is charged to the stored payment method when you send this prescription.":"Select the product to charge for before sending.":h&&!Ie?"Select a protocol before configuring pharmacy and prescription details.":Ab:null,mu=h||mn||!De||!Wt,si=mu&&!De&&!Ti&&!ri,sd=a.useMemo(()=>E&&!h?(Nr.length>0?Nr:ge).map(r=>({...r,id:r.id||r.pharmacyProductId||r.medicationName})):[{...me,id:me.id||"primary-prescription"}],[ge,me,Nr,h,E]),cI=sd.length>1?`Review ${sd.length} prescriptions`:"Review prescription",dI="Confirm the medication, pharmacy, directions, quantity, days supply, and refills.",lI=p.orderId?`Order #${String(p.orderId).slice(-6).toUpperCase()}`:"",oo=jt&&!h&&!mn&&!De&&!Zn&&Jl&&!Yl&&!Rp&&!I&&si&&!or,Af=li?"Approve and Submit RX":"Submit RX",Lf=li?"Approving and submittingâ¦":"Submittingâ¦",qf=or?"Savingâ¦":Lf,pu=or?"Save changes":Af,Bf=or?"Savingâ¦":Lf,uI=US([...Array.isArray(K)?K:[],...S?[S]:[]])?zS:null,Vf=[oo?`Pharmacy submission happens after the ${Ef} review window. Use Send now on the Prescriptions page to submit earlier.`:null,uI].filter(Boolean).join(" ")||null,Ff=dI,mI=sr&&ne?di?"The selected product is charged on submission. Split into 3 is available for products covering 3 or more months.":"The selected product is charged on submission.":null,Of=a.useMemo(()=>Vr?Mt.map(e=>({pharmacyOptionId:e.pharmacyOptionId,medicationId:e.pharmacyProductId})).filter(e=>e.pharmacyOptionId&&e.medicationId):[],[Mt,Vr]),co=a.useCallback(e=>[...Of,...e!=null&&e.pharmacyOptionId&&(e!=null&&e.pharmacyProductId)?[{pharmacyOptionId:e.pharmacyOptionId,medicationId:e.pharmacyProductId}]:[]],[Of]),Nn=a.useCallback(e=>{var d,y,g;if(!ne)return Ju(za,Vt,((d=K[0])==null?void 0:d.id)===(e==null?void 0:e.id)?ht:{},co(e));const r=Tr(e)||(Cr&&((y=K[0])==null?void 0:y.id)===(e==null?void 0:e.id)?zi:"");if(!r)return Cr&&((g=K[0])==null?void 0:g.id)===(e==null?void 0:e.id)?_s.filter(x=>!x.isManual):[];const t=je(r),c=gt[e.id]||(t?Ui(t):null),l=jr(t)||D((t==null?void 0:t.clientProductId)||(t==null?void 0:t.id));return(c==null?void 0:c.kind)==="custom"&&(c!=null&&c.needsDisambiguation)?[]:zI({options:Ju(za,Vt,l?Ir[l]||{}:{},co(e)),resolution:c,mappings:l?Ir[l]||{}:{},getFormularyMedicationId:ce})},[Cr,je,za,Vt,ht,_s,K,gt,co,Tr,ne,Ir,zi,Ui]),pI=a.useCallback(e=>{var t,n;return e!=null&&e.prescriptionPrefillSnapshot||!ne?!0:(e==null?void 0:e.productResolutionKind)==="custom"?!1:Vr&&(e!=null&&e.pharmacyProductId||e!=null&&e.medicationName)||Cr&&((t=K[0])==null?void 0:t.id)===(e==null?void 0:e.id)?!0:!!(Tr(e)||(Cr&&((n=K[0])==null?void 0:n.id)===(e==null?void 0:e.id)?zi:""))},[Cr,Vr,K,Tr,ne,zi]),fI=a.useCallback(e=>{const r=Nn(e);return!ws||ws.lineId!==(e==null?void 0:e.id)?r:r.map(t=>!t.isManual&&D(ce(t.product))===ws.medicationId?{...t,isSuggested:!0}:t)},[Nn,ws]),$t=a.useMemo(()=>ny(Ce,xt),[Ce]),fu=a.useCallback(e=>iy({pharmacies:$t,pharmacyProductsById:e,customMedications:[],variantsById:Ve,getPharmacyKeys:r=>Gy(r,[p.clientId,p.providerNetworkId]),getPharmacyLabel:Ae,getProductLabel:Fs,getPreferredProductIds:Ua,isSupplyDrug:Rt,includeManualOption:!1,patientState:Se}),[Ve,Ae,Ua,Fs,Rt,p.clientId,p.providerNetworkId,Se,$t]),Tf=a.useCallback(e=>{var d;const r=((d=K[0])==null?void 0:d.id)===(e==null?void 0:e.id);if(!ne)return{allowed:!0,mappings:r?ht:{}};const t=Tr(e)||(Cr&&r?zi:"");if(!t)return{allowed:Cr&&r,mappings:{}};const n=je(t),c=gt[e.id]||(n?Ui(n):null);if((c==null?void 0:c.kind)==="custom"&&(c!=null&&c.needsDisambiguation))return{allowed:!1,mappings:{}};const l=jr(n)||D((n==null?void 0:n.clientProductId)||(n==null?void 0:n.id));return{allowed:!0,mappings:l?Ir[l]||{}:{}}},[Cr,ht,je,K,gt,Tr,ne,Ir,zi,Ui]),yI=a.useCallback(e=>{if(I||!xe||$t.length===0)return null;const{allowed:r,mappings:t}=Tf(e);if(!r)return null;const n=[...co(e),...$t.flatMap(c=>ai(t,c,p.clientId).map(l=>({pharmacyOptionId:c.id,medicationId:l})))];return{key:[$t.map(c=>c.id).join(","),Se,n.map(c=>`${c.pharmacyOptionId}>${c.medicationId}`).join(",")].join("|"),search:(c,l)=>JI({routingPayload:xe,pharmacies:$t,query:c,page:l,patientState:Se,preferred:n,buildOptions:fu,getMedicationId:ce}),resolve:c=>GI({option:c,routingPayload:xe,normalize:go,buildOptions:fu,getMedicationId:ce,onLoaded:(l,d)=>Ac(l,d)})}},[fu,Tf,co,Ac,p.clientId,Se,xe,I,$t]),yu=a.useMemo(()=>{const e=new Set;
1return K.forEach(r=>{if(!r||r.mode==="manual"||r.status==="submitted"||!r.pharmacyProductId)return;const t=$t.find(c=>c.id===r.pharmacyOptionId),n=(R[t==null?void 0:t.id]||[]).find(c=>c.id===r.pharmacyProductId);t&&n&&Nc(n)&&e.add(t.id)}),[...e].sort().join("|")},[K,Nc,R,$t]),gu=a.useRef(new Set);a.useEffect(()=>{!yu||!xe||yu.split("|").forEach(e=>{if(gu.current.has(e))return;const r=$t.find(t=>t.id===e);r&&(gu.current.add(e),Promise.all(["syringe","needle"].map(t=>py({...xe,query:t,pharmacyOptionIds:[e],page:1,perPage:30}))).then(t=>{const n=[...new Set(t.flatMap(c=>Array.isArray(c==null?void 0:c.medications)?c.medications:[]).filter(c=>Rt(c)).map(c=>c.medicationId))];return n.length>0?yn(r,n):null}).catch(t=>{gu.current.delete(e),console.warn("Unable to load pharmacy supplies",(t==null?void 0:t.message)||t)}))})},[Rt,yn,xe,$t,yu]),a.useEffect(()=>{if(!E||I||h||!fe||ps||!(W!=null&&W.medicationId)&&!Fe(w==null?void 0:w.medication)||gr||ne&&!Vi)return;const e=oy(o,w);if(At.current===e)return;const r=K[0];if(!(r!=null&&r.id)||r.status==="submitted")return;if(!xu(r)){At.current=e;return}if(cy({prescribeByProductEnabled:ne,bindPurchasedProduct:Cr,line:r,selectedProductKey:Tr(r)})){At.current=e;return}const t=Yi({options:Nn(r),prefill:W,getFormularyMedicationId:ce})||Yi({options:_s,prefill:W,getFormularyMedicationId:ce});if(!t){if(!Ja)return;qc(`single:${e}`,W)==="done"&&(At.current=e);return}if(t.pharmacy&&t.product&&Is(t.pharmacy,t.product,Ee,{deaResolved:rr})){At.current=e;return}bs(r.id,t),At.current=e},[Cr,o,fe,_s,K,gr,Nn,Tr,bs,ps,qc,W,Bp,w==null?void 0:w.medication,Ee,rr,Vi,ne,I,h,Ja,E]),a.useEffect(()=>{if(!(!fe||I||ba||_m||!Fp||!Xn)&&!(tr&&!gn&&tn!==tr.key)&&!(!gn&&ne&&!Vi))for(const e of K){if(!e.prescriptionPrefillSnapshot)continue;const r=Yi({options:Nn(e).filter(t=>{var n,c;return!e.pharmacyOptionId&&!e.pharmacyId||((n=t.pharmacy)==null?void 0:n.id)===e.pharmacyOptionId||e.pharmacyOptionId===e.pharmacyId&&((c=t.pharmacy)==null?void 0:c.pharmacyId)===e.pharmacyId}),prefill:{medicationId:e.pharmacyProductId,pharmacyOptionId:e.pharmacyOptionId,pharmacyId:e.pharmacyId,formularyVariantId:e.formularyVariantId},getFormularyMedicationId:ce});r&&bs(e.id,r,!0)}},[fe,I,ba,_m,Fp,Xn,gn,tr,tn,ne,Vi,K,Nn,bs]),a.useEffect(()=>{if(!E||I||h||!fe||!ps||gr)return;const e=`${o||""}:${Za.map(t=>t.key).join("|")}`;if(ll.current===e)return;ll.current=e;const r=_x({items:ar,lines:K,prescribeByProductEnabled:ne});r&&(Ys({lineIdByItemKey:r.lineIdByItemKey,itemKeyByLineId:r.itemKeyByLineId}),X(t=>t.every(Eg)?r.lines.map((n,c)=>{var l;return Be(Du(n,(l=r.items[c])==null?void 0:l.recommendation))}):t))},[o,fe,K,gr,ps,Za,ne,ar,I,h,E]),a.useEffect(()=>{var n;if(!E||I||h||!fe||!ps||gr)return;const e=c=>ul.current.has(c),r=new Set;let t=Xy({items:ar,lineIdByItemKey:Ms.lineIdByItemKey,lines:K,isApplied:c=>e(c)||r.has(c)});for(;t;){const{item:c,line:l}=t,d=()=>{ul.current.add(c.key),r.add(c.key)};if(!xu(l))d();else if(cy({prescribeByProductEnabled:ne,bindPurchasedProduct:Cr&&((n=K[0])==null?void 0:n.id)===l.id,line:l,selectedProductKey:Tr(l)}))d();else{const y=Yi({options:Nn(l),prefill:c.recommendation,getFormularyMedicationId:ce})||Yi({options:_s,prefill:c.recommendation,getFormularyMedicationId:ce});y?(y.pharmacy&&y.product&&Is(y.pharmacy,y.product,Ee,{deaResolved:rr})||bs(l.id,y),d()):(Ja&&qc(`multi:${c.key}`,c.recommendation)==="done"&&d(),r.add(c.key))}t=Xy({items:ar,lineIdByItemKey:Ms.lineIdByItemKey,lines:K,isApplied:y=>e(y)||r.has(y)})}},[Cr,fe,_s,K,gr,Nn,Tr,bs,ps,qc,Ms,Bp,ne,ar,Ee,rr,I,h,Ja,E]);const _f=a.useMemo(()=>WI(Ye,Ir),[Ye,Ir]),gI=a.useCallback(e=>{var U;if(!ne||!E||ie||Xt)return null;const r=e.id,t=Tr(e),n=je(t),c=gt[r],l=n?Pn(n):null,d=c||l||(n?Ui(n):null),y=lf(d),g=(e.productResolutionKind==="custom"||e.productResolutionKind==="none")&&Xo[r]!==!0,x=!!n&&ut.some($=>je($.clientProductId)===n||je($.productId)===n),N=Cr&&((U=K[0])==null?void 0:U.id)===r&&!sr,L=Os&&(ct==null?void 0:ct.id)===r,q=(ws==null?void 0:ws.lineId)===r?ws:null,Q=Yp(e),te=Q?Q.rationale:Xp,M=!!(te||q)&&(Q?!0:(ct==null?void 0:ct.id)===r);return N&&!g&&!L&&!(c!=null&&c.needsDisambiguation&&c.kind==="custom")&&!(c!=null&&c.needsPharmacyChoice)?null:i.jsxs("div",{className:"space-y-2",children:[N?null:i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Je,{className:"text-3xs font-medium uppercase text-content-tertiary",children:["Product",i.jsx(pt,{}
1),M?i.jsx(lm,{delayDuration:0,children:i.jsxs(um,{children:[i.jsx(mm,{asChild:!0,children:i.jsx("button",{type:"button","aria-label":q?"Intake suggests a different medication":"Why this medication was suggested","data-testid":G("button","charting",`ai-recommendation-reasoning-${r}`),className:"ml-1.5 inline-flex size-4 items-center justify-center rounded-full text-content-tertiary transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:i.jsx(pm,{className:"size-3.5","aria-hidden":"true"})})}),i.jsxs(fm,{side:"top",className:"max-w-[260px] space-y-1 text-xs font-normal normal-case leading-relaxed",children:[q?i.jsx("p",{className:"font-medium",children:`Intake suggests ${q.medicationName}${q.paired?"":" (not paired to this product)"}.`}):null,te?i.jsx("p",{children:te}):null]})]})}):null,x?i.jsx("span",{className:"ml-2 inline-flex items-center rounded-full border border-violet-200 bg-violet-50 px-2 py-0.5 text-3xs font-semibold uppercase tracking-[0.12em] text-violet-700 dark:border-violet-800/60 dark:bg-violet-950/40 dark:text-violet-300","data-testid":G("badge","charting",`patient-selected-product-${r}`),children:"Patient selected"}):null]}),i.jsx(lS,{value:t,onChange:ee($=>Xc(r,$)),options:_f,disabled:ie||hr,loading:hr,placeholder:hr?"Loading productsâ¦":"Select product",searchPlaceholder:"Search productsâ¦",emptyMessage:"No products match that search.",ariaLabel:"Product",testId:G("select","charting",`prescribe-by-product-${r}`),modal:!1,renderOption:$=>i.jsxs("span",{className:"min-w-0",children:[i.jsx("span",{className:"block whitespace-normal break-words font-medium text-content-primary max-lg:text-xs",children:$.label}),$.description?i.jsx("span",{className:"mt-0.5 block whitespace-normal break-words text-2xs text-content-tertiary max-lg:text-3xs",children:$.description}):null]})}),!hr&&Ye.length===0?i.jsx("p",{className:Kh,children:"No products are available to prescribe."}):null,to.length>0?i.jsx("p",{className:"text-2xs text-amber-700 dark:text-amber-300",children:`Patient selected ${to.map($=>$.displayName||$.clientProductId).join(", ")}, which ${to.length===1?"is":"are"} no longer available in this catalog.`}):null,y?i.jsx("p",{className:"text-2xs text-content-secondary",children:y}):null]}),c!=null&&c.needsPharmacyChoice?i.jsxs("div",{className:"space-y-1",children:[i.jsx(Je,{htmlFor:`prescribe-fulfillment-pharmacy-${r}`,className:"text-3xs font-medium uppercase text-content-tertiary",children:"Pharmacy"}),i.jsxs(od,{value:"",onValueChange:ee($=>gf(r,$)),children:[i.jsx(cd,{id:`prescribe-fulfillment-pharmacy-${r}`,className:"h-9 bg-surface-raised text-sm","aria-label":"Pharmacy",children:i.jsx(dd,{placeholder:"Select a pharmacy for this medication"})}),i.jsx(ld,{children:(c.pharmacyChoices||[]).map(($,H)=>{const z=String(($==null?void 0:$.id)||"");if(!z)return null;const T=$.name||$.pharmacyName||z;return i.jsx(ud,{value:z,children:T},`${z}-${H}`)})})]})]}):null,c!=null&&c.needsDisambiguation&&c.kind==="custom"?i.jsxs("div",{className:"space-y-1",children:[i.jsx(Je,{className:"text-3xs font-medium uppercase text-content-tertiary",children:"Tied custom medication"}),i.jsxs(od,{value:"",onValueChange:ee($=>yf(r,$)),children:[i.jsx(cd,{className:"h-9 bg-surface-raised text-sm",children:i.jsx(dd,{placeholder:"Select tied medication"})}),i.jsx(ld,{children:(c.candidates||[]).map(($,H)=>{var V,pe;const z=String($.medicationId||((V=$.medication)==null?void 0:V.medicationId)||$.id||"").trim();if(!z)return null;const T=$.medicationName||((pe=$.medication)==null?void 0:pe.medicationName)||hu($.medication||$);return i.jsx(ud,{value:z,children:T},`${z}-${H}`)})})]})]}):null,g?i.jsx(HI,{kind:e.productResolutionKind==="custom"?"custom":"none",showScriptSureSuggestion:Zp,queuePaymentOnly:Qr,onDismiss:()=>{Zo($=>({...$,[r]:!0}))}}):null,L?i.jsx(hg,{value:Fn,onValueChange:en,customerPrice:wr==null?void 0:wr.customerPrice,installmentSchedulePreview:jl,className:"space-y-3 rounded-lg border border-subtle bg-surface-sunken p-3"}):null]})}
1,[Cr,lf,ee,Fn,Xp,je,ct==null?void 0:ct.id,Yp,ws,wr==null?void 0:wr.customerPrice,jl,Xo,K,gt,Tr,Xc,yf,gf,Zp,hr,sr,ut,to,_f,ne,Ye,ie,Xt,Qr,Pn,Ui,Os,E]),bI=a.useCallback(e=>{const{requiresPatientIdentity:r,requiresDriverLicenseIdentity:t}=Wp(e),n=r&&!ie&&!Xt,l=Ry({lines:[e],pharmacies:O,pharmacyProductsById:R}).length>0&&!ie&&!Xt;return!n&&!l?null:i.jsxs(i.Fragment,{children:[l?i.jsxs("div",{className:"space-y-2 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 dark:border-amber-900/60 dark:bg-amber-950/30",children:[i.jsxs("p",{className:"text-xs text-amber-900 dark:text-amber-100",children:[(e.medicationName||e.pharmacyProductName||"This medication").trim()," is controlled and must be e-prescribed through ScriptSure (EPCS)."]}),i.jsxs(Ze,{type:"button",variant:"outline",size:"sm",onClick:()=>rd(e),disabled:!Ur||Bs,className:"h-8 rounded-md border-amber-300 bg-surface-raised text-amber-900 hover:bg-amber-100 dark:border-amber-800 dark:bg-slate-950 dark:text-amber-100 dark:hover:bg-amber-950/50","data-testid":G("button","charting","prescribe-via-scriptsure"),children:[Bs?i.jsx(vu,{className:"mr-2 size-3.5 animate-spin"}):null,"Prescribe via ScriptSure"]}),Ur?null:i.jsx("p",{className:"text-xs text-amber-800 dark:text-amber-200",children:"A verified ScriptSure prescriber mapping is required for controlled e-prescribing."})]}):null,n?i.jsx(dy,{idPrefix:`vios-id-${e.id||e.pharmacyProductId||"line"}`,method:on,onMethodChange:Hp,fields:cn,onFieldChange:(d,y)=>{Yt(g=>({...g,[d]:y}))},driverLicenseOnly:t,title:t?"Patient driver license (required by Epiq Scripts)":void 0,description:t?"Epiq Scripts requires the patient driver license number and state on every prescription. Both fields are required before sending.":void 0}):null]})},[O,Wp,rd,Hp,R,ie,Xt,Bs,Ur,cn,on]),$f=or?"Save changes":Af,Gi=a.useCallback(async(e={})=>{const r=(e==null?void 0:e.saveForLater)===!0;if(await ui()&&!(xl.current&&!await xl.current.flush()))return qr(Ls?E?no:io:Br?h?E?no:io:or?so:E?()=>no({saveForLater:r}):io:or?so:mn&&(un||Qr)?Pf:ri?()=>rd(ri):E&&!h?()=>no({saveForLater:r}):h?xf:_e?io:()=>ed({saveForLater:r}))},[ui,Ls,Br,or,so,mn,un,Pf,rd,xf,io,no,ed,_e,h,Qr,qr,ri,E]),Kf=a.useCallback(async()=>{if(!si){await Gi();return}await Pm()&&Fr(!0)},[Pm,Gi,si]),wf=Fe((m==null?void 0:m.clientName)||((Zf=P==null?void 0:P.orderData)==null?void 0:Zf.clientName))||"Client",Qf=Fe((m==null?void 0:m.providerNetworkName)||((Rf=P==null?void 0:P.orderData)==null?void 0:Rf.providerNetworkName))||"Network",II=a.useCallback(e=>{const r=(e==null?void 0:e.pharmacyOptionId)||(e==null?void 0:e.pharmacyId
1)||"",t=O.find(N=>N.id===r||N.pharmacyId===(e==null?void 0:e.pharmacyId)||N.pharmacyId===(e==null?void 0:e.externalPharmacyId));if(!t)return null;const c=(R[t.id]||R[r]||[]).find(N=>N.id===(e==null?void 0:e.pharmacyProductId));if(!c)return null;const l=ce(c),d=fn(e),y=Us({variantsById:Ve,explicitVariantId:e==null?void 0:e.formularyVariantId}),g=d.isVisit?Fe(ta(re,St(c,{singleLine:K.length<=1}))):"",x=Fe(ii(y,"")||Or(t,l,d));return tP({currentInstructions:e==null?void 0:e.instructions,clientDirections:g,networkDirections:x,clientName:wf,networkName:Qf})},[wf,O,Ve,K.length,Or,fn,St,Qf,R,re]),hI=du?"div":xs;return i.jsx(YI.Provider,{value:{providerNetworkId:p==null?void 0:p.providerNetworkId,overridesByKey:Sa,variantsById:Ve,customMedicationsById:_n},children:i.jsx(XI,{clientId:(p==null?void 0:p.clientId)||"",providerNetworkId:(p==null?void 0:p.providerNetworkId)||"",reviewWindowMs:Mr,afterPatientPayment:un||Qe,children:i.jsxs("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden","data-testid":G("section","charting","prescribe-step"),"data-prescribe-by-product":ne?"true":"false",children:[i.jsx("div",{className:"shrink-0 z-20 pb-2 pt-3 max-lg:pb-1.5 max-lg:pt-2",style:{backgroundColor:Y},children:i.jsx("div",{className:"space-y-1 max-lg:space-y-0.5",children:i.jsxs("div",{className:"flex items-center justify-between gap-2 max-lg:gap-1.5",children:[i.jsx("h1",{className:"min-w-0 text-2xl font-display font-semibold text-content-primary max-lg:truncate max-lg:text-base max-lg:leading-tight",children:"Prescriptions"}),i.jsxs("div",{className:"flex shrink-0 items-center gap-1.5 sm:gap-2 max-lg:gap-1",children:[tu?i.jsx(Ze,{type:"button",variant:"ghost",size:"icon",className:"size-7 rounded-full text-content-tertiary hover:text-content-primary",onClick:qb,disabled:gr,"aria-label":"Refresh prescription recommendation",title:"Refresh recommendation","data-testid":G("button","charting","refresh-prescription-recommendation"),children:i.jsx(Iy,{"aria-hidden":"true",className:`size-3.5 ${gr?"animate-spin":""}`})}):null,Pt]})]})})}),i.jsxs("div",{ref:Js,className:`min-h-0 flex-1 overflow-y-auto overflow-x-hidden space-y-5 max-lg:space-y-3 ${Ns}`,children:[h?null:i.jsx(ZI,{ref:xl,patientId:u,patient:se?{...se,sexAtBirth:Object.hasOwn(se,"prescriptionSexAtBirth")?se.prescriptionSexAtBirth:se.sexAtBirth}:null,orderData:Hn,ready:ue!==!1,canEdit:!I&&dS(On)}),i.jsxs("section",{className:"space-y-4 max-lg:space-y-2.5",children:[qp||cb?i.jsxs(xs,{className:"rounded-xl border border-border bg-card p-4 max-lg:p-2.5","data-testid":G("section","charting",fi.testId),children:[i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 max-lg:gap-1.5",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:fi.title}),fi.infoLabel?i.jsx(Ig,{label:fi.infoLabel}):null]}),fi.description?i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:fi.description}):null]}),qp?i.jsx(mx,{...Ll,className:"mt-4 max-lg:mt-2.5"}):null,i.jsx(Zh,{purchasedProductContext:re}),Ec?i.jsx("div",{className:"mt-4 max-lg:mt-2.5",children:Ec}):null]}):Ec?i.jsx(xs,{className:"rounded-xl border border-border bg-card p-4 max-lg:p-2.5",children:Ec}):null,pn?Mc?i.jsx(Sg,{message:Mc,onRetry:tc}):i.jsx(OP,{}):null,!pn&&Dr&&Mc?i.jsx(Sg,{message:Mc,onRetry:tc}):null,Hx({showPrescribeContextLoader:pn,loadingPharmacies:$r,pharmacyLoadError:nn})?i.jsx(TP,{message:nn,onRetry:tc}):null,!pn&&h?i.jsxs(xs,{className:"rounded-xl border border-subtle bg-surface-raised p-4 max-lg:p-2.5","data-testid":G("section","charting","recommendation-protocol"),children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Protocol"}),i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"The prescription uses the selected protocol catalog price."})]}),i.jsxs("div",{className:"mt-4 space-y-2 max-lg:mt-2.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Protocol",i.jsx(pt,{})]}),i.jsxs(od,{value:nI,onValueChange:ee(e=>{Fr(!1),Ba(e)}),disabled:I||nl,children:[i.jsx(cd,{className:"h-10 bg-surface-raised","aria-label":"Recommendation protocol","data-testid":G("select","charting","recommendation-protocol"),error:!nl&&zn.length===0?"N
1o active protocols are configured for this catalog.":void 0,children:i.jsx(dd,{placeholder:nl?"Loading protocolsâ¦":"Select protocol"})}),i.jsx(ld,{className:"max-h-[min(320px,calc(100dvh-8rem))] w-[var(--radix-select-trigger-width)] max-w-[calc(100vw-1rem)]",children:zn.map(e=>i.jsxs(ud,{value:e.id,children:[e.displayName," - ",cm(e.customerPrice)]},e.id))})]})]})]}):null,!pn&&ts?i.jsxs(xs,{className:"rounded-xl border border-violet-200 bg-surface-raised p-4 dark:border-violet-800/60 max-lg:p-2.5","data-testid":G("section","charting",sr?"deferred-vault-product":"assessment-first-product"),children:[i.jsxs("div",{className:"space-y-1",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 max-lg:gap-1.5",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Patient preference"}),i.jsx(Ig,{label:No({paymentStatus:v==null?void 0:v.paymentStatus,rxQueued:!1,vaultMedAutoChargePending:Ct})}),ut.length>0?i.jsx("span",{className:"inline-flex items-center rounded-full border border-violet-200 bg-violet-50 px-2.5 py-0.5 text-2xs font-semibold uppercase tracking-[0.12em] text-violet-700 dark:border-violet-800/60 dark:bg-violet-950/40 dark:text-violet-300 max-lg:px-1.5 max-lg:text-3xs max-lg:tracking-[0.08em]","data-testid":G("badge","charting","patient-selected-product"),children:"Patient selected"}):null]}),sr?i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"Select the storefront product to charge when this prescription is sent. The visit was already paid at order create."}):null]}),i.jsxs("div",{className:"mt-4 space-y-2 max-lg:mt-2.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Product",i.jsx(pt,{})]}),i.jsxs(od,{value:iI,onValueChange:ee(e=>{Fr(!1),ma(e)}),disabled:I||Ut,children:[i.jsx(cd,{className:"h-10 bg-surface-raised","aria-label":"Patient preference product","data-testid":G("select","charting",sr?"deferred-vault-product":"assessment-first-product"),error:!Ut&&Ar.length===0?"No active fulfillment products are configured for this catalog.":void 0,children:i.jsx(dd,{placeholder:Ut?"Loading productsâ¦":"Select product"})}),i.jsx(ld,{className:"max-h-[min(320px,calc(100dvh-8rem))] w-[var(--radix-select-trigger-width)] max-w-[calc(100vw-1rem)]",children:Ar.map(e=>i.jsxs(ud,{value:e.id,children:[e.displayName," - ",cm(e.customerPrice)]},e.id))})]}),i.jsx(FP,{selectedProducts:ut,unavailable:to}),Os?i.jsx(hg,{value:Fn,onValueChange:en,customerPrice:wr==null?void 0:wr.customerPrice,installmentSchedulePreview:jl}):null]})]}):null,pn?null:i.jsx(hI,{className:du?"space-y-3":"rounded-xl border border-border bg-card p-4 max-lg:p-2.5","data-testid":G("section","charting",h?"recommendation-prescription":E?"fulfillment-prescriptions-shell":"primary-prescription"),children:du?i.jsx(Gu,{prescriptions:nr,loading:!Td,onAddAnother:!I&&Td?rI:null,canEditPrescription:I?null:Ru,onEditPrescription:I?null:eI}):i.jsxs(i.Fragment,{children:[zl?i.jsx(cP,{className:"mb-4"}):null,!_&&Nl&&!Mi?i.jsxs("div",{role:"status",className:"flex flex-wrap items-center gap-2 text-2xs text-content-secondary",children:[i.jsx("span",{children:Pc}),xc===Xi.CHECK_FAILED?i.jsx(Ze,{type:"button",variant:"link",size:"sm",onClick:tc,children:"Try again"}):null]}):null,E?null:i.jsx(Gu,{embedded:!0,prescriptions:vf,loading:Bm&&nr.length===0}),E&&!h?i.jsxs("div",{className:"space-y-4 max-lg:space-y-2.5",children:[i.jsx(i.Fragment,{children:i.jsx(Ax,{fulfillmentPrescriptions:Xt&&si?sd:Rb,readOnly:ie,formularyOptions:_s,formularyLoading:$r||Bl||hr,sectionDescription:mI,getLineDisclaimer:ne?gI:null,getFormularyOptions:fI,getMedicationSearch:yI,getShowMedicationSelector:ne?pI:null,getDirectionsAction:II,getMedicationInvalid:e=>!!Gl(e),getMedicationNotice:vb,pharmacies:Ce,pharmacyProductsById:R,getPreferredProductIdsForPharmacy:Ua,getPharmacyLabel:Ae,getProductLabel:be,getProductDisplayLabel:Fs,isInjectableProduct:Nc,isSupplyDrug:Rt,getSupplyDirections:Tp,getBaseDaysSupply:_p,onAddLine:ee(Qb),onRemoveLine:ee(tI),allowRemoveLastLine:cu,onUpdateLine:ee(pr),onSelectFormularyOption:ee(bs),onSelectPharmacy:ee(Db),onSelectProduct:ee(Ub),showPrimaryAction:mu&&!(Xt&&si),primaryActionDisabled:ao,primaryActionLoading:lu,primaryActionSavingLabel:qf,primaryActionLabel:$f,primaryActionTestId:uu,primaryActionTooltip:Mf,headerContent:i.jsx(i.Fragment,{children:i.jsx(Gu,{embedded:!0,prescriptions:vf,loading:Bm&&nr.length===0})}),afterPrescriptionsContent:ie?null:i.jsxs(i.Fragment,{children:[Tt?i.jsx(Nu,{value:lr,onCh
1ange:ee(wn),required:$i,prefilled:!!wi,onGenerate:ee(()=>Di("clinical_difference")),generating:Ni==="clinical_difference",generateDisabled:!o||!u||!kr.medicationName}):null,lt?i.jsx(ku,{value:Xe,onChange:ee(Qn),source:Xa.source,onGenerate:ee(()=>Di("medical_necessity")),generating:Ni==="medical_necessity",generateDisabled:!o||!u||!ro.medicationName}):null]}),prefilledMedicationId:(W==null?void 0:W.medicationId)||"",prefilledMedicationName:Fe(w==null?void 0:w.medication)||"",prefilledPharmacyOptionId:(W==null?void 0:W.pharmacyOptionId)||"",prefilledPharmacyId:(W==null?void 0:W.pharmacyId)||"",accentColor:kt,onPrimaryAction:Kf,getComplianceContent:bI,providerDea:Ee,providerDeaResolved:rr,onApplyDeaLicense:Rl,onDeaApplied:eu,getLineTitle:(e,r)=>e.advertisedProductName?`Prescription ${Zu(K,r)} for ${e.advertisedProductName}`:`Prescription ${Zu(K,r)}`,reviewMode:Xt&&si,reviewDescription:Ff,reviewActionLabel:pu,reviewSavingLabel:Bf,reviewSecondaryActionLabel:oo?"Save for later":null,onReviewConfirm:Gi,onReviewSecondaryConfirm:oo?()=>Gi({saveForLater:!0}):null,onReviewBack:()=>Fr(!1),reviewActionDisabled:ao,dispatchChoiceHint:Vf})}),td&&!Xt?i.jsx("p",{className:"text-xs text-content-tertiary max-lg:text-2xs",children:td}):null]}):null,E?null:i.jsx("div",{className:"mt-4 space-y-4 max-lg:mt-2.5 max-lg:space-y-2.5",children:i.jsx(i.Fragment,{children:Xt&&si?i.jsx(i.Fragment,{children:i.jsx(RI,{afterPrescriptionsContent:ie?null:i.jsxs(i.Fragment,{children:[Tt?i.jsx(Nu,{value:lr,onChange:ee(wn),required:$i,prefilled:!!wi,onGenerate:ee(()=>Di("clinical_difference")),generating:Ni==="clinical_difference",generateDisabled:!o||!u||!kr.medicationName}):null,lt?i.jsx(ku,{value:Xe,onChange:ee(Qn),source:Xa.source,onGenerate:ee(()=>Di("medical_necessity")),generating:Ni==="medical_necessity",generateDisabled:!o||!u||!ro.medicationName}):null]}),title:cI,description:Ff,entries:sd,patientName:f,orderNumber:lI,primaryActionMenuLabel:pu,actionLabel:pu,savingLabel:Bf,loading:lu,disabled:ao,onEdit:()=>Fr(!1),onConfirm:Gi,secondaryActionLabel:oo?"Save for later":null,onSecondaryConfirm:oo?()=>Gi({saveForLater:!0}):null,secondaryActionDisabled:ao,dispatchChoiceHint:Vf,accentColor:kt,testIdScope:"charting",confirmTestId:uu})}):i.jsxs(i.Fragment,{children:[$r&&i.jsx(Cu,{label:"Loading pharmacies",size:"md",className:"min-h-12"}),i.jsxs("div",{className:"grid sm:grid-cols-2 gap-3 max-lg:gap-2",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"Pharmacy / integration"}),i.jsxs(hy,{open:ip,onOpenChange:rl,modal:!1,children:[i.jsx(Sy,{asChild:!0,children:i.jsxs(Ze,{type:"button",variant:"outline",role:"combobox",className:"h-9 w-full min-w-0 justify-between rounded-md border-default bg-surface-raised text-left font-normal text-slate-700 hover:bg-white dark:bg-slate-950 dark:text-slate-200 dark:hover:bg-slate-950 max-lg:h-8 max-lg:px-2 max-lg:text-xs",disabled:ie,"aria-expanded":ip,"aria-controls":"charting-pharmacy-options","data-testid":G("select","charting","pharmacy"),children:[i.jsx("span",{className:"min-w-0 truncate",children:Nb}),i.jsx(xy,{className:"ml-2 size-4 shrink-0 opacity-60 max-lg:ml-1.5 max-lg:size-3.5"})]})}),i.jsx(Py,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",id:"charting-pharmacy-options",children:i.jsxs(Ny,{children:[i.jsx(ky,{placeholder:"Search pharmaciesâ¦",className:"h-9",label:"Search pharmacies",testId:G("input","charting","pharmacy-search")}),i.jsxs(Cy,{children:[i.jsx(jy,{children:"No pharmacies found. Select Manual."}),i.jsxs(vy,{children:[i.jsxs(Mu,{value:sa,onSelect:ee(()=>Vb("manual")),children:[i.jsx(md,{className:`mr-2 size-4 ${_e?"opacity-100":"opacity-0"}`}),"Manual"]}),oI.map(e=>i.jsxs(Mu,{value:`${Ae(e)} ${e.id||""}`,onSelect:ee(()=>Bb(e.id)),children:[i.jsx(md,{className:`mr-2 size-4 ${!_e&&Z===e.id?"opacity-100":"opacity-0"}`}),Ae(e)]},e.id))]})]})]})})]}),_e&&i.jsx("p",{className:"text-2xs text-content-tertiary",children:"Manual lets you save the prescription without sending it to the pharmacy."})]}),_e?i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Pharmacy name",i.jsx(pt,{})]}),i.jsx(Kt,{value:S.pharmacyName??"",onChange:ee(ie?void 0:e=>de(r=>({...r,pharmacyName:e.target.value}))),disabled:ie,placeholder:"Enter pharmacy name",className:"h-9 bg-surface-raised","aria-label":"Pharmacy name","data-testid":G("input","charting","manual-pharmacy-name")})]}):De?null:i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("div",{className:"flex min-w-0 flex-wrap items-center justify-between gap-x-3 gap-y-1",children:i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Medication",i.jsx(pt,{})]})}),i.jsxs(hy,{open:ap,onOpenChange:tl,modal:!1,children:[i.jsx(Sy,{asChild:!0,children:i.jsxs(Ze,{type:"button",variant:"outline",role:"combobox",className:"h-9 w-full min-w-0 justify-between rounded-md border-default bg-surface-raised text-left font-normal text-slate-700 hover:bg-white dark:bg-slate-950 dar
1k:text-slate-200 dark:hover:bg-slate-950 max-lg:h-8 max-lg:px-2 max-lg:text-xs",disabled:ie||De||!Z||Na&&!Array.isArray(Jt[Z])||!Tc,"aria-expanded":ap,"aria-controls":"charting-product-options","data-testid":G("select","charting","medication"),children:[i.jsx("span",{className:"min-w-0 truncate",children:De?"ScriptSure":Na&&!Array.isArray(Jt[Z])?"Loading medicationâ¦":ke?_i?Fs(Ft.find(e=>e.id===ke),B):`${xb} (Unavailable)`:"Select medication"}),i.jsx(xy,{className:"ml-2 size-4 shrink-0 opacity-60 max-lg:ml-1.5 max-lg:size-3.5"})]})}),i.jsx(Py,{className:"w-[var(--radix-popover-trigger-width)] p-0",align:"start",id:"charting-product-options",children:i.jsxs(Ny,{children:[i.jsx(ky,{placeholder:"Search medicationâ¦",className:"h-9",label:"Search medication",testId:G("input","charting","medication-search"),value:op,onValueChange:sl}),i.jsxs(Cy,{children:[i.jsx(jy,{children:"No medications found."}),i.jsx(vy,{children:Kp.map(e=>{const r=Is(B,e,Ee,{deaResolved:rr});return i.jsxs(Mu,{value:`${be(e)} ${[Fs(e,B),e.variantLabel].filter(Boolean).join(" · ")} ${e.name||""}`,disabled:r,className:ss.has(ce(e))?mP:void 0,onSelect:ee(()=>{r||su(e.id,Z,e.formularyVariantId||"")}),children:[i.jsx(md,{className:`mr-2 size-4 ${ke===e.id&&(S.formularyVariantId||"")===(e.formularyVariantId||"")?"opacity-100":"opacity-0"}`}),i.jsxs("span",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[i.jsx("span",{className:"min-w-0 flex-1 whitespace-normal break-words",children:i.jsx(uS,{text:[Fs(e,B),e.variantLabel].filter(Boolean).join(" · "),highlight:op,highlightClassName:"bg-amber-200 dark:bg-amber-900/50"})}),_P(e),$P(e)]}),ss.has(ce(e))?i.jsx("span",{className:`ml-2 ${pP}`,children:"Preferred"}):null,r?i.jsx("span",{className:`ml-2 ${gP}`,children:"DEA required"}):null]},`${e.id}:${e.formularyVariantId||""}`)})})]})]})})]}),!_e&&!De&&Sb?i.jsxs("p",{className:"inline-flex max-w-full items-start gap-1 text-2xs font-medium text-amber-700 dark:text-amber-300",children:[i.jsx(kd,{className:"mt-0.5 size-3.5 shrink-0"}),i.jsx("span",{children:"This medication is outside the client-preferred formulary for this product."})]}):null,!_e&&!De&&Z&&Na&&i.jsx(Cu,{label:"Loading medications",size:"sm",className:"min-h-8"}),!_e&&!De&&Wa&&i.jsx("button",{type:"button",className:"text-2xs font-medium text-content-secondary underline-offset-2 hover:underline",onClick:()=>np(e=>!e),children:el?"Show preferred medications only":"Show all medications"}),!_e&&!De&&!Na&&!!Um&&i.jsx("p",{className:"text-2xs text-rose-700 dark:text-rose-300",children:Um}),!_e&&!De&&!hb&&ke&&!_i&&i.jsx("p",{className:"text-2xs text-amber-700 dark:text-amber-300",children:"The previously selected associated prescription is no longer available. Choose a current option to submit."})]})]}),_e&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid sm:grid-cols-2 gap-3 max-lg:gap-2",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Medication",i.jsx(pt,{})]}),i.jsx(Kt,{value:S.medicationName??"",onChange:ee(ie?void 0:e=>de(r=>({...r,medicationName:e.target.value}))),disabled:ie,placeholder:"e.g. Semaglutide",className:"h-9 bg-surface-raised","aria-label":"Medication","data-testid":G("input","charting","manual-medication")})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Dosage",i.jsx(pt,{})]}),i.jsx(Kt,{value:S.dosage??"",onChange:ee(ie?void 0:e=>de(r=>({...r,dosage:e.target.value}))),disabled:ie,placeholder:"e.g. 0.25 mg weekly",className:"h-9 bg-surface-raised","aria-label":"Dosage","data-testid":G("input","charting","dosage")})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Directions",i.jsx(pt,{})]}),ie?null:i.jsx(eh,{prescription:S,pharmacy:B,medication:J,onSelect:e=>de(r=>({...r,...e}))}),i.jsx(Ze,{type:"button",variant:"ghost",size:"sm",onClick:ee(Fb),disabled:ie,className:"h-7 text-2xs px-2","data-testid":G("button","charting","fill-from-soap"),children:"Sync from SOAP"})]}),i.jsx(wh,{value:S.instructions,onChange:ee(ie?void 0:e=>de(r=>({...r,instructions:e.target.value,formularyDirectionId:""}))),onKeyDown:Ob,placeholder:"Patient instructions",disabled:ie,className:"min-h-[84px] resize-none bg-surface-raised","aria-label":"Instructions","data-testid":G("input","charting","instructions")})]})]}),_&&i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"Prescribing provider"}),i.jsx("div",{className:"grid gap-2 sm:grid-cols-2 max-lg:gap-1.5",children:dn.map(e=>i.jsx(Ze,{type:"button",variant:Wr===e.id?"default":"outline",className:"justify-start",disabled:ie,onClick:ee(()=>Aa(e.id)),"aria-pressed":Wr===e.id,"data-testid":G("button","charting","prescriber"),children:e.label},e.id))}),Un&&i.jsx("p",{className:"text-2xs text-slate-400",children:"Loading providers..."}),!Un&&dn.length===0&&i.jsx("p",{className:"text-2xs text-amber-700 dark:text-amber-300",children:Pc}),!Un&&dn.length>0&&i.jsxs("p",{className:"text-2xs text-content-tertiary",children:["Sending as ",Lb,"."]})]}),_e?i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid sm:grid-cols-2 gap-3 max-lg:gap-2",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:[Up?"Pack quantity":"Quantity",i.jsx(pt,{})]}),i.jsx(Kt,{type:"text",min:1,inputMode:"numeric",value:S.quantity??"",onChange:ee(ie?void 0:e=>de(r=>{const t=e.target.value?Number(e.target.value):"",n={...r,quantity:t};return e.target.value&&(n.daysSupply=Wu({currentQuantity:r.quantity,currentDaysSupply:r.daysSupply,nextQuantity:t,fallbackBaseDaysSupply:_l,shouldMultiplyDaysSupply:Tl})),n})),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"Quantity","data-testid":G("input","charting","quantity")})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Days supply",i.jsx(pt,{})]}),i.jsx(Kt,{type:"number",min:1,step:1,value:S.daysSupply??"",onChange:ee(ie?void 0:e=>de(r=>({...r,daysSupply:e.target.value===""?"":Number(e.target.value)}))),onBlur:ie?void 0:()=>de(e=>{const r=e.daysSupply??"";return r!==""&&Number.isFinite(Number(r))&&Number(r)>0?e:{...e,daysSupply:30}}),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"Days supply","data-testid":G("input","charting","days-supply")}),zp?i.jsx("p",{className:"text-2xs text-content-tertiary",children:"Days supply must be between 1 and 365."}):null]})]}),i.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 max-lg:gap-2",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"Units"}),i.jsx(Kt,{value:S.units??"",onChange:ee(ie?void 0:e=>de(r=>({...r,units:e.target.value}))),disabled:ie,placeholder:"e.g. each",className:"h-9 bg-surface-raised","aria-label":"Units","data-testid":G("input","charting","units")})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"Total refills"}),i.jsx(Kt,{type:"number",min:0,step:1,value:S.refills??"",onChange:ee(ie?void 0:e=>de(r=>({...r,refills:e.target.value===""?"":Number(e.target.value)}))),onBlur:ie?void 0:()=>de(e=>{const r=e.refills??"";return r!==""&&Number.isFinite(Number(r))&&Number(r)>=0?e:{...e,refills:0}}),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"Total refills","data-testid":G("input","charting","refills")})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"DAW"}),i.jsx(Kt,{type:"text",min:0,inputMode:"numeric",value:S.daw??"",onChange:ee(ie?void 0:e=>de(r=>({...r,daw:e.target.value?Number(e.target.value):0}))),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"DAW","data-testid":G("input","charting","daw")})]})]})]}):Eb?i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid sm:grid-cols-3 gap-3 max-lg:gap-2",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Quantity",i.jsx(pt,{}),bn.isQuantityLocked?i.jsxs("span",{className:"ml-1.5 font-normal text-slate-400",children:["(Fixed at ",bn.fixedQuantityString,")"]}):null]}),i.jsx(rh,{min:wl.min,max:wl.max,step:wl.step,value:S.quantity??"",locked:bn.isQuantityLocked,lockedValue:bn.fixedQuantityString,onValueChange:ee(ie||bn.isQuantityLocked?void 0:e=>de(r=>{const t=MI(e),n=Number(t),c={...r,quantity:t,packQuantityConfirmed:!1};return t!==""&&Number.isFinite(n)&&n>0&&(c.daysSupply=Wu({currentQuantity:r.quantity,currentDaysSupply:r.daysSupply,nextQuantity:t,fallbackBaseDaysSupply:_l,shouldMultiplyDaysSupply:Tl})),c})),onBlur:ie||bn.isQuantityLocked||!Ib?void 0:()=>de(e=>{const r=e.quantity??"";if(r===""||!Number.isFinite(Number(r)))return e;const t=GS(r,B,J);return e.quantity===t?e:{...e,quantity:t,packQuantityConfirmed:!1,daysSupply:Wu({currentQuantity:e.quantity,currentDaysSupply:e.daysSupply,nextQuantity:t,fallbackBaseDaysSupply:_l,shouldMultiplyDaysSupply:Tl})}}),disabled:ie,inputClassName:bn.isQuantityLocked?bP:void 0,ariaLabel:"Quantity",dataTestId:G("input","charting","quantity")}),!bn.isQuantityLocked&&Gp?i.jsx("p",{className:"text-2xs text-content-tertiary",children:Gp}):null]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsxs(Je,{className:"text-xs text-content-tertiary",children:["Days supply",i.jsx(pt,{})]}),i.jsx(Kt,{type:"number",min:1,step:1,value:S.daysSupply??"",onChange:ee(ie?void 0:e=>de(r=>({...r,daysSupply:e.target.value===""?"":Number(e.target.value)}))),onBlur:ie?void 0:()=>de(e=>{const r=e.daysSupply??"";return r!==""&&Number.isFinite(Number(r))&&Number(r)>0?e:{...e,daysSupply:30}}),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"Days supply","data-testid":G("input","charting","days-supply")}),zp?i.jsx("p",{className:"text-2xs text-content-tertiary",children:"Days supply must be between 1 and 365."}):null]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx(Je,{className:"text-xs text-content-tertiary",children:"Total refills"}),i.jsx(Kt,{type:"number",min:0,step:1,value:S.refills??"",onChange:ee(ie?void 0:e=>de(r=>({...r,refills:e.target.value===""?"":Number(e.target.value)}))),onBlur:ie?void 0:()=>de(e=>{const r=e.refills??"";return r!==""&&Number.isFinite(Number(r))&&Number(r)>=0?e:{...e,refills:0}}),disabled:ie,className:"h-9 bg-surface-raised","aria-label":"Total refills","data-testid":G("input","charting","refills")})]})]}),$s.isPack?i.jsxs("div",{className:"space-y-2 rounded-md border border-blue-200 bg-blue-50/70 px-3 py-2 dark:border-blue-900/70 dark:bg-blue-950/30",children:[i.jsxs("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:[$s.orderedPacks||1," ",($s.orderedPacks||1)===1?"pack":"packs"," = ",$s.totalUnits||Up," total units"]}),$s.requiresConfirmation?i.jsxs("label",{className:"flex items-start gap-2 text-xs text-blue-900 dark:text-blue-100",children:[i.jsx(Qh,{checked:S.packQuantityConfirmed===!0,onCheckedChange:ee(e=>de(r=>
1({...r,packQuantityConfirmed:e===!0}))),disabled:ie,className:"mt-0.5","aria-label":`Confirm ${$s.orderedPacks} packs and ${$s.totalUnits} total units`}),i.jsxs("span",{children:["I confirm this order is ",$s.orderedPacks," packs (",$s.totalUnits," total units)."]})]}):null]}):null]}):null,Ha&&!ie?i.jsx(dy,{method:on,onMethodChange:e=>{Ea(e),e==="ssn"?Yt(r=>({...Cn,socialSecurityNumber:r.socialSecurityNumber})):e==="stateIssuedId"?Yt(r=>({...Cn,stateIssuedId:r.stateIssuedId})):e==="driverLicense"&&Yt(r=>({...Cn,driverLicenseNumber:r.driverLicenseNumber,driverLicenseState:r.driverLicenseState}))},fields:cn,onFieldChange:(e,r)=>{Yt(t=>({...t,[e]:r}))},driverLicenseOnly:Ot,title:Ot?"Patient driverâs license (required by Epiq Scripts)":void 0,description:Ot?"Epiq Scripts requires the patientâs driverâs license number and state on every prescription. Both fields are required before sending.":void 0}):null,Tt&&!ie?i.jsx(Nu,{value:lr,onChange:ee(wn),required:$i,prefilled:!!wi,onGenerate:ee(()=>Di("clinical_difference")),generating:Ni==="clinical_difference",generateDisabled:!o||!u||!kr.medicationName}):null,lt&&!ie?i.jsx(ku,{value:Xe,onChange:ee(Qn),source:Xa.source,onGenerate:ee(()=>Di("medical_necessity")),generating:Ni==="medical_necessity",generateDisabled:!o||!u||!ro.medicationName}):null,aI?i.jsx("div",{className:"rounded-lg border border-amber-200 bg-amber-50/80 px-3 py-2.5 dark:border-amber-900/50 dark:bg-amber-950/20 max-lg:px-2 max-lg:py-2",children:i.jsx(th,{onApplyDeaLicense:Rl,onDeaApplied:eu,className:"max-w-none",accentColor:kt})}):null,td&&i.jsx("p",{className:"text-xs text-content-tertiary max-lg:text-2xs",children:td}),mu?i.jsx(VP,{label:Mf,children:i.jsx(Ze,{onClick:Ti?()=>qr(Yb):Kf,disabled:ao,size:"lg",className:"w-full text-white",style:{backgroundColor:kt},"data-testid":uu,children:lu?i.jsxs(i.Fragment,{children:[i.jsx(vu,{className:"size-4 mr-2 animate-spin"}),qf]}):i.jsxs(i.Fragment,{children:[i.jsx(oi,{className:"size-4 mr-2"}),$f]})})}):null,!h&&De&&Bs?i.jsx("div",{className:"rounded-lg border border-subtle bg-surface-sunken",children:i.jsx(Cu,{label:"Preparing ScriptSure patient chart"})}):null,!h&&De&&Ht?i.jsx("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 p-3 dark:border-emerald-900/60 dark:bg-emerald-950/30 max-lg:p-2",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between max-lg:gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[i.jsx("span",{className:"mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-full bg-emerald-100 text-emerald-700 dark:bg-emerald-900/60 dark:text-emerald-200",children:i.jsx(md,{className:"size-4","aria-hidden":"true"})}),i.jsxs("div",{className:"min-w-0",children:[i.jsx("p",{className:"text-sm font-semibold text-emerald-950 dark:text-emerald-100 max-lg:text-xs",children:"ScriptSure prescription received"}),i.jsxs("p",{className:"mt-0.5 text-xs text-emerald-800 dark:text-emerald-200 max-lg:text-2xs",children:[Bg(Ht.medicationName,"Prescription"),Ht.scriptSurePrescriptionId?` #${Ht.scriptSurePrescriptionId}`:""]})]})]}),i.jsxs("div",{className:"flex shrink-0 flex-wrap items-center gap-2 text-xs max-lg:gap-1.5 max-lg:text-2xs",children:[i.jsx("span",{className:"rounded-full border border-emerald-300 bg-surface-raised px-2 py-1 font-medium text-emerald-800 dark:border-emerald-800 dark:text-emerald-100 max-lg:px-1.5 max-lg:py-0.5",children:PP(Ht.scriptSurePrescriptionStatusName||Ht.status)}),Ht.scriptSureWebhookReceivedAt?i.jsx("span",{className:"text-emerald-700 dark:text-emerald-300",children:NP(Ht.scriptSureWebhookReceivedAt)}):null]})]})}):null,!h&&Wt&&!Ht?i.jsxs(Ze,{type:"button",variant:"outline",className:"flex h-auto min-h-[120px] w-full flex-col items-center justify-center gap-2 rounded-xl border-subtle bg-surface-raised p-5 text-center hover:bg-slate-50 dark:bg-slate-900/40 dark:hover:bg-slate-900 max-lg:min-h-[88px] max-lg:gap-1.5 max-lg:p-3",onClick:()=>Kn(!0),children:[i.jsx("span",{className:"text-base font-semibold text-content-primary max-lg:text-sm",children:"Click here to open ScriptSure and proceed"}),i.jsx("span",{className:"max-w-xl whitespace-normal text-sm font-normal leading-5 text-content-tertiary max-lg:text-xs",children:"Review the patient chart, write prescriptions in the ScriptSure pop-up, then return here when you are finished."})]}):null,!h&&!I&&De&&(Wt||Ht)?i.jsxs(Ze,{type:"button",variant:"outline",size:"sm",className:"h-8 w-full rounded-md",onClick:sI,disabled:nc,"data-testid":G("button","scriptsure","refresh-prescriptions"),children:[nc?i.jsx(vu,{className:"mr-1.5 size-3.5 animate-spin"}):i.jsx(Iy,{className:"mr-1.5 size-3.5"}),"Refresh prescriptions"]}):null]})})})]})}),!pn&&!h?i.jsxs(i.Fragment,{children:[i.jsx(xs,{className:"rounded-xl border border-subtle bg-surface-raised p-4 max-lg:p-2.5",children:i.jsx(Fx,{addOnPrescriptions:Dt,addOnRequestStatus:Cd,addOnRequestOrderId:jd,readOnly:I,accentColor:kt,formularyOptions:ub,formularyLoading:fb,pharmacies:$e,pharmacyProductsById:R,getPreferredProductIdsForPharmacy:yb,getPharmacyLabel:Ae,getProductLabel:be,getProductDisplayLabel:Fs,isInjectableProduct:Nc,isSupplyDrug:Rt,getSupplyDirections:Tp,getBaseDaysSupply:_p,onAddLine:ee(_b),onRemoveLine:ee(Kb),onUpdateLine:ee(xn),onSelectFormularyOption:ee(Jb),onSelectPharmacy:ee(zb),onSelectProduct:ee(Gb),onSave:Wb,saveDisabled:!oe||Dt.length===0||Ks.some(e=>!Hi(e)),saving:Eo,providerDea:Ee,providerDeaResolved:rr,onApplyDeaLicense:
1Rl,onDeaApplied:eu})}),i.jsx(xs,{className:"rounded-xl border border-subtle bg-surface-raised p-4 max-lg:p-2.5",children:i.jsx(Ox,{recommendations:qn,readOnly:I,accentColor:kt,onAddLine:ee($b),onRemoveLine:ee(wb),onUpdateLine:ee(Tb),onSave:Hb,saveDisabled:qn.length===0})})]}):null,i.jsxs(xs,{className:"rounded-xl border border-subtle bg-surface-raised p-4 max-lg:p-2.5","data-testid":G("section","charting","internal-note"),children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("h2",{className:"text-lg font-display font-semibold text-content-primary max-lg:text-sm",children:"Internal note"}),i.jsx("p",{className:"text-sm text-content-secondary max-lg:text-xs",children:"Save a private note tied to this review."})]}),i.jsx("div",{className:"mt-4 max-lg:mt-2.5",children:i.jsx(Cg,{value:Xs,onChange:ee(I?void 0:la),placeholder:"Private note",className:"[&_.ql-editor]:min-h-[5rem]",readOnly:I})})]})]})]}),i.jsx(Rh,{open:Wg,onOpenChange:Kn,portalContainer:typeof document>"u"?void 0:document.body,launchUrl:Wt,launchId:sc,iframeRef:up,onLoad:iu,guidance:Xb}),i.jsx(eS,{...eb}),i.jsx(rS,{open:Hg,onOpenChange:Zm,value:Ee,onConfirm:ac}),i.jsx(tS,{open:!!dr,onOpenChange:e=>{e||Md(null)},variant:(dr==null?void 0:dr.variant)||"flow_a_queued",reviewWindowMs:dr==null?void 0:dr.reviewWindowMs,doneLabel:Sm?"Sign this chart":"Done",onDone:()=>{var e;(e=dr==null?void 0:dr.onDone)==null||e.call(dr),Sm&&(vs==null||vs())}}),i.jsx(sS,{open:!!nt,onOpenChange:e=>{e||Ed(null)},patientId:u,patientFirstName:(f||"").split(" ")[0]||"",providerName:$g,medicationNames:(nt==null?void 0:nt.medicationNames)||[],prescriptionIds:(nt==null?void 0:nt.prescriptionIds)||[],orderId:(nt==null?void 0:nt.orderId)||null,onDone:()=>{const e=nt==null?void 0:nt.after;Ed(null),e==null||e()}})]})})})}export{ZN 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.