codigo0/public/assets/images/rcp_profundidad_compresiones.png
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

125 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="600" viewBox="0 0 1200 600">
<!-- Fondo -->
<rect width="1200" height="600" fill="#f8f9fa"/>
<!-- Título -->
<rect x="20" y="20" width="1160" height="70" fill="#dc3545" rx="8"/>
<text x="600" y="65" font-family="Arial, sans-serif" font-size="28" font-weight="bold" fill="white" text-anchor="middle">PROFUNDIDAD DE COMPRESIONES: Correcto vs Incorrecto</text>
<!-- INCORRECTO: Muy superficial -->
<g>
<rect x="50" y="130" width="340" height="400" fill="#f8d7da" stroke="#dc3545" stroke-width="3" rx="8"/>
<text x="220" y="170" font-family="Arial, sans-serif" font-size="20" font-weight="bold" fill="#721c24" text-anchor="middle"> MUY SUPERFICIAL</text>
<text x="220" y="195" font-family="Arial, sans-serif" font-size="16" fill="#721c24" text-anchor="middle">(< 5 cm)</text>
<!-- Tórax -->
<rect x="150" y="240" width="140" height="80" fill="#dee2e6" stroke="#6c757d" stroke-width="2" rx="4"/>
<!-- Línea pre-compresión -->
<line x1="150" y1="240" x2="290" y2="240" stroke="#6c757d" stroke-width="2" stroke-dasharray="5,5"/>
<!-- Manos comprimiendo poco -->
<rect x="175" y="210" width="90" height="25" fill="#ffc107" stroke="#d39e00" stroke-width="2" rx="3"/>
<path d="M 220 235 L 220 255" stroke="#dc3545" stroke-width="3" marker-end="url(#arrowRed)"/>
<!-- Profundidad insuficiente -->
<line x1="300" y1="240" x2="300" y2="255" stroke="#dc3545" stroke-width="3" marker-start="url(#arrowRed2)" marker-end="url(#arrowRed2)"/>
<text x="315" y="250" font-family="Arial, sans-serif" font-size="16" fill="#dc3545" font-weight="bold">3 cm</text>
<text x="220" y="350" font-family="Arial, sans-serif" font-size="15" fill="#721c24" text-anchor="middle">PROBLEMA:</text>
<text x="220" y="375" font-family="Arial, sans-serif" font-size="14" fill="#721c24" text-anchor="middle">No se genera suficiente</text>
<text x="220" y="395" font-family="Arial, sans-serif" font-size="14" fill="#721c24" text-anchor="middle">presión intratorácica</text>
<text x="220" y="420" font-family="Arial, sans-serif" font-size="14" fill="#721c24" text-anchor="middle">No circula sangre</text>
<text x="220" y="445" font-family="Arial, sans-serif" font-size="14" fill="#721c24" text-anchor="middle">al cerebro</text>
<rect x="70" y="470" width="300" height="40" fill="#dc3545" rx="4"/>
<text x="220" y="495" font-family="Arial, sans-serif" font-size="15" font-weight="bold" fill="white" text-anchor="middle">INEFECTIVO</text>
</g>
<!-- CORRECTO -->
<g>
<rect x="430" y="130" width="340" height="400" fill="#d4edda" stroke="#28a745" stroke-width="3" rx="8"/>
<text x="600" y="170" font-family="Arial, sans-serif" font-size="20" font-weight="bold" fill="#155724" text-anchor="middle"> CORRECTO</text>
<text x="600" y="195" font-family="Arial, sans-serif" font-size="16" fill="#155724" text-anchor="middle">(5-6 cm)</text>
<!-- Tórax -->
<rect x="530" y="260" width="140" height="80" fill="#dee2e6" stroke="#6c757d" stroke-width="2" rx="4"/>
<!-- Línea pre-compresión -->
<line x1="530" y1="240" x2="670" y2="240" stroke="#6c757d" stroke-width="2" stroke-dasharray="5,5"/>
<!-- Manos comprimiendo -->
<rect x="555" y="205" width="90" height="25" fill="#ffc107" stroke="#d39e00" stroke-width="2" rx="3"/>
<path d="M 600 230 L 600 260" stroke="#28a745" stroke-width="3" marker-end="url(#arrowGreen)"/>
<!-- Profundidad correcta -->
<line x1="680" y1="240" x2="680" y2="295" stroke="#28a745" stroke-width="3" marker-start="url(#arrowGreen2)" marker-end="url(#arrowGreen2)"/>
<text x="695" y="270" font-family="Arial, sans-serif" font-size="16" fill="#28a745" font-weight="bold">5-6 cm</text>
<text x="600" y="370" font-family="Arial, sans-serif" font-size="15" fill="#155724" text-anchor="middle">BENEFICIO:</text>
<text x="600" y="395" font-family="Arial, sans-serif" font-size="14" fill="#155724" text-anchor="middle">Presión intratorácica</text>
<text x="600" y="415" font-family="Arial, sans-serif" font-size="14" fill="#155724" text-anchor="middle">adecuada</text>
<text x="600" y="440" font-family="Arial, sans-serif" font-size="14" fill="#155724" text-anchor="middle">Flujo sanguíneo</text>
<text x="600" y="460" font-family="Arial, sans-serif" font-size="14" fill="#155724" text-anchor="middle">cerebral suficiente</text>
<rect x="450" y="480" width="300" height="40" fill="#28a745" rx="4"/>
<text x="600" y="505" font-family="Arial, sans-serif" font-size="15" font-weight="bold" fill="white" text-anchor="middle">EFECTIVO</text>
</g>
<!-- INCORRECTO: Muy profundo -->
<g>
<rect x="810" y="130" width="340" height="400" fill="#fff3cd" stroke="#ffc107" stroke-width="3" rx="8"/>
<text x="980" y="170" font-family="Arial, sans-serif" font-size="20" font-weight="bold" fill="#856404" text-anchor="middle">  MUY PROFUNDO</text>
<text x="980" y="195" font-family="Arial, sans-serif" font-size="16" fill="#856404" text-anchor="middle">(> 6 cm)</text>
<!-- Tórax -->
<rect x="910" y="275" width="140" height="80" fill="#dee2e6" stroke="#6c757d" stroke-width="2" rx="4"/>
<!-- Línea pre-compresión -->
<line x1="910" y1="240" x2="1050" y2="240" stroke="#6c757d" stroke-width="2" stroke-dasharray="5,5"/>
<!-- Manos comprimiendo mucho -->
<rect x="935" y="195" width="90" height="25" fill="#ffc107" stroke="#d39e00" stroke-width="2" rx="3"/>
<path d="M 980 220 L 980 275" stroke="#ffc107" stroke-width="3" marker-end="url(#arrowYellow)"/>
<!-- Profundidad excesiva -->
<line x1="1060" y1="240" x2="1060" y2="315" stroke="#ffc107" stroke-width="3" marker-start="url(#arrowYellow2)" marker-end="url(#arrowYellow2)"/>
<text x="1075" y="280" font-family="Arial, sans-serif" font-size="16" fill="#856404" font-weight="bold">8 cm</text>
<text x="980" y="370" font-family="Arial, sans-serif" font-size="15" fill="#856404" text-anchor="middle">RIESGO:</text>
<text x="980" y="395" font-family="Arial, sans-serif" font-size="14" fill="#856404" text-anchor="middle">Posibles fracturas</text>
<text x="980" y="415" font-family="Arial, sans-serif" font-size="14" fill="#856404" text-anchor="middle">costales graves</text>
<text x="980" y="440" font-family="Arial, sans-serif" font-size="14" fill="#856404" text-anchor="middle">Lesión órganos</text>
<text x="980" y="460" font-family="Arial, sans-serif" font-size="14" fill="#856404" text-anchor="middle">internos</text>
<rect x="830" y="480" width="300" height="40" fill="#ffc107" rx="4"/>
<text x="980" y="505" font-family="Arial, sans-serif" font-size="15" font-weight="bold" fill="white" text-anchor="middle">EXCESIVO</text>
</g>
<!-- Nota importante -->
<rect x="50" y="545" width="1100" height="40" fill="#17a2b8" rx="4"/>
<text x="600" y="572" font-family="Arial, sans-serif" font-size="16" font-weight="bold" fill="white" text-anchor="middle">RECORDAR: Mejor pasarse un poco que quedarse corto. Las fracturas costales se curan, el daño cerebral NO.</text>
<!-- Definiciones de flechas -->
<defs>
<marker id="arrowRed" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L0,6 L9,3 z" fill="#dc3545" />
</marker>
<marker id="arrowRed2" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L10,5 L0,10 L3,5 z" fill="#dc3545" />
</marker>
<marker id="arrowGreen" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L0,6 L9,3 z" fill="#28a745" />
</marker>
<marker id="arrowGreen2" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L10,5 L0,10 L3,5 z" fill="#28a745" />
</marker>
<marker id="arrowYellow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L0,6 L9,3 z" fill="#ffc107" />
</marker>
<marker id="arrowYellow2" markerWidth="10" markerHeight="10" refX="5" refY="5" orient="auto" markerUnits="strokeWidth">
<path d="M0,0 L10,5 L0,10 L3,5 z" fill="#ffc107" />
</marker>
</defs>
</svg>