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