codigo0/dist/assets/PartoChecklist-DcLWkRPK.js
planetazuzu 5d7a6500fe refactor: Fase 1 - Clean Architecture, refactorización modular y eliminación de duplicidades
-  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
2026-01-25 21:09:47 +01:00

2 lines
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.52.0 kg"}),e.jsx("p",{children:"• 3436 semanas: ~2.02.5 kg"}),e.jsx("p",{children:"• ≥37 semanas (a término): ~3.03.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};