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:
rckrdmrd 2026-01-07 05:40:51 -06:00
parent 7ffcdf597c
commit a290bd564a
7 changed files with 1980 additions and 0 deletions

View 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

View 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

View 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
View 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

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

View 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

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