2 lines
4.2 KiB
JavaScript
Executable file
2 lines
4.2 KiB
JavaScript
Executable file
import{r as s,j as e}from"./0-vendor-react-DWOJpYrt.js";import{B as m}from"./page-ajustes-DgawOEJM.js";import{C as o,c,d as l,e as d}from"./page-comunicacion-DmHQUHoW.js";import{g as S,f as w,C}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const N=[{id:"parto-evaluacion",title:"Evaluacion rapida",description:"Confirmar parto inminente: deseo de pujar, perine abombado, coronamiento, contracciones 1-2 min."},{id:"parto-no-inminente",title:"Si NO es inminente",description:"Posicion lateral izquierda, oxigeno si precisa y traslado urgente sin demoras."},{id:"parto-preparacion",title:"Preparacion y EPI",description:"Guantes, proteccion facial, compresas, pinzas, tijeras, manta tibia. Aviso a coordinacion."},{id:"parto-asistencia",title:"Asistencia al parto normal",description:"No frenar ni tirar. Apoyar perine. Revisar cordon en cuello. Facilitar salida de hombros."},{id:"parto-cordon",title:"Cordon umbilical",description:"Si circular, pasar sobre la cabeza. Si apretado, clamp y cortar antes de salida completa."},{id:"parto-rn",title:"Atencion al recien nacido",description:"Secar, estimular, piel con piel y calor. Valorar respiracion y FC. Pinzar cordon 1-2 min."},{id:"parto-reanimacion",title:"Si no respira / FC < 100",description:"Ventilacion con BVM neonatal 40-60/min. Si FC < 60 tras 30s, compresiones 3:1."},{id:"parto-placenta",title:"Placenta y traslado",description:"No tirar del cordon. Recoger placenta para inspeccion. Traslado urgente tras estabilizacion."},{id:"parto-pph",title:"Hemorragia postparto",description:"Masaje uterino bimanual si sangrado. Considerar oxitocina si protocolo. Traslado inmediato."}],x="checklist_parto_v1",r={startedAt:null,completed:{}},y=()=>{if(typeof window>"u")return r;try{const a=window.localStorage.getItem(x);if(!a)return r;const i=JSON.parse(a);return{...r,...i}}catch{return r}},b=a=>{if(!(typeof window>"u"))try{window.localStorage.setItem(x,JSON.stringify(a))}catch{}},T=()=>{const[a,i]=s.useState(r),[k,u]=s.useState(Date.now());s.useEffect(()=>{i(y())},[]),s.useEffect(()=>{b(a)},[a]),s.useEffect(()=>{const t=window.setInterval(()=>u(Date.now()),1e3);return()=>window.clearInterval(t)},[]);const h=S(a.startedAt),f=(t,n)=>{i(p=>({...p,completed:{...p.completed,[t]:n}}))},j=()=>{a.startedAt||i(t=>({...t,startedAt:Date.now()}))},g=()=>{i(r)};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 Parto Inminente"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Checklist operativa para parto extrahospitalario."})]}),e.jsxs(o,{children:[e.jsxs(c,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(l,{className:"text-base",children:"Temporizador"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:a.startedAt?`Tiempo: ${w(h)}`:"Sin iniciar"})]}),e.jsxs(d,{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 identificar parto inminente."}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(m,{onClick:j,disabled:!!a.startedAt,children:"Iniciar"}),e.jsx(m,{variant:"outline",onClick:g,children:"Reiniciar"})]})]})]}),e.jsxs(o,{children:[e.jsx(c,{children:e.jsx(l,{className:"text-base",children:"Peso RN orientativo"})}),e.jsxs(d,{className:"space-y-2 text-sm text-muted-foreground",children:[e.jsx("p",{children:"Referencia rápida si no se conoce el peso:"}),e.jsx("p",{children:"• <34 semanas: ~1.5–2.0 kg"}),e.jsx("p",{children:"• 34–36 semanas: ~2.0–2.5 kg"}),e.jsx("p",{children:"• ≥37 semanas (a término): ~3.0–3.5 kg"}),e.jsx("p",{children:"Si no hay datos, asumir 3.2 kg para cálculos iniciales y ajustar según clínica."})]})]}),N.map(t=>e.jsxs(o,{children:[e.jsx(c,{className:"flex flex-row items-center justify-between space-y-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(C,{checked:!!a.completed[t.id],onCheckedChange:n=>f(t.id,!!n)}),e.jsx(l,{className:"text-base",children:t.title})]})}),e.jsx(d,{className:"text-sm text-muted-foreground",children:t.description})]},t.id))]})};export{T as default};
|