PageSourceSearch

https://care.soberpedia.ai/assets/FormularyDefaultsDialog-C0hXQMV-.js

js soberpedia.ai collected 2026-10-05 15:11:29 UTC 8,554 bytes, 1 lines download raw bytes

1import{r as l,j as A}from"./react-vendor-CU6Sz31W.js";import{ak as _,gA as z,as as x,au as R,t as rr}from"./index-DEXJEDAi.js";import{ProductsPageProductMedicationsSheet as tr}from"./ProductsPageProductMedicationsSheet-Dl84wnBq.js";import{b as er,a as or}from"./ClientFormularyMedicationsTable-DGS5GEg6.js";import{l as ar}from"./formularySeed-CU64n7sL.js";import{i as T,g as ir,n as sr,s as U,j as nr,l as cr,k as dr,m as mr,o as lr,p as ur,r as pr,h as yr}from"./formularyMappings-C8mJfsp2.js";import{d as I}from"./formularyRules-DurNzATt.js";import{g as gr,b as fr,w as hr,x as Ir}from"./formularyVariants-BV7CaEYS.js";import{u as Pr}from"./ProductsProviderNetworkView-DRuxhRlw.js";import"./firebase-w6DYUbFN.js";import"./payment-icons-Daq1K3F1.js";import"./index-BSuGcRaZ.js";import"./pill-filter-CtZSNPVl.js";import"./text-highlight-BFqqfcjs.js";import"./useProviderNetworkFormularyCustomNames-DLzu7zBJ.js";import"./useFormularyTypesenseSearch-b2YherGX.js";import"./collectExportPages-B1mgoF_8.js";import"./useClientFormularyPairingPrices-BjCy1Qoq.js";import"./formularySearchSeed-DFztyQr8.js";import"./searchMatchPosition-D039Jv6R.js";import"./providerOperations-ELdKx_YD.js";import"./networkLicensurePolicy-Ct3PZM4V.js";import"./catalogCategoryVisibility-PKrVnYt-.js";import"./ProductInlineEditPopovers-B7oRL8nE.js";import"./CatalogSelectionList-D9FsL1Nv.js";import"./DataTableCard-BluwWKn_.js";import"./table-CxPdvV_9.js";import"./arrow-up-D6DFVL4j.js";import"./arrow-down-BjUlbB4f.js";import"./date-picker-filter-Qp1kqu9t.js";import"./calendar-RV2oTCrW.js";import"./addWeeks-1hrFjz19.js";import"./clear-filters-button-DmPemFGr.js";import"./ExportCsvAction-BJr9eiP6.js";import"./modal-option-cards-Dksohkou.js";import"./ellipsis-tooltip-CfKm8VFV.js";import"./useTableSort-KpNOL2n3.js";import"./editor-D8UbQKN1.js";import"./use-unsaved-changes-B6nL5Xdd.js";import"./useFormularySendTiming-PW-jkqj4.js";import"./formularySendSchedules-hEX-RQcj.js";import"./pencil-CpqYHolO.js";import"./entityExportApi-B54AEfOG.js";import"./rawTableExport-DjSsUxyR.js";import"./patient-name-link-BAfQKbEs.js";import"./SubscriptionsManager-BDbX__WY.js";import"./cells-Db2ZEFlu.js";import"./ellipsis-vertical-C-dQ6Kzj.js";import"./productSubscriptionRule-Btb3VTHz.js";import"./catalogHelpers-CytjTu8E.js";import"./labBiomarkerRequirementModel-Bqa1eFIF.js";import"./LabAdjudicationUnavailableNotice-Caxh_Djm.js";import"./message-square-text-CBK4eOxL.js";import"./useRealtimeRows-CgXDiBPc.js";import"./localTableUtils-D6jRZlmf.js";import"./useLocalStorageState-BlY8ICA4.js";import"./clinicalRulesWindows-XIF-DYAK.js";import"./labRecencyWindow-BLArGdSC.js";import"./providerNetworkFormsFirestore-CtlDVuXc.js";import"./formChangeLogs-Yl91HkEm.js";import"./labBiomarkerApi-Ck21Kuon.js";import"./RoutePageHeader-9W0v4VlT.js";import"./RoutePageHeaderContent-FkxdZGox.js";function V(o={}){const c=I(o.pharmacyId||o.externalPharmacyId);if(c)return c;const a=I(o.id).split(":").filter(Boolean);return a.length>=3?a[a.length-1]:I(o.id)}function vr(o={}){const c=Number(o.errorStatus||o.statusCode||o.status),a=I(o.error||o.message).toLowerCase();return c===403||a.includes("status code 403")||a.includes("status 403")}function Mr(o={}){if(!o||o.inactiveFormularyMappingOnly||o.active===!1||o.enabled===!1)return!1;const c=I(o.status||o.integrationStatus||o.state).toLowerCase();return!["inactive","disabled","archived","deleted"].includes(c)}function wr(o=[],c={}){const a=Array.isArray(o)?o:[],e=a.findIndex(w=>w.id===c.id);if(e===-1)return[...a,c];const P=a.slice();return P[e]=c,P}function Fr(o={}){return Object.values(o||{}).reduce((c,a)=>c+(Array.isArray(a==null?void 0:a.medicationIds)?a.medicationIds.length:0),0)}function Lt(){const{canManageCatalog:o,formularyDialogOpen:c,formularyProduct:a,providerNetworkId:e,setFormularyDialogOpen:P,setFormularyProduct:w,updateProductFormularyCount:F}=Pr(),[C,b]=l.useState([]),[N,v]=l.useState(!1),[L,W]=l.useState([]),[p,y]=l.useState({}),[$,M]=l.useState(!1),[q,k]=l.useState(""),g=a?T(a):"";l.useEffect(()=>{if(!c||!e)return;let i=!1;const m=typeof AbortController<"u"?new AbortController:null;k(""),v(!1),M(!1);const s=ir(e);return s?(b(s),v(!0)):b([]),(async()=>{try{const d=await _({providerNetworkId:e});if(i)return;const h=(Array.isArray(d.pharmacies)?d.pharmacies:[]).filter(r=>I(r.source).toLowerCase()==="onlyscripts").map(r=>sr({...r,pharmacyId:V(r)}
1,e));if(!s){let r=null;try{await ar({providerNetworkId:e,pharmacies:h,signal:m==null?void 0:m.signal,onPage:n=>{i||n.some(t=>(t.drugs||[]).length>0)&&(r=n,b(n),v(!0))}})}catch(n){console.error("Error seeding provider network formulary from search:",n)}if(r&&U(e,r),i)return}const B=await Promise.all(h.map(async r=>{const n=V(r);try{const t=await z({providerNetworkId:e,integrationId:r.integrationId,integrationScopeType:r.integrationScopeType,integrationScopeId:r.integrationScopeId,pharmacyId:n,useCache:!0});return{...r,pharmacyId:n,drugs:Array.isArray(t==null?void 0:t.drugs)?t.drugs:[],error:(t==null?void 0:t.error)||"",errorStatus:(t==null?void 0:t.errorStatus)||(t==null?void 0:t.statusCode)||null}}catch(t){return{...r,pharmacyId:n,drugs:[],error:(t==null?void 0:t.message)||"Unable to load pharmacy formulary.",errorStatus:(t==null?void 0:t.status)||(t==null?void 0:t.statusCode)||null}}}));if(i)return;b(r=>{let n=Array.isArray(r)?r:[];return B.forEach(t=>{n=wr(n,t)}),U(e,n),n}),v(!0)}catch(d){if(i)return;console.error("Error loading provider network formulary pharmacies:",d),k((d==null?void 0:d.message)||"Unable to load formulary pharmacies."),v(!0)}})(),()=>{i=!0,m==null||m.abort()}},[c,e]),l.useEffect(()=>{if(!c||!e||!a)return;let i=!1;M(!1);const m=`providerNetwork:${e}`,s=nr(m,[a]);return s&&g&&s[g]!=null?(y(s[g]||{}),M(!0)):y({}),(async()=>{try{const[d,f]=await Promise.all([cr(x,{providerNetworkId:e,products:[a]}),dr(x,e).catch(()=>[])]);if(i)return;y(d&&g?d[g]||{}:{}),W(Array.isArray(f)?f.filter(h=>h.active!==!1):[]),M(!0)}catch(d){if(i)return;console.error("Error loading provider network formulary mappings:",d),k((d==null?void 0:d.message)||"Unable to load formulary pairings."),M(!0)}})(),()=>{i=!0}},[c,a,g,e]);const S=l.useMemo(()=>{const i=(Array.isArray(C)?C:[]).filter(s=>Mr(s)&&!vr(s)),m=er(L,e);return!m||!(m.drugs||[]).length?i:[...i,m]},[L,C,e]),G=l.useMemo(()=>e?or(S,e).filter(i=>i.drug):[],[e,S]),H=!N||!$,J=l.useCallback(i=>{P(i),i||w(null)},[P,w]),Q=l.useCallback(async({product:i,drug:m,pharmacy:s,nextChecked:d})=>{const f=gr(m),h=T(i);if(!e||!f||!h||!i)return;const B=fr(p,s,e),r=mr(p,s,e),n=hr({currentIds:B,currentVariantIdByMedicationId:(r==null?void 0:r.variantIdByMedicationId)||{},currentVariantIdsByMedicationId:(r==null?void 0:r.variantIdsByMedicationId)||{},medicationId:f,variantId:Ir(m),nextChecked:d}),t=n.medicationIds,O=lr(s,e),K=p,j={};Object.entries((r==null?void 0:r.directionsByMedicationId)||{}).forEach(([u,E])=>{t.includes(u)&&(j[u]=E)});const Z={...p,[O]:{...r||{},pharmacyMappingKey:O,medicationIds:t,directionsByMedicationId:j,variantIdByMedicationId:n.variantIdByMedicationId,variantIdsByMedicationId:n.variantIdsByMedicationId,hasOverride:!0}};y(Z);try{const{mappingKey:u,payload:E}=await ur(x,{providerNetworkId:e,product:i,pharmacy:s,medicationIds:t,variantIdsByMedicationId:n.variantIdsByMedicationId,variantIdByMedicationId:n.variantIdByMedicationId,medications:Array.isArray(s==null?void 0:s.drugs)?s.drugs:[m],directionsByMedicationId:(r==null?void 0:r.directionsByMedicationId)||{},user:R.currentUser}),D=pr(K,s,{...E,pharmacyMappingKey:u,hasOverride:!0});y(D),F==null||F(i.id,Fr(D))}catch(u){y(K),console.error("Error saving provider network formulary mapping:",u),rr.error((u==null?void 0:u.message)||"Unable to save formulary mapping.")}},[p,e,F]);if(!c||!a)return null;const X=yr(a),Y=q||(N&&S.length===0?"No pharmacies are enabled for this network. Enable a pharmacy under Integrations to pair formulary medications.":"No formulary medications loaded for enabled pharmacies.");return A.jsx(tr,{open:c,onOpenChange:J,product:a,clientId:e,pharmacies:S,medicationRows:G,mappingsForProduct:p,canEdit:o,loading:H,description:A.jsxs(A.Fragment,{children:["Toggle medications paired with ",A.jsx("span",{className:"font-medium text-content-primary",children:X}),". These are the network formulary defaults. Clients get a copy when this protocol is enabled. Later changes do not update enabled clients; Copy formulary defaults on a client's Administrator tab adds only pharmacies that client has not paired."]}),emptyMessage:Y,onToggleProduct:Q})}export{Lt as FormularyDefaultsDialog};

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.