- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
2 lines
3.3 KiB
JavaScript
2 lines
3.3 KiB
JavaScript
import{r as o,j as e}from"./0-vendor-react-DWOJpYrt.js";import{B as d}from"./page-ajustes-DgawOEJM.js";import{C as l,c as m,d as p,e as u}from"./page-comunicacion-DmHQUHoW.js";import{f as w,C as S,g as y}from"./timers-DtW-cs9v.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const v=[{id:"seguridad",title:"Seguridad de la escena",description:"Confirmar entorno seguro para el equipo."},{id:"respuesta",title:"Comprobar respuesta y respiración",description:"Valorar consciencia y respiración en 10 segundos."},{id:"activar",title:"Activar ayuda",description:"Solicitar soporte y pedir DESA."},{id:"rcp",title:"Iniciar RCP de alta calidad",description:"Compresiones 100-120/min, profundidad adecuada."},{id:"desa",title:"Analizar ritmo y desfibrilar si aplica",description:"Seguir instrucciones del DESA/monitor."},{id:"via_aerea",title:"Asegurar vía aérea",description:"Considerar dispositivo supraglótico o intubación."},{id:"farmacos",title:"Administrar fármacos según protocolo",description:"Adrenalina y otros según ritmo y tiempos."},{id:"reversibles",title:"Buscar causas reversibles",description:"Hipoxia, hipovolemia, trombosis, etc."},{id:"traslado",title:"Preparar traslado y documentación",description:"Registrar tiempos y eventos clave."}],x="parada_checklist_v1",a={startedAt:null,completed:{}},N=()=>{if(typeof window>"u")return a;try{const s=window.localStorage.getItem(x);if(!s)return a;const i=JSON.parse(s);return{...a,...i}}catch{return a}},b=s=>{if(!(typeof window>"u"))try{window.localStorage.setItem(x,JSON.stringify(s))}catch{}},T=()=>{const[s,i]=o.useState(a),[k,f]=o.useState(Date.now());o.useEffect(()=>{i(N())},[]),o.useEffect(()=>{b(s)},[s]),o.useEffect(()=>{const t=window.setInterval(()=>f(Date.now()),1e3);return()=>window.clearInterval(t)},[]);const r=s.startedAt,h=y(r),g=(t,c)=>{i(n=>({...n,completed:{...n.completed,[t]:c}}))},C=()=>{r||i(t=>({...t,startedAt:Date.now()}))},j=()=>{i(a)};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 Código Parada"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Checklist interactiva con temporizador de RCP."})]}),e.jsxs(l,{children:[e.jsxs(m,{className:"flex flex-row items-center justify-between space-y-0",children:[e.jsx(p,{className:"text-base",children:"Tiempo de RCP"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:r?w(h):"Sin iniciar"})]}),e.jsxs(u,{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:r?"Registrar tiempos y ciclos.":"Inicia al comenzar RCP."}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(d,{onClick:C,disabled:!!r,children:"Iniciar"}),e.jsx(d,{variant:"outline",onClick:j,children:"Reiniciar"})]})]})]}),v.map(t=>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(S,{checked:!!s.completed[t.id],onCheckedChange:c=>g(t.id,!!c)}),e.jsx(p,{className:"text-base",children:t.title})]})}),e.jsx(u,{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:t.description})})]},t.id))]})};export{T as default};
|