2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{r as n,j as e,a as E}from"./0-vendor-react-DWOJpYrt.js";import{u as I,L as D}from"./page-herramientas-DcKR8MlC.js";import{B as v}from"./page-ajustes-DgawOEJM.js";import{C as u,c as h,d as x,e as f,I as R}from"./page-comunicacion-DmHQUHoW.js";import{f as T,C as F,g as M}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const w=[{id:"reconocimiento",title:"Reconocimiento",description:"Identifica sepsis o shock séptico de forma precoz.",steps:[{id:"recon-infeccion",title:"Sospecha de infección",description:"Foco probable + fiebre/hipotermia, taquicardia o taquipnea."},{id:"recon-disfuncion",title:"Disfunción orgánica",description:"Alteración del estado mental, FR elevada, hipotensión o hipoxemia."},{id:"recon-qsofa",title:"Cribado rápido",description:"qSOFA ≥ 2 o signos de hipoperfusión."}]},{id:"acciones",title:"Acciones inmediatas (0-15 min)",description:"Estabiliza y prepara tratamiento.",steps:[{id:"acci-abcde",title:"ABCDE + monitorización",description:"Oxígeno, monitor, vía aérea y control de constantes."},{id:"acci-iv",title:"Vías y analíticas",description:"Dos vías periféricas + extracción para lactato si procede."},{id:"acci-cultivos",title:"Cultivos si es posible",description:"Antes de antibiótico cuando no retrase el inicio."},{id:"acci-fluidos",title:"Iniciar fluidos",description:"Cristaloides 30 ml/kg si hipotensión o lactato ≥ 4."}]},{id:"tratamiento",title:"Tratamiento (15-60 min)",description:"Control del foco y soporte hemodinámico.",steps:[{id:"trat-antibiotico",title:"Antibiótico temprano",description:"Administrar < 1 hora desde reconocimiento."},{id:"trat-vasopresor",title:"Vasopresor si MAP < 65",description:"Tras fluidos, considerar noradrenalina."},{id:"trat-reevaluacion",title:"Reevaluación clínica",description:"TA, FC, relleno capilar, estado mental, diuresis."}]},{id:"traslado",title:"Reevaluación y traslado",description:"Documenta, comunica y prepara el traslado.",steps:[{id:"tras-documentar",title:"Documentar tiempos",description:"Inicio síntomas, antibiótico y volumen administrado."},{id:"tras-comunicar",title:"Comunicación hospitalaria",description:"Preaviso con situación, tiempos y respuesta clínica."},{id:"tras-traslado",title:"Traslado monitorizado",description:"Reevaluar cada 5-10 min durante el transporte."}]}],b="pathway_shock_septico_v1",_=30,r={startedAt:null,completed:{},manualWeightKg:void 0},K=()=>{if(typeof window>"u")return r;try{const a=window.localStorage.getItem(b);if(!a)return r;const m=JSON.parse(a);return{...r,...m}}catch{return r}},O=a=>{if(!(typeof window>"u"))try{window.localStorage.setItem(b,JSON.stringify(a))}catch{}},J=()=>{const{patient:a,hasPatientProperty:m}=I(),[s,c]=n.useState(r),[B,N]=n.useState(Date.now());n.useEffect(()=>{c(K())},[]),n.useEffect(()=>{O(s)},[s]),n.useEffect(()=>{const t=window.setInterval(()=>N(Date.now()),1e3);return()=>window.clearInterval(t)},[]);const d=s.startedAt,S=M(d),p=w.reduce((t,i)=>t+i.steps.length,0),g=Object.values(s.completed).filter(Boolean).length,j=p?Math.round(g/p*100):0,l=m("weight")&&a.weight?a.weight:s.manualWeightKg,y=n.useMemo(()=>l?Math.round(l*_):null,[l]),C=(t,i)=>{c(o=>({...o,completed:{...o.completed,[t]:i}}))},k=()=>{d||c(t=>({...t,startedAt:Date.now()}))},A=()=>{c(r)},P=t=>{const i=Number(t);c(o=>({...o,manualWeightKg:Number.isFinite(i)?i:void 0}))};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("header",{className:"space-y-2",children:[e.jsx("h1",{className:"text-xl font-semibold text-foreground",children:"Pathway shock séptico"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Flujo guiado para reconocimiento, tratamiento inicial y traslado."})]}),e.jsxs(u,{children:[e.jsxs(h,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(x,{className:"text-base",children:"Progreso"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[g,"/",p," completados (",j,"%)"]})]}),e.jsxs(f,{className:"space-y-3",children:[e.jsx("div",{className:"h-2 w-full rounded-full bg-muted",children:e.jsx("div",{className:"h-2 rounded-full bg-secondary transition-all",style:{width:`${j}%`}})}),e.jsxs("div",{className:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:d?`Tiempo: ${T(S)}`:"Sin iniciar"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(v,{onClick:k,disabled:!!d,children:"Iniciar"}),e.jsx(v,{variant:"outline",onClick:A,children:"Reiniciar"})]})]})]})]}),e.jsxs(u,{children:[e.jsx(h,{children:e.jsx(x,{className:"text-base",children:"Cálculo rápido de fluidos"})}),e.jsxs(f,{className:"space-y-3",children:[e.jsxs("div",{className:"rounded-md border border-border/60 bg-muted/30 p-3 space-y-2",children:[e.jsx(D,{children:"Peso (kg)"}),e.jsx(R,{type:"number",inputMode:"numeric",value:l??"",onChange:t=>P(t.target.value),placeholder:"Ej: 70"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:y?`Volumen recomendado: ${y} ml (30 ml/kg)`:"Introduce el peso para calcular el bolo de fluidos."})]}),e.jsx(E,{to:"/advanced/vitals",className:"text-sm text-secondary underline underline-offset-4",children:"Abrir panel de constantes"})]})]}),w.map(t=>e.jsxs(u,{children:[e.jsxs(h,{className:"space-y-1",children:[e.jsx(x,{className:"text-base",children:t.title}),t.description&&e.jsx("p",{className:"text-sm text-muted-foreground",children:t.description})]}),e.jsx(f,{className:"space-y-3",children:t.steps.map(i=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(F,{checked:!!s.completed[i.id],onCheckedChange:o=>C(i.id,!!o)}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:i.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i.description})]})]},i.id))})]},t.id))]})};export{J as default};
|