codigo0/docs/QUE_FALTA.md

60 lines
3.2 KiB
Markdown
Raw Normal View History

# Qué falta Resumen
**Última actualización:** 2025-02-02
---
## Hecho
- **TICKET-001** Application Layer backend
- **TICKET-002** Infrastructure Layer (Content, Drug)
- **TICKET-003** Schemas Zod compartidos (backend + frontend alias, tests)
- **TICKET-004** Refactor drugs.ts: re-export desde `drugs/` (split por categoría); `drugs.ts` re-exporta desde `drugs/index.ts`
- **TICKET-005** Refactor procedures.ts
- **TICKET-006** Eliminar duplicación: `http-responses.ts`, rutas refactorizadas (glossary, content, media, validation)
- **TICKET-007** Schema BD glosario (`tes_content.glossary_terms`, migración 004, `npm run migrate:glossary`)
- **TICKET-008** Entidad GlossaryTerm: domain exporta GlossaryTerm y GlossaryCategory desde `domain/entities/index.ts`
- **TICKET-009** Repositorio glosario (GlossaryRepository + GlossaryTermMapper)
- **TICKET-010** GlossaryService (Application Layer)
- **TICKET-011** Rutas API glosario (`/api/glossary/*`)
- **TICKET-012** Migrar glosarios frontend → backend (generador fixture + script migración)
- **TICKET-013** Validación médica (workflow completo): ValidationService, IValidationRepository, ContentStatus; rutas delegan al servicio
- **TICKET-014** Dashboard de validación (GET /api/validation/dashboard; correcciones audit_logs/history/reject/approve/publish)
- **TICKET-015** Upload de medios mejorado: validación Zod del body (uploadMediaBodySchema), sanitización de extensión (safeExtension), fileFilter tipado, metadatos validados en INSERT
- **TICKET-016** Interfaz gestión de medios (MediaManagerPage con loading/error y errores de validación inline)
- **TICKET-017** Tests unitarios backend: GlossaryService, ContentService, ValidationService (repos mockeados)
- **TICKET-018** Tests integración API: app exportada en `app.ts`, supertest, GET /, /health, /api/glossary, rutas con auth 401
- **TICKET-019** Cobertura frontend: tests useDebounce, utils/validation, utils/filter, validators/filters, validators/url-params, PageLoader, NotFound, featureFlags; Vitest solo `src/`; objetivo 80% documentado
- **Despliegue local** Guía y `docker-compose.dev.yml` (PostgreSQL + Redis), `npm run dev:local`
---
## Pendiente (prioridad)
### Alta
- Ninguno
### Media
### Baja
---
## Contenido y alineación
- Categoría **Escena** en procedimientos (definir si se rellena o solo manual).
- Sincronía **manual ↔ app**: contenido primero en manual, luego en app.
**Protocolos/guías que faltan:** Ver **[docs/PROTOCOLOS_GUIAS_FALTANTES.md](PROTOCOLOS_GUIAS_FALTANTES.md)** (Escena vacía; ABCDE, Triage START, Seguridad escena solo en manual).
**Contenido faltante (medios, guías, protocolos, glosario):** Ver **[docs/CONTENIDO_FALTANTE.md](CONTENIDO_FALTANTE.md)**.
---
## Próximos pasos opcionales (técnicos)
- **Frontend glosario:** La app no consume aún `GET /api/glossary`; la terminología farmacológica usa `src/data/pharmaceutical-terminology.ts`. Opcional: añadir vista/página Glosario que consuma la API.
- **Cobertura frontend:** Medir con `npm run test -- --run --coverage` (objetivo 80%). Ver `vite.config.ts` y tests en `src/`.
Ver `SPEC.md`, `docs/BACKLOG_MICRO_TICKETS.md` y documentación en `docs/` para detalle.