[INTEGRATION] F3: Crear _definitions/ y _quick/ (nivel=3, padre=erp-clinicas)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
rckrdmrd 2026-01-16 04:14:26 -06:00
parent 27b4e7bccf
commit 5aa53dca9f
13 changed files with 2770 additions and 12 deletions

View File

@ -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)

View File

@ -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*

View File

@ -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*

View File

@ -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*

View File

@ -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*

View File

@ -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"

157
docs/_quick/QUICK-API.yml Normal file
View File

@ -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"

View File

@ -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"

162
docs/_quick/QUICK-INDEX.yml Normal file
View File

@ -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/"

View File

@ -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"

View File

@ -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<br/>Core + SaaS + IA]
end
subgraph "Nivel 2: erp-clinicas"
CL002[CL-002<br/>Pacientes]
CL003[CL-003<br/>Citas]
CL004[CL-004<br/>Consultas]
CL012[CL-012<br/>Imagenologia]
end
subgraph "Nivel 3: clinica-dental"
D001[DENTAL-001<br/>Odontograma]
D002[DENTAL-002<br/>Tratamientos]
D003[DENTAL-003<br/>Ortodoncia]
D004[DENTAL-004<br/>Protesis]
D005[DENTAL-005<br/>Radiografias]
D006[DENTAL-006<br/>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"

View File

@ -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"

View File

@ -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"