2 lines
4.2 KiB
JavaScript
2 lines
4.2 KiB
JavaScript
|
|
import{r,j as e}from"./0-vendor-react-DWOJpYrt.js";import{u as b,L as S}from"./page-herramientas-DcKR8MlC.js";import{B as h}from"./page-ajustes-DgawOEJM.js";import{C as m,c as u,d as x,e as p,I as k}from"./page-comunicacion-DmHQUHoW.js";import{g as I,f as A,C as M}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const E=[{id:"anafilaxia-abcde",title:"ABCDE y oxigeno",description:"Asegurar via aerea, O2 alto flujo, monitorizacion y acceso venoso."},{id:"anafilaxia-signos",title:"Confirmar gravedad",description:"Compromiso respiratorio, hipotension, alteracion mental o afectacion multiorganica."},{id:"anafilaxia-adrenalina",title:"Adrenalina IM inmediata",description:"1:1000 IM en muslo. Adulto 0.5 mg; ninos 0.01 mg/kg. Repetir cada 5 min si precisa."},{id:"anafilaxia-repeticion",title:"Reevaluacion 5 min",description:"Si persisten sintomas, repetir adrenalina IM. Preparar segunda dosis."},{id:"anafilaxia-fluidos",title:"Fluidos y posicion",description:"Posicion supina con piernas elevadas si hipotension. Cristaloides si shock."},{id:"anafilaxia-adyuvantes",title:"Tratamiento adyuvante",description:"Broncodilatador si broncoespasmo. Corticoide/antihistaminico segun protocolo."},{id:"anafilaxia-traslado",title:"Traslado urgente",description:"Monitorizacion continua. Vigilar rebrote. Comunicar tiempos y dosis."}],g="checklist_anafilaxia_v1",n={startedAt:null,completed:{},manualWeightKg:void 0},T=()=>{if(typeof window>"u")return n;try{const i=window.localStorage.getItem(g);if(!i)return n;const d=JSON.parse(i);return{...n,...d}}catch{return n}},D=i=>{if(!(typeof window>"u"))try{window.localStorage.setItem(g,JSON.stringify(i))}catch{}},_=()=>{const{patient:i,hasPatientProperty:d}=b(),[t,o]=r.useState(n),[P,j]=r.useState(Date.now());r.useEffect(()=>{o(T())},[]),r.useEffect(()=>{D(t)},[t]),r.useEffect(()=>{const a=window.setInterval(()=>j(Date.now()),1e3);return()=>window.clearInterval(a)},[]);const w=I(t.startedAt),l=d("weight")&&i.weight?i.weight:t.manualWeightKg,f=l?Math.min(.01*l,.5):null,C=(a,s)=>{o(c=>({...c,completed:{...c.completed,[a]:s}}))},v=()=>{t.startedAt||o(a=>({...a,startedAt:Date.now()}))},y=()=>{o(n)},N=a=>{const s=Number(a);o(c=>({...c,manualWeightKg:Number.isFinite(s)?s: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:"Checklist Anafilaxia"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Actuacion rapida con adrenalina IM y soporte vital."})]}),e.jsxs(m,{children:[e.jsxs(u,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(x,{className:"text-base",children:"Temporizador"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:t.startedAt?`Tiempo: ${A(w)}`:"Sin iniciar"})]}),e.jsxs(p,{className:"flex flex-col gap-3 md:flex-row md:items-center md:justify-between",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"Inicia el temporizador al administrar la primera dosis."}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(h,{onClick:v,disabled:!!t.startedAt,children:"Iniciar"}),e.jsx(h,{variant:"outline",onClick:y,children:"Reiniciar"})]})]})]}),e.jsxs(m,{children:[e.jsx(u,{children:e.jsx(x,{className:"text-base",children:"Calculo rapido adrenalina IM"})}),e.jsx(p,{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(S,{children:"Peso (kg)"}),e.jsx(k,{type:"number",inputMode:"numeric",value:l??"",onChange:a=>N(a.target.value),placeholder:"Ej: 20"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:f?`Dosis IM: ${f.toFixed(2)} mg (1:1000).`:"Introduce el peso para calcular 0.01 mg/kg (max 0.5 mg)."})]})})]}),E.map(a=>e.jsxs(m,{children:[e.jsx(u,{className:"flex flex-row items-center justify-between space-y-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(M,{checked:!!t.completed[a.id],onCheckedChange:s=>C(a.id,!!s)}),e.jsx
|