From b901b138c522b8eb7c2603d9508e7b7b6a7e4e09 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 22 Mar 2026 23:36:00 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20implementar=20set=20de=20calculadoras?= =?UTF-8?q?=20cl=C3=ADnicas,=20unificar=20marca=20codigo0=20y=20preparar?= =?UTF-8?q?=20infraestructura=20MongoDB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yml | 33 + .gitignore | 69 + .planning/INVENTARIO_COMPLETO.md | 175 + .planning/PHASE-PLAN.md | 128 + .planning/ROADMAP.md | 160 + .planning/STATE.md | 42 + .planning/codebase/ARCHITECTURE.md | 239 + .planning/codebase/STACK.md | 90 + .planning/config.json | 5 +- .../08-paginas-esenciales/08-01-PLAN.md | 18 + .../08-paginas-esenciales/08-02-PLAN.md | 18 + .../08-paginas-esenciales/08-03-PLAN.md | 22 + .../08-paginas-esenciales/08-04-PLAN.md | 18 + .../08-paginas-esenciales/08-05-PLAN.md | 17 + .vscode/settings.json | 3 + README.md | 23 + backend/Dockerfile | 30 + backend/package-lock.json | 6075 +++++++++++++++++ backend/package.json | 40 + backend/src/app.ts | 60 + .../usecases/GetAllProtocolsUseCase.ts | 10 + .../usecases/GetProtocolByIdUseCase.ts | 10 + backend/src/config.ts | 17 + .../src/domain/entities/ClinicalProtocol.ts | 46 + .../src/domain/entities/TelephoneProtocol.ts | 24 + .../repositories/IProtocolRepository.ts | 8 + backend/src/index.ts | 29 + .../database/models/ProtocolModel.ts | 79 + .../http/controllers/ProtocolController.ts | 41 + .../http/routes/protocol.routes.ts | 34 + .../persistence/StaticProtocolRepository.ts | 22 + backend/src/migrateYamlToMongo.ts | 59 + backend/src/routes/auth.ts | 36 + backend/src/routes/content.ts | 67 + backend/src/routes/health.ts | 18 + backend/src/services/telephone-protocols.ts | 671 ++ backend/tsconfig.json | 17 + docker-compose.yml | 50 + frontend/.env.production | 1 + frontend/Dockerfile | 26 + frontend/docker-compose.yml | 15 + frontend/index.html | 23 + frontend/nginx.conf | 44 + frontend/package-lock.json | 4959 ++++++++++++++ frontend/package.json | 35 + frontend/postcss.config.js | 6 + .../infografias/bloque-0-fundamentos/.svg | 2 + .../ABCDE_ERROR_01_SALTARSE_LETRAS.png | 20 + .../ABCDE_IMAGEN_02_PRIORIDAD_VITAL.jpg | Bin 0 -> 298991 bytes .../ABCDE_IMAGEN_05_VISION_GLOBAL.jpg | Bin 0 -> 145091 bytes .../ABCDE_RESUMEN_FLUJO_MENTAL_CONTINUO.png | Bin 0 -> 216420 bytes .../ABCDE_SINTESIS_ESTRUCTURA_PROTECCION.png | Bin 0 -> 155271 bytes .../abcde_introduccion_estructura_mental.svg | 157 + .../diagrama_flujo_start_triaje_es.svg | 218 + ...a_seleccion_dispositivo_oxigenoterapia.png | Bin 0 -> 120360 bytes ...orden_importa_maeious_que_la_velocidad.png | Bin 0 -> 2995163 bytes ...rden_importa_maeious_que_la_velocidad.webp | Bin 0 -> 125522 bytes .../farmacologia_basica_visual.png | Bin 0 -> 177886 bytes .../fast_transtelefonico.png | Bin 0 -> 156472 bytes .../flujo_desa_telefono.png | Bin 0 -> 262587 bytes .../flujo_rcp_transtelefonica.png | Bin 0 -> 251273 bytes ...colocacion_dispositivos_oxigenoterapia.png | Bin 0 -> 265888 bytes .../bloque-0-fundamentos/ovace_lactantes.png | Bin 0 -> 210618 bytes .../bloque-0-fundamentos/ovace_pediatrica.png | Bin 0 -> 201148 bytes ...riorizaciaeioun_vital_el_enfoque_abcde.png | Bin 0 -> 3061952 bytes ...iorizaciaeioun_vital_el_enfoque_abcde.webp | Bin 0 -> 160370 bytes .../rcp_adulto_paso_a_paso.png | Bin 0 -> 159901 bytes .../sistema_abcde_prioridades_emergencias.png | Bin 0 -> 2753782 bytes ...sistema_abcde_prioridades_emergencias.webp | Bin 0 -> 75856 bytes .../tabla_dosis_pediatricas.png | Bin 0 -> 146326 bytes .../tabla_escala_glasgow.png | Bin 0 -> 115242 bytes .../tabla_rangos_fio2_oxigenoterapia.png | Bin 0 -> 179138 bytes .../tabla_rangos_fio2_oxigenoterapia1.png | Bin 0 -> 120760 bytes ...bla_rangos_normales_constantes_vitales.png | Bin 0 -> 98045 bytes .../vias_administracion.png | Bin 0 -> 170474 bytes .../diagrama_decisiones_eticas.png | Bin 0 -> 237056 bytes .../diagrama_decisiones_eticas_urgencias.png | Bin 0 -> 154073 bytes .../infografias/bloque-2-inmovilizacion/.png | Bin 0 -> 132131 bytes .../colocacion_colchon_vacio_paso_a_paso.png | Bin 0 -> 244612 bytes ...colocacion_collarin_paso_1_preparacion.png | Bin 0 -> 212880 bytes ...cacion_collarin_paso_2_parte_posterior.png | Bin 0 -> 201817 bytes ...ocacion_collarin_paso_3_parte_anterior.png | Bin 0 -> 211906 bytes ...ocacion_collarin_paso_4_ajuste_cierres.png | Bin 0 -> 114808 bytes ...olocacion_collarin_paso_5_verificacion.png | Bin 0 -> 124871 bytes ..._collarin_paso_6_liberacion_controlada.png | Bin 0 -> 110402 bytes .../componentes_camilla_cuchara.png | Bin 0 -> 181424 bytes .../componentes_colchon_vacio.png | Bin 0 -> 176788 bytes .../componentes_sistema_inmovilizacion.png | Bin 0 -> 234590 bytes .../componentes_tablero_espinal.png | Bin 0 -> 188769 bytes .../coordinacion_equipo_inmovilizacion.png | Bin 0 -> 157049 bytes .../errores_frecuentes_collarin_cervical.png | Bin 0 -> 122960 bytes .../posicion_tes_inmovilizacion_manual.png | Bin 0 -> 121056 bytes .../secuencia_transicion_inmovilizacion.png | Bin 0 -> 163659 bytes .../seleccion_talla_collarin_cervical.png | Bin 0 -> 225068 bytes .../seleccion_talla_collarin_cervical1.png | Bin 0 -> 199227 bytes ..._talla_collarin_error_demasiado_grande.png | Bin 0 -> 169418 bytes ...cion_talla_collarin_medicion_anatomica.png | Bin 0 -> 155157 bytes .../seleccion_talla_collarin_tabla_tallas.png | Bin 0 -> 178687 bytes ...tuaciones_que_requieren_inmovilizacion.png | Bin 0 -> 181982 bytes .../tecnica_sujecion_manual_cervical.png | Bin 0 -> 116455 bytes ...erificaciones_post_colocacion_collarin.png | Bin 0 -> 168365 bytes .../canulas_guedel_nasofaringea.png | Bin 0 -> 165187 bytes ...iguracion_maxima_fio2_bolsa_mascarilla.png | Bin 0 -> 148232 bytes .../dispositivos_supragloticos_guia.png | Bin 0 -> 251192 bytes .../interpretacion_constantes_semaforo.png | Bin 0 -> 233811 bytes .../registro_constantes_vitales.png | Bin 0 -> 201161 bytes .../uso_correcto_ambu.png | Bin 0 -> 260323 bytes .../uso_correcto_pulsioximetro.png | Bin 0 -> 178018 bytes .../uso_correcto_tensiometro.png | Bin 0 -> 215345 bytes .../ventilacion_medios_fortuna.png | Bin 0 -> 177024 bytes .../bloque-4-rcp/algoritmo_rcp_comentado.png | Bin 0 -> 307377 bytes .../bloque-4-rcp/algoritmo_rcp_comentado.svg | 102 + .../introduccion_rcp_adulto_svb.png | Bin 0 -> 330252 bytes .../configuracion_gps_antes_de_salir.png | Bin 0 -> 206717 bytes frontend/public/icon-192.png | Bin 0 -> 18451 bytes frontend/public/icon-512.png | Bin 0 -> 16205 bytes frontend/public/manifest.json | 52 + frontend/public/manual/anafilaxia.md | 52 + frontend/public/manual/rcp-adulto.md | 80 + .../public/manual/urgencias-neurologicas.md | 54 + frontend/public/manual/valoracion-abcde.md | 56 + .../media/protocols/svb/rcp_tecnica.png | Bin 0 -> 60616 bytes .../protocols/conduccion/luces-sirena.yaml | 47 + .../tecnicas-conduccion-emergencias.yaml | 28 + .../alteraciones-psiquiatricas.yaml | 41 + .../protocols/emergencias/convulsiones.yaml | 74 + .../protocols/emergencias/hiperglucemia.yaml | 69 + .../emergencias/parto-emergencia.yaml | 88 + .../emergencias/politraumatismo.yaml | 43 + .../protocolo-emergencias-especificas.yaml | 38 + .../public/protocols/emergencias/shock.yaml | 54 + .../public/protocols/emergencias/sincope.yaml | 74 + .../emergencias/toxicologia-general.yaml | 87 + .../traumatismo-craneoencefalico.yaml | 49 + .../protocols/farmacologia/adrenalina.yaml | 81 + .../protocols/farmacologia/aspirina.yaml | 60 + .../protocols/farmacologia/glucagon.yaml | 65 + .../protocols/farmacologia/oxigeno.yaml | 95 + .../principios-administracion-farmacos.yaml | 80 + .../protocols/farmacologia/salbutamol.yaml | 74 + .../inmovilizacion/camilla-cuchara.yaml | 57 + .../camillas-sillas-evaluacion.yaml | 68 + .../inmovilizacion/cinturon-pelvico.yaml | 51 + .../inmovilizacion/colchon-vacio.yaml | 59 + .../inmovilizacion/collarin-cervical.yaml | 78 + .../errores-criticos-inmovilizacion.yaml | 45 + .../protocols/inmovilizacion/extricacion.yaml | 62 + .../inmovilizacion/ferula-traccion.yaml | 55 + .../protocols/inmovilizacion/ferulas.yaml | 62 + .../inmovilizacion/inmovilizacion-manual.yaml | 59 + .../inventario-material-inmovilizacion.yaml | 38 + .../inmovilizacion/tablero-espinal.yaml | 57 + .../transferencias-movilizacion.yaml | 51 + .../material-sanitario/aspiracion.yaml | 59 + .../material-sanitario/bioseguridad.yaml | 59 + .../protocols/material-sanitario/bvm.yaml | 59 + .../protocols/material-sanitario/canulas.yaml | 67 + .../comunicacion-operativa.yaml | 33 + .../material-sanitario/confort-dolor.yaml | 28 + .../control-hemorragias.yaml | 62 + .../documentacion-operativa.yaml | 32 + .../exposicion-termica.yaml | 42 + .../material-sanitario/glucometro.yaml | 59 + .../material-sanitario/heridas-vendajes.yaml | 55 + .../monitorizacion-basica.yaml | 56 + .../material-sanitario/quemaduras.yaml | 72 + .../senalizacion-iluminacion.yaml | 27 + .../material-sanitario/termometria.yaml | 48 + .../protocols/procedures/abcde-operativo.yaml | 99 + .../procedures/constantes-vitales.yaml | 97 + .../protocols/procedures/triage-start.yaml | 110 + .../soporte-vital/acceso-vascular-basico.yaml | 113 + .../soporte-vital/ovace-adultos.yaml | 109 + .../soporte-vital/ovace-lactantes.yaml | 87 + .../soporte-vital/ovace-pediatria.yaml | 78 + .../posicion-lateral-seguridad.yaml | 75 + .../protocols/soporte-vital/rcp-adulto.yaml | 127 + .../protocols/soporte-vital/rcp-adultos.yaml | 159 + .../soporte-vital/rcp-dos-intervinientes.yaml | 109 + .../soporte-vital/rcp-lactantes.yaml | 117 + .../soporte-vital/rcp-pediatria.yaml | 132 + .../soporte-vital/reconocimiento-pcr.yaml | 87 + .../protocols/soporte-vital/uso-desa.yaml | 113 + .../anafilaxia-telephone.yaml | 118 + .../comunicacion-coordinador.yaml | 120 + .../crisis-asmatica-telephone.yaml | 121 + .../transtelefonicos/desa-telephone.yaml | 113 + .../hipoglucemia-telephone.yaml | 136 + .../transtelefonicos/ictus-telephone.yaml | 124 + .../ovace-telephone-adult.yaml | 94 + .../ovace-telephone-infant.yaml | 108 + .../transtelefonicos/rcp-telephone-adult.yaml | 69 + .../rcp-telephone-infant.yaml | 103 + .../rcp-telephone-pediatric.yaml | 101 + .../transtelefonicos/sca-telephone.yaml | 90 + frontend/public/sw.js | 206 + frontend/src/App.tsx | 118 + frontend/src/components/layout/BottomNav.tsx | 43 + frontend/src/components/layout/Footer.tsx | 63 + frontend/src/components/layout/Header.tsx | 168 + .../src/components/layout/InstallBanner.tsx | 13 + frontend/src/components/layout/MenuSheet.tsx | 64 + .../src/components/layout/SearchModal.tsx | 133 + .../components/layout/UpdateNotification.tsx | 63 + .../components/tools/DecisionTreeViewer.tsx | 166 + .../src/components/tools/InfografiaViewer.tsx | 170 + .../src/components/tools/MarkdownViewer.tsx | 98 + .../src/components/ui/EmergencyButton.tsx | 50 + frontend/src/components/ui/PageLoader.tsx | 9 + frontend/src/components/ui/button.tsx | 38 + frontend/src/components/ui/card.tsx | 47 + frontend/src/data/calculators.ts | 215 + frontend/src/data/communication-scripts.ts | 66 + frontend/src/hooks/useFavorites.ts | 75 + frontend/src/hooks/useHistory.ts | 66 + frontend/src/hooks/useOfflineMode.ts | 64 + frontend/src/hooks/useProtocol.ts | 103 + frontend/src/hooks/useSearch.ts | 120 + frontend/src/index.css | 232 + frontend/src/main.tsx | 83 + frontend/src/pages/Acerca.tsx | 153 + frontend/src/pages/Ajustes.tsx | 200 + frontend/src/pages/AvisoLegal.tsx | 67 + frontend/src/pages/BurnCalculator.tsx | 174 + frontend/src/pages/Comunicacion.tsx | 133 + .../src/pages/DescargoResponsabilidad.tsx | 87 + frontend/src/pages/DoseCalculator.tsx | 210 + frontend/src/pages/Escena.tsx | 409 ++ frontend/src/pages/Farmacos.tsx | 261 + frontend/src/pages/Favoritos.tsx | 95 + frontend/src/pages/Galeria.tsx | 211 + frontend/src/pages/GlasgowCalculator.tsx | 186 + frontend/src/pages/Herramientas.tsx | 632 ++ frontend/src/pages/Historial.tsx | 110 + frontend/src/pages/Ictus.tsx | 241 + frontend/src/pages/Index.tsx | 192 + frontend/src/pages/ManualIndex.tsx | 308 + frontend/src/pages/ManualViewer.tsx | 103 + frontend/src/pages/Material.tsx | 286 + frontend/src/pages/NotFound.tsx | 29 + frontend/src/pages/Parto.tsx | 11 + frontend/src/pages/Patologias.tsx | 150 + frontend/src/pages/Privacidad.tsx | 184 + frontend/src/pages/Protocolo.tsx | 66 + frontend/src/pages/RCP.tsx | 516 ++ frontend/src/pages/Shock.tsx | 311 + frontend/src/pages/SoporteVital.tsx | 136 + frontend/src/pages/Telefono.tsx | 284 + frontend/src/pages/TriageStart.tsx | 202 + frontend/src/pages/Urgencias.tsx | 139 + frontend/src/pages/ViaAerea.tsx | 282 + frontend/src/protocols/ProtocolViewer.tsx | 136 + frontend/src/protocols/content/anafilaxia.md | 52 + frontend/src/protocols/content/rcp-adulto.md | 80 + .../protocols/yaml/VisualProtocolRenderer.tsx | 321 + frontend/src/protocols/yaml/anafilaxia.yaml | 149 + .../protocols/yaml/components/DrugCards.tsx | 80 + .../protocols/yaml/components/FaseBlocks.tsx | 159 + frontend/src/protocols/yaml/rcp-adulto.yaml | 111 + frontend/src/protocols/yaml/types.ts | 77 + frontend/src/protocols/yaml/useProtocol.ts | 308 + frontend/src/services/api.ts | 73 + frontend/tailwind.config.ts | 61 + frontend/vite.config.ts | 44 + promo-site/index.html | 213 + vikunja-tasks.md | 39 + 266 files changed, 30703 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100755 .gitignore create mode 100644 .planning/INVENTARIO_COMPLETO.md create mode 100644 .planning/PHASE-PLAN.md create mode 100644 .planning/ROADMAP.md create mode 100644 .planning/STATE.md create mode 100644 .planning/codebase/ARCHITECTURE.md create mode 100644 .planning/codebase/STACK.md create mode 100644 .planning/phases/08-paginas-esenciales/08-01-PLAN.md create mode 100644 .planning/phases/08-paginas-esenciales/08-02-PLAN.md create mode 100644 .planning/phases/08-paginas-esenciales/08-03-PLAN.md create mode 100644 .planning/phases/08-paginas-esenciales/08-04-PLAN.md create mode 100644 .planning/phases/08-paginas-esenciales/08-05-PLAN.md create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 backend/Dockerfile create mode 100644 backend/package-lock.json create mode 100644 backend/package.json create mode 100644 backend/src/app.ts create mode 100644 backend/src/application/usecases/GetAllProtocolsUseCase.ts create mode 100644 backend/src/application/usecases/GetProtocolByIdUseCase.ts create mode 100644 backend/src/config.ts create mode 100644 backend/src/domain/entities/ClinicalProtocol.ts create mode 100644 backend/src/domain/entities/TelephoneProtocol.ts create mode 100644 backend/src/domain/repositories/IProtocolRepository.ts create mode 100644 backend/src/index.ts create mode 100644 backend/src/infrastructure/database/models/ProtocolModel.ts create mode 100644 backend/src/infrastructure/http/controllers/ProtocolController.ts create mode 100644 backend/src/infrastructure/http/routes/protocol.routes.ts create mode 100644 backend/src/infrastructure/persistence/StaticProtocolRepository.ts create mode 100644 backend/src/migrateYamlToMongo.ts create mode 100644 backend/src/routes/auth.ts create mode 100644 backend/src/routes/content.ts create mode 100644 backend/src/routes/health.ts create mode 100755 backend/src/services/telephone-protocols.ts create mode 100644 backend/tsconfig.json create mode 100644 docker-compose.yml create mode 100644 frontend/.env.production create mode 100644 frontend/Dockerfile create mode 100644 frontend/docker-compose.yml create mode 100644 frontend/index.html create mode 100644 frontend/nginx.conf create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/postcss.config.js create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/.svg create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ABCDE_ERROR_01_SALTARSE_LETRAS.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ABCDE_IMAGEN_02_PRIORIDAD_VITAL.jpg create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ABCDE_IMAGEN_05_VISION_GLOBAL.jpg create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ABCDE_RESUMEN_FLUJO_MENTAL_CONTINUO.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ABCDE_SINTESIS_ESTRUCTURA_PROTECCION.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/abcde_introduccion_estructura_mental.svg create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/diagrama_flujo_start_triaje_es.svg create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/diagrama_seleccion_dispositivo_oxigenoterapia.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/el_orden_importa_maeious_que_la_velocidad.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/el_orden_importa_maeious_que_la_velocidad.webp create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/farmacologia_basica_visual.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/fast_transtelefonico.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/flujo_desa_telefono.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/flujo_rcp_transtelefonica.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/guia_colocacion_dispositivos_oxigenoterapia.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ovace_lactantes.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/ovace_pediatrica.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/priorizaciaeioun_vital_el_enfoque_abcde.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/priorizaciaeioun_vital_el_enfoque_abcde.webp create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/rcp_adulto_paso_a_paso.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/sistema_abcde_prioridades_emergencias.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/sistema_abcde_prioridades_emergencias.webp create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/tabla_dosis_pediatricas.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/tabla_escala_glasgow.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/tabla_rangos_fio2_oxigenoterapia.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/tabla_rangos_fio2_oxigenoterapia1.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/tabla_rangos_normales_constantes_vitales.png create mode 100755 frontend/public/assets/infografias/bloque-0-fundamentos/vias_administracion.png create mode 100755 frontend/public/assets/infografias/bloque-12-marco-legal/diagrama_decisiones_eticas.png create mode 100755 frontend/public/assets/infografias/bloque-12-marco-legal/diagrama_decisiones_eticas_urgencias.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_colchon_vacio_paso_a_paso.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_1_preparacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_2_parte_posterior.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_3_parte_anterior.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_4_ajuste_cierres.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_5_verificacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/colocacion_collarin_paso_6_liberacion_controlada.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/componentes_camilla_cuchara.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/componentes_colchon_vacio.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/componentes_sistema_inmovilizacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/componentes_tablero_espinal.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/coordinacion_equipo_inmovilizacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/errores_frecuentes_collarin_cervical.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/posicion_tes_inmovilizacion_manual.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/secuencia_transicion_inmovilizacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/seleccion_talla_collarin_cervical.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/seleccion_talla_collarin_cervical1.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/seleccion_talla_collarin_error_demasiado_grande.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/seleccion_talla_collarin_medicion_anatomica.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/seleccion_talla_collarin_tabla_tallas.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/situaciones_que_requieren_inmovilizacion.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/tecnica_sujecion_manual_cervical.png create mode 100755 frontend/public/assets/infografias/bloque-2-inmovilizacion/verificaciones_post_colocacion_collarin.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/canulas_guedel_nasofaringea.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/configuracion_maxima_fio2_bolsa_mascarilla.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/dispositivos_supragloticos_guia.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/interpretacion_constantes_semaforo.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/registro_constantes_vitales.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/uso_correcto_ambu.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/uso_correcto_pulsioximetro.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/uso_correcto_tensiometro.png create mode 100755 frontend/public/assets/infografias/bloque-3-material-sanitario/ventilacion_medios_fortuna.png create mode 100755 frontend/public/assets/infografias/bloque-4-rcp/algoritmo_rcp_comentado.png create mode 100755 frontend/public/assets/infografias/bloque-4-rcp/algoritmo_rcp_comentado.svg create mode 100755 frontend/public/assets/infografias/bloque-4-rcp/introduccion_rcp_adulto_svb.png create mode 100755 frontend/public/assets/infografias/bloque-7-conduccion/configuracion_gps_antes_de_salir.png create mode 100644 frontend/public/icon-192.png create mode 100644 frontend/public/icon-512.png create mode 100644 frontend/public/manifest.json create mode 100644 frontend/public/manual/anafilaxia.md create mode 100644 frontend/public/manual/rcp-adulto.md create mode 100644 frontend/public/manual/urgencias-neurologicas.md create mode 100644 frontend/public/manual/valoracion-abcde.md create mode 100644 frontend/public/media/protocols/svb/rcp_tecnica.png create mode 100644 frontend/public/protocols/conduccion/luces-sirena.yaml create mode 100644 frontend/public/protocols/conduccion/tecnicas-conduccion-emergencias.yaml create mode 100644 frontend/public/protocols/emergencias/alteraciones-psiquiatricas.yaml create mode 100644 frontend/public/protocols/emergencias/convulsiones.yaml create mode 100644 frontend/public/protocols/emergencias/hiperglucemia.yaml create mode 100644 frontend/public/protocols/emergencias/parto-emergencia.yaml create mode 100644 frontend/public/protocols/emergencias/politraumatismo.yaml create mode 100644 frontend/public/protocols/emergencias/protocolo-emergencias-especificas.yaml create mode 100644 frontend/public/protocols/emergencias/shock.yaml create mode 100644 frontend/public/protocols/emergencias/sincope.yaml create mode 100644 frontend/public/protocols/emergencias/toxicologia-general.yaml create mode 100644 frontend/public/protocols/emergencias/traumatismo-craneoencefalico.yaml create mode 100644 frontend/public/protocols/farmacologia/adrenalina.yaml create mode 100644 frontend/public/protocols/farmacologia/aspirina.yaml create mode 100644 frontend/public/protocols/farmacologia/glucagon.yaml create mode 100644 frontend/public/protocols/farmacologia/oxigeno.yaml create mode 100644 frontend/public/protocols/farmacologia/principios-administracion-farmacos.yaml create mode 100644 frontend/public/protocols/farmacologia/salbutamol.yaml create mode 100644 frontend/public/protocols/inmovilizacion/camilla-cuchara.yaml create mode 100644 frontend/public/protocols/inmovilizacion/camillas-sillas-evaluacion.yaml create mode 100644 frontend/public/protocols/inmovilizacion/cinturon-pelvico.yaml create mode 100644 frontend/public/protocols/inmovilizacion/colchon-vacio.yaml create mode 100644 frontend/public/protocols/inmovilizacion/collarin-cervical.yaml create mode 100644 frontend/public/protocols/inmovilizacion/errores-criticos-inmovilizacion.yaml create mode 100644 frontend/public/protocols/inmovilizacion/extricacion.yaml create mode 100644 frontend/public/protocols/inmovilizacion/ferula-traccion.yaml create mode 100644 frontend/public/protocols/inmovilizacion/ferulas.yaml create mode 100644 frontend/public/protocols/inmovilizacion/inmovilizacion-manual.yaml create mode 100644 frontend/public/protocols/inmovilizacion/inventario-material-inmovilizacion.yaml create mode 100644 frontend/public/protocols/inmovilizacion/tablero-espinal.yaml create mode 100644 frontend/public/protocols/inmovilizacion/transferencias-movilizacion.yaml create mode 100644 frontend/public/protocols/material-sanitario/aspiracion.yaml create mode 100644 frontend/public/protocols/material-sanitario/bioseguridad.yaml create mode 100644 frontend/public/protocols/material-sanitario/bvm.yaml create mode 100644 frontend/public/protocols/material-sanitario/canulas.yaml create mode 100644 frontend/public/protocols/material-sanitario/comunicacion-operativa.yaml create mode 100644 frontend/public/protocols/material-sanitario/confort-dolor.yaml create mode 100644 frontend/public/protocols/material-sanitario/control-hemorragias.yaml create mode 100644 frontend/public/protocols/material-sanitario/documentacion-operativa.yaml create mode 100644 frontend/public/protocols/material-sanitario/exposicion-termica.yaml create mode 100644 frontend/public/protocols/material-sanitario/glucometro.yaml create mode 100644 frontend/public/protocols/material-sanitario/heridas-vendajes.yaml create mode 100644 frontend/public/protocols/material-sanitario/monitorizacion-basica.yaml create mode 100644 frontend/public/protocols/material-sanitario/quemaduras.yaml create mode 100644 frontend/public/protocols/material-sanitario/senalizacion-iluminacion.yaml create mode 100644 frontend/public/protocols/material-sanitario/termometria.yaml create mode 100644 frontend/public/protocols/procedures/abcde-operativo.yaml create mode 100644 frontend/public/protocols/procedures/constantes-vitales.yaml create mode 100644 frontend/public/protocols/procedures/triage-start.yaml create mode 100644 frontend/public/protocols/soporte-vital/acceso-vascular-basico.yaml create mode 100644 frontend/public/protocols/soporte-vital/ovace-adultos.yaml create mode 100644 frontend/public/protocols/soporte-vital/ovace-lactantes.yaml create mode 100644 frontend/public/protocols/soporte-vital/ovace-pediatria.yaml create mode 100644 frontend/public/protocols/soporte-vital/posicion-lateral-seguridad.yaml create mode 100644 frontend/public/protocols/soporte-vital/rcp-adulto.yaml create mode 100644 frontend/public/protocols/soporte-vital/rcp-adultos.yaml create mode 100644 frontend/public/protocols/soporte-vital/rcp-dos-intervinientes.yaml create mode 100644 frontend/public/protocols/soporte-vital/rcp-lactantes.yaml create mode 100644 frontend/public/protocols/soporte-vital/rcp-pediatria.yaml create mode 100644 frontend/public/protocols/soporte-vital/reconocimiento-pcr.yaml create mode 100644 frontend/public/protocols/soporte-vital/uso-desa.yaml create mode 100644 frontend/public/protocols/transtelefonicos/anafilaxia-telephone.yaml create mode 100644 frontend/public/protocols/transtelefonicos/comunicacion-coordinador.yaml create mode 100644 frontend/public/protocols/transtelefonicos/crisis-asmatica-telephone.yaml create mode 100644 frontend/public/protocols/transtelefonicos/desa-telephone.yaml create mode 100644 frontend/public/protocols/transtelefonicos/hipoglucemia-telephone.yaml create mode 100644 frontend/public/protocols/transtelefonicos/ictus-telephone.yaml create mode 100644 frontend/public/protocols/transtelefonicos/ovace-telephone-adult.yaml create mode 100644 frontend/public/protocols/transtelefonicos/ovace-telephone-infant.yaml create mode 100644 frontend/public/protocols/transtelefonicos/rcp-telephone-adult.yaml create mode 100644 frontend/public/protocols/transtelefonicos/rcp-telephone-infant.yaml create mode 100644 frontend/public/protocols/transtelefonicos/rcp-telephone-pediatric.yaml create mode 100644 frontend/public/protocols/transtelefonicos/sca-telephone.yaml create mode 100644 frontend/public/sw.js create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/components/layout/BottomNav.tsx create mode 100644 frontend/src/components/layout/Footer.tsx create mode 100644 frontend/src/components/layout/Header.tsx create mode 100644 frontend/src/components/layout/InstallBanner.tsx create mode 100644 frontend/src/components/layout/MenuSheet.tsx create mode 100644 frontend/src/components/layout/SearchModal.tsx create mode 100644 frontend/src/components/layout/UpdateNotification.tsx create mode 100644 frontend/src/components/tools/DecisionTreeViewer.tsx create mode 100644 frontend/src/components/tools/InfografiaViewer.tsx create mode 100644 frontend/src/components/tools/MarkdownViewer.tsx create mode 100644 frontend/src/components/ui/EmergencyButton.tsx create mode 100644 frontend/src/components/ui/PageLoader.tsx create mode 100644 frontend/src/components/ui/button.tsx create mode 100644 frontend/src/components/ui/card.tsx create mode 100644 frontend/src/data/calculators.ts create mode 100644 frontend/src/data/communication-scripts.ts create mode 100644 frontend/src/hooks/useFavorites.ts create mode 100644 frontend/src/hooks/useHistory.ts create mode 100644 frontend/src/hooks/useOfflineMode.ts create mode 100644 frontend/src/hooks/useProtocol.ts create mode 100644 frontend/src/hooks/useSearch.ts create mode 100644 frontend/src/index.css create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/pages/Acerca.tsx create mode 100644 frontend/src/pages/Ajustes.tsx create mode 100644 frontend/src/pages/AvisoLegal.tsx create mode 100644 frontend/src/pages/BurnCalculator.tsx create mode 100644 frontend/src/pages/Comunicacion.tsx create mode 100644 frontend/src/pages/DescargoResponsabilidad.tsx create mode 100644 frontend/src/pages/DoseCalculator.tsx create mode 100644 frontend/src/pages/Escena.tsx create mode 100644 frontend/src/pages/Farmacos.tsx create mode 100644 frontend/src/pages/Favoritos.tsx create mode 100644 frontend/src/pages/Galeria.tsx create mode 100644 frontend/src/pages/GlasgowCalculator.tsx create mode 100644 frontend/src/pages/Herramientas.tsx create mode 100644 frontend/src/pages/Historial.tsx create mode 100644 frontend/src/pages/Ictus.tsx create mode 100644 frontend/src/pages/Index.tsx create mode 100644 frontend/src/pages/ManualIndex.tsx create mode 100644 frontend/src/pages/ManualViewer.tsx create mode 100644 frontend/src/pages/Material.tsx create mode 100644 frontend/src/pages/NotFound.tsx create mode 100644 frontend/src/pages/Parto.tsx create mode 100644 frontend/src/pages/Patologias.tsx create mode 100644 frontend/src/pages/Privacidad.tsx create mode 100644 frontend/src/pages/Protocolo.tsx create mode 100644 frontend/src/pages/RCP.tsx create mode 100644 frontend/src/pages/Shock.tsx create mode 100644 frontend/src/pages/SoporteVital.tsx create mode 100644 frontend/src/pages/Telefono.tsx create mode 100644 frontend/src/pages/TriageStart.tsx create mode 100644 frontend/src/pages/Urgencias.tsx create mode 100644 frontend/src/pages/ViaAerea.tsx create mode 100644 frontend/src/protocols/ProtocolViewer.tsx create mode 100644 frontend/src/protocols/content/anafilaxia.md create mode 100644 frontend/src/protocols/content/rcp-adulto.md create mode 100644 frontend/src/protocols/yaml/VisualProtocolRenderer.tsx create mode 100644 frontend/src/protocols/yaml/anafilaxia.yaml create mode 100644 frontend/src/protocols/yaml/components/DrugCards.tsx create mode 100644 frontend/src/protocols/yaml/components/FaseBlocks.tsx create mode 100644 frontend/src/protocols/yaml/rcp-adulto.yaml create mode 100644 frontend/src/protocols/yaml/types.ts create mode 100644 frontend/src/protocols/yaml/useProtocol.ts create mode 100644 frontend/src/services/api.ts create mode 100644 frontend/tailwind.config.ts create mode 100644 frontend/vite.config.ts create mode 100644 promo-site/index.html create mode 100644 vikunja-tasks.md diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..5033595d --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,33 @@ +name: Deploy Código 0 + +on: + push: + branches: [ main, master ] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'npm' + cache-dependency-path: './frontend/package-lock.json' + + - name: Deploy to VPS via Docker SSH + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USER }} + key: ${{ secrets.SSH_KEY }} + passphrase: ${{ secrets.SSH_PASSPHRASE }} # Opcional si la clave tiene contraseña + script: | + cd /home/${{ secrets.SSH_USER }}/Proyectos/Proyectos\ en\ Desarrollo/codigo0-nuevo + git pull origin main + docker compose build + docker compose up -d + docker system prune -f # Limpieza opcional de imágenes huérfanas diff --git a/.gitignore b/.gitignore new file mode 100755 index 00000000..a227e0e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,69 @@ +# Dependencies +node_modules +admin-panel/node_modules/ +backend/node_modules/ + +# Environment variables +.env +.env.local +.env.*.local +backend/.env + +# Build outputs +dist +build +.admin-panel/dist +backend/dist + +# Runtime data +*.log +logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# Coverage directory +coverage +.nyc_output + +# Editor directories and files +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.idea +*.swp +*.swo +*~ + +# OS generated files +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db + +# Contexto de IA +.ai/ +*.ai.md +.ai-assistant.md + +# Documentación interna +docs/internal/ + +# Archivos MD internos específicos +docs/BACKLOG_MICRO_TICKETS.md +docs/QUE_FALTA.md +docs/CONTENIDO_FALTANTE.md +SPEC.md +README_TODO.md +auditoria-assets-completa.md +MEDIOS_REALES_NECESARIOS_FILTRADO.md + +# Temporary files +tmp +temp diff --git a/.planning/INVENTARIO_COMPLETO.md b/.planning/INVENTARIO_COMPLETO.md new file mode 100644 index 00000000..c013e654 --- /dev/null +++ b/.planning/INVENTARIO_COMPLETO.md @@ -0,0 +1,175 @@ +# INVENTARIO COMPLETO - Proyecto Original vs Nuevo + +## Resumen + +**Total Bloques:** 18 directorios +**Total Archivos MD:** ~100+ + +--- + +## 1. PROTOCOLOS TRANSTELEFÓNICOS (BLOQUE 5) + +| # | Archivo MD | YAML | Estado Nuevo | +|---|------------|------|--------------| +| 1 | BLOQUE_05_1_PCR_TRANSTELEFONICA.md | ❌ | Falta | +| 2 | BLOQUE_05_2_OVACE_TRANSTELEFONICA.md | ❌ | Falta | +| 3 | BLOQUE_05_3_SCA_TRANSTELEFONICO.md | ❌ | Falta | +| 4 | BLOQUE_05_4_ICTUS_TRANSTELEFONICO.md | ❌ | Falta | +| 5 | BLOQUE_05_5_ANAFILAXIA_TRANSTELEFONICA.md | ❌ | Falta | +| 6 | BLOQUE_05_6_CRISIS_ASMATICA_TRANSTELEFONICA.md | ❌ | Falta | +| 7 | BLOQUE_05_7_HIPOGLUCEMIA_TRANSTELEFONICA.md | ❌ | Falta | +| 8 | BLOQUE_05_8_COMUNICACION_COORDINADOR.md | ❌ | Falta | +| 9 | BLOQUE_05_9_PROTOCOLOS_EMERGENCIAS_ESPECIFICAS.md | ❌ | Falta | + +**→ Total Transtelefónicos: 9 protocolos** + +--- + +## 2. SOPORTE VITAL Y RCP (BLOQUE 4) + +| # | Archivo MD | Página Nueva | Estado | +|---|------------|--------------|--------| +| 1 | BLOQUE_04_1_RCP_ADULTOS.md | RCP.tsx | ⚠️ Mockeado | +| 2 | BLOQUE_04_2_RCP_PEDIATRIA.md | RCP.tsx | ❌ Falta | +| 3 | BLOQUE_04_3_RCP_LACTANTES.md | RCP.tsx | ❌ Falta | +| 4 | BLOQUE_04_4_USO_DESA.md | - | ❌ Falta | +| 5 | BLOQUE_04_5_RCP_DOS_INTERVINIENTES.md | - | ❌ Falta | +| 6 | BLOQUE_04_6_OVACE_ADULTOS.md | - | ❌ Falta | +| 7 | BLOQUE_04_7_OVACE_PEDIATRIA.md | - | ❌ Falta | +| 8 | BLOQUE_04_8_OVACE_LACTANTES.md | - | ❌ Falta | +| 9 | BLOQUE_04_9_POSICION_LATERAL_SEGURIDAD.md | - | ❌ Falta | +| 10 | BLOQUE_04_0_RECONOCIMIENTO_PCR.md | - | ❌ Falta | +| 11 | BLOQUE_04_10_ACCESO_VASCULAR_BASICO.md | - | ❌ Falta | + +**→ Total Soporte Vital: 11 guías/protocolos** + +--- + +## 3. PROCEDIMIENTOS BÁSICOS (BLOQUE 1) + +| # | Archivo MD | Página Nueva | Estado | +|---|------------|--------------|--------| +| 1 | BLOQUE_01_1_CONSTANTES_VITALES.md | Escena.tsx | ❌ Falta | +| 2 | BLOQUE_01_2_ABCDE_OPERATIVO.md | Escena.tsx | ❌ Falta | +| 3 | BLOQUE_01_3_GLASGOW_OPERATIVO.md | Herramientas.tsx | ✅ Calculadora | +| 4 | BLOQUE_01_4_TRIAGE_START.md | - | ❌ Falta | + +**→ Total Procedimientos: 4** + +--- + +## 4. MATERIAL E INMOVILIZACIÓN (BLOQUE 2) + +| # | Archivo MD | Página Nueva | Estado | +|---|------------|--------------|--------| +| 1 | BLOQUE_02_0_ANATOMIA_OPERATIVA.md | - | ❌ Falta | +| 2 | BLOQUE_02_2_INMOVILIZACION_MANUAL.md | Material.tsx | ❌ Falta | +| 3 | BLOQUE_02_3_COLLARIN_CERVICAL.md | ViaAerea.tsx | ❌ Falta | +| 4 | BLOQUE_02_4_CAMILLA_CUCHARA.md | Material.tsx | ❌ Falta | +| 5 | BLOQUE_02_5_TABLERO_ESPINAL.md | Material.tsx | ❌ Falta | +| 6 | BLOQUE_02_6_COLCHON_VACIO.md | Material.tsx | ❌ Falta | +| 7 | BLOQUE_02_7_EXTRICACION_MOVIMIENTOS_BLOQUE.md | - | ❌ Falta | +| 8 | BLOQUE_02_8_TRANSFERENCIAS_MOVILIZACION.md | - | ❌ Falta | +| 9 | BLOQUE_02_9_ERRORES_CRITICOS.md | - | ❌ Falta | +| 10 | BLOQUE_02_10_FERULAS.md | - | ❌ Falta | +| 11 | BLOQUE_02_11_CINTURON_PELVICO.md | - | ❌ Falta | +| 12 | BLOQUE_02_12_FERULA_TRACCION.md | - | ❌ Falta | +| 13 | BLOQUE_02_13_CAMILLAS_SILLAS_EVACUACION.md | - | ❌ Falta | +| 14 | BLOQUE_02_14_INVENTARIO_MATERIAL.md | - | ❌ Falta | + +**→ Total Material: 14** + +--- + +## 5. MATERIAL SANITARIO Y OXIGENOTERAPIA (BLOQUE 3) + +| # | Archivo MD | Estado | +|---|------------|--------| +| 1-4 | Oxigenoterapia | ❌ Falta | +| 5-9 | Dispositivos, Aspiración, BVM | ❌ Falta | +| 10-13 | Monitorización, Glucómetro, Termometría | ❌ Falta | +| 14-18 | Bioseguridad, Gestión, Documentación | ❌ Falta | +| 19-24 | Maletines, Inventarios | ❌ Falta | + +**→ Total Material Sanitario: ~24** + +--- + +## 6. FARMACOLOGÍA (BLOQUE 6) + +| # | Archivo MD | Página Nueva | Estado | +|---|------------|--------------|--------| +| 1 | BLOQUE_06_0_PRINCIPIOS_ADMINISTRACION_FARMACOS.md | - | ❌ Falta | +| 2 | BLOQUE_06_1_VADEMECUM_OPERATIVO.md | Farmacos.tsx | ✅ Existe | +| 3 | BLOQUE_06_2_OXIGENO_ADMINISTRACION_Y_SEGURIDAD.md | - | ❌ Falta | +| 4 | BLOQUE_06_3_ADRENALINA_USO_ANAFILAXIA_Y_RCP.md | - | ❌ Falta | +| 5 | BLOQUE_06_4_ASPIRINA_USO_SCA.md | - | ❌ Falta | +| 6 | BLOQUE_06_5_GLUCAGON_USO_HIPOGLUCEMIA.md | - | ❌ Falta | +| 7 | BLOQUE_06_6_SALBUTAMOL_USO_CRISIS_ASMATICA.md | - | ❌ Falta | +| 8 | BLOQUE_06_7_ABREVIATURAS_TERMINOLOGIA_FARMACOLOGICA.md | - | ❌ Falta | + +**→ Total Farmacología: 8** + +--- + +## 7. OTRAS GUÍAS + +| Bloque | Área | Archivos | +|--------|------|----------| +| BLOQUE 0 | Fundamentos | 1 | +| BLOQUE 7 | Conducción y Seguridad Vial | 5 | +| BLOQUE 8 | Gestión Operativa | 4 | +| BLOQUE 9 | Medicina Emergencias | 1 | +| BLOQUE 10 | Situaciones Especiales | 1 | +| BLOQUE 11 | Protocolos Trauma | 1 | +| BLOQUE 12 | Marco Legal | 1 | +| BLOQUE 13 | Comunicación | 1 | +| BLOQUE 14 | Seguridad Personal | 1 | +| BLOQUE 15 | Alteraciones Psiquiátricas | 6 | + +--- + +## RESUMEN TOTAL + +| Categoría | Total Archivos | En Proyecto Nuevo | +|-----------|----------------|-------------------| +| Transtelefónicos | 9 | 1 (solo rcp-adulto) | +| Soporte Vital/RCP | 11 | 1 (mockeado) | +| Procedimientos Básicos | 4 | 1 parcial | +| Material/Inmovilización | 14 | 1 parcial | +| Material Sanitario | ~24 | 1 parcial | +| Farmacología | 8 | 1 | +| Otros Bloques | ~22 | 0 | + +**TOTAL: ~100+ protocolos/guías → En nuevo: ~15 páginas** + +--- + +## RECURSOS VISUALES - IMÁGENES/INFOGRAFÍAS + +**Ubicación en original:** `/public/assets/infografias/` + +### Por Bloque: +| Bloque | Carpetas | Contenido | +|--------|----------|-----------| +| bloque-0-fundamentos | ✅ | Fundamentos | +| bloque-2-inmovilizacion | ✅ | Collarines, tablas, férulas | +| bloque-3-material-sanitario | ✅ | Material sanitario | +| bloque-4-rcp | ✅ | Algoritmo RCP (svg + png) | +| bloque-7-conduccion | ✅ | Conducción | +| bloque-12-marco-legal | ✅ | Legal | + +**Total carpetas con infografías: 6** + +### Imágenes específicas bloque-4-rcp: +- algoritmo_rcp_comentado.png +- algoritmo_rcp_comentado.svg +- introduccion_rcp_adulto_svb.png + +--- + +## RECURSOS VISUALES - VIDEOS + +**Buscar en archivos MD:** patrones `