clinica-veterinaria/docs/01-epicas/VET-003-desparasitaciones.md
rckrdmrd c461208a51 [SPRINT-7] docs: Agregar documentacion, schemas y reportes
- Epicas documentadas
- Schema de farmacia veterinaria
- Inventario de base de datos
- Reporte de ejecucion Sprint 7

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:42 -06:00

223 lines
6.0 KiB
Markdown

# VET-003: Desparasitaciones
## Metadata
- **Codigo:** VET-003
- **Modulo:** Desparasitaciones
- **Prioridad:** P1
- **Estado:** DDL Completado
- **Fase:** 2 - Vacunacion
## Descripcion
Sistema de control de desparasitaciones internas y externas: registro de aplicaciones, productos utilizados, dosis por peso, alertas de proximas desparasitaciones, y historial por mascota.
## Objetivos
1. Registro de desparasitaciones
2. Control de productos y dosis
3. Alertas de proximas aplicaciones
4. Historial por mascota
5. Recomendaciones por especie
## Alcance
### Incluido
- Tipos: interna, externa, ambas
- Registro de producto y dosis
- Via de administracion
- Calculo de proxima aplicacion
- Historial cronologico
- Alertas automaticas
### Excluido
- Inventario de productos
- Calculo automatico de dosis por peso
- Integracion con laboratorios
## Tipos de Desparasitacion
| Tipo | Descripcion | Frecuencia Tipica |
|------|-------------|-------------------|
| Interna | Parasitos intestinales | Cada 3-6 meses |
| Externa | Pulgas, garrapatas | Cada 1-3 meses |
| Ambas | Combinada | Segun producto |
## Productos Comunes
### Desparasitantes Internos
| Producto | Principio Activo | Presentacion |
|----------|------------------|--------------|
| Drontal | Praziquantel + Pirantel | Tableta |
| Panacur | Fenbendazol | Suspension |
| Milbemax | Milbemicina + Praziquantel | Tableta |
### Desparasitantes Externos
| Producto | Principio Activo | Presentacion |
|----------|------------------|--------------|
| Frontline | Fipronil | Pipeta |
| Nexgard | Afoxolaner | Tableta masticable |
| Seresto | Imidacloprid + Flumetrina | Collar |
| Bravecto | Fluralaner | Tableta/Pipeta |
## Modelo de Datos
### Tabla: veterinaria.desparasitaciones
| Campo | Tipo | Descripcion |
|-------|------|-------------|
| id | UUID | PK |
| tenant_id | UUID | FK |
| mascota_id | UUID | FK |
| veterinario_id | UUID | FK |
| tipo | VARCHAR(50) | interna, externa, ambas |
| producto | VARCHAR(100) | Nombre del producto |
| dosis | VARCHAR(50) | Cantidad administrada |
| via_administracion | VARCHAR(50) | oral, topica, inyectable |
| fecha_aplicacion | DATE | Fecha de aplicacion |
| fecha_proxima | DATE | Proxima aplicacion |
| observaciones | TEXT | Notas |
## Endpoints API
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| GET | /mascotas/:id/desparasitaciones | Historial |
| POST | /mascotas/:id/desparasitaciones | Registrar |
| PUT | /desparasitaciones/:id | Actualizar |
| DELETE | /desparasitaciones/:id | Eliminar |
| GET | /desparasitaciones/proximas | Proximas 30 dias |
| GET | /desparasitaciones/vencidas | Vencidas |
## Interfaz del Servicio
```typescript
interface DesparasitacionesService {
getByMascota(mascotaId: string): Promise<Desparasitacion[]>;
registrar(data: RegistrarDesparasitacion): Promise<Desparasitacion>;
getProximas(dias: number): Promise<DesparasitacionPendiente[]>;
getVencidas(): Promise<DesparasitacionPendiente[]>;
}
interface RegistrarDesparasitacion {
mascotaId: string;
veterinarioId?: string;
tipo: 'interna' | 'externa' | 'ambas';
producto: string;
dosis?: string;
viaAdministracion: string;
fechaAplicacion: Date;
fechaProxima?: Date;
observaciones?: string;
}
```
## Flujos
### Registrar Desparasitacion
```
1. Durante consulta o en recepcion
2. Seleccionar mascota
3. Indicar tipo (interna/externa/ambas)
4. Seleccionar/escribir producto
5. Indicar dosis y via
6. Registrar fecha aplicacion
7. Sistema sugiere fecha proxima (configurable)
8. Guardar registro
9. Agregar a cuenta del cliente
```
### Recordatorios
```
Semanal (cron job):
1. Buscar desparasitaciones proximas (30 dias)
2. Agrupar por propietario
3. Enviar recordatorio consolidado
4. Email con lista de mascotas
```
## Frecuencias Recomendadas
### Por Especie y Situacion
```typescript
const FRECUENCIAS = {
canino: {
cachorro: { interna: 15, externa: 30 }, // dias
adulto: { interna: 90, externa: 30 },
gestante: { interna: 45, externa: 30 }
},
felino: {
cachorro: { interna: 15, externa: 30 },
adulto: { interna: 90, externa: 30 },
interior: { interna: 180, externa: 60 } // gatos de interior
}
};
```
## Componentes Frontend
### DesparasitacionForm
```typescript
interface DesparasitacionFormProps {
mascota: Mascota;
onSave: (data: Desparasitacion) => void;
}
// Campos:
// - Tipo (radio: interna/externa/ambas)
// - Producto (autocomplete o texto)
// - Dosis
// - Via (dropdown: oral, topica, inyectable)
// - Fecha aplicacion
// - Fecha proxima (calculada, editable)
// - Observaciones
```
### DesparasitacionTimeline
```typescript
// Muestra historial visual:
// ┌────────────────────────────────────────┐
// │ ● 07/01/2026 - Interna - Drontal │
// │ Proxima: 07/04/2026 (en 90 dias) │
// ├────────────────────────────────────────┤
// │ ● 15/12/2025 - Externa - Frontline │
// │ Proxima: 15/01/2026 (VENCIDA) │
// └────────────────────────────────────────┘
```
## Entregables
| Entregable | Estado | Archivo |
|------------|--------|---------|
| DDL desparasitaciones | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` |
| desparasitaciones.module.ts | Pendiente | `backend/modules/desparasitaciones/` |
| DesparasitacionForm.tsx | Pendiente | `frontend/components/` |
| DesparasitacionTimeline.tsx | Pendiente | `frontend/components/` |
## Dependencias
### Depende de
- VET-001 (Mascotas)
- Notifications service
### Bloquea a
- Dashboard de salud de mascota
- App para propietarios
## Criterios de Aceptacion
- [ ] Registro de desparasitacion funciona
- [ ] Tipos interna/externa/ambas
- [ ] Fecha proxima se calcula
- [ ] Historial cronologico visible
- [ ] Alertas de vencidas
- [ ] Proximas desparasitaciones se listan
---
**Ultima actualizacion:** 2026-01-07