- Epicas documentadas - Reporte de ejecucion Sprint 6 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6.1 KiB
6.1 KiB
DENTAL-003: Ortodoncia
Metadata
- Codigo: DENTAL-003
- Modulo: Ortodoncia
- Prioridad: P1
- Estado: DDL Completado
- Fase: 3 - Especialidades
Descripcion
Sistema de gestion de tratamientos de ortodoncia: registro de casos, tipos de aparatologia, seguimiento de citas de ajuste, control de progreso, planes de pago, y finalizacion con retenedores.
Objetivos
- Registro de casos de ortodoncia
- Tipos de aparatologia (brackets, alineadores)
- Citas de ajuste mensuales
- Seguimiento de progreso
- Plan de pagos (enganche + mensualidades)
Alcance
Incluido
- Tipos: brackets metalicos, esteticos, linguales, alineadores
- Registro de fecha inicio/fin estimada
- Citas de control con detalles de ajuste
- Fotos de progreso (vinculo a storage)
- Control de arcos, ligas, elasticos
- Plan de pago con financiamiento
Excluido
- Cefalometria digital
- Simulacion de resultados
- Analisis de modelos 3D
Tipos de Ortodoncia
| Tipo | Descripcion | Duracion Tipica |
|---|---|---|
| brackets_metalicos | Brackets tradicionales | 18-24 meses |
| brackets_esteticos | Brackets ceramicos/zafiro | 18-24 meses |
| brackets_linguales | Brackets en cara interna | 18-30 meses |
| alineadores | Alineadores transparentes | 12-18 meses |
| removible | Aparatos removibles | Variable |
| retenedor | Post-tratamiento | Indefinido |
Modelo de Datos
Tablas
dental.ortodoncia
- id, tenant_id, patient_id, odontologo_id
- tipo (ENUM), marca
- fecha_inicio, fecha_estimada_fin, fecha_real_fin
- estado, meses_estimados
- costo_total, enganche, mensualidad
- notas
dental.ortodoncia_citas
- id, tenant_id, ortodoncia_id
- appointment_id
- fecha, numero_cita
- procedimiento
- arco_superior, arco_inferior, ligas
- observaciones, proxima_cita
Endpoints API
| Metodo | Endpoint | Descripcion |
|---|---|---|
| GET | /ortodoncia | Listar casos activos |
| GET | /ortodoncia/:id | Detalle de caso |
| POST | /ortodoncia | Crear caso |
| PUT | /ortodoncia/:id | Actualizar caso |
| PUT | /ortodoncia/:id/finalizar | Finalizar tratamiento |
| GET | /ortodoncia/:id/citas | Historial de citas |
| POST | /ortodoncia/:id/citas | Registrar cita |
| GET | /patients/:id/ortodoncia | Casos del paciente |
| GET | /ortodoncia/proximas-citas | Citas proximas |
Interfaz del Servicio
interface OrtodonticService {
getCasosActivos(): Promise<CasoOrtodoncia[]>;
getById(id: string): Promise<CasoOrtodoncia>;
create(data: CreateCasoOrtodoncia): Promise<CasoOrtodoncia>;
registrarCita(casoId: string, data: CitaOrtodoncia): Promise<CitaOrtodoncia>;
finalizar(id: string, data: FinalizarOrtodoncia): Promise<CasoOrtodoncia>;
getProximasCitas(dias: number): Promise<CitaOrtodoncia[]>;
}
interface CreateCasoOrtodoncia {
patientId: string;
odontologoId: string;
tipo: TipoOrtodoncia;
marca?: string;
fechaInicio: Date;
mesesEstimados: number;
costoTotal: number;
enganche?: number;
mensualidad?: number;
}
interface CitaOrtodoncia {
fecha: Date;
numeroCita: number;
procedimiento: string;
arcoSuperior?: string;
arcoInferior?: string;
ligas?: string;
observaciones?: string;
proximaCita?: Date;
}
Flujos
Iniciar Caso de Ortodoncia
1. Consulta de valoracion ortodontica
2. Estudios iniciales (Rx panoramica, fotos, modelos)
3. Diagnostico y plan de tratamiento
4. Presentar presupuesto al paciente
5. Paciente acepta y paga enganche
6. Crear caso de ortodoncia en sistema
7. Agendar cita de colocacion
8. Colocar aparatologia
9. Registrar primera cita
Cita de Ajuste Mensual
1. Paciente llega a cita programada
2. Revision de aparatologia
3. Cambio de arcos/ligas si necesario
4. Registrar procedimiento realizado
5. Tomar fotos de progreso (opcional)
6. Agendar proxima cita
7. Cobrar mensualidad
Finalizacion
1. Tratamiento activo completo
2. Retiro de aparatologia
3. Colocacion de retenedores
4. Marcar caso como "finalizado"
5. Crear nuevo caso tipo "retenedor"
6. Programar citas de revision (3, 6, 12 meses)
Plan de Pagos
interface PlanPagoOrtodoncia {
costoTotal: number; // $45,000
enganche: number; // $10,000
saldoPendiente: number; // $35,000
numeroPagos: number; // 18
montoPago: number; // $1,944.44
fechaInicio: Date;
pagosRealizados: number;
saldoActual: number;
}
Componentes Frontend
OrtodonciaTimeline
// Visualizacion de progreso del tratamiento
interface OrtodonciaTimelineProps {
caso: CasoOrtodoncia;
citas: CitaOrtodoncia[];
}
// Muestra:
// - Linea de tiempo con citas
// - Progreso vs estimado
// - Proxima cita destacada
// - Fotos de progreso
CitaOrtodonticaForm
interface CitaOrtodonticaFormProps {
casoId: string;
numeroCita: number;
onSave: (data: CitaOrtodoncia) => void;
}
// Campos:
// - Procedimiento realizado
// - Arco superior/inferior
// - Ligas/elasticos
// - Observaciones
// - Fecha proxima cita
Entregables
| Entregable | Estado | Archivo |
|---|---|---|
| DDL ortodoncia | Completado | database/schemas/01-dental-schema-ddl.sql |
| ortodoncia.module.ts | Pendiente | backend/modules/ortodoncia/ |
| ortodoncia.service.ts | Pendiente | backend/services/ |
| OrtodonciaTimeline.tsx | Pendiente | frontend/components/ |
| CitaOrtodonticaForm.tsx | Pendiente | frontend/components/ |
Dependencias
Depende de
- clinica.patients (erp-clinicas)
- clinica.appointments (erp-clinicas)
- DENTAL-006 (Presupuestos - para plan de pago)
Bloquea a
- Reportes de ortodoncia
- Recordatorios automaticos
Criterios de Aceptacion
- CRUD de casos de ortodoncia
- Tipos de aparatologia correctos
- Citas de ajuste se registran
- Progreso visual en timeline
- Plan de pago funciona
- Finalizacion crea caso retenedor
- Proximas citas se listan
Metricas
| Metrica | Descripcion |
|---|---|
| Casos activos | Tratamientos en curso |
| Tasa finalizacion | % que completan tratamiento |
| Duracion promedio | Meses reales vs estimados |
| Desercion | Pacientes que abandonan |
Ultima actualizacion: 2026-01-07