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 P}from"./page-herramientas-BzovIToK.js";import{B as v}from"./page-ajustes-DgawOEJM.js";import{C as p,c as u,d as h,e as x,I as D}from"./page-comunicacion-DmHQUHoW.js";import{f as R,C as T,g as F}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const y=[{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",M=30,r={startedAt:null,completed:{},manualWeightKg:void 0},_=()=>{if(typeof window>"u")return r;try{const s=window.localStorage.getItem(b);if(!s)return r;const a=JSON.parse(s);return{...r,...a}}catch{return r}},K=s=>{if(!(typeof window>"u"))try{window.localStorage.setItem(b,JSON.stringify(s))}catch{}},G=()=>{const{state:s}=I(),[a,c]=n.useState(r),[O,w]=n.useState(Date.now());n.useEffect(()=>{c(_())},[]),n.useEffect(()=>{K(a)},[a]),n.useEffect(()=>{const t=window.setInterval(()=>w(Date.now()),1e3);return()=>window.clearInterval(t)},[]);const d=a.startedAt,N=F(d),m=y.reduce((t,i)=>t+i.steps.length,0),f=Object.values(a.completed).filter(Boolean).length,g=m?Math.round(f/m*100):0,l=s.patient.weight??a.manualWeightKg,j=n.useMemo(()=>l?Math.round(l*M):null,[l]),S=(t,i)=>{c(o=>({...o,completed:{...o.completed,[t]:i}}))},C=()=>{d||c(t=>({...t,startedAt:Date.now()}))},k=()=>{c(r)},A=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(p,{children:[e.jsxs(u,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(h,{className:"text-base",children:"Progreso"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[f,"/",m," completados (",g,"%)"]})]}),e.jsxs(x,{className:"space-y-3",children:[e.jsx("div",{className:"h-2 w-full rounded-full bg-muted",children:e.jsx("div",{cla
|