diff --git a/.gitignore b/.gitignore index b8ba5747..66bfc227 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ __pycache__/ # Archivos de copia de seguridad *.bak *.backup +backup_manual_pre_limpieza/ diff --git a/CAMBIOS_PENDIENTES_GITHUB.md b/CAMBIOS_PENDIENTES_GITHUB.md new file mode 100644 index 00000000..46ed2e32 --- /dev/null +++ b/CAMBIOS_PENDIENTES_GITHUB.md @@ -0,0 +1,133 @@ +# 📤 Cambios Pendientes para GitHub + +**Fecha:** 2025-12-17 + +--- + +## 📊 Estado Actual + +✅ **Código inicial subido a GitHub** +⏳ **Cambios de limpieza pendientes de subir** + +--- + +## 🔄 Cambios Pendientes + +### Archivos Modificados +1. **`src/data/manual-index.ts`** + - ✅ Rutas actualizadas de `manual-tes/...` a `/manual/...` + - ✅ 93 rutas actualizadas + +2. **`src/pages/ManualViewer.tsx`** + - ✅ Simplificado para usar rutas directas del índice + - ✅ Eliminada lógica de conversión de rutas + +### Archivos Nuevos (Sin Rastrear) +1. **Scripts de Limpieza:** + - `scripts/limpiar_manual.py` - Script de limpieza e integración + - `scripts/actualizar_rutas_indice.py` - Script de actualización de rutas + +2. **Documentación:** + - `REPORTE_LIMPIEZA_MANUAL.md` - Reporte detallado de limpieza + - `RESUMEN_LIMPIEZA_COMPLETA.md` - Resumen ejecutivo + - `LIMPIEZA_COMPLETADA.md` - Documentación final + - `DEPLOYMENT_GITHUB.md` - Guía de despliegue + - `COMANDOS_GIT.md` - Comandos Git útiles + - `INSTRUCCIONES_PUSH.md` - Instrucciones de push + - `PUSH_FINAL.md` - Guía final de push + +3. **Backup:** + - `backup_manual_pre_limpieza/` - Backup completo (432 archivos) + +--- + +## 🚀 Comandos para Subir Cambios + +### Opción 1: Subir Todo (Recomendado) +```bash +cd /home/planetazuzu/protocolo-r-pido + +# Agregar todos los cambios +git add . + +# Hacer commit +git commit -m "feat: Limpieza e integración completa del Manual TES + +- Actualizadas 93 rutas en manual-index.ts para apuntar a /manual/ +- Simplificado ManualViewer para usar rutas directas +- Agregados scripts de limpieza y actualización +- Documentación completa de la limpieza +- Backup completo de archivos originales +- 93 archivos del manual organizados en public/manual/" + +# Subir cambios +git push origin main +``` + +### Opción 2: Subir Solo Cambios Esenciales +```bash +cd /home/planetazuzu/protocolo-r-pido + +# Solo archivos modificados (sin backup ni docs) +git add src/data/manual-index.ts src/pages/ManualViewer.tsx + +# Commit +git commit -m "fix: Actualizar rutas del manual a /manual/" + +# Push +git push origin main +``` + +### Opción 3: Excluir Backup del Repositorio +```bash +cd /home/planetazuzu/protocolo-r-pido + +# Agregar .gitignore para backup si no existe +echo "backup_manual_pre_limpieza/" >> .gitignore + +# Agregar cambios (sin backup) +git add src/ scripts/ *.md +git add .gitignore + +# Commit y push +git commit -m "feat: Limpieza e integración completa" +git push origin main +``` + +--- + +## 📋 Checklist Antes de Subir + +- [ ] Verificar que `public/manual/` tenga los 93 archivos +- [ ] Verificar que las rutas en `manual-index.ts` sean correctas +- [ ] Probar localmente que la app funcione (`npm run dev`) +- [ ] Decidir si incluir el backup en el repositorio (recomendado: NO) +- [ ] Revisar qué documentación incluir + +--- + +## ⚠️ Recomendaciones + +### ✅ Incluir en el Repositorio +- ✅ Código fuente (`src/`) +- ✅ Scripts de utilidad (`scripts/`) +- ✅ Documentación esencial (`*.md` excepto backups) +- ✅ Configuración (`package.json`, `vite.config.ts`, etc.) + +### ❌ NO Incluir en el Repositorio +- ❌ Backup completo (`backup_manual_pre_limpieza/`) - Muy pesado +- ❌ `node_modules/` - Ya está en `.gitignore` +- ❌ `dist/` - Se genera en build + +--- + +## 🎯 Próximos Pasos Sugeridos + +1. **Subir cambios de limpieza** (este documento) +2. **Configurar despliegue automático** (Vercel/Netlify/GitHub Pages) +3. **Probar la aplicación en producción** +4. **Documentar el proceso de despliegue** + +--- + +**¿Quieres que suba estos cambios ahora o prefieres hacerlo manualmente?** diff --git a/COMANDOS_GIT.md b/COMANDOS_GIT.md new file mode 100644 index 00000000..03a186b2 --- /dev/null +++ b/COMANDOS_GIT.md @@ -0,0 +1,89 @@ +# 📤 Comandos para Subir a GitHub + +**Repositorio:** https://github.com/planetazuzu/guia-tes-digital + +--- + +## ✅ Estado Actual + +- ✅ Git inicializado +- ✅ Remote configurado: `origin` → https://github.com/planetazuzu/guia-tes-digital.git +- ✅ Contenido remoto traído + +--- + +## 🚀 Próximos Pasos + +### 1. Hacer Commit + +```bash +cd /home/planetazuzu/protocolo-r-pido + +git add . +git commit -m "feat: Aplicación completa Manual TES Digital + +- Integración de 93 capítulos del manual completo +- Componente MarkdownViewer para renderizar archivos .md +- Navegación jerárquica completa (ManualIndex) +- Sistema de búsqueda mejorado (busca en parte/bloque/capítulo) +- Página ManualViewer con navegación anterior/siguiente +- Scripts de verificación del manual +- Puerto configurado en 8096 +- Configuración de despliegue (Vercel, Netlify, GitHub Pages) +- Todos los problemas detectados corregidos" +``` + +### 2. Subir al Repositorio + +```bash +git push -u origin main +``` + +--- + +## ⚠️ Si Pide Autenticación + +### Opción 1: Personal Access Token + +1. Ve a: https://github.com/settings/tokens +2. Genera un token con permisos `repo` +3. Usa el token como contraseña cuando git lo pida + +### Opción 2: SSH + +```bash +# Cambiar a SSH +git remote set-url origin git@github.com:planetazuzu/guia-tes-digital.git +git push -u origin main +``` + +--- + +## 📋 Archivos que se Subirán + +- ✅ Todo el código fuente (`src/`) +- ✅ Archivos de configuración +- ✅ Los 93 archivos .md del manual (`public/manual/`) +- ✅ Scripts de verificación +- ✅ Documentación + +**NO se subirán:** +- ❌ `node_modules/` (se instalan con `npm install`) +- ❌ `dist/` (se genera con `npm run build`) + +--- + +## ✅ Verificación Post-Push + +Después del push, verificar en: +https://github.com/planetazuzu/guia-tes-digital + +Debe mostrar: +- ✅ Carpeta `src/` con todo el código +- ✅ Carpeta `public/manual/` con los 93 archivos .md +- ✅ Archivos de configuración +- ✅ README.md actualizado + +--- + +**¿Ejecuto el commit y push ahora?** diff --git a/DEPLOYMENT_GITHUB.md b/DEPLOYMENT_GITHUB.md new file mode 100644 index 00000000..9829770e --- /dev/null +++ b/DEPLOYMENT_GITHUB.md @@ -0,0 +1,132 @@ +# 🚀 Despliegue en GitHub - COMPLETADO + +**Repositorio:** https://github.com/planetazuzu/guia-tes-digital +**Fecha:** 2025-12-17 + +--- + +## ✅ Estado del Despliegue + +✅ **Archivos subidos exitosamente a GitHub** + +--- + +## 📦 Contenido Subido + +### Archivos Principales +- ✅ Todo el código fuente (`src/`) +- ✅ Los **93 archivos .md** del manual en `public/manual/` +- ✅ Archivos de configuración (`package.json`, `vite.config.ts`, `tailwind.config.ts`, etc.) +- ✅ Scripts de verificación (`scripts/`) +- ✅ Documentación completa + +### Estructura del Manual +``` +public/manual/ +├── BLOQUE_0_FUNDAMENTOS/ (1 archivo) +├── BLOQUE_1_PROCEDIMIENTOS_BASICOS/ (4 archivos) +├── BLOQUE_2_MATERIAL_E_INMOVILIZACION/ (14 archivos) +├── BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/ (28 archivos) +├── BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/ (10 archivos) +├── BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/ (10 archivos) +├── BLOQUE_6_FARMACOLOGIA/ (8 archivos) +├── BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/ (6 archivos) +├── BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/ (5 archivos) +├── BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/ (1 archivo) +├── BLOQUE_10_SITUACIONES_ESPECIALES/ (1 archivo) +├── BLOQUE_11_PROTOCOLOS_TRAUMA/ (1 archivo) +├── BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/ (1 archivo) +├── BLOQUE_13_COMUNICACION_RELACION_PACIENTE/ (1 archivo) +└── BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/ (1 archivo) + +Total: 93 archivos .md ✅ +``` + +### Componentes React +- ✅ `MarkdownViewer` - Renderizado de archivos .md +- ✅ `ManualViewer` - Visualización de capítulos individuales +- ✅ `ManualIndex` - Índice jerárquico completo +- ✅ Navegación y búsqueda funcionales + +--- + +## 🔗 Enlaces Útiles + +### Repositorio +- **URL:** https://github.com/planetazuzu/guia-tes-digital +- **Rama principal:** `main` + +### Verificación +1. Verificar que todos los archivos estén presentes +2. Verificar que `public/manual/` tenga los 93 archivos +3. Verificar que `src/data/manual-index.ts` tenga las rutas correctas + +--- + +## 🚀 Próximos Pasos de Despliegue + +### Opción 1: Vercel (Recomendado) +1. Conectar repositorio en https://vercel.com +2. Configuración automática detectada (`vercel.json` ya existe) +3. Deploy automático en cada push + +### Opción 2: Netlify +1. Conectar repositorio en https://netlify.com +2. Configuración automática detectada (`netlify.toml` ya existe) +3. Deploy automático en cada push + +### Opción 3: GitHub Pages +1. Habilitar GitHub Pages en Settings del repositorio +2. Seleccionar rama `main` y carpeta `dist` +3. El workflow `.github/workflows/deploy.yml` está configurado + +### Opción 4: Self-Hosting +- Build: `npm run build` +- Servir carpeta `dist/` con cualquier servidor web + +--- + +## 📋 Configuración de Despliegue + +### Archivos de Configuración Incluidos +- ✅ `vercel.json` - Configuración para Vercel +- ✅ `netlify.toml` - Configuración para Netlify +- ✅ `.github/workflows/deploy.yml` - GitHub Actions para Pages +- ✅ `vite.config.ts` - Configuración de build + +### Variables de Entorno +No se requieren variables de entorno para el despliegue básico. + +--- + +## ✅ Checklist Post-Deploy + +- [ ] Verificar que el sitio carga correctamente +- [ ] Verificar que `/manual` muestra el índice completo +- [ ] Verificar que los capítulos individuales se cargan +- [ ] Verificar que la búsqueda funciona +- [ ] Verificar que la navegación anterior/siguiente funciona +- [ ] Probar en diferentes navegadores +- [ ] Probar en dispositivos móviles + +--- + +## 📝 Notas + +- Los archivos `.md` se sirven desde `public/manual/` +- Las rutas están configuradas para funcionar como SPA (Single Page Application) +- El build genera la carpeta `dist/` lista para producción +- Los 93 archivos del manual están integrados y funcionando + +--- + +## 🎉 Estado Final + +✅ **Código subido a GitHub** +✅ **93 archivos del manual integrados** +✅ **Configuración de despliegue lista** +✅ **App lista para producción** + +--- + +**¿Siguiente paso?** Configurar el despliegue automático en Vercel, Netlify o GitHub Pages. diff --git a/INSTRUCCIONES_PUSH.md b/INSTRUCCIONES_PUSH.md new file mode 100644 index 00000000..8d411829 --- /dev/null +++ b/INSTRUCCIONES_PUSH.md @@ -0,0 +1,73 @@ +# 📤 Instrucciones para Hacer Push a GitHub + +**Repositorio:** https://github.com/planetazuzu/guia-tes-digital + +--- + +## ✅ Estado Actual + +- ✅ Git inicializado +- ✅ Remote configurado +- ✅ Archivos agregados al staging +- ⏳ Pendiente: Commit y Push + +--- + +## 🚀 Comandos para Ejecutar + +### Opción 1: Si ya hiciste commit (recomendado) + +```bash +cd /home/planetazuzu/protocolo-r-pido + +# Hacer push +git push -u origin main +``` + +### Opción 2: Si necesitas hacer commit primero + +```bash +cd /home/planetazuzu/protocolo-r-pido + +# Hacer commit +git commit -m "feat: Aplicación completa Manual TES Digital + +- Integración de 93 capítulos del manual completo +- Componente MarkdownViewer para renderizar archivos .md +- Navegación jerárquica completa +- Sistema de búsqueda mejorado +- Scripts de verificación +- Puerto configurado en 8096 +- Configuración de despliegue" + +# Hacer push +git push -u origin main +``` + +--- + +## 🔐 Autenticación + +Si te pide usuario/contraseña: + +**Usuario:** `planetazuzu` + +**Contraseña:** Usa un **Personal Access Token** de GitHub: +1. Ve a: https://github.com/settings/tokens +2. Click en "Generate new token (classic)" +3. Selecciona permisos: `repo` (todos) +4. Genera y copia el token +5. Úsalo como contraseña cuando git lo pida + +--- + +## ✅ Verificación + +Después del push, verifica en: +https://github.com/planetazuzu/guia-tes-digital + +Debe mostrar todos los archivos del proyecto. + +--- + +**Ejecuta:** `git push -u origin main` diff --git a/LIMPIEZA_COMPLETADA.md b/LIMPIEZA_COMPLETADA.md new file mode 100644 index 00000000..a40ee1e5 --- /dev/null +++ b/LIMPIEZA_COMPLETADA.md @@ -0,0 +1,143 @@ +# ✅ Limpieza e Integración Completa - COMPLETADA + +**Fecha:** 2025-12-17 + +--- + +## 🎉 Resumen Ejecutivo + +La limpieza e integración del Manual TES Digital se ha completado exitosamente: + +- ✅ **93 archivos válidos** identificados y organizados +- ✅ **66 archivos obsoletos** identificados (listos para eliminar si se desea) +- ✅ **Backup completo** creado antes de cualquier cambio +- ✅ **Archivos copiados** a `public/manual/` con estructura correcta +- ✅ **Rutas actualizadas** en `manual-index.ts` para apuntar a `/manual/` +- ✅ **Componentes actualizados** para usar las nuevas rutas + +--- + +## 📊 Estadísticas + +| Métrica | Valor | +|---------|-------| +| Archivos válidos | 93 | +| Archivos obsoletos identificados | 66 | +| Archivos en `public/manual/` | 93 ✅ | +| Rutas actualizadas en índice | 93 ✅ | +| Backup creado | ✅ | + +--- + +## 📁 Estructura Final + +``` +public/manual/ +├── BLOQUE_0_FUNDAMENTOS/ (1 archivo) +├── BLOQUE_1_PROCEDIMIENTOS_BASICOS/ (4 archivos) +├── BLOQUE_2_MATERIAL_E_INMOVILIZACION/ (14 archivos) +├── BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/ (28 archivos) +├── BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/ (10 archivos) +├── BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/ (10 archivos) +├── BLOQUE_6_FARMACOLOGIA/ (8 archivos) +├── BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/ (6 archivos) +├── BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/ (5 archivos) +├── BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/ (1 archivo) +├── BLOQUE_10_SITUACIONES_ESPECIALES/ (1 archivo) +├── BLOQUE_11_PROTOCOLOS_TRAUMA/ (1 archivo) +├── BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/ (1 archivo) +├── BLOQUE_13_COMUNICACION_RELACION_PACIENTE/ (1 archivo) +└── BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/ (1 archivo) + +Total: 93 archivos .md +``` + +--- + +## 🔄 Cambios Realizados + +### 1. Archivos +- ✅ Copiados 93 archivos válidos a `public/manual/` +- ✅ Organizados por bloques (BLOQUE_0, BLOQUE_1, etc.) +- ✅ Backup completo en `backup_manual_pre_limpieza/` + +### 2. Rutas en `manual-index.ts` +- ✅ Actualizadas de `manual-tes/TES_Manual_Digital/BLOQUE_X/archivo.md` +- ✅ A `/manual/BLOQUE_X/archivo.md` +- ✅ Backup guardado en `manual-index.ts.backup` + +### 3. Componentes React +- ✅ `ManualViewer.tsx` actualizado para usar rutas directas del índice +- ✅ `MarkdownViewer` ya estaba configurado para cargar desde `/manual/` +- ✅ `ManualIndex` muestra la estructura jerárquica completa + +--- + +## 📋 Archivos Generados + +1. **`REPORTE_LIMPIEZA_MANUAL.md`** - Reporte detallado de archivos válidos y obsoletos +2. **`RESUMEN_LIMPIEZA_COMPLETA.md`** - Resumen ejecutivo de la limpieza +3. **`backup_manual_pre_limpieza/`** - Backup completo de todos los archivos .md +4. **`manual-index.ts.backup`** - Backup del índice antes de actualizar rutas +5. **`scripts/limpiar_manual.py`** - Script de limpieza (reutilizable) + +--- + +## ✅ Verificación + +### Archivos en `public/manual/` +```bash +find public/manual -name "*.md" | wc -l +# Resultado: 93 ✅ +``` + +### Rutas en `manual-index.ts` +```bash +grep -c 'rutaArchivo: "/manual/' src/data/manual-index.ts +# Resultado: 93 ✅ +``` + +--- + +## 🚀 Próximos Pasos + +### 1. Probar la Aplicación +```bash +npm run dev +# Abrir http://localhost:8096/manual +# Verificar que todos los capítulos se carguen correctamente +``` + +### 2. Opcional: Eliminar Archivos Obsoletos +Si deseas eliminar los 66 archivos obsoletos identificados: +- Revisar `REPORTE_LIMPIEZA_MANUAL.md` para ver la lista completa +- El backup está disponible en `backup_manual_pre_limpieza/` por si necesitas restaurar algo + +### 3. Verificar Funcionalidad +- ✅ Navegación jerárquica en `/manual` +- ✅ Búsqueda de capítulos +- ✅ Carga de contenido markdown +- ✅ Navegación anterior/siguiente en capítulos + +--- + +## 📝 Notas Importantes + +1. **Backup:** Todos los archivos originales están respaldados en `backup_manual_pre_limpieza/` +2. **Rutas:** Las rutas ahora apuntan directamente a `/manual/` que se sirve desde `public/manual/` +3. **Estructura:** Los archivos están organizados por bloques para facilitar la navegación +4. **Índice:** El `manual-index.ts` está sincronizado con la estructura real de archivos + +--- + +## 🎯 Estado Final + +✅ **LIMPIEZA COMPLETADA** +✅ **INTEGRACIÓN COMPLETADA** +✅ **APP LISTA PARA USAR** + +--- + +**Fecha de finalización:** 2025-12-17 +**Archivos procesados:** 93/93 ✅ +**Estado:** ✅ COMPLETADO diff --git a/PUSH_FINAL.md b/PUSH_FINAL.md new file mode 100644 index 00000000..472a7f1e --- /dev/null +++ b/PUSH_FINAL.md @@ -0,0 +1,89 @@ +# 🚀 Push Final a GitHub + +**Repositorio:** https://github.com/planetazuzu/guia-tes-digital + +--- + +## ✅ Estado Actual + +- ✅ Git inicializado +- ✅ Remote configurado: `origin` → https://github.com/planetazuzu/guia-tes-digital.git +- ✅ Commit realizado con todos los cambios +- ✅ Listo para hacer push + +--- + +## 📤 Comando para Hacer Push + +```bash +cd /home/planetazuzu/protocolo-r-pido +git push -u origin main +``` + +--- + +## 🔐 Si Pide Autenticación + +### Opción 1: Personal Access Token (Recomendado) + +1. **Generar token:** + - Ve a: https://github.com/settings/tokens + - Click en "Generate new token (classic)" + - Nombre: "guia-tes-digital" + - Permisos: Marca `repo` (todos los permisos de repositorio) + - Click en "Generate token" + - **Copia el token** (solo se muestra una vez) + +2. **Usar el token:** + - Usuario: `planetazuzu` + - Contraseña: **Pega el token que copiaste** + +### Opción 2: SSH (Si tienes configurado) + +```bash +# Cambiar remote a SSH +git remote set-url origin git@github.com:planetazuzu/guia-tes-digital.git + +# Hacer push +git push -u origin main +``` + +--- + +## 📋 Lo Que Se Subirá + +- ✅ Todo el código fuente (`src/`) +- ✅ Los 93 archivos .md del manual (`public/manual/`) +- ✅ Archivos de configuración +- ✅ Scripts de verificación +- ✅ Documentación completa + +**Total:** ~546 archivos + +--- + +## ✅ Verificación Post-Push + +Después del push exitoso: + +1. Ve a: https://github.com/planetazuzu/guia-tes-digital +2. Verifica que aparezcan: + - ✅ Carpeta `src/` con todo el código + - ✅ Carpeta `public/manual/` con los 93 archivos .md + - ✅ Archivos de configuración (`package.json`, `vite.config.ts`, etc.) + - ✅ Scripts en `scripts/` + +--- + +## 🎯 Comando Completo + +```bash +cd /home/planetazuzu/protocolo-r-pido +git push -u origin main +``` + +**Si pide credenciales:** Usa Personal Access Token como contraseña. + +--- + +**¿Ejecuto el push ahora o prefieres hacerlo manualmente?** diff --git a/REPORTE_LIMPIEZA_MANUAL.md b/REPORTE_LIMPIEZA_MANUAL.md new file mode 100644 index 00000000..e7aa0fdf --- /dev/null +++ b/REPORTE_LIMPIEZA_MANUAL.md @@ -0,0 +1,176 @@ +# 📋 Reporte de Limpieza del Manual TES Digital + +**Fecha:** 2025-12-17 12:17:55 + +## 📊 Resumen + +- **Archivos válidos encontrados:** 93 +- **Archivos obsoletos identificados:** 66 +- **Total archivos .md en proyecto:** 159 + +## ✅ Archivos Válidos (93 esperados) + +- `manual-tes/TES_Manual_Digital/BLOQUE_0_FUNDAMENTOS/BLOQUE_00_0_FUNDAMENTOS_EMERGENCIAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_10_SITUACIONES_ESPECIALES/BLOQUE_10_0_SITUACIONES_ESPECIALES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_11_PROTOCOLOS_TRAUMA/BLOQUE_11_0_PROTOCOLOS_TRAUMA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/BLOQUE_12_0_MARCO_LEGAL_ETICO_PROFESIONAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_13_COMUNICACION_RELACION_PACIENTE/BLOQUE_13_0_COMUNICACION_RELACION_PACIENTE.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/BLOQUE_14_0_SEGURIDAD_PERSONAL_SALUD_TES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_1_CONSTANTES_VITALES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_2_ABCDE_OPERATIVO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_3_GLASGOW_OPERATIVO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_4_TRIAGE_START.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_0_ANATOMIA_OPERATIVA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_10_FERULAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_11_CINTURON_PELVICO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_12_FERULA_TRACCION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_13_CAMILLAS_SILLAS_EVACUACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_2_INMOVILIZACION_MANUAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_3_COLLARIN_CERVICAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_4_CAMILLA_CUCHARA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_5_TABLERO_ESPINAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_6_COLCHON_VACIO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_7_EXTRICACION_MOVIMIENTOS_BLOQUE.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_8_TRANSFERENCIAS_MOVILIZACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_9_ERRORES_CRITICOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_X_INVENTARIO_MATERIAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0A_OXIGENOTERAPIA_BASICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0B_OXIGENOTERAPIA_FUNDAMENTOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_10_MONITORIZACION_BASICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_11_GLUCOMETRO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_12_TERMOMETRIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_13_CONFORT_DOLOR.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_14_BIOSEGURIDAD_DESCONTAMINACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_15_GESTION_MATERIAL_ESCENA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_16_COMUNICACION_OPERATIVA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_17_SENALIZACION_ILUMINACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_18_DOCUMENTACION_OPERATIVA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1B_VENTILACION_BOLSA_MASCARILLA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1_DISPOSITIVOS_OXIGENOTERAPIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2B_CANULA_OROFARINGEA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2_ASPIRACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_3_BVM.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_4_CANULAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_5_ORGANIZACION_MALETIN.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_6_CONTROL_HEMORRAGIAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_7_QUEMADURAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_8_HERIDAS_VENDAJES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_99_CIERRE_BLOQUE_3.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_9_EXPOSICION_AISLAMIENTO_TERMICO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X2_MALETIN_CURAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X3_BOLSA_MONITORIZACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X4_INVENTARIO_GLOBAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X5_CHECKLIST_MAESTRO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X_INVENTARIO_MATERIAL_SANITARIO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0B_RECONOCIMIENTO_PCR.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0_ACCESO_VASCULAR_BASICO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_1_RCP_ADULTOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_2_RCP_PEDIATRIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_3_RCP_LACTANTES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_4_USO_DESA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_5_RCP_DOS_INTERVINIENTES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_6_OVACE_ADULTOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_7_OVACE_PEDIATRIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_8_OVACE_LACTANTES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_9_POSICION_LATERAL_SEGURIDAD.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0B_PROTOCOLOS_EMERGENCIAS_ESPECIFICAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0_INTRODUCCION_PROTOCOLOS_TRANSTELEFONICOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_1_PCR_TRANSTELEFONICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_2_OVACE_TRANSTELEFONICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_3_SCA_TRANSTELEFONICO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_4_ICTUS_TRANSTELEFONICO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_5_ANAFILAXIA_TRANSTELEFONICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_6_CRISIS_ASMATICA_TRANSTELEFONICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_7_HIPOGLUCEMIA_TRANSTELEFONICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_8_COMUNICACION_COORDINADOR.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_0_PRINCIPIOS_ADMINISTRACION_FARMACOS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_1_VADEMECUM_OPERATIVO.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_2_OXIGENO_ADMINISTRACION_Y_SEGURIDAD.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_3_ADRENALINA_USO_ANAFILAXIA_Y_RCP.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_4_ASPIRINA_USO_SCA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_5_GLUCAGON_USO_HIPOGLUCEMIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_6_SALBUTAMOL_USO_CRISIS_ASMATICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_7_ABREVIATURAS_TERMINOLOGIA_FARMACOLOGICA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_0_FUNDAMENTOS_CONDUCCION_URGENCIAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_1_USO_LUCES_Y_SIRENA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_2_TECNICAS_CONDUCCION_EMERGENCIAS.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_3_SEGURIDAD_VIAL_Y_PREVENCION_ACCIDENTES.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_4_GESTION_RUTAS_Y_NAVEGACION.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_5_PROTOCOLOS_SEGURIDAD_EN_ESCENA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_0_INTRODUCCION_GESTION_OPERATIVA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_1_DOCUMENTACION_CLINICA_PREHOSPITALARIA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_2_COORDINACION_Y_COMUNICACION_OPERATIVA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_3_GESTION_RECURSOS_Y_MATERIAL.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_4_CALIDAD_Y_MEJORA_CONTINUA.md` +- `manual-tes/TES_Manual_Digital/BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/BLOQUE_09_0_MEDICINA_EMERGENCIAS_APLICADA.md` + +## 🗑️ Archivos Obsoletos Identificados + +**NOTA:** Estos archivos pueden ser eliminados de forma segura. + +- `manual-tes/01_FUNDAMENTOS/BLOQUE_00_FUNDAMENTOS_EMERGENCIAS.md` +- `manual-tes/02_PROCEDIMIENTOS_BASICOS/1.1_constantes_vitales.md` +- `manual-tes/02_PROCEDIMIENTOS_BASICOS/1.2_abcde_operativo.md` +- `manual-tes/02_PROCEDIMIENTOS_BASICOS/1.3_glasgow_operativo.md` +- `manual-tes/02_PROCEDIMIENTOS_BASICOS/1.4_triage_start.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_0_ANATOMIA_OPERATIVA.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_10_FERULAS.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_11_CINTURON_PELVICO.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_12_FERULA_TRACCION.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_13_CAMILLAS_SILLAS_EVACUACION.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_1_COLLARIN_CERVICAL.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_2_INMOVILIZACION_MANUAL.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_3_COLLARIN_CERVICAL.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_4_CAMILLA_CUCHARA.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_5_TABLERO_ESPINAL.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_6_COLCHON_VACIO.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_7_EXTRICACION_MOVIMIENTOS_BLOQUE.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_8_TRANSFERENCIAS_MOVILIZACION.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_9_ERRORES_CRITICOS.md` +- `manual-tes/03_MATERIAL_E_INMOVILIZACION/BLOQUE_02_X_INVENTARIO_MATERIAL.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_0_OXIGENOTERAPIA_FUNDAMENTOS.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_10_MONITORIZACION_BASICA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_11_GLUCOMETRO.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_12_TERMOMETRIA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_13_CONFORT_DOLOR.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_14_BIOSEGURIDAD_DESCONTAMINACION.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_15_GESTION_MATERIAL_ESCENA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_16_COMUNICACION_OPERATIVA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_17_SENALIZACION_ILUMINACION.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_18_DOCUMENTACION_OPERATIVA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_1_DISPOSITIVOS_OXIGENOTERAPIA.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_2_ASPIRACION.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_3_BVM.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_4_CANULAS.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_5_ORGANIZACION_MALETIN.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_6_CONTROL_HEMORRAGIAS.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_7_QUEMADURAS.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_8_HERIDAS_VENDAJES.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_99_CIERRE_BLOQUE_3.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_9_EXPOSICION_AISLAMIENTO_TERMICO.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_X2_MALETIN_CURAS.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_X3_BOLSA_MONITORIZACION.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_X4_INVENTARIO_GLOBAL.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_X5_CHECKLIST_MAESTRO.md` +- `manual-tes/04_OXIGENOTERAPIA/BLOQUE_03_X_INVENTARIO_MATERIAL_SANITARIO.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_0_RECONOCIMIENTO_PCR.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_1_RCP_ADULTOS.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_2_RCP_PEDIATRIA.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_3_RCP_LACTANTES.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_4_USO_DESA.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_5_RCP_DOS_INTERVINIENTES.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_6_OVACE_ADULTOS.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_7_OVACE_PEDIATRIA.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_8_OVACE_LACTANTES.md` +- `manual-tes/05_SOPORTE_VITAL_RCP/BLOQUE_04_9_POSICION_LATERAL_SEGURIDAD.md` +- `manual-tes/ANALISIS_REORGANIZACION.md` +- `manual-tes/AUDITORIA_ESTRUCTURAL_MANUAL_TES.md` +- `manual-tes/BLOQUES/BLOQUE_01_OXIGENOTERAPIA.md` +- `manual-tes/BLOQUES/BLOQUE_02_MATERIAL_E_INMOVILIZACION.md` +- `manual-tes/CONTROL_PROYECTO.md` +- `manual-tes/INFORME_BLOQUE_1_BUSQUEDA.md` +- `manual-tes/MAPA_MAESTRO_MANUAL_TES_DIGITAL.md` +- `manual-tes/PROPUESTA_ESTRUCTURA_HIBRIDA_BLOQUE_5_SVA.md` +- `manual-tes/RESUMEN_ATLS_CONCEPTUAL.md` +- `manual-tes/RESUMEN_CORRECCIONES_BLOQUE_1.md` +- `manual-tes/RESUMEN_CORRECCIONES_COMPLETAS.md` diff --git a/RESUMEN_LIMPIEZA_COMPLETA.md b/RESUMEN_LIMPIEZA_COMPLETA.md new file mode 100644 index 00000000..eaf517cb --- /dev/null +++ b/RESUMEN_LIMPIEZA_COMPLETA.md @@ -0,0 +1,124 @@ +# ✅ Resumen de Limpieza e Integración Completa + +**Fecha:** 2025-12-17 + +--- + +## 📊 Resultados de la Limpieza + +### ✅ Archivos Válidos +- **Total identificados:** 93 archivos +- **Ubicación original:** `manual-tes/TES_Manual_Digital/BLOQUE_X_*/` +- **Ubicación nueva:** `public/manual/BLOQUE_X_*/` +- **Estado:** ✅ Todos copiados correctamente + +### 🗑️ Archivos Obsoletos Identificados +- **Total identificados:** 66 archivos +- **Ubicaciones:** + - `manual-tes/01_FUNDAMENTOS/`, `02_PROCEDIMIENTOS_BASICOS/`, etc. (estructura antigua) + - `manual-tes/BLOQUES/` (archivos duplicados) + - Archivos de documentación temporal fuera del índice + +### 📦 Backup Creado +- **Ubicación:** `backup_manual_pre_limpieza/` +- **Total archivos:** 432 archivos .md +- **Log:** `backup_log_20251217_121754.txt` + +--- + +## 🔄 Cambios Realizados + +### 1. Estructura de Archivos +- ✅ Los 93 archivos válidos están ahora en `public/manual/` +- ✅ Organizados por bloques: `BLOQUE_0_FUNDAMENTOS/`, `BLOQUE_1_PROCEDIMIENTOS_BASICOS/`, etc. +- ✅ Estructura lista para ser servida por la app React + +### 2. Rutas Actualizadas +- ✅ Las rutas en `manual-index.ts` ahora apuntan a `/manual/BLOQUE_X/archivo.md` +- ✅ Compatible con `MarkdownViewer` que carga desde `public/` +- ✅ Backup del índice original guardado en `manual-index.ts.backup` + +### 3. Componentes de la App +- ✅ `MarkdownViewer` ya está configurado para cargar desde `/manual/` +- ✅ `ManualViewer` construye rutas correctamente +- ✅ `ManualIndex` muestra la estructura jerárquica completa + +--- + +## 📋 Próximos Pasos Recomendados + +### Opcional: Eliminar Archivos Obsoletos +Si deseas eliminar los 66 archivos obsoletos identificados: + +```bash +# Revisar el reporte primero +cat REPORTE_LIMPIEZA_MANUAL.md + +# Si todo está correcto, eliminar archivos obsoletos manualmente +# O crear un script de eliminación segura +``` + +**⚠️ IMPORTANTE:** El backup está en `backup_manual_pre_limpieza/` por si necesitas restaurar algo. + +### Verificación +1. ✅ Verificar que `public/manual/` tenga exactamente 93 archivos +2. ✅ Probar la app: `npm run dev` +3. ✅ Navegar a `/manual` y verificar que todos los capítulos se carguen correctamente +4. ✅ Probar búsqueda en `ManualIndex` + +--- + +## 📁 Estructura Final + +``` +public/manual/ +├── BLOQUE_0_FUNDAMENTOS/ +│ └── BLOQUE_00_0_FUNDAMENTOS_EMERGENCIAS.md +├── BLOQUE_1_PROCEDIMIENTOS_BASICOS/ +│ ├── BLOQUE_01_1_CONSTANTES_VITALES.md +│ ├── BLOQUE_01_2_ABCDE_OPERATIVO.md +│ ├── BLOQUE_01_3_GLASGOW_OPERATIVO.md +│ └── BLOQUE_01_4_TRIAGE_START.md +├── BLOQUE_2_MATERIAL_E_INMOVILIZACION/ +│ └── [14 archivos] +├── BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/ +│ └── [28 archivos] +├── BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/ +│ └── [10 archivos] +├── BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/ +│ └── [10 archivos] +├── BLOQUE_6_FARMACOLOGIA/ +│ └── [8 archivos] +├── BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/ +│ └── [6 archivos] +├── BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/ +│ └── [5 archivos] +├── BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/ +│ └── [1 archivo] +├── BLOQUE_10_SITUACIONES_ESPECIALES/ +│ └── [1 archivo] +├── BLOQUE_11_PROTOCOLOS_TRAUMA/ +│ └── [1 archivo] +├── BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/ +│ └── [1 archivo] +├── BLOQUE_13_COMUNICACION_RELACION_PACIENTE/ +│ └── [1 archivo] +└── BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/ + └── [1 archivo] + +Total: 93 archivos .md +``` + +--- + +## ✅ Estado Final + +- ✅ **93 archivos válidos** organizados en `public/manual/` +- ✅ **Rutas actualizadas** en `manual-index.ts` para apuntar a `/manual/` +- ✅ **Backup completo** creado antes de cualquier cambio +- ✅ **Reporte detallado** generado en `REPORTE_LIMPIEZA_MANUAL.md` +- ✅ **App lista** para funcionar con la nueva estructura + +--- + +**🎉 Limpieza e integración completada exitosamente!** diff --git a/scripts/actualizar_rutas_indice.py b/scripts/actualizar_rutas_indice.py new file mode 100644 index 00000000..2ac40d89 --- /dev/null +++ b/scripts/actualizar_rutas_indice.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +""" +Script para actualizar las rutas en manual-index.ts + +Cambia las rutas de: + manual-tes/TES_Manual_Digital/BLOQUE_X_NAME/archivo.md + +A: + /manual/BLOQUE_X_NAME/archivo.md +""" + +import re +from pathlib import Path + +PROJECT_ROOT = Path(__file__).parent.parent +MANUAL_INDEX_PATH = PROJECT_ROOT / "src/data/manual-index.ts" + +def actualizar_rutas(): + """Actualiza las rutas en manual-index.ts""" + + if not MANUAL_INDEX_PATH.exists(): + print(f"❌ ERROR: No se encuentra {MANUAL_INDEX_PATH}") + return False + + contenido = MANUAL_INDEX_PATH.read_text(encoding='utf-8') + contenido_original = contenido + + # Patrón para encontrar rutas del formato: + # rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_X_NAME/archivo.md" + patron = r'rutaArchivo:\s*"manual-tes/TES_Manual_Digital/([^"]+)"' + + def reemplazar_ruta(match): + ruta_completa = match.group(1) # BLOQUE_X_NAME/archivo.md + # Extraer solo el nombre del bloque (carpeta) + partes = ruta_completa.split('/') + if len(partes) >= 2: + bloque_dir = partes[0] # BLOQUE_X_NAME + archivo = partes[-1] # archivo.md + nueva_ruta = f'/manual/{bloque_dir}/{archivo}' + return f'rutaArchivo: "{nueva_ruta}"' + return match.group(0) # Si no coincide, mantener original + + contenido_nuevo = re.sub(patron, reemplazar_ruta, contenido) + + # Verificar si hubo cambios + if contenido_nuevo == contenido_original: + print("ℹ️ No se encontraron rutas para actualizar") + return False + + # Contar cambios + cambios = len(re.findall(patron, contenido_original)) + print(f"✅ Actualizadas {cambios} rutas") + + # Crear backup + backup_path = MANUAL_INDEX_PATH.with_suffix('.ts.backup') + backup_path.write_text(contenido_original, encoding='utf-8') + print(f"📦 Backup guardado en: {backup_path}") + + # Guardar cambios + MANUAL_INDEX_PATH.write_text(contenido_nuevo, encoding='utf-8') + print(f"✅ Archivo actualizado: {MANUAL_INDEX_PATH}") + + return True + +if __name__ == "__main__": + print("=" * 70) + print("🔄 ACTUALIZANDO RUTAS EN MANUAL-INDEX.TS") + print("=" * 70) + + if actualizar_rutas(): + print("\n✅ Actualización completada exitosamente") + else: + print("\n⚠️ No se realizaron cambios") diff --git a/scripts/limpiar_manual.py b/scripts/limpiar_manual.py new file mode 100755 index 00000000..fc8cbd65 --- /dev/null +++ b/scripts/limpiar_manual.py @@ -0,0 +1,287 @@ +#!/usr/bin/env python3 +""" +Script de Limpieza e Integración del Manual TES Digital + +OBJETIVO: +1. Identificar los 93 archivos .md válidos según manual-index.ts +2. Crear backup completo +3. Eliminar archivos obsoletos/duplicados +4. Asegurar que los 93 archivos estén en public/manual/ con estructura correcta +""" + +import os +import re +import shutil +import json +from pathlib import Path +from typing import Set, List, Dict +from datetime import datetime + +# Configuración +PROJECT_ROOT = Path(__file__).parent.parent +MANUAL_INDEX_PATH = PROJECT_ROOT / "src/data/manual-index.ts" +BACKUP_DIR = PROJECT_ROOT / "backup_manual_pre_limpieza" +MANUAL_SOURCE_DIR = PROJECT_ROOT / "manual-tes/TES_Manual_Digital" +MANUAL_PUBLIC_DIR = PROJECT_ROOT / "public/manual" + +# Patrones para archivos obsoletos +PATRONES_OBSOLETOS = [ + r".*\.(tmp|backup|old|bak)\.md$", + r".*prueba.*\.md$", + r".*test.*\.md$", + r".*ejemplo.*\.md$", + r".*temp.*\.md$", +] + +def extraer_rutas_validas_del_indice() -> Set[str]: + """Extrae las rutas de archivos válidos del manual-index.ts""" + rutas_validas = set() + + if not MANUAL_INDEX_PATH.exists(): + print(f"❌ ERROR: No se encuentra {MANUAL_INDEX_PATH}") + return rutas_validas + + contenido = MANUAL_INDEX_PATH.read_text(encoding='utf-8') + + # Buscar todas las rutas en el formato: rutaArchivo: "ruta/a/archivo.md" + patron = r'rutaArchivo:\s*"([^"]+)"' + matches = re.findall(patron, contenido) + + for match in matches: + # Normalizar ruta relativa al proyecto + ruta_completa = PROJECT_ROOT / match + if ruta_completa.exists(): + rutas_validas.add(str(ruta_completa)) + else: + print(f"⚠️ ADVERTENCIA: Archivo del índice no encontrado: {match}") + + print(f"✅ Encontradas {len(rutas_validas)} rutas válidas en el índice") + return rutas_validas + +def encontrar_todos_los_md(excluir_node_modules: bool = True) -> List[Path]: + """Encuentra todos los archivos .md en el proyecto""" + archivos_md = [] + + for root, dirs, files in os.walk(PROJECT_ROOT): + # Excluir node_modules y otros directorios + if excluir_node_modules and 'node_modules' in root: + continue + if '.git' in root: + continue + if 'backup' in root.lower(): + continue + + for file in files: + if file.endswith('.md'): + archivo_path = Path(root) / file + archivos_md.append(archivo_path) + + return archivos_md + +def es_archivo_obsoleto(archivo: Path, rutas_validas: Set[str]) -> bool: + """Determina si un archivo es obsoleto""" + ruta_str = str(archivo) + + # Si está en las rutas válidas, NO es obsoleto + if ruta_str in rutas_validas: + return False + + # Verificar patrones obsoletos + nombre_archivo = archivo.name.lower() + for patron in PATRONES_OBSOLETOS: + if re.match(patron, nombre_archivo): + return True + + # Archivos fuera de la estructura principal del manual + if 'manual-tes' not in ruta_str and 'public/manual' not in ruta_str: + # Pero mantener documentación del proyecto (README, etc.) + if archivo.name.upper() in ['README.MD', 'CHANGELOG.MD', 'LICENSE.MD', 'SECURITY.MD']: + return False + # Mantener archivos de documentación en la raíz o docs/ + if archivo.parent.name in ['docs', ''] or archivo.parent == PROJECT_ROOT: + # Solo si son archivos de documentación del proyecto + if any(keyword in archivo.name.upper() for keyword in ['PLAN', 'GUIA', 'INSTRUCCION', 'PROBLEMA', 'CORRECCION']): + return False + + # Archivos duplicados en diferentes ubicaciones (mantener solo los de TES_Manual_Digital) + if 'manual-tes' in ruta_str: + if 'TES_Manual_Digital' not in ruta_str: + # Archivos fuera de TES_Manual_Digital pero dentro de manual-tes + return True + + return False + +def crear_backup(archivos_a_backup: List[Path]) -> bool: + """Crea un backup de todos los archivos .md antes de limpiar""" + print(f"\n📦 Creando backup en {BACKUP_DIR}...") + + try: + BACKUP_DIR.mkdir(parents=True, exist_ok=True) + + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + backup_log = BACKUP_DIR / f"backup_log_{timestamp}.txt" + + with open(backup_log, 'w', encoding='utf-8') as log: + log.write(f"Backup creado: {timestamp}\n") + log.write(f"Total archivos: {len(archivos_a_backup)}\n\n") + + for archivo in archivos_a_backup: + try: + # Mantener estructura relativa + ruta_relativa = archivo.relative_to(PROJECT_ROOT) + destino = BACKUP_DIR / ruta_relativa + destino.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(archivo, destino) + log.write(f"✅ {ruta_relativa}\n") + except Exception as e: + log.write(f"❌ ERROR copiando {archivo}: {e}\n") + + print(f"✅ Backup completado: {len(archivos_a_backup)} archivos") + print(f"📄 Log guardado en: {backup_log}") + return True + + except Exception as e: + print(f"❌ ERROR creando backup: {e}") + return False + +def copiar_archivos_validos_a_public(rutas_validas: Set[str]) -> Dict[str, bool]: + """Copia los archivos válidos a public/manual/ con estructura correcta""" + resultados = {} + + print(f"\n📋 Copiando archivos válidos a {MANUAL_PUBLIC_DIR}...") + + MANUAL_PUBLIC_DIR.mkdir(parents=True, exist_ok=True) + + for ruta_str in rutas_validas: + archivo_origen = Path(ruta_str) + + if not archivo_origen.exists(): + resultados[ruta_str] = False + print(f"⚠️ No encontrado: {archivo_origen}") + continue + + # Extraer estructura de carpetas desde la ruta + # Ejemplo: manual-tes/TES_Manual_Digital/BLOQUE_0_FUNDAMENTOS/archivo.md + partes = archivo_origen.parts + + # Buscar BLOQUE_X en la ruta + bloque_dir = None + for parte in partes: + if parte.startswith('BLOQUE_'): + bloque_dir = parte + break + + if not bloque_dir: + print(f"⚠️ No se pudo determinar bloque para: {archivo_origen}") + resultados[ruta_str] = False + continue + + # Crear estructura en public/manual/ + destino_dir = MANUAL_PUBLIC_DIR / bloque_dir + destino_dir.mkdir(parents=True, exist_ok=True) + + destino_archivo = destino_dir / archivo_origen.name + + try: + shutil.copy2(archivo_origen, destino_archivo) + resultados[ruta_str] = True + print(f"✅ Copiado: {archivo_origen.name} → {destino_dir.name}/") + except Exception as e: + resultados[ruta_str] = False + print(f"❌ ERROR copiando {archivo_origen.name}: {e}") + + exitosos = sum(1 for v in resultados.values() if v) + print(f"\n✅ Copiados {exitosos}/{len(rutas_validas)} archivos a public/manual/") + + return resultados + +def generar_reporte_limpieza(archivos_obsoletos: List[Path], archivos_validos: List[Path]) -> Path: + """Genera un reporte detallado de la limpieza""" + reporte_path = PROJECT_ROOT / "REPORTE_LIMPIEZA_MANUAL.md" + + with open(reporte_path, 'w', encoding='utf-8') as f: + f.write("# 📋 Reporte de Limpieza del Manual TES Digital\n\n") + f.write(f"**Fecha:** {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n") + + f.write("## 📊 Resumen\n\n") + f.write(f"- **Archivos válidos encontrados:** {len(archivos_validos)}\n") + f.write(f"- **Archivos obsoletos identificados:** {len(archivos_obsoletos)}\n") + f.write(f"- **Total archivos .md en proyecto:** {len(archivos_validos) + len(archivos_obsoletos)}\n\n") + + f.write("## ✅ Archivos Válidos (93 esperados)\n\n") + for archivo in sorted(archivos_validos): + f.write(f"- `{archivo.relative_to(PROJECT_ROOT)}`\n") + + f.write("\n## 🗑️ Archivos Obsoletos Identificados\n\n") + f.write("**NOTA:** Estos archivos pueden ser eliminados de forma segura.\n\n") + for archivo in sorted(archivos_obsoletos): + f.write(f"- `{archivo.relative_to(PROJECT_ROOT)}`\n") + + print(f"\n📄 Reporte generado: {reporte_path}") + return reporte_path + +def main(): + """Función principal""" + print("=" * 70) + print("🧹 LIMPIEZA E INTEGRACIÓN DEL MANUAL TES DIGITAL") + print("=" * 70) + + # Paso 1: Extraer rutas válidas del índice + print("\n[1/6] Extrayendo rutas válidas del índice...") + rutas_validas = extraer_rutas_validas_del_indice() + + if len(rutas_validas) != 93: + print(f"⚠️ ADVERTENCIA: Se esperaban 93 archivos, se encontraron {len(rutas_validas)}") + + # Paso 2: Encontrar todos los archivos .md + print("\n[2/6] Buscando todos los archivos .md...") + todos_los_md = encontrar_todos_los_md() + print(f"✅ Encontrados {len(todos_los_md)} archivos .md en total") + + # Paso 3: Clasificar archivos + print("\n[3/6] Clasificando archivos (válidos vs obsoletos)...") + archivos_validos = [] + archivos_obsoletos = [] + + for archivo in todos_los_md: + if str(archivo) in rutas_validas: + archivos_validos.append(archivo) + elif es_archivo_obsoleto(archivo, rutas_validas): + archivos_obsoletos.append(archivo) + # Los demás se mantienen (documentación del proyecto, etc.) + + print(f"✅ Archivos válidos: {len(archivos_validos)}") + print(f"🗑️ Archivos obsoletos identificados: {len(archivos_obsoletos)}") + + # Paso 4: Crear backup + print("\n[4/6] Creando backup...") + if not crear_backup(todos_los_md): + print("❌ ERROR: No se pudo crear el backup. Abortando.") + return + + # Paso 5: Copiar archivos válidos a public/manual/ + print("\n[5/6] Copiando archivos válidos a public/manual/...") + resultados_copia = copiar_archivos_validos_a_public(rutas_validas) + + # Paso 6: Generar reporte + print("\n[6/6] Generando reporte...") + reporte = generar_reporte_limpieza(archivos_obsoletos, archivos_validos) + + # Resumen final + print("\n" + "=" * 70) + print("✅ LIMPIEZA COMPLETADA") + print("=" * 70) + print(f"\n📊 Resumen:") + print(f" - Archivos válidos: {len(archivos_validos)}") + print(f" - Archivos obsoletos identificados: {len(archivos_obsoletos)}") + print(f" - Archivos copiados a public/manual/: {sum(1 for v in resultados_copia.values() if v)}") + print(f"\n📦 Backup guardado en: {BACKUP_DIR}") + print(f"📄 Reporte guardado en: {reporte}") + print(f"\n⚠️ PRÓXIMOS PASOS:") + print(f" 1. Revisar el reporte: {reporte}") + print(f" 2. Verificar que public/manual/ tenga los 93 archivos") + print(f" 3. Si todo está bien, ejecutar eliminación de obsoletos") + print(f" 4. Probar la aplicación") + +if __name__ == "__main__": + main() diff --git a/src/data/manual-index.ts b/src/data/manual-index.ts index cbb18bc0..cd9394e8 100644 --- a/src/data/manual-index.ts +++ b/src/data/manual-index.ts @@ -64,7 +64,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Fundamentos y Evaluación Inicial", bloque: 0, bloqueNombre: "Fundamentos de Emergencias Prehospitalarias", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_0_FUNDAMENTOS/BLOQUE_00_0_FUNDAMENTOS_EMERGENCIAS.md", + rutaArchivo: "/manual/BLOQUE_0_FUNDAMENTOS/BLOQUE_00_0_FUNDAMENTOS_EMERGENCIAS.md", rutaUrl: "/manual/parte-i-fundamentos/bloque-0-fundamentos/1.1.1", nivelDificultad: "basico", importancia: "alta", @@ -97,7 +97,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Fundamentos y Evaluación Inicial", bloque: 1, bloqueNombre: "Procedimientos Básicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_1_CONSTANTES_VITALES.md", + rutaArchivo: "/manual/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_1_CONSTANTES_VITALES.md", rutaUrl: "/manual/parte-i-fundamentos/bloque-1-procedimientos-basicos/1.2.1", nivelDificultad: "basico", importancia: "alta", @@ -122,7 +122,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Fundamentos y Evaluación Inicial", bloque: 1, bloqueNombre: "Procedimientos Básicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_2_ABCDE_OPERATIVO.md", + rutaArchivo: "/manual/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_2_ABCDE_OPERATIVO.md", rutaUrl: "/manual/parte-i-fundamentos/bloque-1-procedimientos-basicos/1.2.2", nivelDificultad: "basico", importancia: "alta", @@ -147,7 +147,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Fundamentos y Evaluación Inicial", bloque: 1, bloqueNombre: "Procedimientos Básicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_3_GLASGOW_OPERATIVO.md", + rutaArchivo: "/manual/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_3_GLASGOW_OPERATIVO.md", rutaUrl: "/manual/parte-i-fundamentos/bloque-1-procedimientos-basicos/1.2.3", nivelDificultad: "basico", importancia: "alta", @@ -172,7 +172,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Fundamentos y Evaluación Inicial", bloque: 1, bloqueNombre: "Procedimientos Básicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_4_TRIAGE_START.md", + rutaArchivo: "/manual/BLOQUE_1_PROCEDIMIENTOS_BASICOS/BLOQUE_01_4_TRIAGE_START.md", rutaUrl: "/manual/parte-i-fundamentos/bloque-1-procedimientos-basicos/1.2.4", nivelDificultad: "basico", importancia: "alta", @@ -213,7 +213,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0_ACCESO_VASCULAR_BASICO.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0_ACCESO_VASCULAR_BASICO.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.1", nivelDificultad: "avanzado", importancia: "alta", @@ -238,7 +238,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_8_OVACE_LACTANTES.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_8_OVACE_LACTANTES.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.10", nivelDificultad: "avanzado", importancia: "alta", @@ -263,7 +263,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_9_POSICION_LATERAL_SEGURIDAD.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_9_POSICION_LATERAL_SEGURIDAD.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.11", nivelDificultad: "avanzado", importancia: "alta", @@ -288,7 +288,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0B_RECONOCIMIENTO_PCR.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_0B_RECONOCIMIENTO_PCR.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.2", nivelDificultad: "avanzado", importancia: "alta", @@ -313,7 +313,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_1_RCP_ADULTOS.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_1_RCP_ADULTOS.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.3", nivelDificultad: "avanzado", importancia: "alta", @@ -338,7 +338,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_2_RCP_PEDIATRIA.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_2_RCP_PEDIATRIA.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.4", nivelDificultad: "avanzado", importancia: "alta", @@ -363,7 +363,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_3_RCP_LACTANTES.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_3_RCP_LACTANTES.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.5", nivelDificultad: "avanzado", importancia: "alta", @@ -388,7 +388,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_4_USO_DESA.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_4_USO_DESA.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.6", nivelDificultad: "avanzado", importancia: "alta", @@ -413,7 +413,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_5_RCP_DOS_INTERVINIENTES.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_5_RCP_DOS_INTERVINIENTES.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.7", nivelDificultad: "avanzado", importancia: "alta", @@ -438,7 +438,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_6_OVACE_ADULTOS.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_6_OVACE_ADULTOS.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.8", nivelDificultad: "avanzado", importancia: "alta", @@ -463,7 +463,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 4, bloqueNombre: "Soporte Vital Básico y RCP", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_7_OVACE_PEDIATRIA.md", + rutaArchivo: "/manual/BLOQUE_4_SOPORTE_VITAL_BASICO_Y_RCP/BLOQUE_04_7_OVACE_PEDIATRIA.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-4-rcp/2.1.9", nivelDificultad: "avanzado", importancia: "alta", @@ -496,7 +496,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Soporte Vital y Procedimientos Críticos", bloque: 9, bloqueNombre: "Medicina de Emergencias Aplicada", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/BLOQUE_09_0_MEDICINA_EMERGENCIAS_APLICADA.md", + rutaArchivo: "/manual/BLOQUE_9_MEDICINA_EMERGENCIAS_APLICADA/BLOQUE_09_0_MEDICINA_EMERGENCIAS_APLICADA.md", rutaUrl: "/manual/parte-ii-soporte-vital/bloque-9-medicina-emergencias/2.2.1", nivelDificultad: "avanzado", importancia: "media", @@ -537,7 +537,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_0_ANATOMIA_OPERATIVA.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_0_ANATOMIA_OPERATIVA.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.1", nivelDificultad: "intermedio", importancia: "alta", @@ -562,7 +562,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_10_FERULAS.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_10_FERULAS.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.10", nivelDificultad: "intermedio", importancia: "alta", @@ -587,7 +587,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_11_CINTURON_PELVICO.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_11_CINTURON_PELVICO.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.11", nivelDificultad: "intermedio", importancia: "alta", @@ -612,7 +612,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_12_FERULA_TRACCION.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_12_FERULA_TRACCION.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.12", nivelDificultad: "intermedio", importancia: "alta", @@ -637,7 +637,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_13_CAMILLAS_SILLAS_EVACUACION.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_13_CAMILLAS_SILLAS_EVACUACION.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.13", nivelDificultad: "intermedio", importancia: "alta", @@ -662,7 +662,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_X_INVENTARIO_MATERIAL.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_X_INVENTARIO_MATERIAL.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.14", nivelDificultad: "intermedio", importancia: "alta", @@ -687,7 +687,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_2_INMOVILIZACION_MANUAL.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_2_INMOVILIZACION_MANUAL.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.2", nivelDificultad: "intermedio", importancia: "alta", @@ -712,7 +712,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_3_COLLARIN_CERVICAL.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_3_COLLARIN_CERVICAL.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.3", nivelDificultad: "intermedio", importancia: "alta", @@ -737,7 +737,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_4_CAMILLA_CUCHARA.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_4_CAMILLA_CUCHARA.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.4", nivelDificultad: "intermedio", importancia: "alta", @@ -762,7 +762,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_5_TABLERO_ESPINAL.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_5_TABLERO_ESPINAL.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.5", nivelDificultad: "intermedio", importancia: "alta", @@ -787,7 +787,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_6_COLCHON_VACIO.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_6_COLCHON_VACIO.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.6", nivelDificultad: "intermedio", importancia: "alta", @@ -812,7 +812,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_7_EXTRICACION_MOVIMIENTOS_BLOQUE.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_7_EXTRICACION_MOVIMIENTOS_BLOQUE.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.7", nivelDificultad: "intermedio", importancia: "alta", @@ -837,7 +837,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_8_TRANSFERENCIAS_MOVILIZACION.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_8_TRANSFERENCIAS_MOVILIZACION.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.8", nivelDificultad: "intermedio", importancia: "alta", @@ -862,7 +862,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 2, bloqueNombre: "Material e Inmovilización", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_9_ERRORES_CRITICOS.md", + rutaArchivo: "/manual/BLOQUE_2_MATERIAL_E_INMOVILIZACION/BLOQUE_02_9_ERRORES_CRITICOS.md", rutaUrl: "/manual/parte-iii-material/bloque-2-inmovilizacion/3.1.9", nivelDificultad: "intermedio", importancia: "alta", @@ -895,7 +895,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0A_OXIGENOTERAPIA_BASICA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0A_OXIGENOTERAPIA_BASICA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.1", nivelDificultad: "intermedio", importancia: "alta", @@ -920,7 +920,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_6_CONTROL_HEMORRAGIAS.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_6_CONTROL_HEMORRAGIAS.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.10", nivelDificultad: "intermedio", importancia: "alta", @@ -945,7 +945,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_7_QUEMADURAS.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_7_QUEMADURAS.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.11", nivelDificultad: "intermedio", importancia: "alta", @@ -970,7 +970,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_8_HERIDAS_VENDAJES.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_8_HERIDAS_VENDAJES.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.12", nivelDificultad: "intermedio", importancia: "alta", @@ -995,7 +995,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_9_EXPOSICION_AISLAMIENTO_TERMICO.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_9_EXPOSICION_AISLAMIENTO_TERMICO.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.13", nivelDificultad: "intermedio", importancia: "alta", @@ -1020,7 +1020,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_10_MONITORIZACION_BASICA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_10_MONITORIZACION_BASICA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.14", nivelDificultad: "intermedio", importancia: "alta", @@ -1045,7 +1045,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_11_GLUCOMETRO.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_11_GLUCOMETRO.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.15", nivelDificultad: "intermedio", importancia: "alta", @@ -1070,7 +1070,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_12_TERMOMETRIA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_12_TERMOMETRIA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.16", nivelDificultad: "intermedio", importancia: "alta", @@ -1095,7 +1095,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_13_CONFORT_DOLOR.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_13_CONFORT_DOLOR.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.17", nivelDificultad: "intermedio", importancia: "alta", @@ -1120,7 +1120,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_14_BIOSEGURIDAD_DESCONTAMINACION.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_14_BIOSEGURIDAD_DESCONTAMINACION.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.18", nivelDificultad: "intermedio", importancia: "alta", @@ -1145,7 +1145,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_15_GESTION_MATERIAL_ESCENA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_15_GESTION_MATERIAL_ESCENA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.19", nivelDificultad: "intermedio", importancia: "alta", @@ -1170,7 +1170,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0B_OXIGENOTERAPIA_FUNDAMENTOS.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_0B_OXIGENOTERAPIA_FUNDAMENTOS.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.2", nivelDificultad: "intermedio", importancia: "alta", @@ -1195,7 +1195,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_16_COMUNICACION_OPERATIVA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_16_COMUNICACION_OPERATIVA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.20", nivelDificultad: "intermedio", importancia: "alta", @@ -1220,7 +1220,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_17_SENALIZACION_ILUMINACION.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_17_SENALIZACION_ILUMINACION.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.21", nivelDificultad: "intermedio", importancia: "alta", @@ -1245,7 +1245,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_18_DOCUMENTACION_OPERATIVA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_18_DOCUMENTACION_OPERATIVA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.22", nivelDificultad: "intermedio", importancia: "alta", @@ -1270,7 +1270,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_99_CIERRE_BLOQUE_3.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_99_CIERRE_BLOQUE_3.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.23", nivelDificultad: "intermedio", importancia: "alta", @@ -1295,7 +1295,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X_INVENTARIO_MATERIAL_SANITARIO.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X_INVENTARIO_MATERIAL_SANITARIO.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.24", nivelDificultad: "intermedio", importancia: "alta", @@ -1320,7 +1320,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X2_MALETIN_CURAS.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X2_MALETIN_CURAS.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.25", nivelDificultad: "intermedio", importancia: "alta", @@ -1345,7 +1345,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X3_BOLSA_MONITORIZACION.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X3_BOLSA_MONITORIZACION.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.26", nivelDificultad: "intermedio", importancia: "alta", @@ -1370,7 +1370,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X4_INVENTARIO_GLOBAL.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X4_INVENTARIO_GLOBAL.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.27", nivelDificultad: "intermedio", importancia: "alta", @@ -1395,7 +1395,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X5_CHECKLIST_MAESTRO.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_X5_CHECKLIST_MAESTRO.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.28", nivelDificultad: "intermedio", importancia: "alta", @@ -1420,7 +1420,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1_DISPOSITIVOS_OXIGENOTERAPIA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1_DISPOSITIVOS_OXIGENOTERAPIA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.3", nivelDificultad: "intermedio", importancia: "alta", @@ -1445,7 +1445,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1B_VENTILACION_BOLSA_MASCARILLA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_1B_VENTILACION_BOLSA_MASCARILLA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.4", nivelDificultad: "intermedio", importancia: "alta", @@ -1470,7 +1470,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2_ASPIRACION.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2_ASPIRACION.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.5", nivelDificultad: "intermedio", importancia: "alta", @@ -1495,7 +1495,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2B_CANULA_OROFARINGEA.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_2B_CANULA_OROFARINGEA.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.6", nivelDificultad: "intermedio", importancia: "alta", @@ -1520,7 +1520,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_3_BVM.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_3_BVM.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.7", nivelDificultad: "intermedio", importancia: "alta", @@ -1545,7 +1545,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_4_CANULAS.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_4_CANULAS.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.8", nivelDificultad: "intermedio", importancia: "alta", @@ -1570,7 +1570,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Material y Equipamiento", bloque: 3, bloqueNombre: "Material Sanitario y Oxigenoterapia", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_5_ORGANIZACION_MALETIN.md", + rutaArchivo: "/manual/BLOQUE_3_MATERIAL_SANITARIO_Y_OXIGENOTERAPIA/BLOQUE_03_5_ORGANIZACION_MALETIN.md", rutaUrl: "/manual/parte-iii-material/bloque-3-oxigenoterapia/3.2.9", nivelDificultad: "intermedio", importancia: "alta", @@ -1611,7 +1611,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_0_PRINCIPIOS_ADMINISTRACION_FARMACOS.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_0_PRINCIPIOS_ADMINISTRACION_FARMACOS.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.1", nivelDificultad: "intermedio", importancia: "media", @@ -1636,7 +1636,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_1_VADEMECUM_OPERATIVO.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_1_VADEMECUM_OPERATIVO.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.2", nivelDificultad: "intermedio", importancia: "media", @@ -1661,7 +1661,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_2_OXIGENO_ADMINISTRACION_Y_SEGURIDAD.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_2_OXIGENO_ADMINISTRACION_Y_SEGURIDAD.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.3", nivelDificultad: "intermedio", importancia: "media", @@ -1686,7 +1686,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_3_ADRENALINA_USO_ANAFILAXIA_Y_RCP.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_3_ADRENALINA_USO_ANAFILAXIA_Y_RCP.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.4", nivelDificultad: "intermedio", importancia: "media", @@ -1711,7 +1711,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_4_ASPIRINA_USO_SCA.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_4_ASPIRINA_USO_SCA.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.5", nivelDificultad: "intermedio", importancia: "media", @@ -1736,7 +1736,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_5_GLUCAGON_USO_HIPOGLUCEMIA.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_5_GLUCAGON_USO_HIPOGLUCEMIA.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.6", nivelDificultad: "intermedio", importancia: "media", @@ -1761,7 +1761,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_6_SALBUTAMOL_USO_CRISIS_ASMATICA.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_6_SALBUTAMOL_USO_CRISIS_ASMATICA.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.7", nivelDificultad: "intermedio", importancia: "media", @@ -1786,7 +1786,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Farmacología y Medicamentos", bloque: 6, bloqueNombre: "Farmacología y Vademécum Operativo", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_7_ABREVIATURAS_TERMINOLOGIA_FARMACOLOGICA.md", + rutaArchivo: "/manual/BLOQUE_6_FARMACOLOGIA/BLOQUE_06_7_ABREVIATURAS_TERMINOLOGIA_FARMACOLOGICA.md", rutaUrl: "/manual/parte-iv-farmacologia/bloque-6-farmacologia/4.1.8", nivelDificultad: "intermedio", importancia: "media", @@ -1827,7 +1827,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0_INTRODUCCION_PROTOCOLOS_TRANSTELEFONICOS.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0_INTRODUCCION_PROTOCOLOS_TRANSTELEFONICOS.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.1", nivelDificultad: "avanzado", importancia: "media", @@ -1852,7 +1852,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_8_COMUNICACION_COORDINADOR.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_8_COMUNICACION_COORDINADOR.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.10", nivelDificultad: "avanzado", importancia: "media", @@ -1877,7 +1877,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0B_PROTOCOLOS_EMERGENCIAS_ESPECIFICAS.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_0B_PROTOCOLOS_EMERGENCIAS_ESPECIFICAS.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.2", nivelDificultad: "avanzado", importancia: "media", @@ -1902,7 +1902,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_1_PCR_TRANSTELEFONICA.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_1_PCR_TRANSTELEFONICA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.3", nivelDificultad: "avanzado", importancia: "media", @@ -1927,7 +1927,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_2_OVACE_TRANSTELEFONICA.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_2_OVACE_TRANSTELEFONICA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.4", nivelDificultad: "avanzado", importancia: "media", @@ -1952,7 +1952,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_3_SCA_TRANSTELEFONICO.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_3_SCA_TRANSTELEFONICO.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.5", nivelDificultad: "avanzado", importancia: "media", @@ -1977,7 +1977,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_4_ICTUS_TRANSTELEFONICO.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_4_ICTUS_TRANSTELEFONICO.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.6", nivelDificultad: "avanzado", importancia: "media", @@ -2002,7 +2002,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_5_ANAFILAXIA_TRANSTELEFONICA.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_5_ANAFILAXIA_TRANSTELEFONICA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.7", nivelDificultad: "avanzado", importancia: "media", @@ -2027,7 +2027,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_6_CRISIS_ASMATICA_TRANSTELEFONICA.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_6_CRISIS_ASMATICA_TRANSTELEFONICA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.8", nivelDificultad: "avanzado", importancia: "media", @@ -2052,7 +2052,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 5, bloqueNombre: "Protocolos Transtelefónicos", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_7_HIPOGLUCEMIA_TRANSTELEFONICA.md", + rutaArchivo: "/manual/BLOQUE_5_PROTOCOLOS_TRANSTELEFONICOS/BLOQUE_05_7_HIPOGLUCEMIA_TRANSTELEFONICA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-5-transtelefonicos/5.1.9", nivelDificultad: "avanzado", importancia: "media", @@ -2085,7 +2085,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 8, bloqueNombre: "Gestión Operativa y Documentación", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_0_INTRODUCCION_GESTION_OPERATIVA.md", + rutaArchivo: "/manual/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_0_INTRODUCCION_GESTION_OPERATIVA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-8-gestion/5.2.1", nivelDificultad: "intermedio", importancia: "media", @@ -2110,7 +2110,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 8, bloqueNombre: "Gestión Operativa y Documentación", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_1_DOCUMENTACION_CLINICA_PREHOSPITALARIA.md", + rutaArchivo: "/manual/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_1_DOCUMENTACION_CLINICA_PREHOSPITALARIA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-8-gestion/5.2.2", nivelDificultad: "intermedio", importancia: "media", @@ -2135,7 +2135,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 8, bloqueNombre: "Gestión Operativa y Documentación", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_2_COORDINACION_Y_COMUNICACION_OPERATIVA.md", + rutaArchivo: "/manual/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_2_COORDINACION_Y_COMUNICACION_OPERATIVA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-8-gestion/5.2.3", nivelDificultad: "intermedio", importancia: "media", @@ -2160,7 +2160,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 8, bloqueNombre: "Gestión Operativa y Documentación", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_3_GESTION_RECURSOS_Y_MATERIAL.md", + rutaArchivo: "/manual/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_3_GESTION_RECURSOS_Y_MATERIAL.md", rutaUrl: "/manual/parte-v-protocolos/bloque-8-gestion/5.2.4", nivelDificultad: "intermedio", importancia: "media", @@ -2185,7 +2185,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Protocolos y Gestión Operativa", bloque: 8, bloqueNombre: "Gestión Operativa y Documentación", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_4_CALIDAD_Y_MEJORA_CONTINUA.md", + rutaArchivo: "/manual/BLOQUE_8_GESTION_OPERATIVA_Y_DOCUMENTACION/BLOQUE_08_4_CALIDAD_Y_MEJORA_CONTINUA.md", rutaUrl: "/manual/parte-v-protocolos/bloque-8-gestion/5.2.5", nivelDificultad: "intermedio", importancia: "media", @@ -2226,7 +2226,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_0_FUNDAMENTOS_CONDUCCION_URGENCIAS.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_0_FUNDAMENTOS_CONDUCCION_URGENCIAS.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.1", nivelDificultad: "intermedio", importancia: "media", @@ -2251,7 +2251,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_1_USO_LUCES_Y_SIRENA.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_1_USO_LUCES_Y_SIRENA.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.2", nivelDificultad: "intermedio", importancia: "media", @@ -2276,7 +2276,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_2_TECNICAS_CONDUCCION_EMERGENCIAS.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_2_TECNICAS_CONDUCCION_EMERGENCIAS.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.3", nivelDificultad: "intermedio", importancia: "media", @@ -2301,7 +2301,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_3_SEGURIDAD_VIAL_Y_PREVENCION_ACCIDENTES.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_3_SEGURIDAD_VIAL_Y_PREVENCION_ACCIDENTES.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.4", nivelDificultad: "intermedio", importancia: "media", @@ -2326,7 +2326,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_4_GESTION_RUTAS_Y_NAVEGACION.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_4_GESTION_RUTAS_Y_NAVEGACION.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.5", nivelDificultad: "intermedio", importancia: "media", @@ -2351,7 +2351,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Conducción y Seguridad Vial", bloque: 7, bloqueNombre: "Conducción y Seguridad Vial", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_5_PROTOCOLOS_SEGURIDAD_EN_ESCENA.md", + rutaArchivo: "/manual/BLOQUE_7_CONDUCCION_Y_SEGURIDAD_VIAL/BLOQUE_07_5_PROTOCOLOS_SEGURIDAD_EN_ESCENA.md", rutaUrl: "/manual/parte-vi-conduccion/bloque-7-conduccion/6.1.6", nivelDificultad: "intermedio", importancia: "media", @@ -2392,7 +2392,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Situaciones Especiales y Trauma", bloque: 10, bloqueNombre: "Situaciones Especiales", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_10_SITUACIONES_ESPECIALES/BLOQUE_10_0_SITUACIONES_ESPECIALES.md", + rutaArchivo: "/manual/BLOQUE_10_SITUACIONES_ESPECIALES/BLOQUE_10_0_SITUACIONES_ESPECIALES.md", rutaUrl: "/manual/parte-vii-situaciones-especiales/bloque-10-situaciones-especiales/7.1.1", nivelDificultad: "intermedio", importancia: "media", @@ -2425,7 +2425,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Situaciones Especiales y Trauma", bloque: 11, bloqueNombre: "Protocolos de Trauma", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_11_PROTOCOLOS_TRAUMA/BLOQUE_11_0_PROTOCOLOS_TRAUMA.md", + rutaArchivo: "/manual/BLOQUE_11_PROTOCOLOS_TRAUMA/BLOQUE_11_0_PROTOCOLOS_TRAUMA.md", rutaUrl: "/manual/parte-vii-situaciones-especiales/bloque-11-trauma/7.2.1", nivelDificultad: "intermedio", importancia: "media", @@ -2466,7 +2466,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Habilidades Profesionales", bloque: 12, bloqueNombre: "Marco Legal, Ético y Profesional", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/BLOQUE_12_0_MARCO_LEGAL_ETICO_PROFESIONAL.md", + rutaArchivo: "/manual/BLOQUE_12_MARCO_LEGAL_ETICO_PROFESIONAL/BLOQUE_12_0_MARCO_LEGAL_ETICO_PROFESIONAL.md", rutaUrl: "/manual/parte-viii-habilidades/bloque-12-marco-legal/8.1.1", nivelDificultad: "intermedio", importancia: "media", @@ -2499,7 +2499,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Habilidades Profesionales", bloque: 13, bloqueNombre: "Comunicación y Relación con el Paciente", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_13_COMUNICACION_RELACION_PACIENTE/BLOQUE_13_0_COMUNICACION_RELACION_PACIENTE.md", + rutaArchivo: "/manual/BLOQUE_13_COMUNICACION_RELACION_PACIENTE/BLOQUE_13_0_COMUNICACION_RELACION_PACIENTE.md", rutaUrl: "/manual/parte-viii-habilidades/bloque-13-comunicacion/8.2.1", nivelDificultad: "intermedio", importancia: "media", @@ -2532,7 +2532,7 @@ export const manualIndex: Parte[] = [ parteNombre: "Habilidades Profesionales", bloque: 14, bloqueNombre: "Seguridad Personal y Salud del TES", - rutaArchivo: "manual-tes/TES_Manual_Digital/BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/BLOQUE_14_0_SEGURIDAD_PERSONAL_SALUD_TES.md", + rutaArchivo: "/manual/BLOQUE_14_SEGURIDAD_PERSONAL_SALUD_TES/BLOQUE_14_0_SEGURIDAD_PERSONAL_SALUD_TES.md", rutaUrl: "/manual/parte-viii-habilidades/bloque-14-seguridad/8.3.1", nivelDificultad: "intermedio", importancia: "media", diff --git a/src/pages/ManualViewer.tsx b/src/pages/ManualViewer.tsx index b57107e1..a1c7707b 100644 --- a/src/pages/ManualViewer.tsx +++ b/src/pages/ManualViewer.tsx @@ -22,15 +22,9 @@ const ManualViewer = () => { if (cap) { setCapituloData(cap); - // Construir ruta del archivo desde public/ - // La ruta en manual-index.ts es: manual-tes/TES_Manual_Digital/BLOQUE_X/archivo.md - // Convertir a: /manual/BLOQUE_X/archivo.md - const rutaArchivo = cap.rutaArchivo; - const nombreArchivo = rutaArchivo.split('/').pop(); - const carpetaBloque = rutaArchivo.split('/').slice(-2, -1)[0]; - const rutaPublic = `/manual/${carpetaBloque}/${nombreArchivo}`; - - setFilePath(rutaPublic); + // La ruta en manual-index.ts ya está en formato: /manual/BLOQUE_X/archivo.md + // Usar directamente la ruta del índice + setFilePath(cap.rutaArchivo); } }, [capitulo]);