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
- Catalogo de procedimientos dentales
- Planes de tratamiento por paciente
- Asociacion tratamiento-pieza dental
- Seguimiento de estado
- 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
interface TratamientosService {
// Catalogo
getCatalogo(filters?: CatalogoFilters): Promise<Tratamiento[]>;
createProcedimiento(data: CreateProcedimiento): Promise<Tratamiento>;
// Tratamientos paciente
getByPatient(patientId: string): Promise<TratamientoPaciente[]>;
create(data: CreateTratamientoPaciente): Promise<TratamientoPaciente>;
updateEstado(id: string, estado: EstadoTratamiento): Promise<TratamientoPaciente>;
// Reportes
getPendientes(odontologoId?: string): Promise<TratamientoPaciente[]>;
getCompletadosHoy(): Promise<TratamientoPaciente[]>;
}
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
Ultima actualizacion: 2026-01-07