PageSourceSearch

https://sismedico.vercel.app/_next/static/chunks/428.e839e00b3c2c6563.js

js sismedico.vercel.app collected 2026-10-03 07:44:13 UTC 30,125 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[428],{10428:(e,r,i)=>{i.r(r),i.d(r,{default:()=>Y});var n=i(37876),o=i(76686),t=i(87210),s=i(24661),a=i(82702),l=i(58347),c=i(73996),d=i(5961),m=i(83621),u=i(75598),h=i(95927),p=i(80424),x=i(22250),b=i(91704),j=i(36702),g=i(94592),f=i(94014),A=i(51095),v=i(44244),_=i(30926),y=i(66405),C=i(14232),w=i(65835),S=i(56739),N=i(60294),P=i(64934),E=i(54844),z=i(69564),T=i(39293),k=i(25732),I=i(83878),V=i(76392),$=i(77223),M=i(9092),q=i(81393),F=i(75782),O=i(25923),D=i(61001),W=i(49843),H=i(75283),U=i(98433),L=i(25328),B=i(32025),G=i(37085),J=i.n(G);function R({open:e,onClose:r,onSuccess:i}){let{tenant_id:l,usuario_id:c}=(0,S.Y)(),{showAlert:d}=(0,N.M)(),[m,u]=(0,C.useState)([]),[h,p]=(0,C.useState)(!1),[b,j]=(0,C.useState)(null),[_,y]=(0,C.useState)(!1),[w,P]=(0,C.useState)(!0),[z,T]=(0,C.useState)([]),[I,G]=(0,C.useState)([]),[Y,Z]=(0,C.useState)(!1),K=(0,C.useCallback)(()=>({"Content-Type":"application/json"}),[]),Q=(0,C.useCallback)(async()=>{Z(!1);try{let e=await fetch(`${E.H$}api/medicamentos/getSelectData`,{method:"POST",headers:K(),body:JSON.stringify({tenant_id:l})});if(!e.ok)return;let r=await e.json();T(r.presentacionMedicamento||[]),G(r.tipoMedicamento||[])}catch(e){console.error("Error fetching select data:",e)}finally{Z(!0)}},[l,K]);(0,C.useEffect)(()=>{e&&Q()},[e,Q]);let X=(0,C.useCallback)(e=>{if(!e)return null;let r=z.find(r=>r.nombre.toLowerCase().trim()===e.toLowerCase().trim());return r?Number(r.id):null},[z]),ee=(0,C.useCallback)(e=>{if(!e)return null;let r=I.find(r=>r.nombre.toLowerCase().trim()===e.toLowerCase().trim());return r?Number(r.id):null},[I]),er=e=>["si","s\xed","yes","true","1"].includes((e||"").toLowerCase().trim()),ei=(0,C.useCallback)(e=>{let r=e.target.files[0];if(r){if(!r.name.endsWith(".csv"))return void d("Por favor seleccione un archivo CSV v\xe1lido","error");J().parse(r,{header:!0,skipEmptyLines:!0,complete:e=>{if(e.errors.length>0)return void d("Error al leer el archivo CSV. Verifique el formato.","error");if(0===e.data.length)return void d("El archivo CSV est\xe1 vac\xedo","warning");let r=e.data.map((e,r)=>{let i=(e.Presentacion||"").trim(),n=(e["Tipo de Medicamento"]||"").trim(),o=X(i),t=ee(n),s=[];return e["Nombre Comercial"]&&""!==e["Nombre Comercial"].trim()||s.push("Nombre Comercial es requerido"),e["Nombre Generico"]&&""!==e["Nombre Generico"].trim()||s.push("Nombre Gen\xe9rico es requerido"),o||s.push(`Presentaci\xf3n "${i}" no reconocida`),t||s.push(`Tipo "${n}" no reconocido`),{nombre_comercial:(e["Nombre Comercial"]||"").trim(),nombre_generico:(e["Nombre Generico"]||"").trim(),presentacion_medicamento_id:o,tipo_medicamento_id:t,presentacion_nombre:i,tipo_nombre:n,dosificacion:(e.Dosificacion||"").trim(),info_medicamento:(e.Indicaciones||"").trim(),concentracion:parseFloat(e.Concentracion)||0,dosis:parseFloat(e.Dosis)||0,intervalo:parseInt(e["Dosis por dia"])||0,dias:parseInt(e["Dias de tratamiento"])||0,volumen:parseInt(e.Volumen)||0,pvp:parseFloat(e.PVP)||0,costo:parseFloat(e.Costo)||0,calculable_peso:er(e["Calculable por Peso"]),calculable_superficie:er(e["Calculable por Superficie"]),_rowNumber:r+2,_isValid:0===s.length,_errors:s}});u(r),d(`${r.length} medicamentos cargados del archivo`,"success")},error:()=>{d("Error al procesar el archivo CSV","error")}}),e.target.value=""}},[d,X,ee]),en=async()=>{if(0===m.length)return void d("No hay datos para procesar","warning");p(!0),j(null);let e={success:[],errors:[],total:m.length};for(let r of m){if(!r._isValid){e.errors.push({row:r._rowNumber,nombre:r.nombre_comercial,error:r._errors.join(", ")});continue}try{let i={nombre_comercial:r.nombre_comercial,nombre_generico:r.nombre_generico,presentacion_medicamento_id:r.presentacion_medicamento_id,tipo_medicamento_id:r.tipo_medicamento_id,dosificacion:r.dosificacion,info_medicamento:r.info_medicamento,concentracion:r.concentracion,dosis:r.dosis,intervalo:r.intervalo,dias:r.dias,volumen:r.volumen,pvp:r.pvp,costo:r.costo,calculable_peso:r.calculable_peso,calculable_superficie:r.calculable_superficie,tenant_id:Number(l),usuario_id:Number(c)},n=await fetch(`${E.H$}api/medicamentos/create`,{method:"POST",headers:K(),body:JSON.stringify(i)});if(!n.ok){let e=await n.json();throw Error(e.message||`HTTP error! status: ${n.status}`)}let o=await n.json();e.success.push({row:r._rowNumber,nombre:r.nombre_comercial,id:o.id})}catch(i){console.error(`Error creando medicamento fila ${r._rowNumber}:`,i),e.errors.push({row:r._rowNumber,nombre:r.nombre_comercial,error:i.message||"Error desconocido"})}}j(e),p(!1),e.success.length>0?(d(`Proceso completado: ${e.success.length} medicamentos creados, ${e.errors.length} errores`,0===e.errors.length?"success":"warning"),0===e.errors.length&&i&&setTimeout(()=>{i()},2e3)):d("No se pudo crear ning\xfan medicamento. Revise los errores.","error")},eo=()=>{u([]),j(null),r()},et=(0,C.useMemo)(()=>m.filter(e=>e._isValid),[m]),es=(0,C.useMemo)(()=>m.filter(e=>!e._isValid),[m]),ea=(0,C.useMemo)(()=>z.map(e=>e.nombre).join(", "),[z]),el=(0,C.useMemo)(()=>I.map(e=>e.nombre).join(", "),[I]);return(0,n.jsxs)(g.A,{open:e,onClose:eo,fullWidth:!0,maxWidth:"lg",children:[(0,n.jsxs)(f.A,{sx:{backgroundColor:"#f5f5f5",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,n.jsx)(a.A,{variant:"h6",children:"Carga de Medicamentos por Lotes"}),(0,n.jsx)(x.A,{onClick:eo,size:"small",children:(0,n.jsx)(L.A,{})})]}),(0,n.jsxs)(A.A,{sx:{py:3},children:[(0,n.jsxs)(t.A,{severity:"info",sx:{mb:2},children:[(0,n.jsxs)(a.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Instrucciones:"})," Cargue el archivo CSV exportado del formulario de Google Forms. Los medicamentos se crear\xe1n en el cat\xe1logo global (disponible para todos los tenants)."]}),Y&&ea&&(0,n.jsxs)(a.A,{variant:"body2",sx:{mt:1},children:[(0,n.jsx)("strong",{children:"Presentaciones v\xe1lidas:"})," ",ea]}),Y&&el&&(0,n.jsxs)(a.A,{variant:"body2",sx:{mt:1},children:[(0,n.jsx)("strong",{children:"Tipos v\xe1lidos:"})," ",el]})]}),(0,n.jsxs)(o.A,{sx:{mb:3,textAlign:"center"},children:[(0,n.jsx)("input",{accept:".csv",style:{display:"none"},id:"med-csv-upload-button",type:"file",onChange:ei,disabled:h||!Y}),(0,n.jsx)("label",{htmlFor:"med-csv-upload-button",children:(0,n.jsx)(s.A,{variant:"contained",component:"span",startIcon:(0,n.jsx)(k.A,{}),disabled:h||!Y,size:"large",children:Y?"Seleccionar Archivo CSV":"Cargando opciones..."})}),(0,n.jsx)(a.A,{variant:"caption",display:"block",sx:{mt:1,color:"text.secondary"},children:"Formato esperado: Respuestas de Google Forms exportadas a CSV"})]}),h&&(0,n.jsxs)(o.A,{sx:{mb:3},children:[(0,n.jsx)(V.A,{}),(0,n.jsx)(a.A,{variant:"body2",align:"center",sx:{mt:1},children:"Procesando medicamentos... Por favor espere."})]}),m.length>0&&!b&&(0,n.jsxs)(o.A,{sx:{mb:3},children:[(0,n.jsxs)(a.A,{variant:"h6",gutterBottom:!0,children:["Vista Previa (",m.length," medicamentos)"]}),es.length>0&&(0,n.jsxs)(t.A,{severity:"warning",sx:{mb:2},children:[es.length," medicamento(s) tienen errores y no ser\xe1n procesados"]}),(0,n.jsx)($.A,{component:M.A,sx:{maxHeight:400},children:(0,n.jsxs)(q.A,{stickyHeader:!0,size:"small",children:[(0,n.jsx)(F.A,{children:(0,n.jsxs)(O.A,{children:[(0,n.jsx)(D.A,{children:"Fila"}),(0,n.jsx)(D.A,{children:"Estado"}),(0,n.jsx)(D.A,{children:"Nombre Comercial"}),(0,n.jsx)(D.A,{children:"Nombre Gen\xe9rico"}),(0,n.jsx)(D.A,{children:"Presentaci\xf3n"}),(0,n.jsx)(D.A,{children:"Tipo de Medicamento"})]})}),(0,n.jsx)(W.A,{children:m.map((e,r)=>(0,n.jsxs)(O.A,{sx:{backgroundColor:e._isValid?"inherit":"#fff3e0"},children:[(0,n.jsx)(D.A,{children:e._rowNumber}),(0,n.jsx)(D.A,{children:e._isValid?(0,n.jsx)(H.A,{label:"V\xe1lido",color:"success",size:"small"}):(0,n.jsx)(H.A,{label:"Error",color:"error",size:"small",title:e._errors.join(", ")})}),(0,n.jsx)(D.A,{children:e.nombre_comercial}),(0,n.jsx)(D.A,{children:e.nombre_generico}),(0,n.jsx)(D.A,{children:(0,n.jsx)(a.A,{variant:"body2",color:e.presentacion_medicamento_id?"inherit":"error",children:e.presentacion_nombre||"—"})}),(0,n.jsx)(D.A,{children:(0,n.jsx)(a.A,{variant:"body2",color:e.tipo_medicamento_id?"inherit":"error",children:e.tipo_nombre||"—"})})]},r))})]})})]}),b&&(0,n.jsxs)(o.A,{children:[(0,n.jsx)(a.A,{variant:"h6",gutterBottom:!0,children:"Resultados del Proceso"}),(0,n.jsx)(t.A,{severity:0===b.errors.length?"success":"warning",sx:{mb:2},children:(0,n.jsxs)(a.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Total procesados:"})," ",b.total,(0,n.jsx)("br",{}),(0,n.jsx)("strong",{children:"Exitosos:"})," ",b.success.length,(0,n.jsx)("br",{}),(0,n.jsx)("strong",{children:"Errores:"})," ",b.errors.length]})}),b.success.length>0&&(0,n.jsxs)(o.A,{sx:{mb:2},children:[(0,n.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",cursor:"pointer",mb:1},onClick:()=>y(!_),children:[(0,n.jsx)(x.A,{size:"small",children:(0,n.jsx)(B.A,{sx:{transform:_?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}})}),(0,n.jsxs)(a.A,{variant:"subtitle1",color:"success.main",children:["Medicamentos Creados (",b.success.length,")"]})]}),(0,n.jsx)(U.A,{in:_,children:(0,n.jsx)($.A,{component:M.A,sx:{maxHeight:300},children:(0,n.jsxs)(q.A,{size:"small",children:[(0,n.jsx)(F.A,{children:(0,n.jsxs)(O.A,{children:[(0,n.jsx)(D.A,{children:"Fila"}),(0,n.jsx)(D.A,{children:"Nombre Comercial"})]})}),(0,n.jsx)(W.A,{children:b.success.map((e,r)=>(0,n.jsxs)(O.A,{children:[(0,n.jsx)(D.A,{children:e.row}),(0,n.jsx)(D.A,{children:e.nombre})]},r))})]})})})]}),b.errors.length>0&&(0,n.jsxs)(o.A,{children:[(0,n.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",cursor:"pointer",mb:1},onClick:()=>P(!w),children:[(0,n.jsx)(x.A,{size:"small",children:(0,n.jsx)(B.A,{sx:{transform:w?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"}})}),(0,n.jsxs)(a.A,{variant:"subtitle1",color:"error.main",children:["Errores (",b.errors.length,")"]})]}),(0,n.jsx)(U.A,{in:w,children:(0,n.jsx)($.A,{component:M.A,sx:{maxHeight:300},children:(0,n.jsxs)(q.A,{size:"small",children:[(0,n.jsx)(F.A,{children:(0,n.jsxs)(O.A,{children:[(0,n.jsx)(D.A,{children:"Fila"}),(0,n.jsx)(D.A,{children:"Nombre"}),(0,n.jsx)(D.A,{children:"Error"})]})}),(0,n.jsx)(W.A,{children:b.errors.map((e,r)=>(0,n.jsxs)(O.A,{children:[(0,n.jsx)(D.A,{children:e.row}),(0,n.jsx)(D.A,{children:e.nombre}),(0,n.jsx)(D.A,{children:(0,n.jsx)(a.A,{variant:"body2",color:"error",children:e.error})})]},r))})]})})})]})]})]}),(0,n.jsxs)(v.A,{sx:{px:3,pb:2},children:[(0,n.jsx)(s.A,{onClick:eo,disabled:h,children:b?"Cerrar":"Cancelar"}),!b&&m.length>0&&(0,n.jsxs)(s.A,{variant:"contained",onClick:en,disabled:h||0===et.length,children:["Crear ",et.length," Medicamento(s)"]})]})]})}function Y({open:e,onClose:r,title:i="Gesti\xf3n de Medicamentos",medicamentoId:V=null,onSaved:$=null}){let M,q,F=(0,C.useMemo)(()=>({nombre_comercial:"",nombre_generico:"",presentacion_medicamento_id:"",dosificacion:"",info_medicamento:"",costo:0,pvp:0,concentracion:0,dias:0,intervalo:0,volumen:0,dosis:0,calculable_peso:!1,tipo_medicamento_id:"",calculable_superficie:!1}),[]),[O,D]=(0,C.useState)(!1),[W,H]=(0,C.useState)([]),[U,L]=(0,C.useState)(null),[B,G]=(0,C.useState)(0),[J,Z]=(0,C.useState)(!0),[
1K,Q]=(0,C.useState)(null),[X,ee]=(0,C.useState)(!1),[er,ei]=(0,C.useState)(F),{tenant_id:en,usuario_id:eo}=(0,S.Y)(),{showAlert:et}=(0,N.M)(),[es,ea]=(0,C.useState)(!1),[el,ec]=(0,C.useState)([]),[ed,em]=(0,C.useState)([]),[eu,eh]=(0,C.useState)(!1),ep=(0,C.useMemo)(()=>(0,E.jm)(eo),[eo]),[ex,eb]=(0,C.useState)(!1),[ej,eg]=(0,C.useState)({}),[ef,eA]=(0,C.useState)(null),ev=e=>{ef&&ef==e?eA(null):eA(e)},e_=(0,C.useCallback)(()=>({"Content-Type":"application/json"}),[]),ey=(0,C.useCallback)(()=>{let e=Number(er.presentacion_medicamento_id),r=Number(er.tipo_medicamento_id),i=el.find(r=>Number(r.id)===e),n=ed.find(e=>Number(e.id)===r);if(!i||!n)return{dosis:{enabled:!1,required:!1,defaultValue:0},intervalo:{enabled:!1,required:!1,defaultValue:0},dias:{enabled:!1,required:!1,defaultValue:0},concentracion:{enabled:!1,required:!1,defaultValue:0},volumen:{enabled:!1,required:!1,defaultValue:0},calculable_peso:{enabled:!1,defaultValue:!1},calculable_superficie:{enabled:!1,defaultValue:!1}};let o=i.nombre,t=n.nombre,s=JSON.parse(JSON.stringify(E.Zn[o]||E.Zn.TABLETAS||{}));if(E.Y_[t]){let e=E.Y_[t];e.dosis&&s.dosis&&(s.dosis.defaultValue=e.dosis),e.intervalo&&s.intervalo&&(s.intervalo.defaultValue=e.intervalo),e.dias&&s.dias&&(s.dias.defaultValue=e.dias)}return s},[el,ed,er.presentacion_medicamento_id,er.tipo_medicamento_id]);(0,C.useEffect)(()=>{if(!er.presentacion_medicamento_id||!er.tipo_medicamento_id)return;let e=ey(),r={...er},i=!1;Object.keys(e).forEach(n=>{let o=e[n],t=er[n];if(o.enabled)void 0!==o.defaultValue&&("boolean"==typeof o.defaultValue?void 0===t:0===t||""===t||!1===t)&&(r[n]=o.defaultValue,i=!0);else{let e="boolean"!=typeof t&&0;t!==e&&(r[n]=e,i=!0)}}),i&&ei(r)},[er.presentacion_medicamento_id,er.tipo_medicamento_id,ey]);let eC=(0,C.useCallback)(()=>{if(!O)return{};let e=ey(),r={};return Object.keys(e).forEach(i=>{let n=e[i];if(n.required&&n.enabled){let e=er[i];(null==e||""===e||"number"==typeof e&&e<=0)&&(r[i]="Este campo es requerido")}}),r},[er,O,ey]);(0,C.useEffect)(()=>{eg(eC())},[eC]),(0,C.useEffect)(()=>{U?(ei({...F,...U,presentacion_medicamento_id:void 0!==U.presentacion_medicamento_id&&null!==U.presentacion_medicamento_id?Number(U.presentacion_medicamento_id):"",tipo_medicamento_id:void 0!==U.tipo_medicamento_id&&null!==U.tipo_medicamento_id?Number(U.tipo_medicamento_id):"",intervalo:void 0!==U.intervalo&&null!==U.intervalo?Number(U.intervalo):0,dias:void 0!==U.dias&&null!==U.dias?Number(U.dias):0,volumen:void 0!==U.volumen&&null!==U.volumen?Number(U.volumen):0}),Z(void 0===U.estatus||U.estatus)):(ei(F),Z(!0))},[U,F]);let ew=(0,C.useCallback)(async()=>{try{let e=await fetch(`${E.H$}api/medicamentos/get?tenant_id=${en}`,{method:"GET",headers:e_()});if(E.UU[e.status])return void et(E.UU[e.status],"error");if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);let r=await e.json();if(H(r),r.length>0){let e=B>=0&&B<r.length?B:0;if(V){let e=r.find(e=>e.id===V);if(e){G(r.findIndex(e=>e.id===V)),L(e),Q(e),ei({...F,...e}),Z(void 0===e.estatus||e.estatus);return}}G(e),L(r[e]),Q(r[e]),ei({...F,...r[e]}),Z(void 0===r[e].estatus||r[e].estatus)}else G(0),L(null),Q(null)}catch(e){console.error("Error fetching medicamentos:",e),et("Error fetching medicamentos","error")}},[en,F,et,e_]),eS=(0,C.useCallback)(async()=>{try{let e=await fetch(`${E.H$}api/medicamentos/getSelectData`,{method:"POST",headers:e_(),body:JSON.stringify({tenant_id:en})});if(E.UU[e.status])return void et(E.UU[e.status],"error");if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);let r=await e.json();ec(r.presentacionMedicamento),em(r.tipoMedicamento)}catch(e){console.error("Error fetching select data:",e),et("Error fetching select data","error")}},[en,et,e_]);(0,C.useEffect)(()=>{e&&(D(!1),ew(),eh((0,P.E)(en)),eS())},[e,en,ew,eS]);let eN=async()=>{let e=!!(U&&U.id),r={...er,estatus:J,tenant_id:en,usuario_id:eo};try{let i,n,o,t;if(U&&U.id)o=`${E.H$}api/medicamentos/put`,t=JSON.stringify({id:U.id,...r});else{o=`${E.H$}api/medicamentos/create`;let{estatus:e,...i}=r;t=JSON.stringify(i)}if(n=await fetch(o,{method:"POST",headers:e_(),body:t}),E.UU[n.status])return void et(E.UU[n.status],"error");
1if(!n.ok){let e=await n.json();throw Error(e.message||`HTTP error! status: ${n.status}`)}let s=(i=await n.json()).id,a=await fetch(`${E.H$}api/medicamentos/get?tenant_id=${en}`,{method:"GET",headers:e_()}),l=await a.json();H(l);let c=l.findIndex(e=>e.id===s),d=i;-1!==c?(G(c),L(l[c]),Q(l[c]),d=l[c]):(G(0),L(l.length>0?l[0]:null),Q(l.length>0?l[0]:null)),"function"==typeof $&&$(d),D(!1),et(e?"Medicamento actualizado correctamente":"Medicamento creado correctamente","success")}catch(e){console.error("Error saving medicamento:",e),et(e.message||"Error saving medicamento","error")}},eP=async()=>{if(U&&U.id)try{let e=await fetch(`${E.H$}api/medicamentos/delete`,{method:"POST",headers:e_(),body:JSON.stringify({id:U.id,tenant_id:en,usuario_id:eo})});if(E.UU[e.status])return void et(E.UU[e.status],"error");if(!e.ok){let r=await e.json();throw Error(r.message||`HTTP error! status: ${e.status}`)}await ew(),et("Medicamento eliminado correctamente","success")}catch(e){console.error("Error deleting medicamento:",e),et("Error deleting medicamento","error")}},eE=e=>{if(!O&&e>=0&&e<W.length){G(e);let r=W[e];L(r),Q(r)}},ez=(e,r)=>{ei(i=>({...i,[e]:r})),ej[e]&&eg(r=>{let i={...r};return delete i[e],i})},eT=(e,r)=>{let i=r.target.value;if(""===i)return void ei(r=>({...r,[e]:""}));try{let r=parseInt(i);!isNaN(r)&&r>=0&&ei(i=>({...i,[e]:r}))}catch(e){console.error("Error changing integer:",e)}},ek=(e,r)=>{try{let i=Math.pow(10,r);return(Math.round(e*i)/i).toFixed(r)}catch(e){return console.error("Error rounding to decimals:",e),"0.00"}},eI=(e,r)=>{""===r?ei(r=>({...r,[e]:""})):/^\d*\.$/.test(r)?ei(i=>({...i,[e]:r})):/^\d*\.?\d*$/.test(r)&&ei(i=>({...i,[e]:parseFloat(r)}))},eV=(e,r)=>{""===er[e]?ei(i=>({...i,[e]:ek(parseFloat(0),r)})):(ei(i=>({...i,[e]:ek(parseFloat(i[e]),r)})),ea(!1))},e$=()=>{ea(!0)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(g.A,{open:e,onClose:r,fullWidth:!0,maxWidth:"md",children:[(0,n.jsx)(f.A,{sx:{backgroundColor:"#f5f5f5"},children:i}),(0,n.jsx)(A.A,{sx:{py:2,marginTop:1},children:(0,n.jsx)(o.A,{sx:{display:"flex",flexDirection:"column",gap:1,marginTop:"2px"},children:(M=ey(),q=er.presentacion_medicamento_id&&er.tipo_medicamento_id,(0,n.jsxs)(n.Fragment,{children:[ep&&!O&&(0,n.jsx)(o.A,{sx:{width:"100%",mb:2},children:(0,n.jsx)(t.A,{severity:"info",icon:(0,n.jsx)(I.A,{}),action:(0,n.jsx)(s.A,{color:"inherit",size:"small",variant:"outlined",startIcon:(0,n.jsx)(k.A,{}),onClick:()=>eb(!0),children:"Cargar Medicamentos"}),children:(0,n.jsxs)(a.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Carga por Lotes:"})," Puede agregar m\xfaltiples medicamentos al cat\xe1logo global desde un archivo CSV"]})})}),(0,n.jsx)(o.A,{sx:{width:"100%",mb:1,mt:1},children:(0,n.jsxs)(l.A,{container:!0,spacing:2,children:[(0,n.jsx)(l.A,{size:9,children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Nombre Comercial",value:er.nombre_comercial||"",onChange:e=>ez("nombre_comercial",e.target.value),disabled:!O,required:!0,variant:"outlined",size:"small",error:!!ej.nombre_comercial,helperText:ej.nombre_comercial})}),(0,n.jsx)(l.A,{item:!0,xs:12,sm:3,sx:{textAlign:"right",display:"flex",alignItems:"center",justifyContent:"flex-end"},children:O?U&&(0,n.jsxs)(o.A,{sx:{display:"flex",alignItems:"center"},children:[(0,n.jsx)(d.A,{checked:J,onChange:e=>Z(e.target.checked),size:"small",color:"primary"}),(0,n.jsx)(a.A,{variant:"caption",sx:{color:J?"green":"red",fontWeight:"bold",ml:1},children:J?"Activo":"Inactivo"})]}):(0,n.jsx)(a.A,{variant:"caption",sx:{color:J?"green":"red",fontWeight:"bold"},children:J?"Activo":"Inactivo"})})]})}),(0,n.jsx)(o.A,{sx:{width:"100%",mb:1},children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Nombre Gen\xe9rico",value:er.nombre_generico||"",onChange:e=>ez("nombre_generico",e.target.value),disabled:!O,required:!0,variant:"outlined",size:"small",error:!!ej.nombre_generico,helperText:ej.nombre_generico})}),(0,n.jsx)(o.A,{sx:{width:"100%"},children:(0,n.jsxs)(l.A,{container:!0,spacing:2,children:[(0,n.jsx)(l.A,{size:6,children:(0,n.jsx)(m.A,{fullWidth:!0,size:"small",required:!0,disabled:!O,children:(0,n.jsx)(u.A,{disableClearable:!0,value:el.find(e=>Number(e.id)===Number(er.presentacion_medicamento_id))||null,isOptionEqualToValue:(e,r)=>Number(e.id)===Number(r.id),onChange:(e,r)=>ez("presentacion_medicamento_id",r?Number(r.id):""),options:el,getOptionLabel:e=>e.nombre,renderOption:(e,r)=>
1(0,n.jsx)(h.A,{value:r.id,...e,children:r.nombre},r.id),renderInput:e=>(0,n.jsx)(c.A,{...e,label:"Presentaci\xf3n",size:"small",error:!!ej.presentacion_medicamento_id,helperText:ej.presentacion_medicamento_id||"Seleccione la forma farmac\xe9utica"}),required:!0,disabled:!O})})}),(0,n.jsx)(l.A,{size:6,children:(0,n.jsx)(m.A,{fullWidth:!0,size:"small",required:!0,disabled:!O,children:(0,n.jsx)(u.A,{disableClearable:!0,value:ed.find(e=>Number(e.id)===Number(er.tipo_medicamento_id))||null,isOptionEqualToValue:(e,r)=>Number(e.id)===Number(r.id),onChange:(e,r)=>ez("tipo_medicamento_id",r?Number(r.id):""),options:ed,getOptionLabel:e=>e.nombre,renderOption:(e,r)=>(0,n.jsx)(h.A,{value:r.id,...e,children:r.nombre},r.id),renderInput:e=>(0,n.jsx)(c.A,{...e,label:"Tipo de Medicamento",size:"small",error:!!ej.tipo_medicamento_id,helperText:ej.tipo_medicamento_id||"Seleccione la categor\xeda farmac\xe9utica"}),required:!0,disabled:!O})})})]})}),(0,n.jsx)(o.A,{sx:{width:"100%",mb:2,mt:2},children:(0,n.jsxs)(l.A,{container:!0,spacing:2,children:[(0,n.jsx)(l.A,{size:ef?1==ef?8:4:6,sx:{transition:"all 0.3s ease-in-out"},children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Dosificaci\xf3n Fija (Opcional)",value:er.dosificacion||"",onChange:e=>ez("dosificacion",e.target.value),disabled:!O||!q,variant:"outlined",size:"small",helperText:"Texto alternativo si no se usa c\xe1lculo autom\xe1tico",multiline:!0,rows:ef?3:2,sx:{"& .MuiFormHelperText-root":{whiteSpace:"nowrap"},position:"relative","& .MuiInputBase-root":{transition:"all 0.3s ease-in-out, height 0.3s ease-in-out"},"& .MuiInputBase-input":{transition:"all 0.3s ease-in-out",paddingRight:O?"80px":"16px"}},InputProps:{endAdornment:O&&(0,n.jsx)(o.A,{sx:{position:"absolute",right:8,top:8,display:"flex",flexDirection:"column",gap:.5,zIndex:10},children:(0,n.jsx)(p.A,{title:1==ef?"Contraer campo":"Expandir campo",children:(0,n.jsx)(x.A,{size:"small",onClick:e=>{e.stopPropagation(),ev(1)},children:1==ef?(0,n.jsx)(T.A,{fontSize:"small"}):(0,n.jsx)(z.A,{fontSize:"small"})})})})}})}),(0,n.jsx)(l.A,{size:ef?2==ef?8:4:6,sx:{transition:"all 0.3s ease-in-out"},children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Indicaciones Adicionales",value:er.info_medicamento||"",onChange:e=>ez("info_medicamento",e.target.value),disabled:!O||!q,variant:"outlined",size:"small",multiline:!0,rows:ef?3:2,sx:{"& .MuiFormHelperText-root":{whiteSpace:"nowrap"},position:"relative","& .MuiInputBase-root":{transition:"all 0.3s ease-in-out, height 0.3s ease-in-out"},"& .MuiInputBase-input":{transition:"all 0.3s ease-in-out",paddingRight:O?"80px":"16px"}},helperText:"Informaci\xf3n adicional sobre el medicamento",InputProps:{endAdornment:O&&(0,n.jsx)(o.A,{sx:{position:"absolute",right:8,top:8,display:"flex",flexDirection:"column",gap:.5,zIndex:10},children:(0,n.jsx)(p.A,{title:2==ef?"Contraer campo":"Expandir campo",children:(0,n.jsx)(x.A,{size:"small",onClick:e=>{e.stopPropagation(),ev(2)},children:2==ef?(0,n.jsx)(T.A,{fontSize:"small"}):(0,n.jsx)(z.A,{fontSize:"small"})})})})}})})]})}),!q&&O&&(0,n.jsx)(t.A,{severity:"info",sx:{mb:1},children:(0,n.jsxs)(a.A,{variant:"body2",children:[(0,n.jsx)("strong",{children:"Seleccione primero la Presentaci\xf3n y Tipo"})," para habilitar los campos de dosificaci\xf3n espec\xedficos."]})}),(0,n.jsx)(o.A,{sx:{width:"100%",mb:1},children:(0,n.jsxs)(l.A,{container:!0,spacing:13,children:[(0,n.jsx)(l.A,{item:!0,xs:12,sm:6,sx:{ml:2},children:(0,n.jsx)(b.A,{control:(0,n.jsx)(d.A,{checked:er.calculable_peso||!1,onChange:e=>{let r=e.target.checked;ei(e=>({...e,calculable_peso:r,calculable_superficie:!r&&e.calculable_superficie}))},disabled:!O||!M.calculable_peso?.enabled}),label:(0,n.jsxs)(o.A,{sx:{flexDirection:"column",display:"flex",alignItems:"flex-start"},children:[(0,n.jsx)(a.A,{variant:"body2",sx:{mb:0,pb:0},children:"Calculable por Peso"}),(0,n.jsx)(a.A,{variant:"caption",color:"text.secondary",sx:{mt:0,pt:0},children:"Permite calcular dosis basada en kg del paciente"})]})})}),(0,n.jsx)(l.A,{item:!0,xs:12,sm:6,children:(0,n.jsx)(b.A,{control:(0,n.jsx)(d.A,{checked:er.calculable_superficie||!1,onChange:e=>{let r=e.target.checked;try{ei(e=>({...e,calculable_superficie:r,calculable_peso:!r&&e.calculable_peso}
1))}catch(e){console.error("Error changing calculable superficie:",e)}},disabled:!O||!M.calculable_superficie?.enabled}),label:(0,n.jsxs)(o.A,{sx:{flexDirection:"column",display:"flex",alignItems:"flex-start"},children:[(0,n.jsx)(a.A,{variant:"body2",children:"Calculable por Superficie"}),(0,n.jsx)(a.A,{variant:"caption",color:"text.secondary",children:"Permite calcular dosis basada en superficie corporal"})]})})})]})}),(0,n.jsx)(o.A,{sx:{width:"100%",mt:2},children:(0,n.jsxs)(l.A,{container:!0,spacing:2,children:[(0,n.jsx)(l.A,{size:2.5,children:(0,n.jsx)(p.A,{title:M.dosis?.tooltip||"Dosis del medicamento",arrow:!0,placement:"top",children:(0,n.jsx)(c.A,{fullWidth:!0,label:`Dosis${M.dosis?.unit?` (${M.dosis.unit})`:""}`,value:ek(er.dosis,2),onChange:e=>eI("dosis",e.target.value),disabled:!O||!M.dosis?.enabled,onBlur:()=>eV("dosis",2),onFocus:e$,placeholder:"0.00",variant:"standard",size:"small",required:M.dosis?.required,error:!!ej.dosis,helperText:ej.dosis,inputProps:{step:"0.1",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*"},InputProps:{endAdornment:M.dosis?.unit&&(0,n.jsx)(j.A,{position:"end",children:M.dosis.unit})}})})}),(0,n.jsx)(l.A,{size:2.5,children:(0,n.jsx)(p.A,{title:M.intervalo?.tooltip||"Dosis por d\xeda",arrow:!0,placement:"top",children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Dosis por d\xeda",value:er.intervalo||"",onChange:e=>eT("intervalo",e),disabled:!O||!M.intervalo?.enabled,variant:"standard",size:"small",type:"number",required:M.intervalo?.required,error:!!ej.intervalo,helperText:ej.intervalo,inputProps:{step:"1",min:"1"},InputProps:{endAdornment:M.intervalo?.unit&&(0,n.jsx)(j.A,{position:"end",children:M.intervalo.unit})}})})}),(0,n.jsx)(l.A,{size:2.5,children:(0,n.jsx)(p.A,{title:M.dias?.tooltip||"Duraci\xf3n del tratamiento",arrow:!0,placement:"top",children:(0,n.jsx)(c.A,{fullWidth:!0,label:`Duraci\xf3n${M.dias?.unit?` (${M.dias.unit})`:""}`,value:er.dias||"",onChange:e=>eT("dias",e),disabled:!O||!M.dias?.enabled,variant:"standard",size:"small",type:"number",required:M.dias?.required,error:!!ej.dias,helperText:ej.dias,inputProps:{step:"1",min:"1"},InputProps:{endAdornment:M.dias?.unit&&(0,n.jsx)(j.A,{position:"end",children:M.dias.unit})}})})}),(0,n.jsx)(l.A,{size:4.5,children:(0,n.jsxs)(m.A,{fullWidth:!0,size:"small",required:M.concentracion?.required||M.volumen?.required,error:!!ej.concentracion||!!ej.volumen,children:[(0,n.jsx)(a.A,{variant:"caption",color:"text.secondary",sx:{mb:-.5},children:"Concentraci\xf3n"}),(0,n.jsxs)(o.A,{sx:{display:"flex",alignItems:"center",gap:1},children:[(0,n.jsx)(p.A,{title:"Concentraci\xf3n en mgrs del medicamento",arrow:!0,placement:"top",children:(0,n.jsx)(c.A,{fullWidth:!0,value:ek(er.concentracion,2),onChange:e=>eI("concentracion",e.target.value),onBlur:()=>eV("concentracion",2),onFocus:e$,placeholder:"0.00",disabled:!O||!M.concentracion?.enabled,variant:"standard",size:"small",required:M.concentracion?.required,error:!!ej.concentracion,inputProps:{step:"0.1",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*"}})}),(0,n.jsx)(a.A,{variant:"body2",sx:{color:"text.secondary",whiteSpace:"nowrap"},children:"/"}),(0,n.jsx)(p.A,{title:"Volumen en cc",arrow:!0,placement:"top",children:(0,n.jsx)(c.A,{fullWidth:!0,value:er.volumen||"",onChange:e=>eT("volumen",e),disabled:!O||!M.volumen?.enabled,variant:"standard",size:"small",type:"number",required:M.volumen?.required,error:!!ej.volumen,inputProps:{step:"1",min:"0"}})}),(0,n.jsx)(a.A,{variant:"body2",sx:{color:"text.secondary",whiteSpace:"nowrap"},children:"mgrs/cc"})]}),(ej.concentracion||ej.volumen)&&(0,n.jsx)(a.A,{variant:"caption",color:"error",sx:{mt:-.1},children:ej.concentracion||ej.volumen}),!ej.concentracion&&!ej.volumen&&(0,n.jsx)(a.A,{variant:"caption",color:"text.secondary",sx:{mt:-.1},children:M.concentracion?.enabled||M.volumen?.enabled?"Requerido para l\xedquidos y gotas":"No aplica para esta presentaci\xf3n"})]})})]})}),(0,n.jsx)(o.A,{sx:{width:"100%",mb:-1,mt:-1},children:(0,n.jsxs)(l.A,{container:!0,spacing:2,children:[(0,n.jsx)(l.A,{size:6,children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Precio de Venta P\xfablico (PVP)",value:ek(er.pvp,2),onChange:e=>eI("pvp",e.target.value),onBlur:()=>eV("pvp",2),onFocus:e$,placeholder:"0.00",disabled:!O||!q,variant:"standard",size:"small",inputProps:{step:"0.01",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*"},InputProps:{startAdornment:(0,n.jsx)(j.A,{position:"start",children:"$"})}})}),(0,n.jsx)(l.A,{size:6,children:(0,n.jsx)(c.A,{fullWidth:!0,label:"Costo",value:ek(er.costo,2),onChange:e=>eI("costo",e.target.value),onBlur:()=>eV("costo",2),onFocus:e$,placeholder:"0.00",disabled:!O||!q,variant:"standard",size:"small",InputProps:{startAdornment:(0,n.jsx)(j.A,{position:"start",children:"$"}),step:"0.01",inputMode:"decimal",pattern:"[0-9]*\\.?[0-9]*"}})})]})})]}))})}),(0,n.jsxs)(v.A,{sx:{padding:2,display:"flex",justifyContent:"space-between"},children:[W.length<=0?(0,n.jsx)(o.A,{sx:{flex:1},children:(0,n.jsx)(a.A,{children:"No hay registros"})}):(0,n.jsx)(_.A,{onFirstPage:()=>eE(0),onPrevPage:()=>eE(B-1),onNextPage:()=>eE(B+1),onLastPage:()=>eE(W.length-1),currentPage:B+1,totalPages:W.length,disabled:O}),(0,n.jsx)(y.A,{isEditing:O,onAdd:()=>
1{D(!0),Q(U),L(null),Z(!0),ei(F)},onUndo:()=>{if(D(!1),K){L(K);let e=W.findIndex(e=>e.id===K.id);-1!==e&&G(e)}else W.length>0?L(W[0]):L(null),G(0)},onSave:eN,onEdit:()=>D(!0),onDelete:eu||U&&U.tenant_id===Number(en)?eP:null,onSearch:()=>{ee(!0)},onClose:r,showEditDelete:W.length>0&&null!==U,isSaveDisabled:!(er.nombre_comercial&&""!==er.nombre_comercial.trim()&&er.nombre_generico&&""!==er.nombre_generico.trim()&&Number.isInteger(er.presentacion_medicamento_id)&&Number.isInteger(er.tipo_medicamento_id)&&(ey(),0===Object.keys(eC()).length))||!O,showEdit:!O&&W.length>0&&null!==U,showDelete:!O&&W.length>0&&null!==U&&(eu||U&&U.tenant_id===Number(en))})]})]}),(0,n.jsx)(w.A,{open:X,onClose:()=>ee(!1),onSelect:e=>{let r=W.findIndex(r=>r.id===e.id);-1!==r&&(G(r),L(W[r]),Q(W[r]),ee(!1))},items:W,title:"B\xfasqueda - Medicamentos",searchField:"nombre_comercial",displayField:"nombre_comercial",secondaryField:"nombre_generico",enableSecondaryFilter:!0}),(0,n.jsx)(R,{open:ex,onClose:()=>eb(!1),onSuccess:()=>{ew(),eb(!1)}})]})}}}]);

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.