# DENTAL-002: Tratamientos Dentales ## Metadata - **Codigo:** DENTAL-002 - **Modulo:** Tratamientos - **Prioridad:** P0 - **Estado:** DDL Completado - **Fase:** 2 - Tratamientos ## Descripcion Sistema de gestion de tratamientos odontologicos: catalogo de procedimientos, planes de tratamiento personalizados, seguimiento de citas, asociacion a piezas dentales y costos. ## Objetivos 1. Catalogo de procedimientos dentales 2. Planes de tratamiento por paciente 3. Asociacion tratamiento-pieza dental 4. Seguimiento de estado 5. Registro de costos ## Alcance ### Incluido - Catalogo de tratamientos por tenant - Categorias: prevencion, restauracion, endodoncia, etc. - Asociacion a pieza y caras especificas - Estados: pendiente, en_proceso, completado, cancelado - Duracion estimada y real - Precios y descuentos - Vinculacion con citas ### Excluido - Generacion automatica de presupuestos (ver DENTAL-006) - Integracion con inventario de materiales - Consentimientos informados digitales ## Catalogo de Procedimientos ### Prevencion | Codigo | Procedimiento | Duracion | Precio Base | |--------|---------------|----------|-------------| | PREV-001 | Limpieza dental (profilaxis) | 30 min | $500 | | PREV-002 | Aplicacion de fluor | 15 min | $200 | | PREV-003 | Selladores de fosetas | 20 min | $350 | | PREV-004 | Detartraje | 45 min | $800 | ### Restauracion | Codigo | Procedimiento | Duracion | Precio Base | |--------|---------------|----------|-------------| | REST-001 | Resina simple (1 cara) | 30 min | $600 | | REST-002 | Resina compuesta (2+ caras) | 45 min | $900 | | REST-003 | Incrustacion inlay | 60 min | $2,500 | | REST-004 | Incrustacion onlay | 60 min | $3,000 | | REST-005 | Reconstruccion | 60 min | $1,500 | ### Endodoncia | Codigo | Procedimiento | Duracion | Precio Base | |--------|---------------|----------|-------------| | ENDO-001 | Conductos unirradicular | 60 min | $2,500 | | ENDO-002 | Conductos birradicular | 90 min | $3,500 | | ENDO-003 | Conductos multirradicular | 120 min | $4,500 | | ENDO-004 | Retratamiento | 90 min | $3,000 | ### Cirugia | Codigo | Procedimiento | Duracion | Precio Base | |--------|---------------|----------|-------------| | CIR-001 | Extraccion simple | 30 min | $600 | | CIR-002 | Extraccion quirurgica | 45 min | $1,200 | | CIR-003 | Tercer molar retenido | 60 min | $2,500 | ## Modelo de Datos ### Tablas **dental.tratamientos_catalogo** - id, tenant_id, codigo, nombre - categoria, descripcion - duracion_minutos, precio_base - requiere_rx, requiere_anestesia - active **dental.tratamientos_paciente** - id, tenant_id, patient_id - odontograma_id, tratamiento_id - odontologo_id, consultation_id - pieza_id, caras_tratadas[] - fecha_inicio, fecha_fin - estado, precio, descuento, precio_final - notas ## Endpoints API | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /tratamientos/catalogo | Listar catalogo | | POST | /tratamientos/catalogo | Crear procedimiento | | PUT | /tratamientos/catalogo/:id | Actualizar | | DELETE | /tratamientos/catalogo/:id | Desactivar | | GET | /patients/:id/tratamientos | Tratamientos de paciente | | POST | /patients/:id/tratamientos | Crear tratamiento | | PUT | /tratamientos/:id | Actualizar tratamiento | | PUT | /tratamientos/:id/estado | Cambiar estado | | GET | /tratamientos/pendientes | Tratamientos pendientes | | GET | /tratamientos/hoy | Tratamientos del dia | ## Interfaz del Servicio ```typescript interface TratamientosService { // Catalogo getCatalogo(filters?: CatalogoFilters): Promise; createProcedimiento(data: CreateProcedimiento): Promise; // Tratamientos paciente getByPatient(patientId: string): Promise; create(data: CreateTratamientoPaciente): Promise; updateEstado(id: string, estado: EstadoTratamiento): Promise; // Reportes getPendientes(odontologoId?: string): Promise; getCompletadosHoy(): Promise; } interface CreateTratamientoPaciente { patientId: string; tratamientoId: string; odontologoId: string; piezaId?: string; carasTratadas?: CaraDental[]; precio?: number; descuento?: number; notas?: string; } ``` ## Flujos ### Registrar Tratamiento ``` 1. Odontologo en consulta del paciente 2. Revisa odontograma actual 3. Identifica pieza a tratar 4. Selecciona procedimiento del catalogo 5. Especifica caras afectadas (si aplica) 6. Confirma precio (puede aplicar descuento) 7. Guarda tratamiento como "pendiente" o "en_proceso" 8. Sistema actualiza estado del odontograma ``` ### Completar Tratamiento ``` 1. Odontologo abre tratamiento en curso 2. Registra notas del procedimiento 3. Cambia estado a "completado" 4. Sistema registra fecha de finalizacion 5. Actualiza odontograma automaticamente 6. Tratamiento listo para facturacion ``` ## Estados de Tratamiento ``` pendiente ──► en_proceso ──► completado │ │ └──────────────┴──► cancelado ``` | Estado | Descripcion | Facturar | |--------|-------------|----------| | pendiente | Agendado, no iniciado | No | | en_proceso | En ejecucion | Parcial | | completado | Finalizado | Si | | cancelado | No se realizara | No | ## Entregables | Entregable | Estado | Archivo | |------------|--------|---------| | DDL tratamientos | Completado | `database/schemas/01-dental-schema-ddl.sql` | | tratamientos.module.ts | Pendiente | `backend/modules/tratamientos/` | | tratamientos.service.ts | Pendiente | `backend/services/` | | Seeds catalogo | Pendiente | `database/seeds/` | | TratamientosList.tsx | Pendiente | `frontend/components/` | | TratamientoForm.tsx | Pendiente | `frontend/components/` | ## Dependencias ### Depende de - DENTAL-001 (Odontograma) - clinica.patients (erp-clinicas) - clinica.consultations (erp-clinicas) ### Bloquea a - DENTAL-006 (Presupuestos) - Facturacion ## Criterios de Aceptacion - [ ] Catalogo de procedimientos por tenant - [ ] CRUD de tratamientos por paciente - [ ] Asociacion a pieza dental - [ ] Estados se actualizan correctamente - [ ] Historial de tratamientos visible - [ ] Precio final calcula con descuento - [ ] Integracion con citas funciona --- **Ultima actualizacion:** 2026-01-07