- ✅ 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
125 lines
8.2 KiB
Plaintext
125 lines
8.2 KiB
Plaintext
<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>
|