[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:
parent
27b4e7bccf
commit
5aa53dca9f
78
docs/_MAP.md
78
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)
|
||||
|
||||
526
docs/_definitions/DATABASE-SCHEMA.md
Normal file
526
docs/_definitions/DATABASE-SCHEMA.md
Normal 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*
|
||||
216
docs/_definitions/ENTITIES-CATALOG.md
Normal file
216
docs/_definitions/ENTITIES-CATALOG.md
Normal 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*
|
||||
332
docs/_definitions/MODULES-CATALOG.md
Normal file
332
docs/_definitions/MODULES-CATALOG.md
Normal 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*
|
||||
202
docs/_definitions/SERVICES-CATALOG.md
Normal file
202
docs/_definitions/SERVICES-CATALOG.md
Normal 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*
|
||||
135
docs/_definitions/_INDEX.yml
Normal file
135
docs/_definitions/_INDEX.yml
Normal 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
157
docs/_quick/QUICK-API.yml
Normal 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"
|
||||
197
docs/_quick/QUICK-DATABASE.yml
Normal file
197
docs/_quick/QUICK-DATABASE.yml
Normal 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
162
docs/_quick/QUICK-INDEX.yml
Normal 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/"
|
||||
122
docs/_quick/QUICK-MODULES.yml
Normal file
122
docs/_quick/QUICK-MODULES.yml
Normal 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"
|
||||
198
orchestration/DEPENDENCY-GRAPH.yml
Normal file
198
orchestration/DEPENDENCY-GRAPH.yml
Normal 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"
|
||||
285
orchestration/TRACEABILITY.yml
Normal file
285
orchestration/TRACEABILITY.yml
Normal 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"
|
||||
172
orchestration/_refs/WS-REFERENCES.yml
Normal file
172
orchestration/_refs/WS-REFERENCES.yml
Normal 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"
|
||||
Loading…
Reference in New Issue
Block a user