2 lines
4.1 KiB
JavaScript
2 lines
4.1 KiB
JavaScript
|
|
import{r,j as e}from"./0-vendor-react-DWOJpYrt.js";import{u as y,L as b}from"./page-herramientas-BzovIToK.js";import{B as f}from"./page-ajustes-DgawOEJM.js";import{C as l,c as m,d as u,e as x,I as S}from"./page-comunicacion-DmHQUHoW.js";import{g as k,f as I,C as A}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const M=[{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."}],h="checklist_anafilaxia_v1",n={startedAt:null,completed:{},manualWeightKg:void 0},E=()=>{if(typeof window>"u")return n;try{const i=window.localStorage.getItem(h);if(!i)return n;const t=JSON.parse(i);return{...n,...t}}catch{return n}},T=i=>{if(!(typeof window>"u"))try{window.localStorage.setItem(h,JSON.stringify(i))}catch{}},F=()=>{const{state:i}=y(),[t,o]=r.useState(n),[D,g]=r.useState(Date.now());r.useEffect(()=>{o(E())},[]),r.useEffect(()=>{T(t)},[t]),r.useEffect(()=>{const a=window.setInterval(()=>g(Date.now()),1e3);return()=>window.clearInterval(a)},[]);const j=k(t.startedAt),d=i.patient.weight??t.manualWeightKg,p=d?Math.min(.01*d,.5):null,w=(a,s)=>{o(c=>({...c,completed:{...c.completed,[a]:s}}))},C=()=>{t.startedAt||o(a=>({...a,startedAt:Date.now()}))},v=()=>{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(l,{children:[e.jsxs(m,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(u,{className:"text-base",children:"Temporizador"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:t.startedAt?`Tiempo: ${I(j)}`:"Sin iniciar"})]}),e.jsxs(x,{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(f,{onClick:C,disabled:!!t.startedAt,children:"Iniciar"}),e.jsx(f,{variant:"outline",onClick:v,children:"Reiniciar"})]})]})]}),e.jsxs(l,{children:[e.jsx(m,{children:e.jsx(u,{className:"text-base",children:"Calculo rapido adrenalina IM"})}),e.jsx(x,{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(b,{children:"Peso (kg)"}),e.jsx(S,{type:"number",inputMode:"numeric",value:d??"",onChange:a=>N(a.target.value),placeholder:"Ej: 20"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:p?`Dosis IM: ${p.toFixed(2)} mg (1:1000).`:"Introduce el peso para calcular 0.01 mg/kg (max 0.5 mg)."})]})})]}),M.map(a=>e.jsxs(l,{children:[e.jsx(m,{className:"flex flex-row items-center justify-between space-y-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(A,{checked:!!t.completed[a.id],onCheckedChange:s=>w(a.id,!!s)}),e.jsx(u,{className:"text-base",children:a
|