codigo0/dist/assets/page-telefono-tnu9q39s.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
36 KiB
JavaScript

import{u as D,r as p,j as e,an as j,R as L,C as A,q as x,i as M,I as S,as as w}from"./0-vendor-react-DWOJpYrt.js";import{B as u}from"./page-ajustes-DgawOEJM.js";import{B as h,C as f,A as E,a as N}from"./page-comunicacion-DmHQUHoW.js";import"./1-vendor-utils-Delnuc0l.js";import"./2-vendor-markdown-BQlHAcA7.js";const U=({protocol:i,onReset:l})=>{D();const[r,t]=p.useState(-1),[c,m]=p.useState(new Set),[d,a]=p.useState(!1),v=()=>{t(0)},b=s=>{const n=new Set(c);n.has(s)?n.delete(s):n.add(s),m(n)},P=()=>{r<i.steps.length-1&&t(r+1)},T=()=>{r>0?t(r-1):r===0&&t(-1)},I=()=>{t(-1),m(new Set),l&&l()},o=r>=0?i.steps[r]:null,g=o?c.has(o.id):!1,R=o?!o.critical||g:!1,O=s=>{switch(s){case"rcp":return"default";case"desa":return"default";case"ovace":return"default";case"sca":return"default";case"ictus":return"default";default:return"default"}},q=s=>{switch(s){case"rcp":return"RCP";case"desa":return"DESA";case"ovace":return"OVACE";case"sca":return"SCA";case"ictus":return"Ictus";default:return s}},z=s=>{switch(s){case"adulto":return"Adulto";case"pediatrico":return"Pediatría";case"lactante":return"Lactante";case"todos":return"Todos";default:return s}};return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(j,{className:"w-5 h-5 text-primary"}),e.jsx("h3",{className:"font-bold text-foreground text-lg",children:i.title}),e.jsx(h,{variant:O(i.category),children:q(i.category)}),e.jsx(h,{variant:"default",children:z(i.ageGroup)})]}),e.jsx("p",{className:"text-muted-foreground text-sm",children:i.description})]}),e.jsx(u,{variant:"ghost",size:"sm",onClick:I,className:"shrink-0",title:"Reiniciar protocolo",children:e.jsx(L,{className:"w-4 h-4"})})]}),r===-1&&e.jsxs(f,{className:"p-4 space-y-4",children:[e.jsxs("div",{children:[e.jsxs("h4",{className:"font-semibold text-foreground mb-3 flex items-center gap-2",children:[e.jsx(A,{className:"w-5 h-5 text-primary"}),"Evaluación Inicial"]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:"Realice estas preguntas al testigo antes de comenzar:"}),e.jsx("ul",{className:"space-y-2",children:i.initialAssessment.map((s,n)=>e.jsxs("li",{className:"flex items-start gap-2 text-foreground",children:[e.jsxs("span",{className:"text-primary font-bold mt-1",children:[n+1,"."]}),e.jsx("span",{children:s})]},n))})]}),e.jsxs(u,{onClick:v,className:"w-full",size:"lg",children:["Comenzar Guía Paso a Paso",e.jsx(x,{className:"w-4 h-4 ml-2"})]})]}),o&&e.jsxs(f,{className:"p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-2xl font-bold text-primary",children:[r+1," / ",i.steps.length]}),o.critical&&e.jsx(h,{variant:"destructive",className:"text-xs",children:"Crítico"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[d&&o.notes&&e.jsx(u,{variant:"ghost",size:"sm",onClick:()=>a(!1),children:"Ocultar notas"}),!d&&o.notes&&e.jsx(u,{variant:"ghost",size:"sm",onClick:()=>a(!0),children:"Ver notas"})]})]}),e.jsxs("div",{className:"bg-primary/10 p-4 rounded-lg border border-primary/20",children:[e.jsx("p",{className:"text-foreground font-medium text-base leading-relaxed",children:e.jsx("strong",{children:"Lea al testigo:"})}),e.jsxs("p",{className:"text-foreground text-base leading-relaxed mt-2",children:['"',o.instruction,'"']})]}),o.verification&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"Verificación (pregunte al testigo):"}),e.jsxs("button",{onClick:()=>b(o.id),className:`w-full flex items-center gap-3 p-3 rounded-lg border-2 transition-colors text-left ${g?"bg-success/10 border-success":o.critical?"bg-destructive/10 border-destructive":"bg-muted border-border hover:bg-accent"}`,children:[e.jsx("div",{className:`w-6 h-6 rounded border-2 flex items-center justify-center shrink-0 ${g?"bg-success border-success":o.critical?"border-destructive":"border-muted-foreground"}`,children:g&&e.jsx(M,{className:"w-4 h-4 text-background"})}),e.jsx("span",{className:"text-foreground",children:o.verification})]})]}),d&&o.notes&&e.jsxs(E,{children:[e.jsx(S,{className:"w-4 h-4"}),e.jsxs(N,{children:[e.jsx("strong",{children:"Nota para el operador:"})," ",o.notes]})]}),e.jsxs("div",{className:"flex gap-3 pt-2",children:[e.jsxs(u,{onClick:T,variant:"outline",className:"flex-1",disabled:r===-1,children:[e.jsx(w,{className:"w-4 h-4 mr-2"}),"Anterior"]}),e.jsxs(u,{onClick:P,className:"flex-1",disabled:r>=i.steps.length-1||!R,children:["Siguiente",e.jsx(x,{className:"w-4 h-4 ml-2"})]})]}),o.critical&&!g&&e.jsxs(E,{variant:"destructive",children:[e.jsx(A,{className:"w-4 h-4"}),e.jsx(N,{children:"Este paso es crítico. Debe verificar que se ha completado antes de continuar."})]})]}),i.importantNotes&&i.importantNotes.length>0&&e.jsxs(f,{className:"p-4",children:[e.jsxs("h4",{className:"font-semibold text-foreground mb-3 flex items-center gap-2",children:[e.jsx(S,{className:"w-5 h-5 text-primary"}),"Notas Importantes para el Operador"]}),e.jsx("ul",{className:"space-y-2",children:i.importantNotes.map((s,n)=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground",children:[e.jsx("span",{className:"text-primary font-bold mt-0.5",children:"•"}),e.jsx("span",{children:s})]},n))})]}),i.source&&e.jsxs("p",{className:"text-xs text-muted-foreground text-center",children:["Fuente: ",i.source]})]})},H={id:"rcp-telephone-adult",title:"RCP Transtelefónica - Adultos",shortTitle:"RCP Adulto",category:"rcp",ageGroup:"adulto",description:"Guía paso a paso para que un testigo realice RCP en un adulto mientras llega la ambulancia.",initialAssessment:["¿Está la persona consciente? ¿Responde si le habla o le toca?","¿Está respirando normalmente? (No cuente boqueadas o respiraciones muy lentas)","¿Es seguro acercarse? (No hay riesgo de tráfico, electricidad, fuego, violencia)"],steps:[{id:"activar-112",order:1,instruction:"Primero, active el servicio de emergencias. ¿Ya ha llamado al 112?",verification:"Confirme que ha llamado al 112 o que alguien más lo está haciendo",critical:!0,notes:"Si no ha llamado, guíe para que llame primero o que otra persona llame"},{id:"colocar-superficie",order:2,instruction:"Coloque a la persona boca arriba sobre una superficie firme y plana, como el suelo.",verification:"¿Está la persona boca arriba sobre una superficie firme?",critical:!0},{id:"abrir-via-aerea",order:3,instruction:"Incline suavemente la cabeza hacia atrás y levante la barbilla. Esto abre la vía aérea.",verification:"¿Puede ver que la cabeza está inclinada hacia atrás y la barbilla levantada?",notes:"Si sospecha trauma cervical, indique que no mueva la cabeza"},{id:"verificar-respiracion",order:4,instruction:"Acérquese y mire, escuche y sienta si respira normalmente. Hágalo durante 10 segundos máximo.",verification:"¿Respira normalmente? (No cuente boqueadas o respiraciones muy lentas)",critical:!0},{id:"iniciar-compresiones",order:5,instruction:"Si NO respira normalmente, coloque el talón de una mano en el centro del pecho, entre los pezones. Coloque la otra mano encima y entrelace los dedos.",verification:"¿Tiene las manos colocadas correctamente en el centro del pecho?",critical:!0},{id:"compresiones-tecnica",order:6,instruction:"Con los brazos rectos y los hombros sobre las manos, comprima el pecho hacia abajo unos 5-6 centímetros. Deje que el pecho vuelva completamente arriba después de cada compresión.",verification:"¿Está comprimiendo hacia abajo y dejando que el pecho vuelva completamente arriba?",critical:!0,notes:"La profundidad y el recoil completo son críticos"},{id:"ritmo-compresiones",order:7,instruction:'Haga las compresiones a un ritmo rápido y constante, aproximadamente 100-120 por minuto. Puede contar en voz alta: "uno, dos, tres..." hasta "treinta".',verification:"¿Está haciendo las compresiones a un ritmo rápido y constante?",critical:!0,notes:"El ritmo es crítico: demasiado lento o rápido reduce la efectividad"},{id:"ventilaciones",order:8,instruction:"Después de 30 compresiones, incline la cabeza hacia atrás, levante la barbilla, pellizque la nariz y dé 2 respiraciones de rescate. Cada respiración debe durar 1 segundo y ver que el pecho se eleva.",verification:"¿Está dando las respiraciones y ve que el pecho se eleva?",notes:"Si no puede o no quiere dar respiraciones, continúe solo con compresiones"},{id:"continuar-ciclos",order:9,instruction:"Continúe con ciclos de 30 compresiones seguidas de 2 respiraciones. No pare hasta que llegue la ambulancia o la persona empiece a respirar normalmente.",verification:"¿Está continuando con los ciclos sin parar?",critical:!0},{id:"cambio-reanimador",order:10,instruction:"Si hay otra persona disponible, pueden turnarse cada 2 minutos para evitar el cansancio. El cambio debe ser rápido, en menos de 5 segundos.",verification:"¿Hay alguien más que pueda ayudar?",notes:"Solo si hay más personas disponibles"}],importantNotes:["Si el testigo no puede o no quiere dar respiraciones, es mejor que continúe solo con compresiones que parar","Las compresiones continuas sin respiraciones son mejores que no hacer nada","No pare para buscar pulso: continúe hasta que llegue la ambulancia o la persona respire normalmente","Si la persona empieza a respirar normalmente o se mueve, pare las compresiones y colóquela de lado"],source:"BLOQUE_04_1_RCP_ADULTOS.md"},F={id:"rcp-telephone-pediatric",title:"RCP Transtelefónica - Pediatría",shortTitle:"RCP Pediátrico",category:"rcp",ageGroup:"pediatrico",description:"Guía paso a paso para que un testigo realice RCP en un niño (1 año hasta pubertad) mientras llega la ambulancia.",initialAssessment:["¿Está el niño consciente? ¿Responde si le habla o le toca?","¿Está respirando normalmente? (No cuente boqueadas o respiraciones muy lentas)","¿Es seguro acercarse?","¿Cuántos años tiene el niño aproximadamente?"],steps:[{id:"activar-112-ped",order:1,instruction:"Primero, active el servicio de emergencias. ¿Ya ha llamado al 112?",verification:"Confirme que ha llamado al 112",critical:!0,notes:"Si está solo y el colapso no fue presenciado, puede hacer 2 minutos de RCP primero"},{id:"colocar-superficie-ped",order:2,instruction:"Coloque al niño boca arriba sobre una superficie firme y plana. Si es pequeño, puede usar una mesa si es más firme que el suelo.",verification:"¿Está el niño boca arriba sobre una superficie firme?",critical:!0},{id:"abrir-via-aerea-ped",order:3,instruction:"Incline suavemente la cabeza hacia atrás en posición neutra y levante la barbilla. Esto abre la vía aérea.",verification:"¿Puede ver que la cabeza está en posición neutra y la barbilla levantada?"},{id:"verificar-respiracion-ped",order:4,instruction:"Acérquese y mire, escuche y sienta si respira normalmente. Hágalo durante 10 segundos máximo.",verification:"¿Respira normalmente?",critical:!0},{id:"iniciar-compresiones-ped",order:5,instruction:"Si NO respira normalmente, coloque el talón de una mano (o dos manos si el niño es grande) en el centro del pecho, entre los pezones.",verification:"¿Tiene la(s) mano(s) colocada(s) correctamente en el centro del pecho?",critical:!0,notes:"Una mano para niños pequeños, dos manos para niños grandes/púberes"},{id:"compresiones-tecnica-ped",order:6,instruction:"Comprima el pecho hacia abajo aproximadamente un tercio de la profundidad del pecho (unos 5 cm en la mayoría de niños). Deje que el pecho vuelva completamente arriba después de cada compresión.",verification:"¿Está comprimiendo hacia abajo y dejando que el pecho vuelva completamente arriba?",critical:!0},{id:"ritmo-compresiones-ped",order:7,instruction:'Haga las compresiones a un ritmo rápido y constante, aproximadamente 100-120 por minuto. Cuente en voz alta: "uno, dos, tres..." hasta "quince" (si hay dos personas) o "treinta" (si está solo).',verification:"¿Está haciendo las compresiones a un ritmo rápido y constante?",critical:!0},{id:"ventilaciones-ped",order:8,instruction:"Después de las compresiones (15 si hay dos personas, 30 si está solo), incline la cabeza, levante la barbilla, y dé 2 respiraciones de rescate cubriendo boca Y nariz del niño. Cada respiración debe durar 1 segundo y ver que el pecho se eleva.",verification:"¿Está dando las respiraciones cubriendo boca y nariz y ve que el pecho se eleva?",notes:"En pediatría, la ventilación es tan importante como las compresiones"},{id:"continuar-ciclos-ped",order:9,instruction:"Continúe con ciclos de compresiones y respiraciones. No pare hasta que llegue la ambulancia o el niño empiece a respirar normalmente.",verification:"¿Está continuando con los ciclos sin parar?",critical:!0}],importantNotes:["En pediatría, la ventilación es tan crítica como las compresiones","Si está solo y el colapso no fue presenciado, haga 2 minutos de RCP primero, luego active el 112","Si el colapso fue presenciado súbito, active el 112 inmediatamente","Las compresiones deben ser proporcionales al tamaño del niño"],source:"BLOQUE_04_2_RCP_PEDIATRIA.md"},V={id:"desa-telephone",title:"DESA Guiado por Teléfono",shortTitle:"DESA Teléfono",category:"desa",ageGroup:"todos",description:"Guía paso a paso para que un testigo use un DESA mientras se realiza RCP.",initialAssessment:["¿Hay un DESA disponible cerca?","¿Se está realizando RCP en este momento?","¿La persona está en una superficie seca y segura?"],steps:[{id:"continuar-rcp",order:1,instruction:"Mientras alguien trae el DESA, continúe con las compresiones torácicas sin parar.",verification:"¿Se están haciendo compresiones continuamente?",critical:!0,notes:"La RCP no debe parar mientras se prepara el DESA"},{id:"encender-desa",order:2,instruction:"Cuando tenga el DESA, ábralo o pulse el botón de encendido. El dispositivo le dará instrucciones verbales. Siga sus indicaciones.",verification:"¿Está encendido el DESA y puede oír las instrucciones?",critical:!0},{id:"preparar-torax",order:3,instruction:"Exponga el pecho de la persona. Si está mojado, séquelo rápidamente con una toalla. Si hay mucho vello, rasure la zona rápidamente si es posible.",verification:"¿Está el pecho expuesto, seco y sin vello que interfiera?",notes:"Solo pare RCP por menos de 10 segundos para esta preparación"},{id:"colocar-parches",order:4,instruction:"Retire los parches del DESA. Coloque un parche en el lado derecho del pecho, debajo de la clavícula, junto al esternón. Coloque el otro parche en el lado izquierdo, debajo y a la izquierda del pezón. Presione firmemente cada parche durante 5 segundos.",verification:"¿Están los parches colocados y bien pegados?",critical:!0,notes:"Colocación estándar: esternal (derecho) y apical (izquierdo)"},{id:"conectar-cable",order:5,instruction:"Conecte el cable al DESA si no está pre-conectado. Debería encajarse con un clic.",verification:"¿Está el cable conectado correctamente?"},{id:"analizar-ritmo",order:6,instruction:'El DESA le dirá "Alto, analizando ritmo" o similar. En ese momento, pare las compresiones y asegúrese de que NADIE toca a la persona. Grite "¡Todos fuera!" para asegurarse.',verification:"¿Está todo el mundo alejado de la persona?",critical:!0,notes:"Nadie debe tocar durante el análisis"},{id:"seguir-ordenes",order:7,instruction:"El DESA analizará el ritmo. Siga exactamente las instrucciones que le dé.",verification:"¿Está escuchando las instrucciones del DESA?",critical:!0},{id:"descarga-si-indicada",order:8,instruction:'Si el DESA dice "Se recomienda descarga" o similar, confirme en voz alta "DESCARGA RECOMENDADA". Asegúrese de que NADIE toca a la persona. Pulse el botón de descarga (parpadeante) y manténgalo pulsado hasta que se administre.',verification:"¿Está todo el mundo alejado antes de pulsar el botón de descarga?",critical:!0,notes:"Verificación final de seguridad antes de descargar"},{id:"reanudar-rcp",order:9,instruction:'Inmediatamente después de la descarga (o si el DESA dice "No se recomienda descarga"), reanude las compresiones torácicas sin demora. Continúe con ciclos de 30 compresiones y 2 respiraciones.',verification:"¿Ha reanudado las compresiones inmediatamente?",critical:!0},{id:"continuar-ciclos-desa",order:10,instruction:"El DESA le pedirá que pare cada 2 minutos para analizar de nuevo. Siga sus instrucciones. Continúe hasta que llegue la ambulancia o la persona empiece a respirar normalmente.",verification:"¿Está siguiendo las instrucciones del DESA?",critical:!0}],importantNotes:["NUNCA toque a la persona durante el análisis o la descarga","La RCP solo se para para analizar y descargar, no para colocar parches","Si el DESA no recomienda descarga, reanude RCP inmediatamente","El DESA guiará los ciclos completos de 2 minutos"],source:"BLOQUE_04_4_USO_DESA.md"},B={id:"ovace-telephone-adult",title:"OVACE Transtelefónica - Adultos",shortTitle:"OVACE Adulto",category:"ovace",ageGroup:"adulto",description:"Guía paso a paso para que un testigo resuelva una obstrucción de vía aérea en un adulto.",initialAssessment:["¿La persona puede hablar o toser?","¿Se está llevando las manos al cuello? (signo universal de atragantamiento)","¿Está consciente o inconsciente?","¿Es una persona obesa o embarazada?"],steps:[{id:"evaluar-gravedad",order:1,instruction:"Primero, evalúe la gravedad. ¿Puede la persona hablar, toser o respirar?",verification:"¿Puede hablar/toser efectivamente o no puede?",critical:!0,notes:"Si puede toser efectivamente: animar a toser, no intervenir"},{id:"ovace-leve",order:2,instruction:"Si puede toser con fuerza, anímela a seguir tosiendo. No haga nada más. La tos es el mejor mecanismo para desobstruir.",verification:"¿Está tosiendo con fuerza?",notes:"Solo si la tos es efectiva"},{id:"ovace-grave-consciente",order:3,instruction:"Si NO puede hablar, toser o respirar, y está consciente, colóquese de pie detrás de la persona. Rodee su cintura con sus brazos.",verification:"¿Está detrás de la persona con los brazos alrededor de su cintura?",critical:!0,notes:"Solo si está consciente y la obstrucción es grave"},{id:"heimlich",order:4,instruction:"Coloque el puño (con el pulgar hacia dentro) en la línea media del abdomen, entre el ombligo y el final del esternón. Agarre su puño con la otra mano.",verification:"¿Tiene el puño en la posición correcta?",critical:!0},{id:"compresiones-abdominales",order:5,instruction:"Aplique compresiones rápidas hacia dentro y hacia arriba, como si intentara levantar a la persona. Haga 5 compresiones separadas y distintas.",verification:"¿Está haciendo compresiones hacia dentro y hacia arriba?",critical:!0},{id:"reevaluar",order:6,instruction:'Después de 5 compresiones, pregunte: "¿Ha salido? ¿Puede respirar?" Si puede hablar/toser efectivamente, pare. Si no, repita las 5 compresiones.',verification:"¿Puede ahora hablar o toser efectivamente?",critical:!0},{id:"si-inconsciente",order:7,instruction:"Si la persona pierde el conocimiento, guíela al suelo con control. Active el 112 si no lo ha hecho. Inicie RCP inmediatamente (ver protocolo RCP).",verification:"¿Está inconsciente? ¿Ha activado el 112?",critical:!0,notes:"Si pierde consciencia, tratar como PCR y seguir protocolo RCP"},{id:"embarazada-obeso",order:8,instruction:"Si la persona está embarazada o es obesa, haga compresiones TORÁCICAS (sobre el esternón) en lugar de abdominales. Use la misma técnica pero sobre el pecho.",verification:"¿Está haciendo compresiones sobre el pecho en lugar del abdomen?",notes:"Solo si está embarazada o es obesa"}],importantNotes:["Si puede toser efectivamente: NO intervenir, animar a toser","Si está inconsciente: iniciar RCP inmediatamente","En embarazadas/obesos: usar compresiones torácicas, no abdominales","Después de desobstruir, siempre evaluar y considerar traslado"],source:"BLOQUE_04_6_OVACE_ADULTOS.md"},G={id:"sca-telephone",title:"Sospecha de Síndrome Coronario Agudo (SCA)",shortTitle:"SCA",category:"sca",ageGroup:"adulto",description:"Reconocimiento de síntomas de SCA y primeros auxilios mientras llega la ambulancia.",initialAssessment:["¿Tiene dolor en el pecho? ¿Cómo lo describe? (presión, opresión, ardor)","¿El dolor se extiende a brazos, cuello, mandíbula o espalda?","¿Tiene dificultad para respirar?","¿Tiene náuseas, sudoración o mareo?","¿Tiene antecedentes de problemas cardíacos?"],steps:[{id:"activar-112-sca",order:1,instruction:"Active el servicio de emergencias inmediatamente. Llame al 112 y explique que sospecha un problema cardíaco.",verification:"¿Ha llamado al 112?",critical:!0},{id:"posicion-comoda",order:2,instruction:"Coloque a la persona en una posición cómoda, preferiblemente semisentada o recostada con la cabeza elevada. Evite que se acueste completamente plano.",verification:"¿Está en una posición cómoda?"},{id:"aflojar-ropa",order:3,instruction:"Afloje cualquier ropa ajustada, especialmente alrededor del cuello y el pecho.",verification:"¿Está la ropa aflojada?"},{id:"aspirina-si-protocolo",order:4,instruction:"Si la persona está consciente, no es alérgica a la aspirina, y su protocolo local lo contempla, puede darle una aspirina (300 mg) para masticar. NO la trague entera.",verification:"¿Puede tomar aspirina? (Consulte si es alérgica)",notes:"Solo si protocolo local contempla y no es alérgica"},{id:"monitorizar",order:5,instruction:"Mantenga a la persona tranquila y monitorice su estado. Si pierde el conocimiento o deja de respirar, inicie RCP (ver protocolo RCP).",verification:"¿Está consciente y respirando?",critical:!0},{id:"preparar-para-traslado",order:6,instruction:"Prepare a la persona para el traslado. No le dé de comer ni beber. Mantenga la calma y espere a la ambulancia.",verification:"¿Está preparado para cuando llegue la ambulancia?"}],importantNotes:["El tiempo es crítico: activar 112 inmediatamente","No dar aspirina si es alérgica o si protocolo local no lo contempla","Si pierde consciencia o deja de respirar, iniciar RCP","Mantener a la persona tranquila y en posición cómoda"],source:"BLOQUE_05_6_SCA_TRANSTELEFONICO.md"},_={id:"ictus-telephone",title:"Protocolo de Actuación Transtelefónica para Sospecha de Ictus Agudo",shortTitle:"Ictus Transtelefónico",category:"ictus",ageGroup:"adulto",description:"Protocolo completo para evaluación telefónica de sospecha de ictus agudo usando FAST/BE-FAST, determinación de urgencia, medidas de seguridad y preparación para traslado.",initialAssessment:["¿Cuándo empezaron los síntomas? ¿A qué hora fue la ÚLTIMA VEZ que lo vio completamente normal?","¿Puede sonreír normalmente? ¿Tiene la cara caída de un lado? (F - Face)","¿Puede levantar ambos brazos? ¿Tiene un brazo débil o caído? (A - Arms)","¿Puede hablar con claridad? ¿Tiene dificultad para hablar o habla arrastrado? (S - Speech)","¿Tiene antecedentes: hipertensión, diabetes, fibrilación auricular o ictus previo?","¿Es diabético? ¿Tiene glucómetro disponible? (para descartar hipoglucemia)"],steps:[{id:"paso-0-control-inicial",order:0,instruction:"PASO 0: CONTROL INICIAL Y ACTIVACIÓN (primeros 30 segundos). Pregunte la dirección COMPLETA: calle, número, piso, puerta y localidad. Confirme puntos de referencia. Pregunte edad aproximada y antecedentes (HTA, diabetes, FA, ictus previo). Mientras evalúa, active el Código Ictus o equivalente. NO cuelgue, manténgase en línea.",verification:"¿Tiene la ubicación exacta? ¿Ha activado el Código Ictus?",critical:!0,notes:"Activación inmediata mientras se evalúa. Mantener línea abierta."},{id:"paso-1-fast-face",order:1,instruction:'PASO 1: EVALUACIÓN FAST - F (FACE/CARA). Instruya: "Pídale que SONRÍA o que enseñe los dientes." Pregunte: "¿Se le cae un lado de la cara? ¿La sonrisa es asimétrica o torcida?"',verification:"¿Hay asimetría facial clara? (F+)",critical:!0,notes:"Positivo si: un lado de la cara no se mueve igual que el otro"},{id:"paso-1-fast-arms",order:2,instruction:'PASO 1: EVALUACIÓN FAST - A (ARMS/BRAZOS). Instruya: "Que levante los DOS brazos al frente, con las palmas hacia arriba y los ojos cerrados." Pregunte: "¿Se le cae uno de los brazos? ¿O no puede levantarlo?"',verification:"¿Un brazo cae, se desvía hacia abajo, o no puede levantarse? (A+)",critical:!0,notes:"Positivo si: un brazo cae, se desvía, o no puede levantarse"},{id:"paso-1-fast-speech",order:3,instruction:`PASO 1: EVALUACIÓN FAST - S (SPEECH/HABLA). Instruya: "Que repita una frase simple: 'Hoy hace buen día'." Pregunte: "¿Habla raro, arrastra las palabras, dice palabras incorrectas o no puede hablar?"`,verification:"¿Hay disartria, afasia o mutismo? (S+)",critical:!0,notes:"Positivo si: disartria (arrastra palabras), afasia (palabras incorrectas), o mutismo"},{id:"paso-1-fast-time",order:4,instruction:'PASO 1: EVALUACIÓN FAST - T (TIME/TIEMPO) - EL DATO MÁS CRÍTICO. Pregunta OBLIGATORIA: "¿A qué hora fue la ÚLTIMA VEZ QUE LO VIO COMPLETAMENTE NORMAL, sin ningún síntoma?" Si no hay testigo: "¿Cuándo comenzaron exactamente los síntomas?" Si se despertó con síntomas: "¿A qué hora se acostó estando normal?"',verification:"¿Sabe la hora exacta de última vez visto normal?",critical:!0,notes:"INFORMACIÓN MÁS CRÍTICA. Determina ventana terapéutica. Si no lo preguntas, puedes cerrar la puerta al tratamiento."},{id:"paso-2-be-fast-balance",order:5,instruction:'PASO 2: EVALUACIÓN BE-FAST (si FAST es negativo pero persiste sospecha). B (BALANCE/EQUILIBRIO): "¿Está muy mareado o tiene dificultad para mantenerse en pie o caminar?" Clave: Mareo AGUDO + otros signos neurológicos. No mareo aislado.',verification:"¿Mareo agudo con otros signos neurológicos?",notes:"Solo si FAST negativo pero persiste sospecha clínica"},{id:"paso-2-be-fast-eyes",order:6,instruction:'PASO 2: EVALUACIÓN BE-FAST - E (EYES/OJOS). "¿Ha perdido visión de repente en un ojo o en parte del campo visual? ¿Ve doble?" Clave: Pérdida visual SÚBITA, no progresiva.',verification:"¿Pérdida visual súbita?",notes:"Solo si FAST negativo pero persiste sospecha clínica"},{id:"paso-3-determinar-urgencia",order:7,instruction:"PASO 3: DETERMINACIÓN DE URGENCIA. Si FAST positivo O BE-FAST positivo con inicio <6h: ACTIVAR CÓDIGO ICTUS (Prioridad 1). Objetivos: Puerta-TC <25 min, Puerta-aguja <60 min. Transporte directo a Hospital con Unidad de Ictus.",verification:"¿Se ha activado Código Ictus? ¿Hospital con Unidad de Ictus notificado?",critical:!0,notes:"Criterios: FAST positivo, inicio <6h, déficit neurológico grave, cefalea explosiva + déficit, crisis convulsiva al inicio, anticoagulante con síntomas agudos"},{id:"paso-4-posicionamiento",order:8,instruction:'PASO 4: POSICIONAMIENTO SEGURO. Si consciente, estable y sin vómitos: "Siéntelo o reclínelo semisentado, con la cabeza elevada a unos 30°." Si somnoliento o riesgo aspiración: "Póngalo de LADO (posición lateral de seguridad). Si hay un lado afectado, que quede ARRIBA." Si vómitos activos: "Siempre de lado, con la cabeza ligeramente baja." PROHIBICIÓN: NO sentar si somnoliento. NO acostar boca arriba si riesgo aspiración.',verification:"¿Está en posición segura según su estado?",critical:!0,notes:"La posición boca arriba mata por aspiración. La posición lateral salva vías aéreas."},{id:"paso-4-no-administracion",order:9,instruction:'PASO 4: PROHIBICIÓN ABSOLUTA. "NO coma ni beba NADA." (Alto riesgo disfagia/aspiración). "NO tome ninguna medicación por boca, incluida la aspirina." (Hasta determinar si es isquémico o hemorrágico). "NO administre insulina aunque sea diabético." (Solo si glucemia <70 mg/dL confirmada). "NO intente bajarle la tensión arterial." (Salvo TA >220/120 según protocolo).',verification:"¿Ha indicado claramente NADA por boca?",critical:!0,notes:"Nada por boca es absoluto. No aspirina hasta determinar tipo de ictus."},{id:"verificar-hipoglucemia",order:10,instruction:'DIFERENCIAL: HIPOGLUCEMIA (puede simular ictus). Preguntas obligatorias: "¿Es diabético? ¿Tiene un glucómetro disponible? ¿Tiene sudoración fría, temblor, sensación de hambre?" Si hay glucómetro: "Mida la glucemia ahora mismo." Si glucemia <70 mg/dL: Si consciente y traga seguro: "3 terrones de azúcar o zumo pequeño." Si no traga seguro o inconsciente: "NO le dé nada por la boca." NOTA: Corregir hipoglucemia no excluye ictus concurrente. Mantener sospecha.',verification:"¿Se ha descartado hipoglucemia?",notes:"Hipoglucemia puede simular ictus. Verificar pero mantener sospecha si persiste"},{id:"preparar-entorno",order:11,instruction:'PREPARACIÓN DEL ENTORNO. "Abra la puerta o deje el acceso libre para los equipos." "Prepare DNI, tarjeta sanitaria y lista de medicación HABITUAL." Especial énfasis: Anticoagulantes (Sintrom, Xarelto, Eliquis, Pradaxa). Antiagregantes (Adiro, Aspirina, Clopidogrel). "Si tiene informes médicos recientes, téngalos a mano." "Un acompañante debe PREPARARSE para ir al hospital."',verification:"¿Está preparado el entorno y la documentación?"},{id:"monitorizacion-continua",order:12,instruction:'MONITORIZACIÓN CONTINUA (cada 2-3 minutos). Preguntas estandarizadas: "¿Sigue CONSCIENTE? ¿Responde a mi voz o a estímulos?" "¿RESPIRA con normalidad? ¿Escucha algún ruido raro?" "¿HA EMPEORADO la debilidad, el adormecimiento o el habla?" "¿TIENE VÓMITOS o el dolor de cabeza se ha hecho más fuerte?"',verification:"¿Está monitorizando cada 2-3 minutos?",critical:!0,notes:"Vigilancia activa hasta llegada de recursos. Detectar deterioro inmediatamente"},{id:"criterios-deterioro-pcr",order:13,instruction:'CRITERIOS DE DETERIORO AGUDO (posible transición a PCR). Activar si: Pérdida brusca de consciencia (no responde). Respiración anormal (apnea, boqueos, estridor). Convulsiones activas prolongadas. Cianosis reportada ("se ha puesto morado"). CONDUCTA: "¿Responde si le toca o le habla fuerte? ¿Respira con normalidad?" Si NO responde o NO respira normal: "Póngalo en el suelo, boca arriba, sobre superficie dura. Empiece compresiones en el centro del pecho, fuerte y rápido." Transicionar inmediatamente al Protocolo RCP.',verification:"¿Está vigilando signos de deterioro?",critical:!0,notes:"Si deteriora a PCR, transicionar inmediatamente a protocolo RCP"},{id:"traspaso-informacion",order:14,instruction:'INFORMACIÓN CRÍTICA PARA TRASPASO. Estructurar mensaje: HORA ÚLTIMA VEZ NORMAL: "[HH:MM]" o "desconocida". FAST/BE-FAST: Componentes positivos (Ej: "F y S positivos, A negativo"). GRAVEDAD: Breve descripción (Ej: "Paciente consciente pero afásico y con hemiparesia derecha"). ANTECEDENTES: "HTA, FA anticoagulada con Sintrom, diabetes". SÍNTOMAS ASOCIADOS: "Cefalea explosiva, vómitos x2". GLUCEMIA: "120 mg/dL" o "no medida". MEDIDAS TOMADAS: "Posicionado en lateral izquierda, nada por boca, documentación preparada".',verification:"¿Tiene toda la información crítica para el traspaso?",critical:!0,notes:'Mensaje estándar: "Código Ictus activado. Paciente [Edad/Sexo]: Última vez normal: [HH:MM] (hace X horas/minutos). FAST: [F+/A+/S+]. Déficit principal: [descripción]. Antecedentes clave: [lista]. TA actual: [valor] si se conoce. Llegada estimada: [HH:MM]."'}],importantNotes:["🔴 TIEMPO ES CEREBRO: Cada minuto sin tratamiento destruye ~1,9 millones de neuronas. La evaluación telefónica debe ser más rápida que la progresión del infarto.",'🔴 NUNCA olvidar preguntar "¿Última vez visto normal?" - Es la información más crítica.',"🔴 NUNCA permitir que coma o beba - Riesgo de aspiración muy alto.","🔴 NUNCA dejar somnoliento en decúbito supino - Siempre posición lateral.","🔴 NUNCA minimizar síntomas atípicos (mareo, visión) especialmente en mayores, diabéticos o hipertensos.",'🔴 NUNCA retrasar activación del Código Ictus para "confirmar más" - TIEMPO = CEREBRO.',"🔴 NUNCA administrar o sugerir aspirina u otra medicación por teléfono - No se sabe si es isquémico o hemorrágico.","🟢 SIEMPRE activar Código Ictus/prioridad máxima si FAST positivo y inicio <6h.","🟢 SIEMPRE preguntar específicamente por medicación anticoagulante - Crítica para manejo hospitalario.","🟢 SIEMPRE recomendar posición lateral de seguridad si hay cualquier disminución del nivel de conciencia.",'🟢 SIEMPRE indicar "Nada por boca" de forma absoluta y clara.',"🟢 SIEMPRE documentar con precisión: Hora última vez normal, componentes FAST, antecedentes clave.","🟢 SIEMPRE preparar traspaso de información estructurado al equipo de ictus o al SVB.","🟢 SIEMPRE vigilar continuamente nivel de consciencia y respiración hasta llegada de recursos.","FAST negativo NO descarta ictus: Síntomas atípicos en pacientes de riesgo son ictus hasta demostrar lo contrario.",'El dato del tiempo es vital: La "última vez visto normal" determina la ventana terapéutica.'],source:"Capítulo 5.4 - Protocolo de Actuación Transtelefónica para Sospecha de Ictus Agudo"},k=[H,F,V,B,G,_],C={rcp:"RCP",desa:"DESA",ovace:"OVACE",sca:"SCA",ictus:"Ictus",comunicacion:"Comunicación"},y={adulto:"Adulto",pediatrico:"Pediatría",lactante:"Lactante",todos:"Todos"},J=()=>{const[i,l]=p.useState(null),[r,t]=p.useState("todos"),[c,m]=p.useState("todos"),d=k.filter(a=>{const v=r==="todos"||a.category===r,b=c==="todos"||a.ageGroup===c||a.ageGroup==="todos";return v&&b});return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground mb-1",children:"Protocolos Transtelefónicos"}),e.jsx("p",{className:"text-muted-foreground text-sm",children:"Guía paso a paso para testigos por teléfono"})]}),i?e.jsxs("div",{children:[e.jsx("button",{onClick:()=>l(null),className:"mb-4 text-sm text-muted-foreground hover:text-foreground flex items-center gap-2",children:"← Volver a lista de protocolos"}),e.jsx(U,{protocol:i,onReset:()=>l(null)})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2 uppercase tracking-wide",children:"Categoría"}),e.jsxs("div",{className:"flex gap-2 overflow-x-auto scrollbar-hide -mx-4 px-4",children:[e.jsx("button",{onClick:()=>t("todos"),className:`px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-colors ${r==="todos"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-accent"}`,children:"Todos"}),["rcp","desa","ovace","sca","ictus"].map(a=>e.jsx("button",{onClick:()=>t(a),className:`px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-colors ${r===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-accent"}`,children:C[a]},a))]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2 uppercase tracking-wide",children:"Grupo Etario"}),e.jsxs("div",{className:"flex gap-2 overflow-x-auto scrollbar-hide -mx-4 px-4",children:[e.jsx("button",{onClick:()=>m("todos"),className:`px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-colors ${c==="todos"?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-accent"}`,children:"Todos"}),["adulto","pediatrico","lactante"].map(a=>e.jsx("button",{onClick:()=>m(a),className:`px-4 py-2 rounded-full text-sm font-medium whitespace-nowrap transition-colors ${c===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-accent"}`,children:y[a]},a))]})]})]}),e.jsx("div",{className:"space-y-3",children:d.length===0?e.jsx("div",{className:"card-procedure p-4 text-center",children:e.jsx("p",{className:"text-muted-foreground",children:"No hay protocolos que coincidan con los filtros seleccionados."})}):d.map(a=>e.jsx("button",{onClick:()=>l(a),className:"w-full text-left card-procedure hover:bg-accent transition-colors",children:e.jsx("div",{className:"flex items-start justify-between gap-3",children:e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(j,{className:"w-5 h-5 text-primary"}),e.jsx("h3",{className:"font-semibold text-foreground",children:a.shortTitle}),e.jsx(h,{variant:"default",children:C[a.category]}),e.jsx(h,{variant:"default",children:y[a.ageGroup]})]}),e.jsx("p",{className:"text-muted-foreground text-sm",children:a.description}),e.jsxs("p",{className:"text-muted-foreground text-xs mt-1",children:[a.steps.length," pasos • ",a.initialAssessment.length," preguntas iniciales"]})]})})},a.id))})]})]})};export{J as default};