diff --git a/docs/_MAP.md b/docs/_MAP.md
index 980641d..aabd3c5 100644
--- a/docs/_MAP.md
+++ b/docs/_MAP.md
@@ -2,8 +2,9 @@
**Proyecto:** clinica-dental
**Tipo:** ERP Especializado (hereda de erp-clinicas)
-**Fecha:** 2026-01-13
+**Fecha:** 2026-01-16
**Estado:** Fase 0 - Preparacion + Fases SaaS/IA Propagadas
+**Nivel Herencia:** 3 (erp-core -> erp-clinicas -> clinica-dental)
---
@@ -12,22 +13,36 @@
```
docs/
+-- _MAP.md <- ESTE ARCHIVO
++-- _definitions/ <- NUEVO: Definiciones canonicas
+| +-- _INDEX.yml <- Indice de definiciones
+| +-- DATABASE-SCHEMA.md <- Schema de base de datos
+| +-- ENTITIES-CATALOG.md <- Catalogo de entidades
+| +-- SERVICES-CATALOG.md <- Catalogo de servicios
+| +-- MODULES-CATALOG.md <- Catalogo de modulos
+|
++-- _quick/ <- NUEVO: Navegacion rapida
+| +-- QUICK-INDEX.yml <- Indice de accesos rapidos
+| +-- QUICK-MODULES.yml <- Modulos por estado/categoria
+| +-- QUICK-DATABASE.yml <- Tablas y schemas
+| +-- QUICK-API.yml <- Endpoints planificados
+|
+-- 00-vision-general/
| +-- README.md <- Indice de vision
| +-- VISION.md <- Vision estrategica [PENDIENTE]
|
++-- 01-epicas/
+| +-- DENTAL-001-odontograma.md <- Odontograma digital
+| +-- DENTAL-002-tratamientos.md <- Tratamientos dentales
+| +-- DENTAL-003-ortodoncia.md <- Control ortodoncia
+| +-- DENTAL-004-protesis.md <- Trabajos protesicos
+| +-- DENTAL-005-radiografias.md <- Radiografias dentales
+| +-- DENTAL-006-presupuestos.md <- Presupuestos de tratamiento
+|
+-- 02-definicion-modulos/
| +-- _MAP.md <- Indice de modulos [PENDIENTE]
| +-- modulo-odontograma.md <- Odontograma digital [PENDIENTE]
-| +-- modulo-tratamientos.md <- Tratamientos dentales [PENDIENTE]
-| +-- modulo-ortodoncia.md <- Control ortodoncia [PENDIENTE]
-| +-- modulo-protesis.md <- Trabajos protesicos [PENDIENTE]
-| +-- modulo-endodoncia.md <- Tratamientos conductos [PENDIENTE]
-| +-- modulo-periodoncia.md <- Enfermedad periodontal [PENDIENTE]
-| +-- modulo-prevencion.md <- Profilaxis, selladores [PENDIENTE]
-| +-- modulo-estetica.md <- Blanqueamiento, carillas [PENDIENTE]
|
-+-- 04-fase-saas/ <- NUEVO: Capacidades SaaS
++-- 04-fase-saas/ <- Capacidades SaaS (Heredado)
| +-- README.md <- Vision de fase SaaS
| +-- _MAP.md <- Indice de modulos SaaS
| +-- MGN-016-billing/ <- Facturacion y suscripciones
@@ -35,7 +50,7 @@ docs/
| +-- MGN-018-webhooks/ <- Integraciones externas
| +-- MGN-019-feature-flags/ <- Control de features odontologicas
|
-+-- 05-fase-ia/ <- NUEVO: Inteligencia Artificial
++-- 05-fase-ia/ <- Inteligencia Artificial (Heredado)
| +-- README.md <- Vision de fase IA
| +-- _MAP.md <- Indice de modulos IA
| +-- MGN-020-ai-integration/ <- Gateway LLM dental
@@ -45,12 +60,38 @@ docs/
+-- 03-especificaciones/
| +-- ... (futuras especificaciones tecnicas)
|
++-- 04-modelado/
+| +-- trazabilidad/
+| +-- TRACEABILITY-MASTER.yml <- Trazabilidad de modulos
+|
+-- 90-transversal/
+-- ... (documentacion transversal)
```
---
+## Navegacion Rapida
+
+### Definiciones Canonicas (@PROJ_DEF_*)
+
+| Alias | Archivo | Descripcion |
+|-------|---------|-------------|
+| @PROJ_DEF_DB | [DATABASE-SCHEMA.md](./_definitions/DATABASE-SCHEMA.md) | Schema de base de datos dental |
+| @PROJ_DEF_ENTITIES | [ENTITIES-CATALOG.md](./_definitions/ENTITIES-CATALOG.md) | Catalogo de entidades |
+| @PROJ_DEF_SERVICES | [SERVICES-CATALOG.md](./_definitions/SERVICES-CATALOG.md) | Catalogo de servicios |
+| @PROJ_DEF_MODULES | [MODULES-CATALOG.md](./_definitions/MODULES-CATALOG.md) | Catalogo de modulos |
+
+### Accesos Rapidos (@PROJ_QUICK_*)
+
+| Alias | Archivo | Descripcion |
+|-------|---------|-------------|
+| @PROJ_QUICK_INDEX | [QUICK-INDEX.yml](./_quick/QUICK-INDEX.yml) | Punto de entrada rapido |
+| @PROJ_QUICK_MODULES | [QUICK-MODULES.yml](./_quick/QUICK-MODULES.yml) | Modulos por estado |
+| @PROJ_QUICK_DB | [QUICK-DATABASE.yml](./_quick/QUICK-DATABASE.yml) | Tablas y schemas |
+| @PROJ_QUICK_API | [QUICK-API.yml](./_quick/QUICK-API.yml) | Endpoints planificados |
+
+---
+
## Modulos Especializados (Odontologia)
### Modulos Core
@@ -209,6 +250,19 @@ Modulos de IA especializados en odontologia con herramientas MCP dentales.
---
-**Ultima actualizacion:** 2026-01-13
-**Version:** 1.1.0
+## Orchestration
+
+### Referencias y Trazabilidad
+
+| Archivo | Descripcion |
+|---------|-------------|
+| [WS-REFERENCES.yml](../orchestration/_refs/WS-REFERENCES.yml) | Referencias a workspace (nivel=3) |
+| [DEPENDENCY-GRAPH.yml](../orchestration/DEPENDENCY-GRAPH.yml) | Grafo de dependencias |
+| [TRACEABILITY.yml](../orchestration/TRACEABILITY.yml) | Trazabilidad modulo-objetos |
+| [CONTEXT-MAP.yml](../orchestration/CONTEXT-MAP.yml) | Contexto del proyecto |
+
+---
+
+**Ultima actualizacion:** 2026-01-16
+**Version:** 1.2.0
**Propagacion:** PROP-CDT-002 (Fases SaaS + IA desde erp-core via erp-clinicas)
diff --git a/docs/_definitions/DATABASE-SCHEMA.md b/docs/_definitions/DATABASE-SCHEMA.md
new file mode 100644
index 0000000..fc33c1d
--- /dev/null
+++ b/docs/_definitions/DATABASE-SCHEMA.md
@@ -0,0 +1,526 @@
+# Database Schema - clinica-dental
+
+**Alias:** @PROJ_DEF_DB
+**Version:** 1.0.0
+**Ultima actualizacion:** 2026-01-16
+
+---
+
+## 1. RESUMEN
+
+| Metrica | Valor |
+|---------|-------|
+| **Total Schemas** | 1 (dental) |
+| **Total Tablas** | 11 |
+| **Total Catalogos** | 2 |
+| **Total Enums** | 4 |
+| **Total Relaciones** | 15+ |
+
+---
+
+## 2. HERENCIA DE SCHEMAS
+
+```yaml
+herencia:
+ desde_erp_core:
+ - auth # Autenticacion y sesiones
+ - tenants # Multi-tenancy
+ - users # Usuarios del sistema
+ desde_erp_clinicas:
+ - clinica # Pacientes, citas, consultas
+ propio:
+ - dental # Especializacion odontologica
+```
+
+---
+
+## 3. ENUMS
+
+```yaml
+enums:
+ estado_pieza:
+ valores: ["sano", "caries", "obturacion", "endodoncia", "corona", "puente", "implante", "ausente", "extraccion_indicada", "diente_temporal", "fractura", "movilidad"]
+ uso: "Estado de una pieza dental"
+
+ cara_dental:
+ valores: ["mesial", "distal", "oclusal", "incisal", "vestibular", "bucal", "lingual", "palatino"]
+ uso: "Caras de una pieza dental"
+
+ estado_tratamiento:
+ valores: ["pendiente", "en_proceso", "completado", "cancelado"]
+ uso: "Estado de un tratamiento"
+
+ tipo_ortodoncia:
+ valores: ["brackets_metalicos", "brackets_esteticos", "brackets_linguales", "alineadores", "removible", "retenedor"]
+ uso: "Tipo de tratamiento ortodontico"
+```
+
+---
+
+## 4. CATALOGOS
+
+### 4.1 dental.piezas_dentales
+
+```yaml
+tabla: "piezas_dentales"
+schema: "dental"
+tipo: "catalogo_global"
+descripcion: "Catalogo de piezas dentales (nomenclatura FDI)"
+registros: 52
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "numero"
+ tipo: "VARCHAR(10)"
+ unique: true
+ descripcion: "Numero FDI (11-48, 51-85)"
+ - nombre: "nombre"
+ tipo: "VARCHAR(50)"
+ not_null: true
+ - nombre: "cuadrante"
+ tipo: "INTEGER"
+ check: "BETWEEN 1 AND 8"
+ - nombre: "es_temporal"
+ tipo: "BOOLEAN"
+ default: false
+ - nombre: "descripcion"
+ tipo: "TEXT"
+```
+
+### 4.2 dental.tratamientos_catalogo
+
+```yaml
+tabla: "tratamientos_catalogo"
+schema: "dental"
+tipo: "catalogo_tenant"
+descripcion: "Catalogo de tratamientos dentales por tenant"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "codigo"
+ tipo: "VARCHAR(20)"
+ not_null: true
+ - nombre: "nombre"
+ tipo: "VARCHAR(100)"
+ not_null: true
+ - nombre: "categoria"
+ tipo: "VARCHAR(50)"
+ descripcion: "prevencion, restauracion, endodoncia, etc."
+ - nombre: "duracion_minutos"
+ tipo: "INTEGER"
+ default: 30
+ - nombre: "precio_base"
+ tipo: "NUMERIC(10,2)"
+ - nombre: "requiere_rx"
+ tipo: "BOOLEAN"
+ default: false
+ - nombre: "requiere_anestesia"
+ tipo: "BOOLEAN"
+ default: false
+ - nombre: "active"
+ tipo: "BOOLEAN"
+ default: true
+constraints:
+ - nombre: "uq_tratamientos_tenant_codigo"
+ tipo: "UNIQUE"
+ columnas: ["tenant_id", "codigo"]
+```
+
+---
+
+## 5. TABLAS PRINCIPALES
+
+### 5.1 dental.odontogramas
+
+```yaml
+tabla: "odontogramas"
+schema: "dental"
+modulo: "DENTAL-001"
+descripcion: "Odontogramas de pacientes"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ fk: "clinica.patients"
+ - nombre: "fecha_creacion"
+ tipo: "DATE"
+ default: "CURRENT_DATE"
+ - nombre: "fecha_actualizacion"
+ tipo: "DATE"
+ - nombre: "notas"
+ tipo: "TEXT"
+indices:
+ - "idx_odontogramas_tenant"
+ - "idx_odontogramas_patient"
+```
+
+### 5.2 dental.odontograma_piezas
+
+```yaml
+tabla: "odontograma_piezas"
+schema: "dental"
+modulo: "DENTAL-001"
+descripcion: "Estado de cada pieza en el odontograma"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "odontograma_id"
+ tipo: "UUID"
+ not_null: true
+ fk: "dental.odontogramas"
+ - nombre: "pieza_id"
+ tipo: "UUID"
+ not_null: true
+ fk: "dental.piezas_dentales"
+ - nombre: "estado"
+ tipo: "dental.estado_pieza"
+ default: "sano"
+ - nombre: "caras_afectadas"
+ tipo: "JSONB"
+ descripcion: '{"mesial": "caries", "oclusal": "obturacion"}'
+ - nombre: "observaciones"
+ tipo: "TEXT"
+constraints:
+ - nombre: "uq_odontograma_pieza"
+ tipo: "UNIQUE"
+ columnas: ["odontograma_id", "pieza_id"]
+```
+
+### 5.3 dental.tratamientos_paciente
+
+```yaml
+tabla: "tratamientos_paciente"
+schema: "dental"
+modulo: "DENTAL-002"
+descripcion: "Tratamientos realizados a pacientes"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "odontograma_id"
+ tipo: "UUID"
+ fk: "dental.odontogramas"
+ - nombre: "tratamiento_id"
+ tipo: "UUID"
+ fk: "dental.tratamientos_catalogo"
+ - nombre: "odontologo_id"
+ tipo: "UUID"
+ fk: "clinica.doctors"
+ - nombre: "consultation_id"
+ tipo: "UUID"
+ fk: "clinica.consultations"
+ - nombre: "pieza_id"
+ tipo: "UUID"
+ fk: "dental.piezas_dentales"
+ - nombre: "caras_tratadas"
+ tipo: "dental.cara_dental[]"
+ - nombre: "fecha_inicio"
+ tipo: "DATE"
+ default: "CURRENT_DATE"
+ - nombre: "fecha_fin"
+ tipo: "DATE"
+ - nombre: "estado"
+ tipo: "dental.estado_tratamiento"
+ default: "pendiente"
+ - nombre: "precio"
+ tipo: "NUMERIC(10,2)"
+ - nombre: "descuento"
+ tipo: "NUMERIC(5,2)"
+ default: 0
+ - nombre: "precio_final"
+ tipo: "NUMERIC(10,2)"
+indices:
+ - "idx_tratamientos_paciente_tenant"
+ - "idx_tratamientos_paciente_patient"
+ - "idx_tratamientos_paciente_estado"
+```
+
+### 5.4 dental.ortodoncia
+
+```yaml
+tabla: "ortodoncia"
+schema: "dental"
+modulo: "DENTAL-003"
+descripcion: "Casos de ortodoncia"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "odontologo_id"
+ tipo: "UUID"
+ - nombre: "tipo"
+ tipo: "dental.tipo_ortodoncia"
+ not_null: true
+ - nombre: "marca"
+ tipo: "VARCHAR(100)"
+ - nombre: "fecha_inicio"
+ tipo: "DATE"
+ not_null: true
+ - nombre: "fecha_estimada_fin"
+ tipo: "DATE"
+ - nombre: "fecha_real_fin"
+ tipo: "DATE"
+ - nombre: "estado"
+ tipo: "dental.estado_tratamiento"
+ default: "en_proceso"
+ - nombre: "meses_estimados"
+ tipo: "INTEGER"
+ - nombre: "costo_total"
+ tipo: "NUMERIC(10,2)"
+ - nombre: "enganche"
+ tipo: "NUMERIC(10,2)"
+ - nombre: "mensualidad"
+ tipo: "NUMERIC(10,2)"
+indices:
+ - "idx_ortodoncia_tenant"
+ - "idx_ortodoncia_patient"
+ - "idx_ortodoncia_estado"
+```
+
+### 5.5 dental.protesis
+
+```yaml
+tabla: "protesis"
+schema: "dental"
+modulo: "DENTAL-004"
+descripcion: "Trabajos protesicos"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "odontologo_id"
+ tipo: "UUID"
+ - nombre: "tipo"
+ tipo: "VARCHAR(50)"
+ not_null: true
+ descripcion: "corona, puente, parcial, total, implante"
+ - nombre: "piezas_involucradas"
+ tipo: "TEXT[]"
+ - nombre: "laboratorio_id"
+ tipo: "UUID"
+ - nombre: "fecha_envio_lab"
+ tipo: "DATE"
+ - nombre: "fecha_recepcion_lab"
+ tipo: "DATE"
+ - nombre: "material"
+ tipo: "VARCHAR(100)"
+ - nombre: "color"
+ tipo: "VARCHAR(50)"
+ - nombre: "estado"
+ tipo: "dental.estado_tratamiento"
+ default: "en_proceso"
+ - nombre: "fecha_colocacion"
+ tipo: "DATE"
+ - nombre: "tiene_garantia"
+ tipo: "BOOLEAN"
+ default: false
+ - nombre: "meses_garantia"
+ tipo: "INTEGER"
+ - nombre: "costo_laboratorio"
+ tipo: "NUMERIC(10,2)"
+ - nombre: "precio_paciente"
+ tipo: "NUMERIC(10,2)"
+indices:
+ - "idx_protesis_tenant"
+ - "idx_protesis_patient"
+```
+
+### 5.6 dental.radiografias
+
+```yaml
+tabla: "radiografias"
+schema: "dental"
+modulo: "DENTAL-005"
+descripcion: "Radiografias dentales"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "consultation_id"
+ tipo: "UUID"
+ - nombre: "tipo"
+ tipo: "VARCHAR(50)"
+ not_null: true
+ descripcion: "periapical, panoramica, cefalometrica, oclusal"
+ - nombre: "pieza_id"
+ tipo: "UUID"
+ fk: "dental.piezas_dentales"
+ - nombre: "fecha"
+ tipo: "DATE"
+ default: "CURRENT_DATE"
+ - nombre: "url_imagen"
+ tipo: "VARCHAR(255)"
+ - nombre: "interpretacion"
+ tipo: "TEXT"
+indices:
+ - "idx_radiografias_tenant"
+ - "idx_radiografias_patient"
+```
+
+### 5.7 dental.presupuestos
+
+```yaml
+tabla: "presupuestos"
+schema: "dental"
+modulo: "DENTAL-006"
+descripcion: "Presupuestos de tratamiento"
+columnas:
+ - nombre: "id"
+ tipo: "UUID"
+ pk: true
+ - nombre: "tenant_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "patient_id"
+ tipo: "UUID"
+ not_null: true
+ - nombre: "odontologo_id"
+ tipo: "UUID"
+ - nombre: "numero"
+ tipo: "VARCHAR(20)"
+ - nombre: "fecha"
+ tipo: "DATE"
+ default: "CURRENT_DATE"
+ - nombre: "fecha_vencimiento"
+ tipo: "DATE"
+ - nombre: "estado"
+ tipo: "VARCHAR(20)"
+ default: "pendiente"
+ descripcion: "pendiente, aprobado, rechazado, vencido"
+ - nombre: "subtotal"
+ tipo: "NUMERIC(12,2)"
+ default: 0
+ - nombre: "descuento_porcentaje"
+ tipo: "NUMERIC(5,2)"
+ default: 0
+ - nombre: "descuento_monto"
+ tipo: "NUMERIC(12,2)"
+ default: 0
+ - nombre: "total"
+ tipo: "NUMERIC(12,2)"
+ default: 0
+ - nombre: "requiere_financiamiento"
+ tipo: "BOOLEAN"
+ default: false
+ - nombre: "enganche"
+ tipo: "NUMERIC(12,2)"
+ - nombre: "numero_pagos"
+ tipo: "INTEGER"
+ - nombre: "monto_pago"
+ tipo: "NUMERIC(12,2)"
+indices:
+ - "idx_presupuestos_tenant"
+ - "idx_presupuestos_patient"
+ - "idx_presupuestos_estado"
+```
+
+---
+
+## 6. RELACIONES
+
+```
+dental Schema:
+
+ ┌─────────────────────┐
+ │ piezas_dentales │ (catalogo global)
+ └──────────┬──────────┘
+ │
+ ┌─────────────────┼─────────────────┬───────────────────┐
+ │ │ │ │
+ ▼ ▼ ▼ ▼
+┌──────────┐ ┌─────────────┐ ┌───────────┐ ┌─────────────┐
+│odontograma│ │tratamientos │ │radiografias│ │presupuesto_ │
+│_piezas │ │_paciente │ │ │ │lineas │
+└────┬─────┘ └──────┬──────┘ └───────────┘ └──────┬──────┘
+ │ │ │
+ │ │ │
+ ▼ │ ▼
+┌──────────┐ │ ┌─────────────┐
+│odontogramas│◄────────┘ │presupuestos │
+└────┬─────┘ └─────────────┘
+ │
+ │ clinica Schema (heredado):
+ │
+ ▼
+┌──────────┐ ┌──────────┐ ┌────────────────┐
+│ patients │◄────────│ doctors │◄────────│ specialties │
+└──────────┘ └──────────┘ └────────────────┘
+ │ │
+ │ │
+ ▼ ▼
+┌──────────┐ ┌──────────────┐
+│ortodoncia│ │consultations │
+└────┬─────┘ └──────────────┘
+ │
+ ▼
+┌──────────────┐
+│ortodoncia_ │
+│citas │
+└──────────────┘
+```
+
+---
+
+## 7. ROW LEVEL SECURITY
+
+Todas las tablas del schema `dental` tienen RLS habilitado con politica de aislamiento por tenant:
+
+```sql
+-- Patron aplicado a todas las tablas
+CREATE POLICY tenant_isolation_{tabla} ON dental.{tabla}
+ USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
+```
+
+---
+
+## 8. REFERENCIAS
+
+- DDL completo: `database/schemas/01-dental-schema-ddl.sql`
+- Seeds: `database/seeds/fase8/01-dental-catalogos.sql`
+- Inventario: `orchestration/inventarios/DATABASE_INVENTORY.yml`
+- Entities: Ver @PROJ_DEF_ENTITIES
+- Herencia: `orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md`
+
+---
+
+*Database Schema | clinica-dental | v1.0.0*
+*Ultima actualizacion: 2026-01-16*
diff --git a/docs/_definitions/ENTITIES-CATALOG.md b/docs/_definitions/ENTITIES-CATALOG.md
new file mode 100644
index 0000000..62d0aaa
--- /dev/null
+++ b/docs/_definitions/ENTITIES-CATALOG.md
@@ -0,0 +1,216 @@
+# Entities Catalog - clinica-dental
+
+**Alias:** @PROJ_DEF_ENTITIES
+**Version:** 1.0.0
+**Ultima actualizacion:** 2026-01-16
+
+---
+
+## 1. RESUMEN
+
+| Metrica | Valor |
+|---------|-------|
+| **Total Entities Propias** | 0 (Pendiente implementacion) |
+| **Total Entities Heredadas** | 10 (de erp-clinicas) |
+| **Estado** | Planificado |
+
+---
+
+## 2. ENTITIES PLANIFICADAS
+
+### 2.1 Modulo: Odontograma (DENTAL-001)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| Odontograma | `odontograma.entity.ts` | dental.odontogramas | Registro de odontograma |
+| OdontogramaPieza | `odontograma-pieza.entity.ts` | dental.odontograma_piezas | Estado de piezas |
+| PiezaDental | `pieza-dental.entity.ts` | dental.piezas_dentales | Catalogo de piezas |
+
+### 2.2 Modulo: Tratamientos (DENTAL-002)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| TratamientoCatalogo | `tratamiento-catalogo.entity.ts` | dental.tratamientos_catalogo | Catalogo de tratamientos |
+| TratamientoPaciente | `tratamiento-paciente.entity.ts` | dental.tratamientos_paciente | Tratamientos realizados |
+
+### 2.3 Modulo: Ortodoncia (DENTAL-003)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| Ortodoncia | `ortodoncia.entity.ts` | dental.ortodoncia | Casos de ortodoncia |
+| OrtodonciaCita | `ortodoncia-cita.entity.ts` | dental.ortodoncia_citas | Seguimiento ortodontico |
+
+### 2.4 Modulo: Protesis (DENTAL-004)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| Protesis | `protesis.entity.ts` | dental.protesis | Trabajos protesicos |
+
+### 2.5 Modulo: Radiografias (DENTAL-005)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| Radiografia | `radiografia.entity.ts` | dental.radiografias | Radiografias dentales |
+
+### 2.6 Modulo: Presupuestos (DENTAL-006)
+
+| Entity | Archivo Planificado | Tabla BD | Descripcion |
+|--------|---------------------|----------|-------------|
+| Presupuesto | `presupuesto.entity.ts` | dental.presupuestos | Presupuestos de tratamiento |
+| PresupuestoLinea | `presupuesto-linea.entity.ts` | dental.presupuesto_lineas | Lineas de presupuesto |
+
+---
+
+## 3. UBICACION PLANIFICADA
+
+```
+backend/src/modules/
+├── odontograma/
+│ └── entities/
+│ ├── odontograma.entity.ts
+│ ├── odontograma-pieza.entity.ts
+│ └── pieza-dental.entity.ts
+├── tratamientos/
+│ └── entities/
+│ ├── tratamiento-catalogo.entity.ts
+│ └── tratamiento-paciente.entity.ts
+├── ortodoncia/
+│ └── entities/
+│ ├── ortodoncia.entity.ts
+│ └── ortodoncia-cita.entity.ts
+├── protesis/
+│ └── entities/
+│ └── protesis.entity.ts
+├── radiografias/
+│ └── entities/
+│ └── radiografia.entity.ts
+└── presupuestos/
+ └── entities/
+ ├── presupuesto.entity.ts
+ └── presupuesto-linea.entity.ts
+```
+
+---
+
+## 4. RELACIONES PLANIFICADAS
+
+```yaml
+relaciones:
+ Odontograma:
+ belongs_to: [Patient]
+ has_many: [OdontogramaPieza, TratamientoPaciente]
+
+ OdontogramaPieza:
+ belongs_to: [Odontograma, PiezaDental]
+
+ PiezaDental:
+ has_many: [OdontogramaPieza, TratamientoPaciente, Radiografia, PresupuestoLinea]
+
+ TratamientoCatalogo:
+ has_many: [TratamientoPaciente, PresupuestoLinea]
+
+ TratamientoPaciente:
+ belongs_to: [Patient, Doctor, Odontograma, TratamientoCatalogo, PiezaDental, Consultation]
+
+ Ortodoncia:
+ belongs_to: [Patient, Doctor]
+ has_many: [OrtodonciaCita]
+
+ OrtodonciaCita:
+ belongs_to: [Ortodoncia, Appointment]
+
+ Protesis:
+ belongs_to: [Patient, Doctor]
+
+ Radiografia:
+ belongs_to: [Patient, Consultation, PiezaDental]
+
+ Presupuesto:
+ belongs_to: [Patient, Doctor]
+ has_many: [PresupuestoLinea]
+
+ PresupuestoLinea:
+ belongs_to: [Presupuesto, TratamientoCatalogo, PiezaDental]
+```
+
+---
+
+## 5. ENTIDADES HEREDADAS (de erp-clinicas)
+
+| Entity | Origen | Uso en clinica-dental |
+|--------|--------|----------------------|
+| Patient | erp-clinicas | Pacientes dentales |
+| Doctor | erp-clinicas | Odontologos |
+| Specialty | erp-clinicas | Especialidades dentales |
+| Appointment | erp-clinicas | Citas dentales |
+| AppointmentSlot | erp-clinicas | Horarios de odontologos |
+| Consultation | erp-clinicas | Consultas dentales |
+| Diagnosis | erp-clinicas | Diagnosticos |
+| Prescription | erp-clinicas | Recetas |
+| PrescriptionItem | erp-clinicas | Items de receta |
+| VitalSigns | erp-clinicas | Signos vitales |
+
+---
+
+## 6. ENUMS TYPESCRIPT (Planificados)
+
+```typescript
+// Definidos en el schema SQL, replicados en TypeScript
+
+enum EstadoPieza {
+ SANO = 'sano',
+ CARIES = 'caries',
+ OBTURACION = 'obturacion',
+ ENDODONCIA = 'endodoncia',
+ CORONA = 'corona',
+ PUENTE = 'puente',
+ IMPLANTE = 'implante',
+ AUSENTE = 'ausente',
+ EXTRACCION_INDICADA = 'extraccion_indicada',
+ DIENTE_TEMPORAL = 'diente_temporal',
+ FRACTURA = 'fractura',
+ MOVILIDAD = 'movilidad'
+}
+
+enum CaraDental {
+ MESIAL = 'mesial',
+ DISTAL = 'distal',
+ OCLUSAL = 'oclusal',
+ INCISAL = 'incisal',
+ VESTIBULAR = 'vestibular',
+ BUCAL = 'bucal',
+ LINGUAL = 'lingual',
+ PALATINO = 'palatino'
+}
+
+enum EstadoTratamiento {
+ PENDIENTE = 'pendiente',
+ EN_PROCESO = 'en_proceso',
+ COMPLETADO = 'completado',
+ CANCELADO = 'cancelado'
+}
+
+enum TipoOrtodoncia {
+ BRACKETS_METALICOS = 'brackets_metalicos',
+ BRACKETS_ESTETICOS = 'brackets_esteticos',
+ BRACKETS_LINGUALES = 'brackets_linguales',
+ ALINEADORES = 'alineadores',
+ REMOVIBLE = 'removible',
+ RETENEDOR = 'retenedor'
+}
+```
+
+---
+
+## 7. REFERENCIAS
+
+- Database Schema: @PROJ_DEF_DB
+- Services: @PROJ_DEF_SERVICES
+- Ubicacion futura: `backend/src/modules/*/entities/`
+- DDL: `database/schemas/01-dental-schema-ddl.sql`
+- Herencia erp-clinicas: `orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md`
+
+---
+
+*Entities Catalog | clinica-dental | v1.0.0*
+*Ultima actualizacion: 2026-01-16*
diff --git a/docs/_definitions/MODULES-CATALOG.md b/docs/_definitions/MODULES-CATALOG.md
new file mode 100644
index 0000000..d1cb8f3
--- /dev/null
+++ b/docs/_definitions/MODULES-CATALOG.md
@@ -0,0 +1,332 @@
+# Modules Catalog - clinica-dental
+
+**Alias:** @PROJ_DEF_MODULES
+**Version:** 1.0.0
+**Ultima actualizacion:** 2026-01-16
+
+---
+
+## 1. RESUMEN
+
+| Metrica | Valor |
+|---------|-------|
+| **Total Modulos Propios** | 6 |
+| **Total Modulos Heredados (erp-core)** | 16 |
+| **Total Modulos Heredados (erp-clinicas)** | 10 |
+| **Documentados** | 6 |
+| **En Desarrollo** | 0 |
+| **Planificados** | 6 |
+
+---
+
+## 2. INDICE DE MODULOS
+
+### 2.1 Modulos Core (Heredados de erp-core)
+
+| ID | Nombre | Herencia | Estado | Documentacion |
+|----|--------|----------|--------|---------------|
+| MGN-001 | Authentication | 100% | Heredado | @WS_DEF_CCA |
+| MGN-002 | Users | 100% | Heredado | @WS_DEF_CCA |
+| MGN-003 | Roles | 100% | Heredado | @WS_DEF_CCA |
+| MGN-004 | Tenants | Extendido | Heredado | @WS_DEF_CCA |
+| MGN-005 | Catalogs | Extendido | Heredado | @WS_DEF_CCA |
+| MGN-007 | Audit | 100% | Heredado | @WS_DEF_CCA |
+| MGN-008 | Notifications | 100% | Heredado | @WS_DEF_CCA |
+| MGN-009 | Reports | Extendido | Heredado | @WS_DEF_CCA |
+| MGN-010 | Financial | Extendido | Heredado | @WS_DEF_CCA |
+
+### 2.2 Modulos SaaS (Heredados - Fase 4)
+
+| ID | Nombre | Estado | Documentacion |
+|----|--------|--------|---------------|
+| MGN-016 | Billing | Heredado | docs/04-fase-saas/MGN-016-billing/ |
+| MGN-017 | Plans | Heredado | docs/04-fase-saas/MGN-017-plans/ |
+| MGN-018 | Webhooks | Heredado | docs/04-fase-saas/MGN-018-webhooks/ |
+| MGN-019 | Feature Flags | Heredado | docs/04-fase-saas/MGN-019-feature-flags/ |
+
+### 2.3 Modulos IA (Heredados - Fase 5)
+
+| ID | Nombre | Estado | Documentacion |
+|----|--------|--------|---------------|
+| MGN-020 | AI Integration | Heredado | docs/05-fase-ia/MGN-020-ai-integration/ |
+| MGN-021 | WhatsApp Business | Heredado | docs/05-fase-ia/MGN-021-whatsapp-business/ |
+| MGN-022 | MCP Server | Heredado | docs/05-fase-ia/MGN-022-mcp-server/ |
+
+### 2.4 Modulos Clinicos (Heredados de erp-clinicas)
+
+| ID | Nombre | Herencia | Adaptacion Dental |
+|----|--------|----------|-------------------|
+| CL-001 | Fundamentos | 100% | Ninguna |
+| CL-002 | Pacientes | Extendido | + odontograma_activo_id, tiene_ortodoncia, tiene_protesis |
+| CL-003 | Citas | Extendido | + tipos cita dental |
+| CL-004 | Consultas | Extendido | + exploracion dental |
+| CL-005 | Recetas | 100% | Ninguna |
+| CL-006 | Laboratorio | Parcial | Solo laboratorio dental |
+| CL-008 | Facturacion | 100% | Ninguna |
+| CL-009 | Reportes | Extendido | + reportes odontologicos |
+| CL-011 | Expediente | Extendido | + odontograma |
+| CL-012 | Imagenologia | Extendido | + radiografias dentales |
+
+### 2.5 Modulos Propios (Odontologicos)
+
+| ID | Nombre | Estado | Documentacion |
+|----|--------|--------|---------------|
+| DENTAL-001 | Odontograma | Planificado | docs/01-epicas/DENTAL-001-odontograma.md |
+| DENTAL-002 | Tratamientos | Planificado | docs/01-epicas/DENTAL-002-tratamientos.md |
+| DENTAL-003 | Ortodoncia | Planificado | docs/01-epicas/DENTAL-003-ortodoncia.md |
+| DENTAL-004 | Protesis | Planificado | docs/01-epicas/DENTAL-004-protesis.md |
+| DENTAL-005 | Radiografias | Planificado | docs/01-epicas/DENTAL-005-radiografias.md |
+| DENTAL-006 | Presupuestos | Planificado | docs/01-epicas/DENTAL-006-presupuestos.md |
+
+---
+
+## 3. DETALLE POR MODULO PROPIO
+
+### DENTAL-001: Odontograma
+
+```yaml
+modulo:
+ id: "DENTAL-001"
+ nombre: "Odontograma"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-001-odontograma.md"
+ requerimientos: []
+ historias: []
+
+ descripcion: |
+ Registro grafico del estado dental del paciente:
+ - Nomenclatura FDI (32 piezas permanentes + 20 temporales)
+ - Estados por pieza (sano, caries, obturacion, etc.)
+ - Estados por cara (mesial, distal, oclusal, etc.)
+ - Historial de cambios
+
+ objetos:
+ tablas: ["dental.odontogramas", "dental.odontograma_piezas", "dental.piezas_dentales"]
+ entities: ["Odontograma", "OdontogramaPieza", "PiezaDental"]
+ services: ["OdontogramaService", "OdontogramaPiezaService"]
+ controllers: []
+
+ story_points:
+ backend: 21
+ frontend: 21
+ total: 42
+
+ dependencias:
+ modulos: ["CL-002"]
+ externos: []
+```
+
+### DENTAL-002: Tratamientos
+
+```yaml
+modulo:
+ id: "DENTAL-002"
+ nombre: "Tratamientos"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-002-tratamientos.md"
+
+ descripcion: |
+ Gestion de tratamientos dentales:
+ - Catalogo de tratamientos por tenant
+ - Registro de tratamientos realizados
+ - Vinculacion con odontograma y piezas
+ - Seguimiento de estado
+
+ objetos:
+ tablas: ["dental.tratamientos_catalogo", "dental.tratamientos_paciente"]
+ entities: ["TratamientoCatalogo", "TratamientoPaciente"]
+ services: ["TratamientoCatalogoService", "TratamientoPacienteService"]
+
+ story_points:
+ backend: 21
+ frontend: 13
+ total: 34
+
+ dependencias:
+ modulos: ["DENTAL-001", "CL-002", "CL-004"]
+```
+
+### DENTAL-003: Ortodoncia
+
+```yaml
+modulo:
+ id: "DENTAL-003"
+ nombre: "Ortodoncia"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-003-ortodoncia.md"
+
+ descripcion: |
+ Control de tratamientos de ortodoncia:
+ - Registro de casos (brackets, alineadores, etc.)
+ - Seguimiento de citas de ajuste
+ - Control de pagos mensuales
+ - Estimacion de duracion
+
+ objetos:
+ tablas: ["dental.ortodoncia", "dental.ortodoncia_citas"]
+ entities: ["Ortodoncia", "OrtodonciaCita"]
+ services: ["OrtodonciaService", "OrtodonciaCitaService"]
+
+ story_points:
+ backend: 21
+ frontend: 21
+ total: 42
+
+ dependencias:
+ modulos: ["CL-002", "CL-003"]
+```
+
+### DENTAL-004: Protesis
+
+```yaml
+modulo:
+ id: "DENTAL-004"
+ nombre: "Protesis"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-004-protesis.md"
+
+ descripcion: |
+ Gestion de trabajos protesicos:
+ - Coronas, puentes, parciales, totales
+ - Seguimiento con laboratorio
+ - Control de materiales y colores
+ - Garantias
+
+ objetos:
+ tablas: ["dental.protesis"]
+ entities: ["Protesis"]
+ services: ["ProtesisService"]
+
+ story_points:
+ backend: 13
+ frontend: 13
+ total: 26
+
+ dependencias:
+ modulos: ["CL-002", "DENTAL-001"]
+```
+
+### DENTAL-005: Radiografias
+
+```yaml
+modulo:
+ id: "DENTAL-005"
+ nombre: "Radiografias"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-005-radiografias.md"
+
+ descripcion: |
+ Gestion de radiografias dentales:
+ - Periapicales, panoramicas, cefalometricas
+ - Almacenamiento de imagenes
+ - Interpretacion y notas
+
+ objetos:
+ tablas: ["dental.radiografias"]
+ entities: ["Radiografia"]
+ services: ["RadiografiaService"]
+
+ story_points:
+ backend: 13
+ frontend: 13
+ total: 26
+
+ dependencias:
+ modulos: ["CL-002", "CL-004", "CL-012"]
+```
+
+### DENTAL-006: Presupuestos
+
+```yaml
+modulo:
+ id: "DENTAL-006"
+ nombre: "Presupuestos"
+ estado: "planificado"
+ version: "1.0.0"
+
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-006-presupuestos.md"
+
+ descripcion: |
+ Presupuestos de tratamiento dental:
+ - Lineas de tratamiento con precios
+ - Descuentos y financiamiento
+ - Generacion de PDF
+ - Conversion a tratamientos
+
+ objetos:
+ tablas: ["dental.presupuestos", "dental.presupuesto_lineas"]
+ entities: ["Presupuesto", "PresupuestoLinea"]
+ services: ["PresupuestoService"]
+
+ story_points:
+ backend: 21
+ frontend: 13
+ total: 34
+
+ dependencias:
+ modulos: ["CL-002", "DENTAL-002"]
+```
+
+---
+
+## 4. MATRIZ DE DEPENDENCIAS
+
+```
+┌────────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┐
+│ │ DENTAL-1 │ DENTAL-2 │ DENTAL-3 │ DENTAL-4 │ DENTAL-5 │ DENTAL-6 │
+├────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤
+│ DENTAL-001 │ - │ │ │ │ │ │
+│ DENTAL-002 │ X │ - │ │ │ │ │
+│ DENTAL-003 │ │ │ - │ │ │ │
+│ DENTAL-004 │ X │ │ │ - │ │ │
+│ DENTAL-005 │ │ │ │ │ - │ │
+│ DENTAL-006 │ │ X │ │ │ │ - │
+└────────────┴──────────┴──────────┴──────────┴──────────┴──────────┴──────────┘
+
+X = depende de
+```
+
+---
+
+## 5. STORY POINTS TOTALES
+
+| Modulo | SP Backend | SP Frontend | SP Total |
+|--------|-----------|-------------|----------|
+| DENTAL-001 | 21 | 21 | 42 |
+| DENTAL-002 | 21 | 13 | 34 |
+| DENTAL-003 | 21 | 21 | 42 |
+| DENTAL-004 | 13 | 13 | 26 |
+| DENTAL-005 | 13 | 13 | 26 |
+| DENTAL-006 | 21 | 13 | 34 |
+| **Total** | **110** | **94** | **204** |
+
+---
+
+## 6. REFERENCIAS
+
+- Database: @PROJ_DEF_DB
+- Entities: @PROJ_DEF_ENTITIES
+- Services: @PROJ_DEF_SERVICES
+- Navegacion rapida: docs/_quick/QUICK-MODULES.yml
+- Herencia: orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md
+
+---
+
+*Modules Catalog | clinica-dental | v1.0.0*
+*Ultima actualizacion: 2026-01-16*
diff --git a/docs/_definitions/SERVICES-CATALOG.md b/docs/_definitions/SERVICES-CATALOG.md
new file mode 100644
index 0000000..b6517cb
--- /dev/null
+++ b/docs/_definitions/SERVICES-CATALOG.md
@@ -0,0 +1,202 @@
+# Services Catalog - clinica-dental
+
+**Alias:** @PROJ_DEF_SERVICES
+**Version:** 1.0.0
+**Ultima actualizacion:** 2026-01-16
+
+---
+
+## 1. RESUMEN
+
+| Metrica | Valor |
+|---------|-------|
+| **Total Services Propios** | 0 (Pendiente implementacion) |
+| **Total Services Heredados** | 10+ (de erp-clinicas) |
+| **Estado** | Planificado |
+
+---
+
+## 2. SERVICES PLANIFICADOS
+
+### 2.1 Modulo: Odontograma (DENTAL-001)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| OdontogramaService | `odontograma.service.ts` | CRUD de odontogramas |
+| OdontogramaPiezaService | `odontograma-pieza.service.ts` | Gestion de piezas |
+
+### 2.2 Modulo: Tratamientos (DENTAL-002)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| TratamientoCatalogoService | `tratamiento-catalogo.service.ts` | Catalogo de tratamientos |
+| TratamientoPacienteService | `tratamiento-paciente.service.ts` | Tratamientos realizados |
+
+### 2.3 Modulo: Ortodoncia (DENTAL-003)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| OrtodonciaService | `ortodoncia.service.ts` | Gestion casos ortodoncia |
+| OrtodonciaCitaService | `ortodoncia-cita.service.ts` | Seguimiento de citas |
+
+### 2.4 Modulo: Protesis (DENTAL-004)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| ProtesisService | `protesis.service.ts` | Gestion trabajos protesicos |
+
+### 2.5 Modulo: Radiografias (DENTAL-005)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| RadiografiaService | `radiografia.service.ts` | Gestion radiografias |
+
+### 2.6 Modulo: Presupuestos (DENTAL-006)
+
+| Service | Archivo Planificado | Descripcion |
+|---------|---------------------|-------------|
+| PresupuestoService | `presupuesto.service.ts` | Gestion presupuestos |
+
+---
+
+## 3. UBICACION PLANIFICADA
+
+```
+backend/src/modules/
+├── odontograma/
+│ └── services/
+│ ├── odontograma.service.ts
+│ └── odontograma-pieza.service.ts
+├── tratamientos/
+│ └── services/
+│ ├── tratamiento-catalogo.service.ts
+│ └── tratamiento-paciente.service.ts
+├── ortodoncia/
+│ └── services/
+│ ├── ortodoncia.service.ts
+│ └── ortodoncia-cita.service.ts
+├── protesis/
+│ └── services/
+│ └── protesis.service.ts
+├── radiografias/
+│ └── services/
+│ └── radiografia.service.ts
+└── presupuestos/
+ └── services/
+ └── presupuesto.service.ts
+```
+
+---
+
+## 4. SERVICES HEREDADOS (de erp-clinicas)
+
+| Service | Origen | Uso en clinica-dental |
+|---------|--------|----------------------|
+| PatientsService | erp-clinicas | Gestion pacientes |
+| DoctorsService | erp-clinicas | Gestion odontologos |
+| SpecialtiesService | erp-clinicas | Especialidades dentales |
+| AppointmentsService | erp-clinicas | Citas dentales |
+| AppointmentSlotsService | erp-clinicas | Horarios disponibles |
+| AppointmentSchedulerService | erp-clinicas | Programacion de citas |
+| ConsultationsService | erp-clinicas | Consultas dentales |
+| DiagnosesService | erp-clinicas | Diagnosticos |
+| PrescriptionsService | erp-clinicas | Recetas |
+| VitalSignsService | erp-clinicas | Signos vitales |
+
+---
+
+## 5. OPERACIONES PRINCIPALES POR SERVICE
+
+### OdontogramaService
+
+```yaml
+operaciones:
+ crear:
+ descripcion: "Crear nuevo odontograma para paciente"
+ parametros: [patient_id, notas]
+ retorna: Odontograma
+
+ obtenerActivo:
+ descripcion: "Obtener odontograma activo del paciente"
+ parametros: [patient_id]
+ retorna: Odontograma
+
+ actualizarPieza:
+ descripcion: "Actualizar estado de pieza dental"
+ parametros: [odontograma_id, pieza_id, estado, caras_afectadas]
+ retorna: OdontogramaPieza
+
+ obtenerHistorial:
+ descripcion: "Historial de odontogramas del paciente"
+ parametros: [patient_id]
+ retorna: Odontograma[]
+```
+
+### TratamientoPacienteService
+
+```yaml
+operaciones:
+ crear:
+ descripcion: "Registrar tratamiento realizado"
+ parametros: [patient_id, tratamiento_id, pieza_id, caras_tratadas, precio]
+ retorna: TratamientoPaciente
+
+ completar:
+ descripcion: "Marcar tratamiento como completado"
+ parametros: [tratamiento_id]
+ retorna: TratamientoPaciente
+
+ obtenerPorPaciente:
+ descripcion: "Listar tratamientos de un paciente"
+ parametros: [patient_id, estado?]
+ retorna: TratamientoPaciente[]
+
+ obtenerPendientes:
+ descripcion: "Listar tratamientos pendientes"
+ parametros: [patient_id]
+ retorna: TratamientoPaciente[]
+```
+
+### PresupuestoService
+
+```yaml
+operaciones:
+ crear:
+ descripcion: "Crear presupuesto de tratamiento"
+ parametros: [patient_id, odontologo_id, lineas]
+ retorna: Presupuesto
+
+ aprobar:
+ descripcion: "Aprobar presupuesto"
+ parametros: [presupuesto_id]
+ retorna: Presupuesto
+
+ rechazar:
+ descripcion: "Rechazar presupuesto"
+ parametros: [presupuesto_id, motivo]
+ retorna: Presupuesto
+
+ generarPDF:
+ descripcion: "Generar PDF del presupuesto"
+ parametros: [presupuesto_id]
+ retorna: Buffer
+
+ convertirATratamientos:
+ descripcion: "Convertir presupuesto aprobado a tratamientos"
+ parametros: [presupuesto_id]
+ retorna: TratamientoPaciente[]
+```
+
+---
+
+## 6. REFERENCIAS
+
+- Entities: @PROJ_DEF_ENTITIES
+- Database: @PROJ_DEF_DB
+- Ubicacion futura: `backend/src/modules/*/services/`
+- Herencia erp-clinicas: `orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md`
+
+---
+
+*Services Catalog | clinica-dental | v1.0.0*
+*Ultima actualizacion: 2026-01-16*
diff --git a/docs/_definitions/_INDEX.yml b/docs/_definitions/_INDEX.yml
new file mode 100644
index 0000000..3ec26e2
--- /dev/null
+++ b/docs/_definitions/_INDEX.yml
@@ -0,0 +1,135 @@
+# Indice de Definiciones del Proyecto
+# Proyecto: clinica-dental
+# Sistema de Gestion para Clinicas Dentales
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+descripcion: "Definiciones canonicas del proyecto Clinica Dental"
+
+# ============================================================================
+# REFERENCIAS A WORKSPACE (Definiciones Globales)
+# ============================================================================
+referencias_workspace:
+ protocolos:
+ CCA: "@WS_DEF_CCA"
+ CAPVED: "@WS_DEF_CAPVED"
+
+ validaciones:
+ backend: "@WS_DEF_VAL_BE"
+ frontend: "@WS_DEF_VAL_FE"
+ ddl: "@WS_DEF_VAL_DDL"
+ devops: "@WS_DEF_VAL_DEVOPS"
+
+# ============================================================================
+# DEFINICIONES LOCALES DEL PROYECTO
+# ============================================================================
+definiciones_locales:
+ database:
+ archivo: "DATABASE-SCHEMA.md"
+ alias: "@PROJ_DEF_DB"
+ descripcion: "Schema canonico de base de datos dental"
+ tablas_principales:
+ - "dental.piezas_dentales"
+ - "dental.tratamientos_catalogo"
+ - "dental.odontogramas"
+ - "dental.odontograma_piezas"
+ - "dental.tratamientos_paciente"
+ - "dental.ortodoncia"
+ - "dental.ortodoncia_citas"
+ - "dental.protesis"
+ - "dental.radiografias"
+ - "dental.presupuestos"
+ - "dental.presupuesto_lineas"
+
+ entities:
+ archivo: "ENTITIES-CATALOG.md"
+ alias: "@PROJ_DEF_ENTITIES"
+ descripcion: "Catalogo de entidades del proyecto"
+ total_entities: 0 # Pendiente de implementacion
+
+ services:
+ archivo: "SERVICES-CATALOG.md"
+ alias: "@PROJ_DEF_SERVICES"
+ descripcion: "Catalogo de servicios del proyecto"
+ total_services: 0 # Pendiente de implementacion
+
+ modules:
+ archivo: "MODULES-CATALOG.md"
+ alias: "@PROJ_DEF_MODULES"
+ descripcion: "Catalogo de modulos del proyecto"
+ total_modules: 6
+
+# ============================================================================
+# HERENCIA (Nivel 3: erp-core -> erp-clinicas -> clinica-dental)
+# ============================================================================
+herencia:
+ padre: "erp-clinicas"
+ nivel: 3
+ cadena_herencia:
+ - { proyecto: "erp-core", nivel: 1, tipo: "core" }
+ - { proyecto: "erp-clinicas", nivel: 2, tipo: "vertical" }
+ - { proyecto: "clinica-dental", nivel: 3, tipo: "sub-vertical" }
+ definiciones_heredadas:
+ - "@WS_DEF_CCA"
+ - "@WS_DEF_VAL_BE"
+ - "@WS_DEF_VAL_FE"
+ - "@WS_DEF_VAL_DDL"
+ modulos_heredados_erp_core:
+ fase_1_3_base:
+ - { id: "MGN-001", nombre: "Authentication", herencia: "100%" }
+ - { id: "MGN-002", nombre: "Users", herencia: "100%" }
+ - { id: "MGN-003", nombre: "Roles", herencia: "100%" }
+ - { id: "MGN-004", nombre: "Tenants", herencia: "extendido" }
+ - { id: "MGN-005", nombre: "Catalogs", herencia: "extendido" }
+ - { id: "MGN-007", nombre: "Audit", herencia: "100%" }
+ - { id: "MGN-008", nombre: "Notifications", herencia: "100%" }
+ - { id: "MGN-009", nombre: "Reports", herencia: "extendido" }
+ - { id: "MGN-010", nombre: "Financial", herencia: "extendido" }
+ fase_4_saas:
+ - { id: "MGN-016", nombre: "Billing", herencia: "100%" }
+ - { id: "MGN-017", nombre: "Plans", herencia: "100%" }
+ - { id: "MGN-018", nombre: "Webhooks", herencia: "100%" }
+ - { id: "MGN-019", nombre: "Feature Flags", herencia: "100%" }
+ fase_5_ia:
+ - { id: "MGN-020", nombre: "AI Integration", herencia: "100%" }
+ - { id: "MGN-021", nombre: "WhatsApp Business", herencia: "100%" }
+ - { id: "MGN-022", nombre: "MCP Server", herencia: "100%" }
+ modulos_heredados_erp_clinicas:
+ - { id: "CL-001", nombre: "Fundamentos", herencia: "100%" }
+ - { id: "CL-002", nombre: "Pacientes", herencia: "extendido" }
+ - { id: "CL-003", nombre: "Citas", herencia: "extendido" }
+ - { id: "CL-004", nombre: "Consultas", herencia: "extendido" }
+ - { id: "CL-005", nombre: "Recetas", herencia: "100%" }
+ - { id: "CL-006", nombre: "Laboratorio", herencia: "parcial" }
+ - { id: "CL-008", nombre: "Facturacion", herencia: "100%" }
+ - { id: "CL-009", nombre: "Reportes", herencia: "extendido" }
+ - { id: "CL-011", nombre: "Expediente", herencia: "extendido" }
+ - { id: "CL-012", nombre: "Imagenologia", herencia: "extendido" }
+
+# ============================================================================
+# CONSIDERACIONES ODONTOLOGICAS
+# ============================================================================
+odontologia:
+ nomenclatura:
+ sistema: "FDI (Federacion Dental Internacional)"
+ cuadrantes_permanentes: [1, 2, 3, 4]
+ cuadrantes_temporales: [5, 6, 7, 8]
+ total_piezas_permanentes: 32
+ total_piezas_temporales: 20
+ regulaciones:
+ - { nombre: "NOM-013-SSA2-2015", estado: "planificado", descripcion: "Prevencion enfermedades bucales" }
+ - { nombre: "NOM-004-SSA3-2012", estado: "planificado", descripcion: "Expediente clinico" }
+ - { nombre: "COFEPRIS", estado: "planificado", descripcion: "Regulacion sanitaria" }
+ - { nombre: "LFPDPPP", estado: "planificado", descripcion: "Proteccion datos personales" }
+
+# ============================================================================
+# ESTADISTICAS
+# ============================================================================
+estadisticas:
+ total_definiciones: 4
+ total_referencias_ws: 6
+ total_modulos_heredados_core: 16
+ total_modulos_heredados_clinicas: 10
+ total_modulos_propios: 6
+ ultima_actualizacion: "2026-01-16"
diff --git a/docs/_quick/QUICK-API.yml b/docs/_quick/QUICK-API.yml
new file mode 100644
index 0000000..4ec86e8
--- /dev/null
+++ b/docs/_quick/QUICK-API.yml
@@ -0,0 +1,157 @@
+# Navegacion Rapida de API
+# Proyecto: clinica-dental
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+estado: "planificado"
+
+# ============================================================================
+# ENDPOINTS PLANIFICADOS POR MODULO
+# ============================================================================
+por_modulo:
+ odontograma:
+ base: "/api/v1/dental/odontogramas"
+ estado: "planificado"
+ endpoints:
+ - { method: "POST", path: "/", descripcion: "Crear odontograma" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Obtener odontograma activo" }
+ - { method: "GET", path: "/paciente/:patientId/historial", descripcion: "Historial de odontogramas" }
+ - { method: "PATCH", path: "/:id/pieza", descripcion: "Actualizar estado de pieza" }
+ - { method: "GET", path: "/:id", descripcion: "Obtener odontograma por ID" }
+
+ tratamientos:
+ base: "/api/v1/dental/tratamientos"
+ estado: "planificado"
+ endpoints:
+ - { method: "GET", path: "/catalogo", descripcion: "Listar catalogo de tratamientos" }
+ - { method: "POST", path: "/catalogo", descripcion: "Crear tratamiento en catalogo" }
+ - { method: "POST", path: "/", descripcion: "Registrar tratamiento a paciente" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Tratamientos de paciente" }
+ - { method: "PATCH", path: "/:id/completar", descripcion: "Marcar como completado" }
+ - { method: "GET", path: "/pendientes", descripcion: "Tratamientos pendientes" }
+
+ ortodoncia:
+ base: "/api/v1/dental/ortodoncia"
+ estado: "planificado"
+ endpoints:
+ - { method: "POST", path: "/", descripcion: "Crear caso de ortodoncia" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Casos de ortodoncia del paciente" }
+ - { method: "GET", path: "/:id", descripcion: "Detalle de caso" }
+ - { method: "POST", path: "/:id/citas", descripcion: "Registrar cita de seguimiento" }
+ - { method: "GET", path: "/:id/citas", descripcion: "Historial de citas" }
+ - { method: "PATCH", path: "/:id/completar", descripcion: "Finalizar tratamiento" }
+
+ protesis:
+ base: "/api/v1/dental/protesis"
+ estado: "planificado"
+ endpoints:
+ - { method: "POST", path: "/", descripcion: "Crear trabajo protesico" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Protesis del paciente" }
+ - { method: "GET", path: "/:id", descripcion: "Detalle de protesis" }
+ - { method: "PATCH", path: "/:id/laboratorio", descripcion: "Actualizar estado laboratorio" }
+ - { method: "PATCH", path: "/:id/colocar", descripcion: "Registrar colocacion" }
+
+ radiografias:
+ base: "/api/v1/dental/radiografias"
+ estado: "planificado"
+ endpoints:
+ - { method: "POST", path: "/", descripcion: "Subir radiografia" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Radiografias del paciente" }
+ - { method: "GET", path: "/:id", descripcion: "Detalle de radiografia" }
+ - { method: "PATCH", path: "/:id/interpretacion", descripcion: "Agregar interpretacion" }
+
+ presupuestos:
+ base: "/api/v1/dental/presupuestos"
+ estado: "planificado"
+ endpoints:
+ - { method: "POST", path: "/", descripcion: "Crear presupuesto" }
+ - { method: "GET", path: "/paciente/:patientId", descripcion: "Presupuestos del paciente" }
+ - { method: "GET", path: "/:id", descripcion: "Detalle de presupuesto" }
+ - { method: "PATCH", path: "/:id/aprobar", descripcion: "Aprobar presupuesto" }
+ - { method: "PATCH", path: "/:id/rechazar", descripcion: "Rechazar presupuesto" }
+ - { method: "GET", path: "/:id/pdf", descripcion: "Generar PDF" }
+ - { method: "POST", path: "/:id/convertir", descripcion: "Convertir a tratamientos" }
+
+# ============================================================================
+# ENDPOINTS HEREDADOS
+# ============================================================================
+heredados:
+ erp_clinicas:
+ pacientes:
+ base: "/api/v1/patients"
+ heredado_de: "erp-clinicas"
+ citas:
+ base: "/api/v1/appointments"
+ heredado_de: "erp-clinicas"
+ consultas:
+ base: "/api/v1/consultations"
+ heredado_de: "erp-clinicas"
+
+ erp_core:
+ auth:
+ base: "/api/v1/auth"
+ heredado_de: "erp-core"
+ users:
+ base: "/api/v1/users"
+ heredado_de: "erp-core"
+ tenants:
+ base: "/api/v1/tenants"
+ heredado_de: "erp-core"
+
+# ============================================================================
+# ENDPOINTS POR METODO (Planificados)
+# ============================================================================
+por_metodo:
+ GET:
+ - "/api/v1/dental/odontogramas/paciente/:patientId"
+ - "/api/v1/dental/tratamientos/catalogo"
+ - "/api/v1/dental/tratamientos/paciente/:patientId"
+ - "/api/v1/dental/ortodoncia/paciente/:patientId"
+ - "/api/v1/dental/protesis/paciente/:patientId"
+ - "/api/v1/dental/radiografias/paciente/:patientId"
+ - "/api/v1/dental/presupuestos/paciente/:patientId"
+ POST:
+ - "/api/v1/dental/odontogramas"
+ - "/api/v1/dental/tratamientos"
+ - "/api/v1/dental/tratamientos/catalogo"
+ - "/api/v1/dental/ortodoncia"
+ - "/api/v1/dental/protesis"
+ - "/api/v1/dental/radiografias"
+ - "/api/v1/dental/presupuestos"
+ PATCH:
+ - "/api/v1/dental/odontogramas/:id/pieza"
+ - "/api/v1/dental/tratamientos/:id/completar"
+ - "/api/v1/dental/ortodoncia/:id/completar"
+ - "/api/v1/dental/presupuestos/:id/aprobar"
+
+# ============================================================================
+# AUTENTICACION
+# ============================================================================
+autenticacion:
+ tipo: "JWT Bearer"
+ header: "Authorization"
+ formato: "Bearer {token}"
+ endpoints_publicos:
+ - "/api/v1/auth/login"
+ - "/api/v1/auth/register"
+ - "/api/v1/health"
+
+# ============================================================================
+# ERRORES COMUNES
+# ============================================================================
+errores:
+ 400: "Bad Request - Datos invalidos"
+ 401: "Unauthorized - Token invalido o expirado"
+ 403: "Forbidden - Sin permisos"
+ 404: "Not Found - Recurso no encontrado"
+ 422: "Unprocessable Entity - Validacion fallida"
+ 500: "Internal Server Error"
+
+# ============================================================================
+# REFERENCIAS
+# ============================================================================
+referencias:
+ swagger: "/api/docs"
+ services: "@PROJ_DEF_SERVICES"
+ modules: "@PROJ_DEF_MODULES"
diff --git a/docs/_quick/QUICK-DATABASE.yml b/docs/_quick/QUICK-DATABASE.yml
new file mode 100644
index 0000000..4008b08
--- /dev/null
+++ b/docs/_quick/QUICK-DATABASE.yml
@@ -0,0 +1,197 @@
+# Navegacion Rapida de Base de Datos
+# Proyecto: clinica-dental
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+
+# ============================================================================
+# SCHEMAS
+# ============================================================================
+schemas:
+ dental:
+ descripcion: "Schema principal de especializacion dental"
+ tablas_count: 11
+ tablas_principales:
+ - piezas_dentales
+ - tratamientos_catalogo
+ - odontogramas
+ - odontograma_piezas
+ - tratamientos_paciente
+ - ortodoncia
+ - ortodoncia_citas
+ - protesis
+ - radiografias
+ - presupuestos
+ - presupuesto_lineas
+
+ clinica:
+ descripcion: "Schema heredado de erp-clinicas"
+ desde: "erp-clinicas"
+ tablas_principales:
+ - patients
+ - doctors
+ - specialties
+ - appointments
+ - consultations
+
+ auth:
+ descripcion: "Schema de autenticacion"
+ desde: "erp-core"
+
+ tenants:
+ descripcion: "Schema de multi-tenancy"
+ desde: "erp-core"
+
+# ============================================================================
+# TABLAS PRINCIPALES (Top 10)
+# ============================================================================
+tablas_principales:
+ - nombre: "odontogramas"
+ schema: "dental"
+ descripcion: "Odontogramas de pacientes"
+ modulo: "DENTAL-001"
+ relaciones: ["odontograma_piezas", "tratamientos_paciente"]
+
+ - nombre: "odontograma_piezas"
+ schema: "dental"
+ descripcion: "Estado de cada pieza en el odontograma"
+ modulo: "DENTAL-001"
+ relaciones: ["odontogramas", "piezas_dentales"]
+
+ - nombre: "piezas_dentales"
+ schema: "dental"
+ descripcion: "Catalogo de piezas dentales (FDI)"
+ tipo: "catalogo_global"
+ registros: 52
+
+ - nombre: "tratamientos_catalogo"
+ schema: "dental"
+ descripcion: "Catalogo de tratamientos por tenant"
+ modulo: "DENTAL-002"
+ tipo: "catalogo_tenant"
+
+ - nombre: "tratamientos_paciente"
+ schema: "dental"
+ descripcion: "Tratamientos realizados a pacientes"
+ modulo: "DENTAL-002"
+ relaciones: ["tratamientos_catalogo", "odontogramas", "piezas_dentales"]
+
+ - nombre: "ortodoncia"
+ schema: "dental"
+ descripcion: "Casos de ortodoncia"
+ modulo: "DENTAL-003"
+ relaciones: ["ortodoncia_citas"]
+
+ - nombre: "protesis"
+ schema: "dental"
+ descripcion: "Trabajos protesicos"
+ modulo: "DENTAL-004"
+
+ - nombre: "radiografias"
+ schema: "dental"
+ descripcion: "Radiografias dentales"
+ modulo: "DENTAL-005"
+ relaciones: ["piezas_dentales"]
+
+ - nombre: "presupuestos"
+ schema: "dental"
+ descripcion: "Presupuestos de tratamiento"
+ modulo: "DENTAL-006"
+ relaciones: ["presupuesto_lineas"]
+
+ - nombre: "presupuesto_lineas"
+ schema: "dental"
+ descripcion: "Lineas de presupuesto"
+ modulo: "DENTAL-006"
+ relaciones: ["presupuestos", "tratamientos_catalogo", "piezas_dentales"]
+
+# ============================================================================
+# BUSQUEDA RAPIDA
+# ============================================================================
+busqueda:
+ por_modulo:
+ DENTAL-001: ["odontogramas", "odontograma_piezas", "piezas_dentales"]
+ DENTAL-002: ["tratamientos_catalogo", "tratamientos_paciente"]
+ DENTAL-003: ["ortodoncia", "ortodoncia_citas"]
+ DENTAL-004: ["protesis"]
+ DENTAL-005: ["radiografias"]
+ DENTAL-006: ["presupuestos", "presupuesto_lineas"]
+
+ por_tipo:
+ catalogo_global:
+ - piezas_dentales
+ catalogo_tenant:
+ - tratamientos_catalogo
+ transaccional:
+ - odontogramas
+ - odontograma_piezas
+ - tratamientos_paciente
+ - ortodoncia
+ - ortodoncia_citas
+ - protesis
+ - radiografias
+ - presupuestos
+ - presupuesto_lineas
+
+# ============================================================================
+# ENUMS
+# ============================================================================
+enums:
+ estado_pieza:
+ schema: "dental"
+ valores: ["sano", "caries", "obturacion", "endodoncia", "corona", "puente", "implante", "ausente", "extraccion_indicada", "diente_temporal", "fractura", "movilidad"]
+ cara_dental:
+ schema: "dental"
+ valores: ["mesial", "distal", "oclusal", "incisal", "vestibular", "bucal", "lingual", "palatino"]
+ estado_tratamiento:
+ schema: "dental"
+ valores: ["pendiente", "en_proceso", "completado", "cancelado"]
+ tipo_ortodoncia:
+ schema: "dental"
+ valores: ["brackets_metalicos", "brackets_esteticos", "brackets_linguales", "alineadores", "removible", "retenedor"]
+
+# ============================================================================
+# ARCHIVOS DDL
+# ============================================================================
+ddl:
+ ubicacion: "database/schemas/"
+ archivos:
+ - archivo: "01-dental-schema-ddl.sql"
+ descripcion: "Schema dental completo"
+ fecha: "2026-01-04"
+
+# ============================================================================
+# SEEDS
+# ============================================================================
+seeds:
+ ubicacion: "database/seeds/fase8/"
+ archivos:
+ - archivo: "01-dental-catalogos.sql"
+ descripcion: "Seeds de catalogos dentales"
+
+# ============================================================================
+# RLS (Row Level Security)
+# ============================================================================
+rls:
+ habilitado: true
+ patron: "tenant_id = current_setting('app.current_tenant_id', true)::UUID"
+ tablas_con_rls:
+ - tratamientos_catalogo
+ - odontogramas
+ - odontograma_piezas
+ - tratamientos_paciente
+ - ortodoncia
+ - ortodoncia_citas
+ - protesis
+ - radiografias
+ - presupuestos
+ - presupuesto_lineas
+
+# ============================================================================
+# REFERENCIAS
+# ============================================================================
+referencias:
+ schema_completo: "@PROJ_DEF_DB"
+ entities: "@PROJ_DEF_ENTITIES"
+ inventario: "orchestration/inventarios/DATABASE_INVENTORY.yml"
diff --git a/docs/_quick/QUICK-INDEX.yml b/docs/_quick/QUICK-INDEX.yml
new file mode 100644
index 0000000..58eb8f7
--- /dev/null
+++ b/docs/_quick/QUICK-INDEX.yml
@@ -0,0 +1,162 @@
+# Indice de Navegacion Rapida
+# Proyecto: clinica-dental
+# Sistema de Gestion para Clinicas Dentales
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+descripcion: "Navegacion rapida del proyecto Clinica Dental"
+
+# ============================================================================
+# PUNTO DE ENTRADA RAPIDO
+# ============================================================================
+inicio_rapido:
+ descripcion: "Accesos directos a recursos principales"
+
+ documentacion:
+ principal: "docs/README.md"
+ mapa: "docs/_MAP.md"
+ vision: "docs/00-vision-general/"
+
+ definiciones:
+ indice: "docs/_definitions/_INDEX.yml"
+ database: "docs/_definitions/DATABASE-SCHEMA.md"
+ entities: "docs/_definitions/ENTITIES-CATALOG.md"
+ services: "docs/_definitions/SERVICES-CATALOG.md"
+ modules: "docs/_definitions/MODULES-CATALOG.md"
+
+ orchestration:
+ indice: "orchestration/_MAP.md"
+ inventarios: "orchestration/inventarios/"
+ trazas: "orchestration/trazas/"
+ referencias: "orchestration/_refs/WS-REFERENCES.yml"
+
+ codigo:
+ database_schemas: "database/schemas/"
+ database_seeds: "database/seeds/"
+
+# ============================================================================
+# INDICES RAPIDOS
+# ============================================================================
+indices_rapidos:
+ modulos: "QUICK-MODULES.yml"
+ database: "QUICK-DATABASE.yml"
+ api: "QUICK-API.yml"
+
+# ============================================================================
+# MODULOS DENTALES - ACCESO DIRECTO
+# ============================================================================
+modulos_dentales:
+ odontograma:
+ id: "DENTAL-001"
+ docs: "docs/01-epicas/DENTAL-001-odontograma.md"
+ tablas: ["dental.odontogramas", "dental.odontograma_piezas"]
+ estado: "planificado"
+ tratamientos:
+ id: "DENTAL-002"
+ docs: "docs/01-epicas/DENTAL-002-tratamientos.md"
+ tablas: ["dental.tratamientos_catalogo", "dental.tratamientos_paciente"]
+ estado: "planificado"
+ ortodoncia:
+ id: "DENTAL-003"
+ docs: "docs/01-epicas/DENTAL-003-ortodoncia.md"
+ tablas: ["dental.ortodoncia", "dental.ortodoncia_citas"]
+ estado: "planificado"
+ protesis:
+ id: "DENTAL-004"
+ docs: "docs/01-epicas/DENTAL-004-protesis.md"
+ tablas: ["dental.protesis"]
+ estado: "planificado"
+ radiografias:
+ id: "DENTAL-005"
+ docs: "docs/01-epicas/DENTAL-005-radiografias.md"
+ tablas: ["dental.radiografias"]
+ estado: "planificado"
+ presupuestos:
+ id: "DENTAL-006"
+ docs: "docs/01-epicas/DENTAL-006-presupuestos.md"
+ tablas: ["dental.presupuestos", "dental.presupuesto_lineas"]
+ estado: "planificado"
+
+# ============================================================================
+# FASES HEREDADAS
+# ============================================================================
+fases_heredadas:
+ saas:
+ descripcion: "Fase 4 - Capacidades SaaS"
+ mapa: "docs/04-fase-saas/_MAP.md"
+ modulos:
+ - { id: "MGN-016", nombre: "Billing", ruta: "docs/04-fase-saas/MGN-016-billing/" }
+ - { id: "MGN-017", nombre: "Plans", ruta: "docs/04-fase-saas/MGN-017-plans/" }
+ - { id: "MGN-018", nombre: "Webhooks", ruta: "docs/04-fase-saas/MGN-018-webhooks/" }
+ - { id: "MGN-019", nombre: "Feature Flags", ruta: "docs/04-fase-saas/MGN-019-feature-flags/" }
+ ia:
+ descripcion: "Fase 5 - Inteligencia Artificial"
+ mapa: "docs/05-fase-ia/_MAP.md"
+ modulos:
+ - { id: "MGN-020", nombre: "AI Integration", ruta: "docs/05-fase-ia/MGN-020-ai-integration/" }
+ - { id: "MGN-021", nombre: "WhatsApp Business", ruta: "docs/05-fase-ia/MGN-021-whatsapp-business/" }
+ - { id: "MGN-022", nombre: "MCP Server", ruta: "docs/05-fase-ia/MGN-022-mcp-server/" }
+
+# ============================================================================
+# ATAJOS POR ROL
+# ============================================================================
+por_rol:
+ backend_developer:
+ - "docs/_definitions/ENTITIES-CATALOG.md"
+ - "docs/_definitions/SERVICES-CATALOG.md"
+ - "docs/_definitions/DATABASE-SCHEMA.md"
+ - "database/schemas/"
+
+ frontend_developer:
+ - "docs/_quick/QUICK-API.yml"
+ - "docs/_definitions/MODULES-CATALOG.md"
+
+ database_admin:
+ - "docs/_definitions/DATABASE-SCHEMA.md"
+ - "docs/_quick/QUICK-DATABASE.yml"
+ - "database/schemas/01-dental-schema-ddl.sql"
+ - "orchestration/inventarios/DATABASE_INVENTORY.yml"
+
+ architect:
+ - "docs/00-vision-general/"
+ - "docs/_definitions/MODULES-CATALOG.md"
+ - "orchestration/DEPENDENCY-GRAPH.yml"
+
+ odontologo:
+ - "docs/01-epicas/DENTAL-001-odontograma.md"
+ - "docs/01-epicas/DENTAL-002-tratamientos.md"
+ - "docs/01-epicas/DENTAL-006-presupuestos.md"
+
+ auxiliar_dental:
+ - "docs/01-epicas/DENTAL-003-ortodoncia.md"
+ - "docs/01-epicas/DENTAL-005-radiografias.md"
+
+ recepcionista:
+ - "docs/04-fase-saas/MGN-017-plans/"
+ - "docs/05-fase-ia/MGN-021-whatsapp-business/"
+
+ administrador_clinica:
+ - "docs/01-epicas/DENTAL-006-presupuestos.md"
+ - "docs/04-fase-saas/MGN-016-billing/"
+
+# ============================================================================
+# HERENCIA Y PADRES
+# ============================================================================
+herencia:
+ padre: "erp-clinicas"
+ nivel: 3
+ cadena:
+ - { proyecto: "erp-core", nivel: 1 }
+ - { proyecto: "erp-clinicas", nivel: 2 }
+ - { proyecto: "clinica-dental", nivel: 3 }
+ referencias_padre: "orchestration/_refs/WS-REFERENCES.yml"
+
+# ============================================================================
+# REFERENCIAS A WORKSPACE
+# ============================================================================
+workspace:
+ quick_index: "@WS_QUICK_INDEX"
+ definitions: "@WS_DEF_*"
+ catalog: "shared/catalog/"
+ templates: "shared/templates/"
diff --git a/docs/_quick/QUICK-MODULES.yml b/docs/_quick/QUICK-MODULES.yml
new file mode 100644
index 0000000..d0b6bfb
--- /dev/null
+++ b/docs/_quick/QUICK-MODULES.yml
@@ -0,0 +1,122 @@
+# Navegacion Rapida de Modulos
+# Proyecto: clinica-dental
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+
+# ============================================================================
+# MODULOS POR ESTADO
+# ============================================================================
+por_estado:
+ produccion: []
+
+ desarrollo: []
+
+ planificado:
+ - id: "DENTAL-001"
+ nombre: "Odontograma"
+ ruta: "docs/01-epicas/DENTAL-001-odontograma.md"
+ - id: "DENTAL-002"
+ nombre: "Tratamientos"
+ ruta: "docs/01-epicas/DENTAL-002-tratamientos.md"
+ - id: "DENTAL-003"
+ nombre: "Ortodoncia"
+ ruta: "docs/01-epicas/DENTAL-003-ortodoncia.md"
+ - id: "DENTAL-004"
+ nombre: "Protesis"
+ ruta: "docs/01-epicas/DENTAL-004-protesis.md"
+ - id: "DENTAL-005"
+ nombre: "Radiografias"
+ ruta: "docs/01-epicas/DENTAL-005-radiografias.md"
+ - id: "DENTAL-006"
+ nombre: "Presupuestos"
+ ruta: "docs/01-epicas/DENTAL-006-presupuestos.md"
+
+# ============================================================================
+# MODULOS POR CATEGORIA
+# ============================================================================
+por_categoria:
+ clinico_dental:
+ descripcion: "Modulos especificos de odontologia"
+ modulos:
+ - { id: "DENTAL-001", nombre: "Odontograma", estado: "planificado" }
+ - { id: "DENTAL-002", nombre: "Tratamientos", estado: "planificado" }
+ - { id: "DENTAL-005", nombre: "Radiografias", estado: "planificado" }
+
+ especialidades:
+ descripcion: "Especialidades odontologicas"
+ modulos:
+ - { id: "DENTAL-003", nombre: "Ortodoncia", estado: "planificado" }
+ - { id: "DENTAL-004", nombre: "Protesis", estado: "planificado" }
+
+ administrativo:
+ descripcion: "Gestion administrativa dental"
+ modulos:
+ - { id: "DENTAL-006", nombre: "Presupuestos", estado: "planificado" }
+
+ heredados_clinicas:
+ descripcion: "Modulos heredados de erp-clinicas"
+ modulos:
+ - { id: "CL-001", nombre: "Fundamentos", herencia: "100%" }
+ - { id: "CL-002", nombre: "Pacientes", herencia: "extendido" }
+ - { id: "CL-003", nombre: "Citas", herencia: "extendido" }
+ - { id: "CL-004", nombre: "Consultas", herencia: "extendido" }
+ - { id: "CL-005", nombre: "Recetas", herencia: "100%" }
+ - { id: "CL-008", nombre: "Facturacion", herencia: "100%" }
+ - { id: "CL-009", nombre: "Reportes", herencia: "extendido" }
+ - { id: "CL-011", nombre: "Expediente", herencia: "extendido" }
+ - { id: "CL-012", nombre: "Imagenologia", herencia: "extendido" }
+
+ heredados_saas:
+ descripcion: "Capacidades SaaS heredadas"
+ modulos:
+ - { id: "MGN-016", nombre: "Billing", herencia: "100%" }
+ - { id: "MGN-017", nombre: "Plans", herencia: "100%" }
+ - { id: "MGN-018", nombre: "Webhooks", herencia: "100%" }
+ - { id: "MGN-019", nombre: "Feature Flags", herencia: "100%" }
+
+ heredados_ia:
+ descripcion: "Capacidades IA heredadas"
+ modulos:
+ - { id: "MGN-020", nombre: "AI Integration", herencia: "100%" }
+ - { id: "MGN-021", nombre: "WhatsApp Business", herencia: "100%" }
+ - { id: "MGN-022", nombre: "MCP Server", herencia: "100%" }
+
+# ============================================================================
+# BUSQUEDA RAPIDA
+# ============================================================================
+busqueda:
+ por_prefijo:
+ DENTAL: "Modulo dental especializado"
+ CL: "Modulo clinico (heredado de erp-clinicas)"
+ MGN: "Modulo generico (heredado de erp-core)"
+
+ por_archivo:
+ epica: "DENTAL-*.md"
+ especificacion: "ET-*.md"
+ requerimiento: "RF-*.md"
+ historia: "US-*.md"
+
+# ============================================================================
+# STORY POINTS
+# ============================================================================
+story_points:
+ por_modulo:
+ DENTAL-001: { backend: 21, frontend: 21, total: 42 }
+ DENTAL-002: { backend: 21, frontend: 13, total: 34 }
+ DENTAL-003: { backend: 21, frontend: 21, total: 42 }
+ DENTAL-004: { backend: 13, frontend: 13, total: 26 }
+ DENTAL-005: { backend: 13, frontend: 13, total: 26 }
+ DENTAL-006: { backend: 21, frontend: 13, total: 34 }
+ totales:
+ backend: 110
+ frontend: 94
+ total: 204
+
+# ============================================================================
+# REFERENCIAS
+# ============================================================================
+referencias:
+ catalogo_completo: "@PROJ_DEF_MODULES"
+ indice_general: "docs/_MAP.md"
diff --git a/orchestration/DEPENDENCY-GRAPH.yml b/orchestration/DEPENDENCY-GRAPH.yml
new file mode 100644
index 0000000..e68805a
--- /dev/null
+++ b/orchestration/DEPENDENCY-GRAPH.yml
@@ -0,0 +1,198 @@
+# Grafo de Dependencias del Proyecto
+# Proyecto: clinica-dental
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+
+# ============================================================================
+# DEPENDENCIAS EXTERNAS (NPM, etc.)
+# ============================================================================
+dependencias_externas:
+ backend:
+ framework: "NestJS"
+ version: "^10.0.0"
+ principales:
+ - nombre: "@nestjs/core"
+ version: "^10.0.0"
+ uso: "Framework core"
+ - nombre: "@nestjs/typeorm"
+ version: "^10.0.0"
+ uso: "ORM integration"
+ - nombre: "typeorm"
+ version: "^0.3.0"
+ uso: "ORM"
+ - nombre: "pg"
+ version: "^8.0.0"
+ uso: "PostgreSQL driver"
+
+ frontend:
+ framework: "React"
+ version: "^18.0.0"
+ principales:
+ - nombre: "react"
+ version: "^18.0.0"
+ - nombre: "react-router-dom"
+ version: "^6.0.0"
+
+ database:
+ tipo: "PostgreSQL"
+ version: "15+"
+ orm: "TypeORM"
+
+# ============================================================================
+# DEPENDENCIAS INTERNAS (Entre modulos del proyecto)
+# ============================================================================
+dependencias_internas:
+ modulos:
+ DENTAL-001:
+ nombre: "Odontograma"
+ depende_de: ["CL-002"]
+ dependientes: ["DENTAL-002", "DENTAL-004"]
+ descripcion: "Depende de Pacientes (CL-002)"
+
+ DENTAL-002:
+ nombre: "Tratamientos"
+ depende_de: ["DENTAL-001", "CL-002", "CL-004"]
+ dependientes: ["DENTAL-006"]
+ descripcion: "Depende de Odontograma, Pacientes, Consultas"
+
+ DENTAL-003:
+ nombre: "Ortodoncia"
+ depende_de: ["CL-002", "CL-003"]
+ dependientes: []
+ descripcion: "Depende de Pacientes y Citas"
+
+ DENTAL-004:
+ nombre: "Protesis"
+ depende_de: ["CL-002", "DENTAL-001"]
+ dependientes: []
+ descripcion: "Depende de Pacientes y Odontograma"
+
+ DENTAL-005:
+ nombre: "Radiografias"
+ depende_de: ["CL-002", "CL-004", "CL-012"]
+ dependientes: []
+ descripcion: "Depende de Pacientes, Consultas, Imagenologia"
+
+ DENTAL-006:
+ nombre: "Presupuestos"
+ depende_de: ["CL-002", "DENTAL-002"]
+ dependientes: []
+ descripcion: "Depende de Pacientes y Tratamientos"
+
+# ============================================================================
+# DEPENDENCIAS DE WORKSPACE
+# ============================================================================
+dependencias_workspace:
+ definiciones:
+ - "@WS_DEF_CCA"
+ - "@WS_DEF_VAL_BE"
+ - "@WS_DEF_VAL_FE"
+ - "@WS_DEF_VAL_DDL"
+
+ catalogos:
+ - "shared/catalog/auth/"
+ - "shared/catalog/notifications/"
+
+# ============================================================================
+# DEPENDENCIAS DE OTROS PROYECTOS (Herencia)
+# ============================================================================
+dependencias_proyectos:
+ proyectos:
+ - proyecto: "erp-clinicas"
+ tipo: "herencia"
+ nivel: 2
+ modulos_usados:
+ - { id: "CL-001", nombre: "Fundamentos", uso: "100%" }
+ - { id: "CL-002", nombre: "Pacientes", uso: "extendido" }
+ - { id: "CL-003", nombre: "Citas", uso: "extendido" }
+ - { id: "CL-004", nombre: "Consultas", uso: "extendido" }
+ - { id: "CL-005", nombre: "Recetas", uso: "100%" }
+ - { id: "CL-006", nombre: "Laboratorio", uso: "parcial" }
+ - { id: "CL-008", nombre: "Facturacion", uso: "100%" }
+ - { id: "CL-009", nombre: "Reportes", uso: "extendido" }
+ - { id: "CL-011", nombre: "Expediente", uso: "extendido" }
+ - { id: "CL-012", nombre: "Imagenologia", uso: "extendido" }
+
+ - proyecto: "erp-core"
+ tipo: "herencia indirecta"
+ nivel: 1
+ modulos_usados:
+ core:
+ - { id: "MGN-001", nombre: "Authentication" }
+ - { id: "MGN-002", nombre: "Users" }
+ - { id: "MGN-003", nombre: "Roles" }
+ - { id: "MGN-004", nombre: "Tenants" }
+ - { id: "MGN-005", nombre: "Catalogs" }
+ - { id: "MGN-007", nombre: "Audit" }
+ - { id: "MGN-008", nombre: "Notifications" }
+ - { id: "MGN-009", nombre: "Reports" }
+ - { id: "MGN-010", nombre: "Financial" }
+ saas:
+ - { id: "MGN-016", nombre: "Billing" }
+ - { id: "MGN-017", nombre: "Plans" }
+ - { id: "MGN-018", nombre: "Webhooks" }
+ - { id: "MGN-019", nombre: "Feature Flags" }
+ ia:
+ - { id: "MGN-020", nombre: "AI Integration" }
+ - { id: "MGN-021", nombre: "WhatsApp Business" }
+ - { id: "MGN-022", nombre: "MCP Server" }
+
+# ============================================================================
+# GRAFO VISUAL
+# ============================================================================
+grafo:
+ formato: "mermaid"
+ diagrama: |
+ graph TD
+ subgraph "Nivel 1: erp-core"
+ CORE[MGN-001..022
Core + SaaS + IA]
+ end
+
+ subgraph "Nivel 2: erp-clinicas"
+ CL002[CL-002
Pacientes]
+ CL003[CL-003
Citas]
+ CL004[CL-004
Consultas]
+ CL012[CL-012
Imagenologia]
+ end
+
+ subgraph "Nivel 3: clinica-dental"
+ D001[DENTAL-001
Odontograma]
+ D002[DENTAL-002
Tratamientos]
+ D003[DENTAL-003
Ortodoncia]
+ D004[DENTAL-004
Protesis]
+ D005[DENTAL-005
Radiografias]
+ D006[DENTAL-006
Presupuestos]
+ end
+
+ CORE --> CL002
+ CORE --> CL003
+ CORE --> CL004
+ CORE --> CL012
+
+ CL002 --> D001
+ D001 --> D002
+ CL004 --> D002
+ D002 --> D006
+
+ CL002 --> D003
+ CL003 --> D003
+
+ D001 --> D004
+ CL002 --> D004
+
+ CL002 --> D005
+ CL004 --> D005
+ CL012 --> D005
+
+# ============================================================================
+# ESTADISTICAS
+# ============================================================================
+estadisticas:
+ total_dependencias_externas: 6
+ total_dependencias_internas: 12
+ total_dependencias_workspace: 6
+ total_modulos_heredados: 26
+ total_modulos_propios: 6
+ ultima_actualizacion: "2026-01-16"
diff --git a/orchestration/TRACEABILITY.yml b/orchestration/TRACEABILITY.yml
new file mode 100644
index 0000000..5dea493
--- /dev/null
+++ b/orchestration/TRACEABILITY.yml
@@ -0,0 +1,285 @@
+# Trazabilidad del Proyecto
+# Proyecto: clinica-dental
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+
+# ============================================================================
+# TRAZABILIDAD MODULO <-> OBJETOS
+# ============================================================================
+trazabilidad_modulos:
+ DENTAL-001:
+ nombre: "Odontograma"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-001-odontograma.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.odontogramas"
+ - "dental.odontograma_piezas"
+ - "dental.piezas_dentales"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "Odontograma"
+ - "OdontogramaPieza"
+ - "PiezaDental"
+ services:
+ - "OdontogramaService"
+ - "OdontogramaPiezaService"
+ controllers:
+ - "OdontogramaController"
+
+ objetos_frontend:
+ componentes: []
+ stores: []
+ hooks: []
+
+ DENTAL-002:
+ nombre: "Tratamientos"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-002-tratamientos.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.tratamientos_catalogo"
+ - "dental.tratamientos_paciente"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "TratamientoCatalogo"
+ - "TratamientoPaciente"
+ services:
+ - "TratamientoCatalogoService"
+ - "TratamientoPacienteService"
+ controllers:
+ - "TratamientoController"
+
+ DENTAL-003:
+ nombre: "Ortodoncia"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-003-ortodoncia.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.ortodoncia"
+ - "dental.ortodoncia_citas"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "Ortodoncia"
+ - "OrtodonciaCita"
+ services:
+ - "OrtodonciaService"
+ - "OrtodonciaCitaService"
+ controllers:
+ - "OrtodonciaController"
+
+ DENTAL-004:
+ nombre: "Protesis"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-004-protesis.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.protesis"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "Protesis"
+ services:
+ - "ProtesisService"
+ controllers:
+ - "ProtesisController"
+
+ DENTAL-005:
+ nombre: "Radiografias"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-005-radiografias.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.radiografias"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "Radiografia"
+ services:
+ - "RadiografiaService"
+ controllers:
+ - "RadiografiaController"
+
+ DENTAL-006:
+ nombre: "Presupuestos"
+ documentacion:
+ especificacion: "docs/01-epicas/DENTAL-006-presupuestos.md"
+ requerimientos: []
+ historias: []
+
+ objetos_bd:
+ tablas:
+ - "dental.presupuestos"
+ - "dental.presupuesto_lineas"
+ schemas: ["dental"]
+
+ objetos_backend:
+ entities:
+ - "Presupuesto"
+ - "PresupuestoLinea"
+ services:
+ - "PresupuestoService"
+ controllers:
+ - "PresupuestoController"
+
+# ============================================================================
+# MATRIZ DE COBERTURA
+# ============================================================================
+cobertura:
+ total_modulos: 6
+ con_documentacion: 6
+ con_ddl: 6
+ con_backend: 0
+ con_frontend: 0
+ con_tests: 0
+ con_trazabilidad_completa: 0
+
+ detalle:
+ DENTAL-001:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+ DENTAL-002:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+ DENTAL-003:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+ DENTAL-004:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+ DENTAL-005:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+ DENTAL-006:
+ documentacion: true
+ ddl: true
+ backend: false
+ frontend: false
+ tests: false
+
+# ============================================================================
+# REFERENCIAS CRUZADAS
+# ============================================================================
+referencias_cruzadas:
+ por_tabla:
+ "dental.odontogramas":
+ modulos: ["DENTAL-001"]
+ entities: ["Odontograma"]
+ documentos: ["DENTAL-001-odontograma.md"]
+
+ "dental.odontograma_piezas":
+ modulos: ["DENTAL-001"]
+ entities: ["OdontogramaPieza"]
+ documentos: ["DENTAL-001-odontograma.md"]
+
+ "dental.tratamientos_catalogo":
+ modulos: ["DENTAL-002"]
+ entities: ["TratamientoCatalogo"]
+ documentos: ["DENTAL-002-tratamientos.md"]
+
+ "dental.tratamientos_paciente":
+ modulos: ["DENTAL-002"]
+ entities: ["TratamientoPaciente"]
+ documentos: ["DENTAL-002-tratamientos.md"]
+
+ "dental.ortodoncia":
+ modulos: ["DENTAL-003"]
+ entities: ["Ortodoncia"]
+ documentos: ["DENTAL-003-ortodoncia.md"]
+
+ "dental.protesis":
+ modulos: ["DENTAL-004"]
+ entities: ["Protesis"]
+ documentos: ["DENTAL-004-protesis.md"]
+
+ "dental.radiografias":
+ modulos: ["DENTAL-005"]
+ entities: ["Radiografia"]
+ documentos: ["DENTAL-005-radiografias.md"]
+
+ "dental.presupuestos":
+ modulos: ["DENTAL-006"]
+ entities: ["Presupuesto"]
+ documentos: ["DENTAL-006-presupuestos.md"]
+
+# ============================================================================
+# IMPACTO DE CAMBIOS
+# ============================================================================
+impacto:
+ "dental.odontogramas":
+ tipo: "tabla"
+ impacta:
+ entities: ["Odontograma"]
+ services: ["OdontogramaService"]
+ modulos: ["DENTAL-001", "DENTAL-002", "DENTAL-004"]
+
+ "dental.tratamientos_catalogo":
+ tipo: "tabla"
+ impacta:
+ entities: ["TratamientoCatalogo"]
+ services: ["TratamientoCatalogoService", "TratamientoPacienteService", "PresupuestoService"]
+ modulos: ["DENTAL-002", "DENTAL-006"]
+
+ "clinica.patients":
+ tipo: "tabla heredada"
+ impacta:
+ modulos: ["DENTAL-001", "DENTAL-002", "DENTAL-003", "DENTAL-004", "DENTAL-005", "DENTAL-006"]
+
+# ============================================================================
+# HISTORIAL DE CAMBIOS
+# ============================================================================
+historial:
+ - fecha: "2026-01-16"
+ tipo: "creacion"
+ descripcion: "Trazabilidad inicial del proyecto"
+ autor: "Claude"
+
+# ============================================================================
+# ESTADISTICAS
+# ============================================================================
+estadisticas:
+ modulos_mapeados: 6
+ tablas_mapeadas: 11
+ entities_mapeadas: 0
+ documentos_referenciados: 6
+ ultima_actualizacion: "2026-01-16"
diff --git a/orchestration/_refs/WS-REFERENCES.yml b/orchestration/_refs/WS-REFERENCES.yml
new file mode 100644
index 0000000..a0f1217
--- /dev/null
+++ b/orchestration/_refs/WS-REFERENCES.yml
@@ -0,0 +1,172 @@
+# Referencias a Workspace
+# Proyecto: clinica-dental
+# Nivel de Herencia: 3 (erp-core -> erp-clinicas -> clinica-dental)
+
+version: "1.0.0"
+proyecto: "clinica-dental"
+fecha_creacion: "2026-01-16"
+
+# ============================================================================
+# REFERENCIAS A DEFINICIONES GLOBALES
+# ============================================================================
+definiciones_workspace:
+ protocolos:
+ CCA:
+ alias: "@WS_DEF_CCA"
+ archivo: "orchestration/_definitions/protocols/CCA-PROTOCOL.md"
+ uso: "Protocolo de Carga de Contexto Automatica"
+
+ CCA_LIGHT:
+ alias: "@WS_DEF_CCA_LIGHT"
+ archivo: "orchestration/_definitions/protocols/CCA-LIGHT.md"
+ uso: "Version ligera para subagentes"
+
+ validaciones:
+ backend:
+ alias: "@WS_DEF_VAL_BE"
+ archivo: "orchestration/_definitions/validations/VALIDATION-BACKEND.md"
+ comandos: ["npm run build", "npm run lint", "npm run test"]
+
+ frontend:
+ alias: "@WS_DEF_VAL_FE"
+ archivo: "orchestration/_definitions/validations/VALIDATION-FRONTEND.md"
+ comandos: ["npm run build", "npm run lint", "npm run typecheck"]
+
+ ddl:
+ alias: "@WS_DEF_VAL_DDL"
+ archivo: "orchestration/_definitions/validations/VALIDATION-DDL.md"
+
+ devops:
+ alias: "@WS_DEF_VAL_DEVOPS"
+ archivo: "orchestration/_definitions/validations/VALIDATION-DEVOPS.md"
+
+# ============================================================================
+# REFERENCIAS A NAVEGACION RAPIDA GLOBAL
+# ============================================================================
+navegacion_workspace:
+ indice:
+ alias: "@WS_QUICK_INDEX"
+ archivo: "orchestration/_quick/QUICK-INDEX.yml"
+
+ perfiles:
+ alias: "@WS_QUICK_PERFILES"
+ archivo: "orchestration/_quick/QUICK-PERFILES.yml"
+
+ directivas:
+ alias: "@WS_QUICK_DIRECTIVAS"
+ archivo: "orchestration/_quick/QUICK-DIRECTIVAS.yml"
+
+# ============================================================================
+# REFERENCIAS A CATALOGO COMPARTIDO
+# ============================================================================
+catalogo_compartido:
+ indice:
+ alias: "@WS_CATALOG"
+ archivo: "shared/catalog/CATALOG-INDEX.yml"
+
+ funcionalidades:
+ auth: "shared/catalog/auth/"
+ notifications: "shared/catalog/notifications/"
+ payments: "shared/catalog/payments/"
+ multi_tenancy: "shared/catalog/multi-tenancy/"
+
+# ============================================================================
+# HERENCIA DE PROYECTO (Nivel 3)
+# ============================================================================
+herencia:
+ padre: "erp-clinicas"
+ nivel: 3
+ cadena_completa:
+ - proyecto: "erp-core"
+ nivel: 1
+ tipo: "core"
+ hereda: "definiciones + codigo base"
+ - proyecto: "erp-clinicas"
+ nivel: 2
+ tipo: "vertical"
+ hereda: "definiciones + codigo clinico"
+ - proyecto: "clinica-dental"
+ nivel: 3
+ tipo: "sub-vertical"
+ hereda: "especializacion dental"
+
+ hereda_de:
+ - proyecto: "erp-clinicas"
+ tipo: "definiciones + codigo"
+ modulos:
+ - CL-001 # Fundamentos
+ - CL-002 # Pacientes
+ - CL-003 # Citas
+ - CL-004 # Consultas
+ - CL-005 # Recetas
+ - CL-006 # Laboratorio (parcial)
+ - CL-008 # Facturacion
+ - CL-009 # Reportes
+ - CL-011 # Expediente
+ - CL-012 # Imagenologia
+ - proyecto: "erp-core"
+ tipo: "definiciones base + codigo core"
+ modulos:
+ - MGN-001 # Authentication
+ - MGN-002 # Users
+ - MGN-003 # Roles
+ - MGN-004 # Tenants
+ - MGN-005 # Catalogs
+ - MGN-007 # Audit
+ - MGN-008 # Notifications
+ - MGN-009 # Reports
+ - MGN-010 # Financial
+ - MGN-016 # Billing (SaaS)
+ - MGN-017 # Plans (SaaS)
+ - MGN-018 # Webhooks (SaaS)
+ - MGN-019 # Feature Flags (SaaS)
+ - MGN-020 # AI Integration (IA)
+ - MGN-021 # WhatsApp Business (IA)
+ - MGN-022 # MCP Server (IA)
+
+# ============================================================================
+# PROPAGACION
+# ============================================================================
+propagacion:
+ mirror: "shared/mirrors/clinica-dental/"
+ status: "shared/mirrors/clinica-dental/PROPAGATION-STATUS.yml"
+ consumidores: [] # Sin sub-proyectos actualmente
+ proveedores:
+ - proyecto: "erp-clinicas"
+ tipo: "padre"
+ - proyecto: "erp-core"
+ tipo: "abuelo"
+
+# ============================================================================
+# DEFINICIONES LOCALES
+# ============================================================================
+definiciones_locales:
+ database:
+ alias: "@PROJ_DEF_DB"
+ archivo: "docs/_definitions/DATABASE-SCHEMA.md"
+ entities:
+ alias: "@PROJ_DEF_ENTITIES"
+ archivo: "docs/_definitions/ENTITIES-CATALOG.md"
+ services:
+ alias: "@PROJ_DEF_SERVICES"
+ archivo: "docs/_definitions/SERVICES-CATALOG.md"
+ modules:
+ alias: "@PROJ_DEF_MODULES"
+ archivo: "docs/_definitions/MODULES-CATALOG.md"
+
+# ============================================================================
+# NAVEGACION RAPIDA LOCAL
+# ============================================================================
+navegacion_local:
+ indice:
+ alias: "@PROJ_QUICK_INDEX"
+ archivo: "docs/_quick/QUICK-INDEX.yml"
+ modulos:
+ alias: "@PROJ_QUICK_MODULES"
+ archivo: "docs/_quick/QUICK-MODULES.yml"
+ database:
+ alias: "@PROJ_QUICK_DB"
+ archivo: "docs/_quick/QUICK-DATABASE.yml"
+ api:
+ alias: "@PROJ_QUICK_API"
+ archivo: "docs/_quick/QUICK-API.yml"