# 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; registrar(data: RegistrarDesparasitacion): Promise; getProximas(dias: number): Promise; getVencidas(): Promise; } 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