feat: Add orchestration configuration and project documentation
- Add CONTEXT-MAP.yml and PROJECT-STATUS.md - Add _MAP.md for documentation index - Update orchestration structure 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
7ffcdf597c
commit
a290bd564a
348
docs/00-vision-general/VISION.md
Normal file
348
docs/00-vision-general/VISION.md
Normal file
@ -0,0 +1,348 @@
|
||||
# VISION - Sistema de Gestion Clinica Dental
|
||||
|
||||
**Proyecto:** clinica-dental
|
||||
**Version:** 1.0.0
|
||||
**Fecha:** 2026-01-07
|
||||
**Estado:** Fase 0 - Documentacion
|
||||
|
||||
---
|
||||
|
||||
## 1. PROPOSITO
|
||||
|
||||
Sistema de gestion integral para clinicas odontologicas que permite administrar pacientes, expedientes clinicos, odontogramas digitales, tratamientos dentales, citas, facturacion e inventario de materiales.
|
||||
|
||||
### Problema que Resuelve
|
||||
|
||||
- Falta de registro digital estructurado del estado dental de pacientes
|
||||
- Dificultad para dar seguimiento a tratamientos de larga duracion (ortodoncia)
|
||||
- Gestion manual de citas y disponibilidad de sillones
|
||||
- Control deficiente de inventario de materiales dentales
|
||||
- Falta de trazabilidad en procedimientos y presupuestos
|
||||
|
||||
### Propuesta de Valor
|
||||
|
||||
- **Odontograma digital interactivo** con nomenclatura FDI
|
||||
- **Historial por pieza dental** con fotos y radiografias
|
||||
- **Seguimiento de tratamientos** con alertas de proximas citas
|
||||
- **Presupuestos detallados** con planes de pago
|
||||
- **Control de inventario** de materiales por procedimiento
|
||||
|
||||
---
|
||||
|
||||
## 2. OBJETIVOS PRINCIPALES
|
||||
|
||||
### O1: Gestion de Pacientes y Expedientes
|
||||
- Registro completo de datos del paciente
|
||||
- Historial clinico odontologico
|
||||
- Alergias y contraindicaciones
|
||||
- Consentimientos informados digitales
|
||||
|
||||
### O2: Odontograma Digital
|
||||
- Representacion grafica de 32 piezas (adulto) o deciduos
|
||||
- Estado por pieza: sano, caries, obturacion, ausente, etc.
|
||||
- Registro de caras afectadas (M, D, O, V, L)
|
||||
- Historial de cambios por fecha
|
||||
|
||||
### O3: Gestion de Tratamientos
|
||||
- Catalogo de procedimientos dentales
|
||||
- Planes de tratamiento personalizados
|
||||
- Seguimiento de citas por tratamiento
|
||||
- Presupuestos con opciones de pago
|
||||
|
||||
### O4: Especialidades Integradas
|
||||
- Ortodoncia (brackets, alineadores, retenedores)
|
||||
- Endodoncia (tratamientos de conductos)
|
||||
- Periodoncia (raspados, cirugia)
|
||||
- Prostodoncia (coronas, puentes, implantes)
|
||||
- Estetica dental (blanqueamiento, carillas)
|
||||
|
||||
### O5: Operacion de Clinica
|
||||
- Agenda de citas por odontologo y sillon
|
||||
- Control de inventario de materiales
|
||||
- Facturacion integrada
|
||||
- Reportes de productividad
|
||||
|
||||
---
|
||||
|
||||
## 3. USUARIOS Y ROLES
|
||||
|
||||
| Rol | Descripcion | Permisos Principales |
|
||||
|-----|-------------|---------------------|
|
||||
| **Odontologo** | Medico tratante | Consultas, diagnosticos, tratamientos, prescripciones |
|
||||
| **Auxiliar Dental** | Apoyo en procedimientos | Ver expedientes, actualizar estado, preparar materiales |
|
||||
| **Recepcionista** | Atencion al paciente | Agendar citas, cobros, captura de datos |
|
||||
| **Higienista** | Profilaxis dental | Limpiezas, aplicar fluor, selladores |
|
||||
| **Tecnico Dental** | Trabajos protesicos | Ver ordenes de laboratorio, actualizar estatus |
|
||||
| **Administrador** | Gestion general | Configuracion, reportes, usuarios, catalogs |
|
||||
|
||||
---
|
||||
|
||||
## 4. FUNCIONALIDADES CORE
|
||||
|
||||
### 4.1 Modulo Odontograma
|
||||
|
||||
```yaml
|
||||
entidad_principal: odontograma
|
||||
campos:
|
||||
- id: UUID
|
||||
- paciente_id: UUID (FK)
|
||||
- fecha_registro: TIMESTAMP
|
||||
- tipo: ENUM (adulto, deciduo)
|
||||
- piezas: JSONB[]
|
||||
|
||||
funcionalidades:
|
||||
- Vista grafica interactiva de dentadura
|
||||
- Click en pieza para ver/editar estado
|
||||
- Colores por estado (verde=sano, rojo=caries, gris=ausente)
|
||||
- Historial de cambios por pieza
|
||||
- Comparativa entre fechas
|
||||
```
|
||||
|
||||
### 4.2 Modulo Tratamientos
|
||||
|
||||
```yaml
|
||||
entidad_principal: tratamiento
|
||||
campos:
|
||||
- id: UUID
|
||||
- paciente_id: UUID (FK)
|
||||
- pieza_id: UUID (FK, opcional)
|
||||
- procedimiento_id: UUID (FK catalogo)
|
||||
- fecha_inicio: DATE
|
||||
- fecha_fin: DATE
|
||||
- estado: ENUM (pendiente, en_proceso, completado, cancelado)
|
||||
- costo: DECIMAL
|
||||
- odontologo_id: UUID (FK)
|
||||
|
||||
funcionalidades:
|
||||
- Plan de tratamiento con multiples procedimientos
|
||||
- Asociacion a pieza dental especifica
|
||||
- Seguimiento de citas relacionadas
|
||||
- Presupuesto automatico
|
||||
- Notas clinicas por cita
|
||||
```
|
||||
|
||||
### 4.3 Modulo Ortodoncia
|
||||
|
||||
```yaml
|
||||
entidad_principal: caso_ortodoncia
|
||||
campos:
|
||||
- id: UUID
|
||||
- paciente_id: UUID (FK)
|
||||
- tipo: ENUM (brackets_metalicos, brackets_ceramicos, alineadores, retenedores)
|
||||
- fecha_colocacion: DATE
|
||||
- fecha_estimada_retiro: DATE
|
||||
- citas_control: INTEGER (cada cuantas semanas)
|
||||
- estado: ENUM (activo, pausado, finalizado)
|
||||
|
||||
funcionalidades:
|
||||
- Registro de estudios iniciales (Rx, fotos, modelos)
|
||||
- Seguimiento de citas de ajuste
|
||||
- Fotos de progreso
|
||||
- Control de retenedores post-tratamiento
|
||||
```
|
||||
|
||||
### 4.4 Modulo Protesis
|
||||
|
||||
```yaml
|
||||
entidad_principal: trabajo_protesico
|
||||
campos:
|
||||
- id: UUID
|
||||
- paciente_id: UUID (FK)
|
||||
- tipo: ENUM (corona, puente, dentadura_parcial, dentadura_total, implante)
|
||||
- piezas_involucradas: INTEGER[]
|
||||
- laboratorio_id: UUID (FK)
|
||||
- fecha_impresion: DATE
|
||||
- fecha_entrega_estimada: DATE
|
||||
- estado: ENUM (impresion, laboratorio, prueba, cementado, entregado)
|
||||
|
||||
funcionalidades:
|
||||
- Ordenes de trabajo a laboratorio
|
||||
- Seguimiento de estatus
|
||||
- Registro de pruebas y ajustes
|
||||
- Garantias
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. NOMENCLATURA DENTAL (FDI)
|
||||
|
||||
### Sistema de Numeracion
|
||||
|
||||
```
|
||||
SUPERIOR
|
||||
Derecho | Izquierdo
|
||||
18-11 | 21-28
|
||||
---------|----------
|
||||
48-41 | 31-38
|
||||
Derecho | Izquierdo
|
||||
INFERIOR
|
||||
|
||||
Cuadrante 1: Superior derecho (11-18)
|
||||
Cuadrante 2: Superior izquierdo (21-28)
|
||||
Cuadrante 3: Inferior izquierdo (31-38)
|
||||
Cuadrante 4: Inferior derecho (41-48)
|
||||
```
|
||||
|
||||
### Dientes Deciduos (Ninos)
|
||||
|
||||
```
|
||||
Cuadrante 5: Superior derecho deciduo (51-55)
|
||||
Cuadrante 6: Superior izquierdo deciduo (61-65)
|
||||
Cuadrante 7: Inferior izquierdo deciduo (71-75)
|
||||
Cuadrante 8: Inferior derecho deciduo (81-85)
|
||||
```
|
||||
|
||||
### Caras Dentales
|
||||
|
||||
| Abreviatura | Nombre | Descripcion |
|
||||
|-------------|--------|-------------|
|
||||
| M | Mesial | Hacia el centro de la arcada |
|
||||
| D | Distal | Alejandose del centro |
|
||||
| O | Oclusal | Superficie de masticacion (molares) |
|
||||
| I | Incisal | Borde de corte (incisivos) |
|
||||
| V | Vestibular | Hacia los labios/mejillas |
|
||||
| B | Bucal | Sinonimo de vestibular |
|
||||
| L | Lingual | Hacia la lengua (inferiores) |
|
||||
| P | Palatino | Hacia el paladar (superiores) |
|
||||
|
||||
---
|
||||
|
||||
## 6. CATALOGO DE PROCEDIMIENTOS
|
||||
|
||||
### Prevencion
|
||||
- Limpieza dental (profilaxis)
|
||||
- Aplicacion de fluor
|
||||
- Selladores de fosetas y fisuras
|
||||
- Detartraje (remocion de sarro)
|
||||
|
||||
### Restauracion
|
||||
- Resina (por cara)
|
||||
- Amalgama
|
||||
- Incrustacion (inlay/onlay)
|
||||
- Reconstruccion
|
||||
|
||||
### Endodoncia
|
||||
- Tratamiento de conductos (unirradicular)
|
||||
- Tratamiento de conductos (birradicular)
|
||||
- Tratamiento de conductos (multirradicular)
|
||||
- Retratamiento
|
||||
- Apicoectomia
|
||||
|
||||
### Periodoncia
|
||||
- Raspado y alisado radicular
|
||||
- Cirugia periodontal
|
||||
- Injerto de encia
|
||||
- Ferulizacion
|
||||
|
||||
### Cirugia
|
||||
- Extraccion simple
|
||||
- Extraccion quirurgica
|
||||
- Tercer molar retenido
|
||||
- Frenectomia
|
||||
- Biopsia
|
||||
|
||||
### Protesis
|
||||
- Corona metal-porcelana
|
||||
- Corona libre de metal (zirconia)
|
||||
- Puente fijo
|
||||
- Dentadura parcial removible
|
||||
- Dentadura total
|
||||
- Implante dental
|
||||
|
||||
### Ortodoncia
|
||||
- Colocacion de brackets
|
||||
- Ajuste mensual
|
||||
- Retiro de aparatologia
|
||||
- Retenedor fijo
|
||||
- Retenedor removible
|
||||
- Alineadores transparentes
|
||||
|
||||
### Estetica
|
||||
- Blanqueamiento en consultorio
|
||||
- Blanqueamiento casero
|
||||
- Carillas de porcelana
|
||||
- Carillas de resina
|
||||
- Cierre de diastemas
|
||||
|
||||
---
|
||||
|
||||
## 7. INTEGRACIONES
|
||||
|
||||
| Sistema | Proposito | Prioridad |
|
||||
|---------|-----------|-----------|
|
||||
| Radiografias digitales | Captura de Rx periapicales, panoramicas | P1 |
|
||||
| Laboratorio dental | Ordenes de trabajo protesico | P2 |
|
||||
| Proveedores | Pedidos de materiales | P2 |
|
||||
| Facturacion electronica | CFDI 4.0 | P1 |
|
||||
|
||||
---
|
||||
|
||||
## 8. METRICAS DE EXITO
|
||||
|
||||
| Metrica | Descripcion | Objetivo |
|
||||
|---------|-------------|----------|
|
||||
| Consultas/dia | Pacientes atendidos por odontologo | 8-12 |
|
||||
| Tratamientos completados | Planes finalizados por mes | 80% |
|
||||
| Tasa retencion ortodoncia | Pacientes que completan tratamiento | 90% |
|
||||
| Ticket promedio | Ingreso por paciente | $2,500+ |
|
||||
| Ocupacion sillones | Uso de unidades dentales | 85% |
|
||||
| Satisfaccion paciente | NPS | 8.5+ |
|
||||
|
||||
---
|
||||
|
||||
## 9. FASES DE DESARROLLO
|
||||
|
||||
### Fase 1: Core (MVP)
|
||||
- Gestion de pacientes
|
||||
- Odontograma basico
|
||||
- Agenda de citas
|
||||
- Facturacion simple
|
||||
|
||||
### Fase 2: Tratamientos
|
||||
- Catalogo de procedimientos
|
||||
- Planes de tratamiento
|
||||
- Presupuestos
|
||||
- Seguimiento de citas
|
||||
|
||||
### Fase 3: Especialidades
|
||||
- Ortodoncia completa
|
||||
- Endodoncia
|
||||
- Protesis y laboratorio
|
||||
- Periodoncia
|
||||
|
||||
### Fase 4: Optimizacion
|
||||
- Reportes avanzados
|
||||
- Integracion con Rx digitales
|
||||
- App movil para pacientes
|
||||
- Recordatorios automaticos
|
||||
|
||||
---
|
||||
|
||||
## 10. HERENCIA Y DEPENDENCIAS
|
||||
|
||||
### Hereda de erp-clinicas
|
||||
- Modulo Pacientes
|
||||
- Modulo Expedientes
|
||||
- Modulo Citas
|
||||
- Modulo Consultas
|
||||
- Modulo Recetas
|
||||
|
||||
### Hereda de erp-core
|
||||
- Autenticacion y usuarios
|
||||
- Roles y permisos
|
||||
- Facturacion
|
||||
- Inventario
|
||||
- Catalogos base
|
||||
|
||||
### Especifico Dental (Nuevo)
|
||||
- Odontograma
|
||||
- Tratamientos dentales
|
||||
- Ortodoncia
|
||||
- Protesis
|
||||
- Nomenclatura FDI
|
||||
|
||||
---
|
||||
|
||||
**Documento creado:** 2026-01-07
|
||||
**Autor:** Agente Orquestador Workspace
|
||||
**Basado en:** SIMCO v2.5, CONTEXTO-PROYECTO.md
|
||||
153
docs/02-definicion-modulos/_MAP.md
Normal file
153
docs/02-definicion-modulos/_MAP.md
Normal file
@ -0,0 +1,153 @@
|
||||
# Clinica Dental - Mapa de Modulos
|
||||
|
||||
**Proyecto:** clinica-dental
|
||||
**Seccion:** 02-definicion-modulos
|
||||
**Fecha:** 2026-01-07
|
||||
|
||||
---
|
||||
|
||||
## Estructura de Modulos
|
||||
|
||||
```
|
||||
02-definicion-modulos/
|
||||
├── _MAP.md <- ESTE ARCHIVO
|
||||
├── modulo-odontograma.md <- Registro grafico dental
|
||||
├── modulo-tratamientos.md <- Gestion de procedimientos
|
||||
├── modulo-prevencion.md <- Profilaxis y selladores
|
||||
├── modulo-restauracion.md <- Resinas y amalgamas
|
||||
├── modulo-ortodoncia.md <- Brackets y alineadores
|
||||
├── modulo-endodoncia.md <- Tratamientos de conductos
|
||||
├── modulo-periodoncia.md <- Enfermedad periodontal
|
||||
├── modulo-protesis.md <- Coronas, puentes, implantes
|
||||
├── modulo-cirugia.md <- Extracciones y cirugia
|
||||
└── modulo-estetica.md <- Blanqueamiento, carillas
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Modulos Especializados (Odontologia)
|
||||
|
||||
### Core - Prioridad P1
|
||||
|
||||
| Modulo | Archivo | Estado | Descripcion |
|
||||
|--------|---------|--------|-------------|
|
||||
| Odontograma | modulo-odontograma.md | EN_PROGRESO | Registro grafico del estado dental |
|
||||
| Tratamientos | modulo-tratamientos.md | PENDIENTE | Gestion de procedimientos y planes |
|
||||
| Prevencion | modulo-prevencion.md | PENDIENTE | Limpiezas, fluor, selladores |
|
||||
| Restauracion | modulo-restauracion.md | PENDIENTE | Resinas, amalgamas, incrustaciones |
|
||||
|
||||
### Especializados - Prioridad P2
|
||||
|
||||
| Modulo | Archivo | Estado | Descripcion |
|
||||
|--------|---------|--------|-------------|
|
||||
| Ortodoncia | modulo-ortodoncia.md | PENDIENTE | Brackets, alineadores, retenedores |
|
||||
| Endodoncia | modulo-endodoncia.md | PENDIENTE | Tratamientos de conductos |
|
||||
| Periodoncia | modulo-periodoncia.md | PENDIENTE | Raspados, cirugia periodontal |
|
||||
| Protesis | modulo-protesis.md | PENDIENTE | Coronas, puentes, dentaduras |
|
||||
| Cirugia | modulo-cirugia.md | PENDIENTE | Extracciones, implantes |
|
||||
| Estetica | modulo-estetica.md | PENDIENTE | Blanqueamiento, carillas |
|
||||
|
||||
---
|
||||
|
||||
## Modulos Heredados (de erp-clinicas)
|
||||
|
||||
| Modulo | Fuente | Adaptacion |
|
||||
|--------|--------|------------|
|
||||
| Pacientes | erp-clinicas | Sin cambios |
|
||||
| Expedientes | erp-clinicas | Agregar seccion odontograma |
|
||||
| Citas | erp-clinicas | Sin cambios |
|
||||
| Consultas | erp-clinicas | Agregar exploracion dental |
|
||||
| Recetas | erp-clinicas | Sin cambios |
|
||||
|
||||
---
|
||||
|
||||
## Modulos Heredados (de erp-core)
|
||||
|
||||
| Modulo | Fuente | Adaptacion |
|
||||
|--------|--------|------------|
|
||||
| Autenticacion | erp-core | Sin cambios |
|
||||
| Usuarios | erp-core | Sin cambios |
|
||||
| Roles/Permisos | erp-core | Agregar roles odontologicos |
|
||||
| Facturacion | erp-core | Sin cambios |
|
||||
| Inventario | erp-core | Materiales dentales |
|
||||
| Catalogos | erp-core | Agregar catalogos dentales |
|
||||
|
||||
---
|
||||
|
||||
## Entidades por Modulo
|
||||
|
||||
### Odontograma
|
||||
- `odontograma` - Registro principal
|
||||
- `pieza_dental` - Estado por pieza
|
||||
- `historial_pieza` - Cambios historicos
|
||||
|
||||
### Tratamientos
|
||||
- `tratamiento` - Plan de tratamiento
|
||||
- `procedimiento` - Catalogo de procedimientos
|
||||
- `tratamiento_procedimiento` - Detalle
|
||||
- `presupuesto` - Costos estimados
|
||||
|
||||
### Ortodoncia
|
||||
- `caso_ortodoncia` - Caso clinico
|
||||
- `ajuste_ortodoncia` - Registro de ajustes
|
||||
- `estudio_ortodoncia` - Rx, fotos, modelos
|
||||
|
||||
### Protesis
|
||||
- `trabajo_protesico` - Orden de trabajo
|
||||
- `laboratorio_dental` - Laboratorios externos
|
||||
- `prueba_protesis` - Registro de pruebas
|
||||
|
||||
---
|
||||
|
||||
## Relaciones entre Modulos
|
||||
|
||||
```
|
||||
┌─────────────┐
|
||||
│ Paciente │
|
||||
│(erp-clinicas)│
|
||||
└──────┬──────┘
|
||||
│
|
||||
┌────────────┼────────────┐
|
||||
│ │ │
|
||||
┌──────▼──────┐ ┌───▼───┐ ┌──────▼──────┐
|
||||
│ Odontograma │ │ Citas │ │ Expediente │
|
||||
└──────┬──────┘ └───┬───┘ └──────┬──────┘
|
||||
│ │ │
|
||||
└─────┬──────┴──────┬─────┘
|
||||
│ │
|
||||
┌──────▼──────┐ ┌────▼────┐
|
||||
│ Tratamientos│ │Consultas│
|
||||
└──────┬──────┘ └────┬────┘
|
||||
│ │
|
||||
┌───────────────┼─────────────┤
|
||||
│ │ │
|
||||
┌───▼───┐ ┌──────▼──────┐ ┌────▼────┐
|
||||
│Ortodo-│ │ Protesis │ │ Recetas │
|
||||
│ncia │ └─────────────┘ └─────────┘
|
||||
└───────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Estado de Documentacion
|
||||
|
||||
| Modulo | README | ESPECIFICACION | FLUJOS | TESTS |
|
||||
|--------|--------|----------------|--------|-------|
|
||||
| Odontograma | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||
| Tratamientos | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||
| Ortodoncia | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||
| Protesis | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||
|
||||
---
|
||||
|
||||
## Proximos Pasos
|
||||
|
||||
1. **Completar modulo-odontograma.md** - Especificacion completa
|
||||
2. **Documentar modulo-tratamientos.md** - Planes y presupuestos
|
||||
3. **Definir entidades** en DATABASE_INVENTORY.yml
|
||||
4. **Crear User Stories** para Sprint 1
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-07
|
||||
**Version:** 1.0.0
|
||||
560
docs/02-definicion-modulos/modulo-odontograma.md
Normal file
560
docs/02-definicion-modulos/modulo-odontograma.md
Normal file
@ -0,0 +1,560 @@
|
||||
# Modulo Odontograma
|
||||
|
||||
**Proyecto:** clinica-dental
|
||||
**Modulo:** ODT-001
|
||||
**Prioridad:** P1 - Core
|
||||
**Estado:** Especificacion
|
||||
**Fecha:** 2026-01-07
|
||||
|
||||
---
|
||||
|
||||
## 1. DESCRIPCION GENERAL
|
||||
|
||||
El odontograma es el registro grafico del estado dental del paciente. Representa visualmente cada pieza dental con su condicion actual, tratamientos realizados e historial de cambios.
|
||||
|
||||
### Proposito
|
||||
- Visualizar estado completo de la dentadura
|
||||
- Registrar condicion de cada pieza dental
|
||||
- Documentar caras afectadas
|
||||
- Mantener historial de cambios
|
||||
- Facilitar diagnostico y plan de tratamiento
|
||||
|
||||
### Alcance
|
||||
- Adultos (32 piezas permanentes)
|
||||
- Ninos (20 piezas deciduas)
|
||||
- Estados por pieza
|
||||
- Historial temporal
|
||||
- Anotaciones por pieza
|
||||
|
||||
---
|
||||
|
||||
## 2. ENTIDADES
|
||||
|
||||
### 2.1 odontograma
|
||||
|
||||
```yaml
|
||||
tabla: dental.odontogramas
|
||||
descripcion: "Registro principal del estado dental"
|
||||
|
||||
campos:
|
||||
- nombre: id
|
||||
tipo: UUID
|
||||
pk: true
|
||||
descripcion: "Identificador unico"
|
||||
|
||||
- nombre: paciente_id
|
||||
tipo: UUID
|
||||
fk: clinicas.pacientes(id)
|
||||
not_null: true
|
||||
descripcion: "Paciente al que pertenece"
|
||||
|
||||
- nombre: tipo
|
||||
tipo: ENUM
|
||||
valores: ['adulto', 'deciduo', 'mixto']
|
||||
default: 'adulto'
|
||||
descripcion: "Tipo de denticion"
|
||||
|
||||
- nombre: fecha_registro
|
||||
tipo: TIMESTAMP
|
||||
default: NOW()
|
||||
descripcion: "Fecha de creacion"
|
||||
|
||||
- nombre: fecha_actualizacion
|
||||
tipo: TIMESTAMP
|
||||
descripcion: "Ultima modificacion"
|
||||
|
||||
- nombre: odontologo_id
|
||||
tipo: UUID
|
||||
fk: core.usuarios(id)
|
||||
descripcion: "Odontologo que registro"
|
||||
|
||||
- nombre: notas_generales
|
||||
tipo: TEXT
|
||||
descripcion: "Observaciones generales"
|
||||
|
||||
- nombre: activo
|
||||
tipo: BOOLEAN
|
||||
default: true
|
||||
descripcion: "Odontograma vigente"
|
||||
|
||||
indices:
|
||||
- nombre: idx_odontograma_paciente
|
||||
campos: [paciente_id]
|
||||
- nombre: idx_odontograma_fecha
|
||||
campos: [fecha_registro DESC]
|
||||
|
||||
rls:
|
||||
- policy: "tenant_isolation"
|
||||
using: "tenant_id = current_tenant_id()"
|
||||
```
|
||||
|
||||
### 2.2 pieza_dental
|
||||
|
||||
```yaml
|
||||
tabla: dental.piezas_dentales
|
||||
descripcion: "Estado individual de cada pieza"
|
||||
|
||||
campos:
|
||||
- nombre: id
|
||||
tipo: UUID
|
||||
pk: true
|
||||
|
||||
- nombre: odontograma_id
|
||||
tipo: UUID
|
||||
fk: dental.odontogramas(id)
|
||||
not_null: true
|
||||
on_delete: CASCADE
|
||||
|
||||
- nombre: numero_pieza
|
||||
tipo: INTEGER
|
||||
not_null: true
|
||||
check: "(numero_pieza BETWEEN 11 AND 48) OR (numero_pieza BETWEEN 51 AND 85)"
|
||||
descripcion: "Numero FDI de la pieza"
|
||||
|
||||
- nombre: estado
|
||||
tipo: ENUM
|
||||
valores: ['sano', 'caries', 'obturacion_resina', 'obturacion_amalgama',
|
||||
'endodoncia', 'corona', 'puente_pilar', 'puente_ponico',
|
||||
'implante', 'ausente', 'extraccion_indicada', 'supernumerario',
|
||||
'retenido', 'fracturado']
|
||||
default: 'sano'
|
||||
descripcion: "Estado actual de la pieza"
|
||||
|
||||
- nombre: caras_afectadas
|
||||
tipo: TEXT[]
|
||||
descripcion: "Array de caras: M, D, O, V, L, I, P"
|
||||
|
||||
- nombre: movilidad
|
||||
tipo: INTEGER
|
||||
check: "movilidad BETWEEN 0 AND 3"
|
||||
descripcion: "Grado de movilidad (0=normal, 3=severa)"
|
||||
|
||||
- nombre: sensibilidad
|
||||
tipo: BOOLEAN
|
||||
default: false
|
||||
descripcion: "Sensibilidad al frio/calor"
|
||||
|
||||
- nombre: notas
|
||||
tipo: TEXT
|
||||
descripcion: "Observaciones especificas"
|
||||
|
||||
- nombre: fecha_actualizacion
|
||||
tipo: TIMESTAMP
|
||||
default: NOW()
|
||||
|
||||
indices:
|
||||
- nombre: idx_pieza_odontograma
|
||||
campos: [odontograma_id]
|
||||
- nombre: idx_pieza_numero
|
||||
campos: [odontograma_id, numero_pieza]
|
||||
unique: true
|
||||
|
||||
constraints:
|
||||
- nombre: uk_pieza_odontograma
|
||||
tipo: UNIQUE
|
||||
campos: [odontograma_id, numero_pieza]
|
||||
```
|
||||
|
||||
### 2.3 historial_pieza
|
||||
|
||||
```yaml
|
||||
tabla: dental.historial_piezas
|
||||
descripcion: "Cambios historicos en cada pieza"
|
||||
|
||||
campos:
|
||||
- nombre: id
|
||||
tipo: UUID
|
||||
pk: true
|
||||
|
||||
- nombre: pieza_id
|
||||
tipo: UUID
|
||||
fk: dental.piezas_dentales(id)
|
||||
not_null: true
|
||||
on_delete: CASCADE
|
||||
|
||||
- nombre: estado_anterior
|
||||
tipo: VARCHAR(50)
|
||||
|
||||
- nombre: estado_nuevo
|
||||
tipo: VARCHAR(50)
|
||||
not_null: true
|
||||
|
||||
- nombre: caras_anterior
|
||||
tipo: TEXT[]
|
||||
|
||||
- nombre: caras_nuevo
|
||||
tipo: TEXT[]
|
||||
|
||||
- nombre: tratamiento_id
|
||||
tipo: UUID
|
||||
fk: dental.tratamientos(id)
|
||||
descripcion: "Tratamiento que causo el cambio"
|
||||
|
||||
- nombre: fecha_cambio
|
||||
tipo: TIMESTAMP
|
||||
default: NOW()
|
||||
|
||||
- nombre: odontologo_id
|
||||
tipo: UUID
|
||||
fk: core.usuarios(id)
|
||||
|
||||
- nombre: motivo
|
||||
tipo: TEXT
|
||||
descripcion: "Razon del cambio"
|
||||
|
||||
indices:
|
||||
- nombre: idx_historial_pieza
|
||||
campos: [pieza_id]
|
||||
- nombre: idx_historial_fecha
|
||||
campos: [fecha_cambio DESC]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. NOMENCLATURA FDI
|
||||
|
||||
### Sistema de Numeracion
|
||||
|
||||
```
|
||||
SUPERIOR
|
||||
┌───────────┬───────────┐
|
||||
│ Derecho │ Izquierdo │
|
||||
│ 18-11 │ 21-28 │
|
||||
├───────────┼───────────┤
|
||||
│ 48-41 │ 31-38 │
|
||||
│ Derecho │ Izquierdo │
|
||||
└───────────┴───────────┘
|
||||
INFERIOR
|
||||
```
|
||||
|
||||
### Dientes Permanentes (32 piezas)
|
||||
|
||||
| Cuadrante | Posicion | Piezas | Descripcion |
|
||||
|-----------|----------|--------|-------------|
|
||||
| 1 | Superior Derecho | 11-18 | Incisivo central a 3er molar |
|
||||
| 2 | Superior Izquierdo | 21-28 | Incisivo central a 3er molar |
|
||||
| 3 | Inferior Izquierdo | 31-38 | Incisivo central a 3er molar |
|
||||
| 4 | Inferior Derecho | 41-48 | Incisivo central a 3er molar |
|
||||
|
||||
### Dientes Deciduos (20 piezas)
|
||||
|
||||
| Cuadrante | Posicion | Piezas | Descripcion |
|
||||
|-----------|----------|--------|-------------|
|
||||
| 5 | Superior Derecho | 51-55 | Incisivo a 2do molar |
|
||||
| 6 | Superior Izquierdo | 61-65 | Incisivo a 2do molar |
|
||||
| 7 | Inferior Izquierdo | 71-75 | Incisivo a 2do molar |
|
||||
| 8 | Inferior Derecho | 81-85 | Incisivo a 2do molar |
|
||||
|
||||
### Caras Dentales
|
||||
|
||||
| Sigla | Nombre | Aplicable a |
|
||||
|-------|--------|-------------|
|
||||
| M | Mesial | Todas |
|
||||
| D | Distal | Todas |
|
||||
| O | Oclusal | Premolares, Molares |
|
||||
| I | Incisal | Incisivos, Caninos |
|
||||
| V | Vestibular | Todas |
|
||||
| B | Bucal | Sinonimo de V |
|
||||
| L | Lingual | Inferiores |
|
||||
| P | Palatino | Superiores |
|
||||
|
||||
---
|
||||
|
||||
## 4. ESTADOS DE PIEZAS
|
||||
|
||||
### Catalogo de Estados
|
||||
|
||||
```yaml
|
||||
estados:
|
||||
- codigo: SANO
|
||||
nombre: "Sano"
|
||||
color: "#4CAF50"
|
||||
descripcion: "Pieza sin patologia"
|
||||
|
||||
- codigo: CARIES
|
||||
nombre: "Caries"
|
||||
color: "#F44336"
|
||||
descripcion: "Lesion cariosa activa"
|
||||
|
||||
- codigo: OBT_RES
|
||||
nombre: "Obturacion Resina"
|
||||
color: "#2196F3"
|
||||
descripcion: "Restauracion con resina"
|
||||
|
||||
- codigo: OBT_AMG
|
||||
nombre: "Obturacion Amalgama"
|
||||
color: "#9E9E9E"
|
||||
descripcion: "Restauracion con amalgama"
|
||||
|
||||
- codigo: ENDO
|
||||
nombre: "Endodoncia"
|
||||
color: "#9C27B0"
|
||||
descripcion: "Tratamiento de conductos"
|
||||
|
||||
- codigo: CORONA
|
||||
nombre: "Corona"
|
||||
color: "#FFC107"
|
||||
descripcion: "Corona protesica"
|
||||
|
||||
- codigo: PUENTE_P
|
||||
nombre: "Puente Pilar"
|
||||
color: "#FF9800"
|
||||
descripcion: "Pieza pilar de puente"
|
||||
|
||||
- codigo: PUENTE_O
|
||||
nombre: "Puente Ponico"
|
||||
color: "#FF5722"
|
||||
descripcion: "Pieza artificial de puente"
|
||||
|
||||
- codigo: IMPLANTE
|
||||
nombre: "Implante"
|
||||
color: "#00BCD4"
|
||||
descripcion: "Implante dental"
|
||||
|
||||
- codigo: AUSENTE
|
||||
nombre: "Ausente"
|
||||
color: "#BDBDBD"
|
||||
descripcion: "Pieza extraida"
|
||||
|
||||
- codigo: EXT_IND
|
||||
nombre: "Extraccion Indicada"
|
||||
color: "#E91E63"
|
||||
descripcion: "Requiere extraccion"
|
||||
|
||||
- codigo: FRACTURADO
|
||||
nombre: "Fracturado"
|
||||
color: "#795548"
|
||||
descripcion: "Pieza fracturada"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. API ENDPOINTS
|
||||
|
||||
### Odontograma
|
||||
|
||||
```yaml
|
||||
endpoints:
|
||||
- method: GET
|
||||
path: /api/v1/pacientes/{pacienteId}/odontograma
|
||||
descripcion: "Obtener odontograma actual"
|
||||
response: Odontograma con todas las piezas
|
||||
|
||||
- method: POST
|
||||
path: /api/v1/pacientes/{pacienteId}/odontograma
|
||||
descripcion: "Crear nuevo odontograma"
|
||||
body:
|
||||
tipo: string (adulto|deciduo|mixto)
|
||||
notas_generales: string (opcional)
|
||||
response: Odontograma creado
|
||||
|
||||
- method: PUT
|
||||
path: /api/v1/odontogramas/{odontogramaId}
|
||||
descripcion: "Actualizar odontograma"
|
||||
body:
|
||||
notas_generales: string
|
||||
response: Odontograma actualizado
|
||||
```
|
||||
|
||||
### Piezas Dentales
|
||||
|
||||
```yaml
|
||||
endpoints:
|
||||
- method: GET
|
||||
path: /api/v1/odontogramas/{odontogramaId}/piezas
|
||||
descripcion: "Obtener todas las piezas"
|
||||
response: Array de piezas
|
||||
|
||||
- method: GET
|
||||
path: /api/v1/odontogramas/{odontogramaId}/piezas/{numeroPieza}
|
||||
descripcion: "Obtener pieza especifica"
|
||||
response: Pieza con historial
|
||||
|
||||
- method: PUT
|
||||
path: /api/v1/odontogramas/{odontogramaId}/piezas/{numeroPieza}
|
||||
descripcion: "Actualizar estado de pieza"
|
||||
body:
|
||||
estado: string
|
||||
caras_afectadas: string[]
|
||||
movilidad: number (0-3)
|
||||
sensibilidad: boolean
|
||||
notas: string
|
||||
motivo: string
|
||||
response: Pieza actualizada + entrada en historial
|
||||
|
||||
- method: GET
|
||||
path: /api/v1/piezas/{piezaId}/historial
|
||||
descripcion: "Historial de cambios de pieza"
|
||||
query:
|
||||
desde: date
|
||||
hasta: date
|
||||
response: Array de cambios
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. FLUJOS DE USUARIO
|
||||
|
||||
### 6.1 Crear Odontograma Inicial
|
||||
|
||||
```
|
||||
1. Paciente nuevo o sin odontograma
|
||||
2. Odontologo abre pantalla de odontograma
|
||||
3. Sistema detecta que no existe → muestra dialogo
|
||||
4. Selecciona tipo: Adulto / Deciduo / Mixto
|
||||
5. Sistema crea odontograma con 32/20 piezas en estado SANO
|
||||
6. Odontologo realiza exploracion
|
||||
7. Marca cada pieza segun estado actual
|
||||
8. Guarda odontograma
|
||||
```
|
||||
|
||||
### 6.2 Actualizar Estado de Pieza
|
||||
|
||||
```
|
||||
1. Odontologo abre odontograma existente
|
||||
2. Click en pieza a modificar
|
||||
3. Panel lateral muestra estado actual + historial
|
||||
4. Selecciona nuevo estado del dropdown
|
||||
5. Marca caras afectadas (checkboxes)
|
||||
6. Agrega notas (opcional)
|
||||
7. Indica motivo del cambio
|
||||
8. Guarda cambios
|
||||
9. Sistema registra en historial
|
||||
```
|
||||
|
||||
### 6.3 Comparar Odontogramas
|
||||
|
||||
```
|
||||
1. Odontologo solicita comparacion
|
||||
2. Selecciona dos fechas
|
||||
3. Sistema muestra lado a lado
|
||||
4. Resalta piezas con cambios
|
||||
5. Permite ver detalle de cada cambio
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. COMPONENTES UI
|
||||
|
||||
### 7.1 OdontogramaView
|
||||
|
||||
```typescript
|
||||
interface OdontogramaViewProps {
|
||||
pacienteId: string;
|
||||
readOnly?: boolean;
|
||||
onPiezaClick?: (pieza: PiezaDental) => void;
|
||||
}
|
||||
|
||||
// Estados visuales
|
||||
const COLORES_ESTADO: Record<EstadoPieza, string> = {
|
||||
sano: '#4CAF50',
|
||||
caries: '#F44336',
|
||||
obturacion_resina: '#2196F3',
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
### 7.2 PiezaDentalComponent
|
||||
|
||||
```typescript
|
||||
interface PiezaDentalProps {
|
||||
numero: number;
|
||||
estado: EstadoPieza;
|
||||
carasAfectadas: string[];
|
||||
selected: boolean;
|
||||
onClick: () => void;
|
||||
}
|
||||
|
||||
// Renderiza SVG de pieza con colores por estado
|
||||
// Marca visual de caras afectadas
|
||||
```
|
||||
|
||||
### 7.3 HistorialPiezaPanel
|
||||
|
||||
```typescript
|
||||
interface HistorialPiezaPanelProps {
|
||||
piezaId: string;
|
||||
onClose: () => void;
|
||||
}
|
||||
|
||||
// Muestra timeline de cambios
|
||||
// Permite filtrar por fecha
|
||||
// Link a tratamientos relacionados
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. VALIDACIONES
|
||||
|
||||
### Reglas de Negocio
|
||||
|
||||
```yaml
|
||||
validaciones:
|
||||
- regla: "Pieza ausente no puede tener caras afectadas"
|
||||
condicion: estado == 'ausente' AND caras_afectadas.length > 0
|
||||
error: "Una pieza ausente no puede tener caras afectadas"
|
||||
|
||||
- regla: "Corona cubre todas las caras"
|
||||
condicion: estado == 'corona' AND caras_afectadas != ['M','D','O','V','L']
|
||||
accion: "Auto-completar todas las caras"
|
||||
|
||||
- regla: "Numero de pieza valido"
|
||||
condicion: NOT (numero IN rango_valido)
|
||||
error: "Numero de pieza dental invalido"
|
||||
|
||||
- regla: "Implante requiere pieza ausente previa"
|
||||
condicion: estado == 'implante' AND estado_anterior != 'ausente'
|
||||
warning: "Normalmente se coloca implante en espacio de pieza ausente"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. CASOS DE USO
|
||||
|
||||
### CU-ODT-001: Exploración Inicial
|
||||
|
||||
**Actor:** Odontólogo
|
||||
**Precondición:** Paciente registrado sin odontograma
|
||||
**Flujo:**
|
||||
1. Abrir expediente del paciente
|
||||
2. Ir a sección Odontograma
|
||||
3. Crear nuevo odontograma (tipo adulto)
|
||||
4. Realizar exploración pieza por pieza
|
||||
5. Marcar estados encontrados
|
||||
6. Guardar odontograma
|
||||
|
||||
**Postcondición:** Odontograma creado con estado inicial
|
||||
|
||||
### CU-ODT-002: Registrar Tratamiento
|
||||
|
||||
**Actor:** Odontólogo
|
||||
**Precondición:** Odontograma existente, tratamiento a realizar
|
||||
**Flujo:**
|
||||
1. Abrir odontograma del paciente
|
||||
2. Seleccionar pieza tratada
|
||||
3. Cambiar estado (ej: caries → obturación_resina)
|
||||
4. Marcar caras tratadas
|
||||
5. Vincular con tratamiento
|
||||
6. Guardar cambios
|
||||
|
||||
**Postcondición:** Estado actualizado, historial registrado
|
||||
|
||||
---
|
||||
|
||||
## 10. DEPENDENCIAS
|
||||
|
||||
### Depende de
|
||||
- `clinicas.pacientes` - Paciente al que pertenece
|
||||
- `core.usuarios` - Odontólogo que registra
|
||||
- `dental.tratamientos` - Vinculación de cambios
|
||||
|
||||
### Dependientes
|
||||
- `dental.tratamientos` - Referencia piezas afectadas
|
||||
- `dental.presupuestos` - Calcula costos por pieza
|
||||
- `reportes` - Estadísticas de salud dental
|
||||
|
||||
---
|
||||
|
||||
**Documento creado:** 2026-01-07
|
||||
**Autor:** Agente Orquestador Workspace
|
||||
**Version:** 1.0.0
|
||||
137
docs/_MAP.md
Normal file
137
docs/_MAP.md
Normal file
@ -0,0 +1,137 @@
|
||||
# Clinica Dental - Mapa de Documentacion
|
||||
|
||||
**Proyecto:** clinica-dental
|
||||
**Tipo:** ERP Especializado (hereda de erp-clinicas)
|
||||
**Fecha:** 2026-01-07
|
||||
**Estado:** Fase 0 - Preparacion
|
||||
|
||||
---
|
||||
|
||||
## Estructura de Documentacion
|
||||
|
||||
```
|
||||
docs/
|
||||
├── _MAP.md <- ESTE ARCHIVO
|
||||
├── 00-vision-general/
|
||||
│ ├── README.md <- Indice de vision
|
||||
│ └── VISION.md <- Vision estrategica [PENDIENTE]
|
||||
│
|
||||
├── 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]
|
||||
│
|
||||
├── 03-especificaciones/
|
||||
│ └── ... (futuras especificaciones tecnicas)
|
||||
│
|
||||
└── 90-transversal/
|
||||
└── ... (documentacion transversal)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Modulos Especializados (Odontologia)
|
||||
|
||||
### Modulos Core
|
||||
|
||||
| Modulo | Prioridad | Estado | Descripcion |
|
||||
|--------|-----------|--------|-------------|
|
||||
| Odontograma | P1 | Pendiente | Registro grafico del estado dental |
|
||||
| Tratamientos | P1 | Pendiente | Gestion de procedimientos dentales |
|
||||
| Prevencion | P1 | Pendiente | Limpiezas, selladores, fluor |
|
||||
| Restauracion | P1 | Pendiente | Resinas, amalgamas, incrustaciones |
|
||||
|
||||
### Modulos Especializados
|
||||
|
||||
| Modulo | Prioridad | Estado | Descripcion |
|
||||
|--------|-----------|--------|-------------|
|
||||
| Ortodoncia | P2 | Pendiente | Brackets, alineadores, retenedores |
|
||||
| Protesis | P2 | Pendiente | Coronas, puentes, dentaduras |
|
||||
| Endodoncia | P2 | Pendiente | Tratamientos de conductos |
|
||||
| Periodoncia | P2 | Pendiente | Raspados, cirugia periodontal |
|
||||
| Estetica | P2 | Pendiente | Blanqueamiento, carillas |
|
||||
|
||||
---
|
||||
|
||||
## Modulos Heredados (de erp-clinicas)
|
||||
|
||||
| Modulo | Fuente | Adaptacion Requerida |
|
||||
|--------|--------|----------------------|
|
||||
| Pacientes | erp-clinicas | Ninguna |
|
||||
| Expedientes | erp-clinicas | Agregar odontograma |
|
||||
| Citas | erp-clinicas | Ninguna |
|
||||
| Consultas | erp-clinicas | Agregar exploracion dental |
|
||||
| Recetas | erp-clinicas | Ninguna |
|
||||
| Facturacion | erp-core | Ninguna |
|
||||
| Inventario | erp-core | Materiales dentales |
|
||||
|
||||
---
|
||||
|
||||
## Entidades Especificas
|
||||
|
||||
### Odontograma
|
||||
Registro grafico del estado dental del paciente.
|
||||
|
||||
```
|
||||
Nomenclatura FDI:
|
||||
- Cuadrante 1: Superior derecho (11-18)
|
||||
- Cuadrante 2: Superior izquierdo (21-28)
|
||||
- Cuadrante 3: Inferior izquierdo (31-38)
|
||||
- Cuadrante 4: Inferior derecho (41-48)
|
||||
- Deciduos: 51-55, 61-65, 71-75, 81-85
|
||||
```
|
||||
|
||||
### Estados de Piezas
|
||||
- Sano
|
||||
- Caries
|
||||
- Obturacion (resina/amalgama)
|
||||
- Endodoncia
|
||||
- Corona
|
||||
- Puente
|
||||
- Implante
|
||||
- Ausente
|
||||
- Extraccion indicada
|
||||
|
||||
### Caras Dentales
|
||||
- Mesial (M)
|
||||
- Distal (D)
|
||||
- Oclusal/Incisal (O/I)
|
||||
- Vestibular/Bucal (V/B)
|
||||
- Lingual/Palatino (L/P)
|
||||
|
||||
---
|
||||
|
||||
## Navegacion Rapida
|
||||
|
||||
### Por Rol de Usuario
|
||||
- **Odontologo:** Consultas, diagnosticos, tratamientos
|
||||
- **Auxiliar dental:** Apoyo en procedimientos
|
||||
- **Recepcionista:** Citas, cobros
|
||||
- **Higienista:** Limpiezas, profilaxis
|
||||
- **Tecnico dental:** Elaboracion de protesis
|
||||
- **Administrador:** Gestion general
|
||||
|
||||
### Por Componente Tecnico
|
||||
- **Database:** Ver orchestration/inventarios/DATABASE_INVENTORY.yml
|
||||
- **Backend:** Ver orchestration/inventarios/BACKEND_INVENTORY.yml
|
||||
- **Frontend:** Ver orchestration/inventarios/FRONTEND_INVENTORY.yml
|
||||
|
||||
---
|
||||
|
||||
## Referencias
|
||||
|
||||
- [CONTEXTO-PROYECTO.md](../orchestration/00-guidelines/CONTEXTO-PROYECTO.md)
|
||||
- [HERENCIA-ERP-CLINICAS.md](../orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md)
|
||||
- [PROXIMA-ACCION.md](../orchestration/PROXIMA-ACCION.md)
|
||||
- [CONTEXT-MAP.yml](../orchestration/CONTEXT-MAP.yml)
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-07
|
||||
**Version:** 1.0.0
|
||||
301
orchestration/CONTEXT-MAP.yml
Normal file
301
orchestration/CONTEXT-MAP.yml
Normal file
@ -0,0 +1,301 @@
|
||||
# CONTEXT-MAP: CLINICA-DENTAL
|
||||
# Sistema: SIMCO - NEXUS v4.0
|
||||
# Proposito: Mapear contexto automatico por nivel y tarea
|
||||
# Version: 1.0.0
|
||||
# Fecha: 2026-01-07
|
||||
|
||||
metadata:
|
||||
proyecto: "clinica-dental"
|
||||
nivel: "VERTICAL"
|
||||
version: "1.0.0"
|
||||
ultima_actualizacion: "2026-01-07"
|
||||
workspace_root: "/home/isem/workspace-v1"
|
||||
project_root: "/home/isem/workspace-v1/projects/clinica-dental"
|
||||
hereda_de: "/home/isem/workspace-v1/projects/erp-clinicas"
|
||||
|
||||
# ===============================================================================
|
||||
# VARIABLES DEL PROYECTO (PRE-RESUELTAS)
|
||||
# ===============================================================================
|
||||
|
||||
variables:
|
||||
# Identificacion
|
||||
PROJECT: "clinica-dental"
|
||||
PROJECT_NAME: "CLINICA-DENTAL"
|
||||
PROJECT_LEVEL: "VERTICAL"
|
||||
PARENT_PROJECT: "erp-clinicas"
|
||||
|
||||
# Base de datos
|
||||
DB_NAME: "clinica_dental"
|
||||
DB_DDL_PATH: "/home/isem/workspace-v1/projects/clinica-dental/database/schemas"
|
||||
DB_SCRIPTS_PATH: "/home/isem/workspace-v1/projects/clinica-dental/database"
|
||||
DB_SEEDS_PATH: "/home/isem/workspace-v1/projects/clinica-dental/database/seeds"
|
||||
RECREATE_CMD: "drop-and-recreate-database.sh"
|
||||
|
||||
# Backend
|
||||
BACKEND_ROOT: "/home/isem/workspace-v1/projects/clinica-dental/backend"
|
||||
BACKEND_SRC: "/home/isem/workspace-v1/projects/clinica-dental/backend/src"
|
||||
BACKEND_TESTS: "/home/isem/workspace-v1/projects/clinica-dental/backend/tests"
|
||||
|
||||
# Frontend
|
||||
FRONTEND_ROOT: "/home/isem/workspace-v1/projects/clinica-dental/frontend"
|
||||
FRONTEND_SRC: "/home/isem/workspace-v1/projects/clinica-dental/frontend/src"
|
||||
|
||||
# Documentacion
|
||||
DOCS_PATH: "/home/isem/workspace-v1/projects/clinica-dental/docs"
|
||||
ORCHESTRATION_PATH: "/home/isem/workspace-v1/projects/clinica-dental/orchestration"
|
||||
|
||||
# ===============================================================================
|
||||
# ALIASES RESUELTOS
|
||||
# ===============================================================================
|
||||
|
||||
aliases:
|
||||
# Directivas globales
|
||||
"@SIMCO": "/home/isem/workspace-v1/orchestration/directivas/simco"
|
||||
"@PRINCIPIOS": "/home/isem/workspace-v1/orchestration/directivas/principios"
|
||||
"@PERFILES": "/home/isem/workspace-v1/orchestration/agents/perfiles"
|
||||
"@CATALOG": "/home/isem/workspace-v1/shared/catalog"
|
||||
|
||||
# Proyecto padre (erp-clinicas)
|
||||
"@PARENT": "/home/isem/workspace-v1/projects/erp-clinicas"
|
||||
"@PARENT_CORE": "/home/isem/workspace-v1/projects/erp-core"
|
||||
|
||||
# Proyecto especifico
|
||||
"@DDL": "/home/isem/workspace-v1/projects/clinica-dental/database/schemas"
|
||||
"@SEEDS": "/home/isem/workspace-v1/projects/clinica-dental/database/seeds"
|
||||
"@BACKEND": "/home/isem/workspace-v1/projects/clinica-dental/backend/src"
|
||||
"@FRONTEND": "/home/isem/workspace-v1/projects/clinica-dental/frontend/src"
|
||||
"@DOCS": "/home/isem/workspace-v1/projects/clinica-dental/docs"
|
||||
|
||||
# Inventarios
|
||||
"@INVENTORY": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios"
|
||||
"@INV_DB": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/DATABASE_INVENTORY.yml"
|
||||
"@INV_BE": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/BACKEND_INVENTORY.yml"
|
||||
"@INV_FE": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
||||
|
||||
# Trazas
|
||||
"@TRAZA_DB": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/trazas/TRAZA-TAREAS-DATABASE.md"
|
||||
"@TRAZA_BE": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/trazas/TRAZA-TAREAS-BACKEND.md"
|
||||
"@TRAZA_FE": "/home/isem/workspace-v1/projects/clinica-dental/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md"
|
||||
|
||||
# ===============================================================================
|
||||
# CONTEXTO POR NIVEL
|
||||
# ===============================================================================
|
||||
|
||||
contexto_por_nivel:
|
||||
L0_sistema:
|
||||
descripcion: "Principios fundamentales y perfil de agente"
|
||||
tokens_estimados: 4500
|
||||
obligatorio: true
|
||||
archivos:
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-CAPVED.md"
|
||||
proposito: "Ciclo de vida de tareas"
|
||||
tokens: 800
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md"
|
||||
proposito: "Documentacion antes de codigo"
|
||||
tokens: 500
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md"
|
||||
proposito: "Verificar catalogo antes de crear"
|
||||
tokens: 600
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md"
|
||||
proposito: "Build/lint deben pasar"
|
||||
tokens: 600
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md"
|
||||
proposito: "Limites de contexto"
|
||||
tokens: 500
|
||||
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-NO-ASUMIR.md"
|
||||
proposito: "Preguntar si falta informacion"
|
||||
tokens: 500
|
||||
- path: "/home/isem/workspace-v1/orchestration/referencias/ALIASES.yml"
|
||||
proposito: "Resolucion de @ALIAS"
|
||||
tokens: 400
|
||||
|
||||
L1_proyecto:
|
||||
descripcion: "Contexto especifico de CLINICA-DENTAL"
|
||||
tokens_estimados: 3000
|
||||
obligatorio: true
|
||||
archivos:
|
||||
- path: "/home/isem/workspace-v1/projects/clinica-dental/orchestration/00-guidelines/CONTEXTO-PROYECTO.md"
|
||||
proposito: "Variables y configuracion del proyecto"
|
||||
tokens: 1500
|
||||
- path: "/home/isem/workspace-v1/projects/clinica-dental/orchestration/PROXIMA-ACCION.md"
|
||||
proposito: "Estado actual y siguiente paso"
|
||||
tokens: 500
|
||||
- path: "/home/isem/workspace-v1/projects/clinica-dental/orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md"
|
||||
proposito: "Herencia de modulos del padre"
|
||||
tokens: 800
|
||||
|
||||
L2_operacion:
|
||||
descripcion: "SIMCO especificos segun operacion y dominio"
|
||||
tokens_estimados: 2500
|
||||
archivos_por_operacion:
|
||||
CREAR:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-CREAR.md"
|
||||
MODIFICAR:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-MODIFICAR.md"
|
||||
VALIDAR:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-VALIDAR.md"
|
||||
DELEGAR:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-DELEGACION.md"
|
||||
archivos_por_dominio:
|
||||
DDL:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-DDL.md"
|
||||
- "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/DATABASE_INVENTORY.yml"
|
||||
BACKEND:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-BACKEND.md"
|
||||
- "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/BACKEND_INVENTORY.yml"
|
||||
FRONTEND:
|
||||
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-FRONTEND.md"
|
||||
- "/home/isem/workspace-v1/projects/clinica-dental/orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
||||
|
||||
L3_tarea:
|
||||
descripcion: "Contexto especifico de la tarea"
|
||||
tokens_max: 8000
|
||||
dinamico: true
|
||||
|
||||
# ===============================================================================
|
||||
# INTEGRACION CON DOCUMENTACION (docs/)
|
||||
# ===============================================================================
|
||||
|
||||
integracion_docs:
|
||||
mapa_docs: "@DOCS/_MAP.md"
|
||||
|
||||
estructura:
|
||||
vision: "@DOCS/00-vision-general/"
|
||||
modulos: "@DOCS/02-definicion-modulos/"
|
||||
|
||||
modulos_especializados:
|
||||
- modulo_odontograma:
|
||||
descripcion: "Registro grafico del estado dental"
|
||||
ruta: "@DOCS/02-definicion-modulos/modulo-odontograma.md"
|
||||
- modulo_tratamientos:
|
||||
descripcion: "Gestion de tratamientos dentales"
|
||||
ruta: "@DOCS/02-definicion-modulos/modulo-tratamientos.md"
|
||||
- modulo_ortodoncia:
|
||||
descripcion: "Control de tratamientos ortodonticos"
|
||||
ruta: "@DOCS/02-definicion-modulos/modulo-ortodoncia.md"
|
||||
- modulo_protesis:
|
||||
descripcion: "Registro de trabajos protesicos"
|
||||
ruta: "@DOCS/02-definicion-modulos/modulo-protesis.md"
|
||||
|
||||
# ===============================================================================
|
||||
# MAPA TAREA -> ARCHIVOS (Especifico CLINICA-DENTAL)
|
||||
# ===============================================================================
|
||||
|
||||
mapa_tarea_contexto:
|
||||
database:
|
||||
crear_tabla:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-DDL.md"]
|
||||
inventario: "@INV_DB"
|
||||
referencia: "@DDL/*.sql"
|
||||
docs: "@DOCS/02-definicion-modulos/"
|
||||
|
||||
crear_odontograma:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-DDL.md"]
|
||||
inventario: "@INV_DB"
|
||||
referencia: "@DDL/01-dental-schema-ddl.sql"
|
||||
|
||||
backend:
|
||||
crear_entity:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||
inventario: "@INV_BE"
|
||||
referencia: "@BACKEND/modules/*/entities/*.entity.ts"
|
||||
|
||||
crear_service:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||
inventario: "@INV_BE"
|
||||
referencia: "@BACKEND/modules/*/services/*.service.ts"
|
||||
|
||||
crear_controller:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||
inventario: "@INV_BE"
|
||||
referencia: "@BACKEND/modules/*/controllers/*.controller.ts"
|
||||
|
||||
frontend:
|
||||
crear_componente:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-FRONTEND.md"]
|
||||
inventario: "@INV_FE"
|
||||
referencia: "@FRONTEND/components/**/*.tsx"
|
||||
|
||||
crear_pagina:
|
||||
simco: ["SIMCO-CREAR.md", "SIMCO-FRONTEND.md"]
|
||||
inventario: "@INV_FE"
|
||||
referencia: "@FRONTEND/pages/**/*.tsx"
|
||||
|
||||
# ===============================================================================
|
||||
# INFORMACION ESPECIFICA DEL PROYECTO
|
||||
# ===============================================================================
|
||||
|
||||
info_proyecto:
|
||||
tipo: "ERP Especializado - Clinica Odontologica"
|
||||
estado: "Fase 0 - Preparacion"
|
||||
version: "0.1.0"
|
||||
|
||||
stack:
|
||||
backend: "NestJS (hereda de erp-clinicas)"
|
||||
frontend: "React + TailwindCSS"
|
||||
database: "PostgreSQL 16+ con RLS"
|
||||
|
||||
entidades_especializadas:
|
||||
- odontograma
|
||||
- tratamientos_dentales
|
||||
- piezas_dentales
|
||||
- ortodoncias
|
||||
- protesis
|
||||
|
||||
modulos_heredados:
|
||||
- pacientes (de erp-clinicas)
|
||||
- expedientes (de erp-clinicas)
|
||||
- citas (de erp-clinicas)
|
||||
- consultas (de erp-clinicas)
|
||||
- recetas (de erp-clinicas)
|
||||
- facturacion (de erp-core)
|
||||
- inventario (de erp-core)
|
||||
|
||||
nomenclatura_dental:
|
||||
sistema: "FDI (dos digitos)"
|
||||
cuadrantes:
|
||||
superior_derecho: "11-18"
|
||||
superior_izquierdo: "21-28"
|
||||
inferior_izquierdo: "31-38"
|
||||
inferior_derecho: "41-48"
|
||||
deciduos: "51-55, 61-65, 71-75, 81-85"
|
||||
|
||||
# ===============================================================================
|
||||
# VALIDACION DE TOKENS
|
||||
# ===============================================================================
|
||||
|
||||
validacion_tokens:
|
||||
limite_absoluto: 25000
|
||||
limite_seguro: 18000
|
||||
limite_alerta: 20000
|
||||
|
||||
presupuesto:
|
||||
L0_sistema: 4500
|
||||
L1_proyecto: 3000
|
||||
L2_operacion: 2500
|
||||
L3_tarea_max: 8000
|
||||
total_base: 10000
|
||||
disponible_tarea: 8000
|
||||
|
||||
# ===============================================================================
|
||||
# HERENCIA
|
||||
# ===============================================================================
|
||||
|
||||
herencia:
|
||||
tipo: "VERTICAL"
|
||||
hereda_de:
|
||||
- "/home/isem/workspace-v1/projects/erp-clinicas/"
|
||||
- "/home/isem/workspace-v1/projects/erp-core/"
|
||||
- "/home/isem/workspace-v1/orchestration/"
|
||||
|
||||
# ===============================================================================
|
||||
# BUSQUEDA DE HISTORICO
|
||||
# ===============================================================================
|
||||
|
||||
busqueda_historico:
|
||||
habilitado: true
|
||||
ubicaciones:
|
||||
- "/home/isem/workspace-v1/projects/clinica-dental/orchestration/trazas/"
|
||||
- "/home/isem/workspace-v1/projects/erp-clinicas/orchestration/trazas/"
|
||||
- "/home/isem/workspace-v1/orchestration/errores/REGISTRO-ERRORES.yml"
|
||||
- "/home/isem/workspace-v1/shared/knowledge-base/lessons-learned/"
|
||||
197
orchestration/PROXIMA-ACCION.md
Normal file
197
orchestration/PROXIMA-ACCION.md
Normal file
@ -0,0 +1,197 @@
|
||||
# PROXIMA ACCION - Clinica Dental
|
||||
|
||||
**Proyecto:** clinica-dental
|
||||
**Estado:** Fase 0 - Preparacion
|
||||
**Fecha:** 2026-01-07
|
||||
**Hereda de:** erp-clinicas > erp-core
|
||||
|
||||
---
|
||||
|
||||
## RESUMEN DEL ESTADO ACTUAL
|
||||
|
||||
### Estructura Base: CREADA
|
||||
|
||||
| Artefacto | Estado | Ubicacion |
|
||||
|-----------|--------|-----------|
|
||||
| README.md | EXISTE | raiz |
|
||||
| CONTEXTO-PROYECTO.md | EXISTE | orchestration/00-guidelines/ |
|
||||
| HERENCIA-ERP-CLINICAS.md | EXISTE | orchestration/00-guidelines/ |
|
||||
| ENVIRONMENT-INVENTORY.yml | EXISTE | orchestration/environment/ |
|
||||
| MASTER_INVENTORY.yml | EXISTE | orchestration/inventarios/ |
|
||||
| PROJECT-STATUS.md | EXISTE | orchestration/ |
|
||||
| CONTEXT-MAP.yml | CREADO | orchestration/ |
|
||||
| PROXIMA-ACCION.md | CREADO | orchestration/ |
|
||||
| DDL Dental | EXISTE | database/schemas/ |
|
||||
|
||||
### Documentacion: MINIMA
|
||||
|
||||
| Artefacto | Estado | Prioridad |
|
||||
|-----------|--------|-----------|
|
||||
| docs/00-vision-general/VISION.md | FALTA | P0 |
|
||||
| docs/00-vision-general/_MAP.md | FALTA | P1 |
|
||||
| docs/02-definicion-modulos/_MAP.md | FALTA | P0 |
|
||||
| modulo-odontograma.md | FALTA | P1 |
|
||||
| modulo-tratamientos.md | FALTA | P1 |
|
||||
| modulo-ortodoncia.md | FALTA | P2 |
|
||||
| modulo-protesis.md | FALTA | P2 |
|
||||
| orchestration/_MAP.md | FALTA | P1 |
|
||||
|
||||
---
|
||||
|
||||
## PROXIMA ACCION INMEDIATA
|
||||
|
||||
### Tarea: Crear docs/00-vision-general/VISION.md
|
||||
|
||||
**Prioridad:** P0
|
||||
**Estimacion:** 2-3 horas
|
||||
**Responsable:** Agente Requirements Analyst
|
||||
|
||||
**Descripcion:**
|
||||
Documentar la vision estrategica del proyecto de clinica dental, incluyendo:
|
||||
- Propuesta de valor
|
||||
- Target market
|
||||
- Diferenciadores vs erp-clinicas base
|
||||
- Roadmap de funcionalidades dentales especificas
|
||||
|
||||
**Contenido esperado:**
|
||||
```markdown
|
||||
# Vision - Clinica Dental
|
||||
|
||||
## 1. Proposito
|
||||
Sistema de gestion integral para clinicas odontologicas...
|
||||
|
||||
## 2. Propuesta de Valor
|
||||
- Odontograma digital interactivo
|
||||
- Seguimiento de tratamientos dentales
|
||||
- Gestion de ortodoncia
|
||||
- Control de protesis
|
||||
|
||||
## 3. Usuarios Objetivo
|
||||
- Odontologos
|
||||
- Auxiliares dentales
|
||||
- Recepcionistas
|
||||
- Higienistas
|
||||
- Tecnicos dentales
|
||||
- Administradores
|
||||
|
||||
## 4. Diferenciadores
|
||||
- Sistema FDI de nomenclatura dental
|
||||
- Odontograma por paciente
|
||||
- Historial por pieza dental
|
||||
...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## BACKLOG DE TAREAS
|
||||
|
||||
### Sprint 1: Vision y Navegacion (6h)
|
||||
|
||||
| # | Tarea | Prioridad | Horas |
|
||||
|---|-------|-----------|-------|
|
||||
| 1 | Crear VISION.md | P0 | 2-3 |
|
||||
| 2 | Crear docs/00-vision-general/_MAP.md | P1 | 1 |
|
||||
| 3 | Crear docs/02-definicion-modulos/_MAP.md | P0 | 1-2 |
|
||||
| 4 | Crear orchestration/_MAP.md | P1 | 1 |
|
||||
|
||||
### Sprint 2: Modulos Core (8h)
|
||||
|
||||
| # | Tarea | Prioridad | Horas |
|
||||
|---|-------|-----------|-------|
|
||||
| 1 | modulo-odontograma.md | P1 | 2-3 |
|
||||
| 2 | modulo-tratamientos.md | P1 | 1.5-2 |
|
||||
| 3 | modulo-prevencion.md | P1 | 1-1.5 |
|
||||
| 4 | modulo-restauracion.md | P1 | 1-1.5 |
|
||||
|
||||
### Sprint 3: Modulos Especializados (6h)
|
||||
|
||||
| # | Tarea | Prioridad | Horas |
|
||||
|---|-------|-----------|-------|
|
||||
| 1 | modulo-ortodoncia.md | P2 | 1.5-2 |
|
||||
| 2 | modulo-protesis.md | P2 | 1.5-2 |
|
||||
| 3 | modulo-endodoncia.md | P2 | 1-1.5 |
|
||||
| 4 | modulo-periodoncia.md | P2 | 1-1.5 |
|
||||
|
||||
---
|
||||
|
||||
## DEPENDENCIAS
|
||||
|
||||
### De erp-clinicas (heredados):
|
||||
- Modulo Pacientes
|
||||
- Modulo Expedientes
|
||||
- Modulo Citas
|
||||
- Modulo Consultas
|
||||
- Modulo Recetas
|
||||
|
||||
### De erp-core (heredados):
|
||||
- Modulo Autenticacion
|
||||
- Modulo Usuarios
|
||||
- Modulo Facturacion
|
||||
- Modulo Inventario
|
||||
- Modulo Catalogs
|
||||
|
||||
### Especificos Dental:
|
||||
- Odontograma (nuevo)
|
||||
- Tratamientos dentales (nuevo)
|
||||
- Ortodoncia (nuevo)
|
||||
- Protesis (nuevo)
|
||||
|
||||
---
|
||||
|
||||
## ENTIDADES ESPECIALIZADAS
|
||||
|
||||
### Odontograma
|
||||
```yaml
|
||||
campos:
|
||||
- id: UUID
|
||||
- paciente_id: UUID (FK)
|
||||
- fecha_registro: TIMESTAMP
|
||||
- tipo: ENUM (adulto, deciduo)
|
||||
- piezas: JSONB[]
|
||||
|
||||
pieza_dental:
|
||||
- numero: INT (1-32 adulto, 51-85 deciduo)
|
||||
- estado: ENUM (sano, caries, obturacion, etc)
|
||||
- caras_afectadas: TEXT[] (M, D, O, V, L)
|
||||
- tratamientos: FK[]
|
||||
```
|
||||
|
||||
### Nomenclatura FDI
|
||||
```yaml
|
||||
cuadrantes:
|
||||
1: "Superior derecho (11-18)"
|
||||
2: "Superior izquierdo (21-28)"
|
||||
3: "Inferior izquierdo (31-38)"
|
||||
4: "Inferior derecho (41-48)"
|
||||
deciduos:
|
||||
5: "51-55"
|
||||
6: "61-65"
|
||||
7: "71-75"
|
||||
8: "81-85"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## METRICAS DE PROGRESO
|
||||
|
||||
| Metrica | Valor Actual | Objetivo |
|
||||
|---------|--------------|----------|
|
||||
| Archivos SIMCO | 9 | 20+ |
|
||||
| Modulos documentados | 0 | 8 |
|
||||
| User Stories | 0 | 25+ |
|
||||
| Cobertura docs | ~30% | 100% |
|
||||
|
||||
---
|
||||
|
||||
## NOTAS
|
||||
|
||||
- Hereda base completa de erp-clinicas
|
||||
- Especializar en odontologia
|
||||
- Odontograma es el diferenciador principal
|
||||
- Nomenclatura FDI es estandar internacional
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizacion:** 2026-01-07
|
||||
**Autor:** Agente Orquestador Workspace
|
||||
**Version:** 1.0.0
|
||||
284
orchestration/inventarios/DATABASE_INVENTORY.yml
Normal file
284
orchestration/inventarios/DATABASE_INVENTORY.yml
Normal file
@ -0,0 +1,284 @@
|
||||
---
|
||||
# DATABASE INVENTORY - Clinica Dental
|
||||
# Version: 1.0.0
|
||||
# Ultima actualizacion: 2026-01-07
|
||||
|
||||
proyecto: "clinica-dental"
|
||||
schema_principal: "dental"
|
||||
version_ddl: "1.0"
|
||||
estado: "completado"
|
||||
|
||||
herencia:
|
||||
vertical_padre: "erp-clinicas"
|
||||
suite_core: "erp-core"
|
||||
schemas_heredados:
|
||||
- name: "auth"
|
||||
desde: "erp-core"
|
||||
- name: "tenants"
|
||||
desde: "erp-core"
|
||||
- name: "users"
|
||||
desde: "erp-core"
|
||||
- name: "clinica"
|
||||
desde: "erp-clinicas"
|
||||
tablas: ["patients", "doctors", "appointments", "consultations"]
|
||||
|
||||
enums:
|
||||
- name: "estado_pieza"
|
||||
values:
|
||||
- "sano"
|
||||
- "caries"
|
||||
- "obturacion"
|
||||
- "endodoncia"
|
||||
- "corona"
|
||||
- "puente"
|
||||
- "implante"
|
||||
- "ausente"
|
||||
- "extraccion_indicada"
|
||||
- "diente_temporal"
|
||||
- "fractura"
|
||||
- "movilidad"
|
||||
|
||||
- name: "cara_dental"
|
||||
values:
|
||||
- "mesial"
|
||||
- "distal"
|
||||
- "oclusal"
|
||||
- "incisal"
|
||||
- "vestibular"
|
||||
- "bucal"
|
||||
- "lingual"
|
||||
- "palatino"
|
||||
|
||||
- name: "estado_tratamiento"
|
||||
values:
|
||||
- "pendiente"
|
||||
- "en_proceso"
|
||||
- "completado"
|
||||
- "cancelado"
|
||||
|
||||
- name: "tipo_ortodoncia"
|
||||
values:
|
||||
- "brackets_metalicos"
|
||||
- "brackets_esteticos"
|
||||
- "brackets_linguales"
|
||||
- "alineadores"
|
||||
- "removible"
|
||||
- "retenedor"
|
||||
|
||||
catalogos:
|
||||
- name: "piezas_dentales"
|
||||
descripcion: "Catalogo de piezas dentales (nomenclatura FDI)"
|
||||
registros: 52
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "numero: VARCHAR(10) UNIQUE"
|
||||
- "nombre: VARCHAR(50)"
|
||||
- "cuadrante: INTEGER (1-8)"
|
||||
- "es_temporal: BOOLEAN"
|
||||
- "descripcion: TEXT"
|
||||
|
||||
- name: "tratamientos_catalogo"
|
||||
descripcion: "Catalogo de tratamientos por tenant"
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "codigo: VARCHAR(20)"
|
||||
- "nombre: VARCHAR(100)"
|
||||
- "categoria: VARCHAR(50)"
|
||||
- "duracion_minutos: INTEGER"
|
||||
- "precio_base: NUMERIC(10,2)"
|
||||
- "requiere_rx: BOOLEAN"
|
||||
- "requiere_anestesia: BOOLEAN"
|
||||
|
||||
tablas:
|
||||
- name: "odontogramas"
|
||||
descripcion: "Odontogramas de pacientes"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK (clinica.patients)"
|
||||
- "fecha_creacion: DATE"
|
||||
- "fecha_actualizacion: DATE"
|
||||
- "notas: TEXT"
|
||||
indices:
|
||||
- "idx_odontogramas_tenant"
|
||||
- "idx_odontogramas_patient"
|
||||
|
||||
- name: "odontograma_piezas"
|
||||
descripcion: "Estado de cada pieza en el odontograma"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "odontograma_id: UUID FK"
|
||||
- "pieza_id: UUID FK (piezas_dentales)"
|
||||
- "estado: dental.estado_pieza"
|
||||
- "caras_afectadas: JSONB"
|
||||
- "observaciones: TEXT"
|
||||
indices:
|
||||
- "idx_odontograma_piezas_odontograma"
|
||||
- "idx_odontograma_piezas_pieza"
|
||||
|
||||
- name: "tratamientos_paciente"
|
||||
descripcion: "Tratamientos realizados a pacientes"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK"
|
||||
- "odontograma_id: UUID FK"
|
||||
- "tratamiento_id: UUID FK (tratamientos_catalogo)"
|
||||
- "odontologo_id: UUID FK"
|
||||
- "consultation_id: UUID FK"
|
||||
- "pieza_id: UUID FK"
|
||||
- "caras_tratadas: dental.cara_dental[]"
|
||||
- "fecha_inicio: DATE"
|
||||
- "fecha_fin: DATE"
|
||||
- "estado: dental.estado_tratamiento"
|
||||
- "precio: NUMERIC(10,2)"
|
||||
- "descuento: NUMERIC(5,2)"
|
||||
- "precio_final: NUMERIC(10,2)"
|
||||
indices:
|
||||
- "idx_tratamientos_paciente_tenant"
|
||||
- "idx_tratamientos_paciente_patient"
|
||||
- "idx_tratamientos_paciente_estado"
|
||||
|
||||
- name: "ortodoncia"
|
||||
descripcion: "Casos de ortodoncia"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK"
|
||||
- "odontologo_id: UUID FK"
|
||||
- "tipo: dental.tipo_ortodoncia"
|
||||
- "marca: VARCHAR(100)"
|
||||
- "fecha_inicio: DATE"
|
||||
- "fecha_estimada_fin: DATE"
|
||||
- "fecha_real_fin: DATE"
|
||||
- "estado: dental.estado_tratamiento"
|
||||
- "meses_estimados: INTEGER"
|
||||
- "costo_total: NUMERIC(10,2)"
|
||||
- "enganche: NUMERIC(10,2)"
|
||||
- "mensualidad: NUMERIC(10,2)"
|
||||
indices:
|
||||
- "idx_ortodoncia_tenant"
|
||||
- "idx_ortodoncia_patient"
|
||||
- "idx_ortodoncia_estado"
|
||||
|
||||
- name: "ortodoncia_citas"
|
||||
descripcion: "Citas de seguimiento de ortodoncia"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "ortodoncia_id: UUID FK"
|
||||
- "appointment_id: UUID FK"
|
||||
- "fecha: DATE"
|
||||
- "numero_cita: INTEGER"
|
||||
- "procedimiento: TEXT"
|
||||
- "arco_superior: VARCHAR(50)"
|
||||
- "arco_inferior: VARCHAR(50)"
|
||||
- "ligas: VARCHAR(50)"
|
||||
- "proxima_cita: DATE"
|
||||
indices:
|
||||
- "idx_ortodoncia_citas_ortodoncia"
|
||||
|
||||
- name: "protesis"
|
||||
descripcion: "Trabajos protesicos"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK"
|
||||
- "odontologo_id: UUID FK"
|
||||
- "tipo: VARCHAR(50)"
|
||||
- "piezas_involucradas: TEXT[]"
|
||||
- "laboratorio_id: UUID FK"
|
||||
- "fecha_envio_lab: DATE"
|
||||
- "fecha_recepcion_lab: DATE"
|
||||
- "material: VARCHAR(100)"
|
||||
- "color: VARCHAR(50)"
|
||||
- "estado: dental.estado_tratamiento"
|
||||
- "fecha_colocacion: DATE"
|
||||
- "tiene_garantia: BOOLEAN"
|
||||
- "meses_garantia: INTEGER"
|
||||
- "costo_laboratorio: NUMERIC(10,2)"
|
||||
- "precio_paciente: NUMERIC(10,2)"
|
||||
indices:
|
||||
- "idx_protesis_tenant"
|
||||
- "idx_protesis_patient"
|
||||
|
||||
- name: "radiografias"
|
||||
descripcion: "Radiografias dentales"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK"
|
||||
- "consultation_id: UUID FK"
|
||||
- "tipo: VARCHAR(50)"
|
||||
- "pieza_id: UUID FK"
|
||||
- "fecha: DATE"
|
||||
- "url_imagen: VARCHAR(255)"
|
||||
- "interpretacion: TEXT"
|
||||
indices:
|
||||
- "idx_radiografias_tenant"
|
||||
- "idx_radiografias_patient"
|
||||
|
||||
- name: "presupuestos"
|
||||
descripcion: "Presupuestos de tratamiento"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "patient_id: UUID FK"
|
||||
- "odontologo_id: UUID FK"
|
||||
- "numero: VARCHAR(20)"
|
||||
- "fecha: DATE"
|
||||
- "fecha_vencimiento: DATE"
|
||||
- "estado: VARCHAR(20)"
|
||||
- "subtotal: NUMERIC(12,2)"
|
||||
- "descuento_porcentaje: NUMERIC(5,2)"
|
||||
- "descuento_monto: NUMERIC(12,2)"
|
||||
- "total: NUMERIC(12,2)"
|
||||
- "requiere_financiamiento: BOOLEAN"
|
||||
- "enganche: NUMERIC(12,2)"
|
||||
- "numero_pagos: INTEGER"
|
||||
- "monto_pago: NUMERIC(12,2)"
|
||||
indices:
|
||||
- "idx_presupuestos_tenant"
|
||||
- "idx_presupuestos_patient"
|
||||
- "idx_presupuestos_estado"
|
||||
|
||||
- name: "presupuesto_lineas"
|
||||
descripcion: "Lineas de presupuesto"
|
||||
rls: true
|
||||
columnas:
|
||||
- "id: UUID PK"
|
||||
- "tenant_id: UUID FK"
|
||||
- "presupuesto_id: UUID FK"
|
||||
- "tratamiento_id: UUID FK"
|
||||
- "pieza_id: UUID FK"
|
||||
- "descripcion: TEXT"
|
||||
- "cantidad: INTEGER"
|
||||
- "precio_unitario: NUMERIC(10,2)"
|
||||
- "descuento: NUMERIC(5,2)"
|
||||
- "subtotal: NUMERIC(10,2)"
|
||||
- "sequence: INTEGER"
|
||||
indices:
|
||||
- "idx_presupuesto_lineas_presupuesto"
|
||||
|
||||
resumen:
|
||||
total_enums: 4
|
||||
total_catalogos: 2
|
||||
total_tablas: 10
|
||||
total_con_rls: 10
|
||||
archivos_ddl:
|
||||
- "database/schemas/01-dental-schema-ddl.sql"
|
||||
archivos_seeds:
|
||||
- "database/seeds/fase8/01-dental-catalogos.sql"
|
||||
|
||||
ultima_actualizacion: "2026-01-07"
|
||||
actualizado_por: "Orquestador Workspace"
|
||||
Loading…
Reference in New Issue
Block a user