# VET-002: Cartilla de Vacunacion ## Metadata - **Codigo:** VET-002 - **Modulo:** Vacunacion - **Prioridad:** P0 - **Estado:** DDL Completado - **Fase:** 2 - Vacunacion ## Descripcion Sistema de cartilla de vacunacion digital: registro de aplicaciones, esquemas por especie, control de lotes, alertas de refuerzos, generacion de certificados, y reportes para SENASICA. ## Objetivos 1. Registro de vacunas aplicadas 2. Esquemas por especie y edad 3. Control de lotes y fabricantes 4. Alertas de proximos refuerzos 5. Reportes SENASICA ## Alcance ### Incluido - Catalogo de vacunas por especie - Registro de aplicaciones con lote - Calculo automatico de proxima dosis - Alertas por email/SMS/push - Historial de vacunacion por mascota - Certificado de vacunacion (PDF) - Reporte mensual SENASICA ### Excluido - Integracion directa con API SENASICA - Compra de vacunas desde sistema - Cadena de frio/temperatura ## Esquemas de Vacunacion ### Caninos (Perros) ```yaml cachorro: 6_semanas: - Parvovirus 8_semanas: - Quintuple (DHPPI+L) 12_semanas: - Refuerzo Quintuple 16_semanas: - Rabia anual: - Quintuple + Rabia opcional: - Bordetella (cada 6 meses, perros sociales) - Giardia - Lyme (zonas endemicas) ``` ### Felinos (Gatos) ```yaml gatito: 8_semanas: - Triple Felina (PRC) 12_semanas: - Refuerzo Triple + Leucemia Felina 16_semanas: - Rabia anual: - Triple Felina + Rabia opcional: - Leucemia Felina (gatos de exterior) - PIF (peritonitis infecciosa) ``` ## Modelo de Datos ### Tablas **veterinaria.vacunas** (Catalogo) - id, tenant_id, nombre, descripcion - especie_id, laboratorio - dosis_ml, intervalo_refuerzo_dias - es_obligatoria, active **veterinaria.cartilla_vacunacion** - id, tenant_id, mascota_id, vacuna_id - veterinario_id - fecha_aplicacion, fecha_proximo_refuerzo - lote, laboratorio - observaciones ## Endpoints API | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /vacunas | Catalogo de vacunas | | GET | /vacunas/especie/:id | Vacunas por especie | | POST | /vacunas | Crear vacuna en catalogo | | GET | /mascotas/:id/vacunacion | Cartilla de mascota | | POST | /mascotas/:id/vacunacion | Registrar vacuna aplicada | | DELETE | /vacunacion/:id | Eliminar registro | | GET | /vacunacion/proximas | Refuerzos proximos (7 dias) | | GET | /vacunacion/vencidas | Refuerzos vencidos | | GET | /mascotas/:id/certificado | Generar certificado PDF | | GET | /reportes/senasica | Reporte mensual | ## Interfaz del Servicio ```typescript interface VacunacionService { getCatalogo(especieId?: string): Promise; getCartilla(mascotaId: string): Promise; aplicar(data: AplicarVacuna): Promise; getProximosRefuerzos(dias: number): Promise; getVencidos(): Promise; generarCertificado(mascotaId: string): Promise; getReporteSenasica(mes: number, anio: number): Promise; } interface AplicarVacuna { mascotaId: string; vacunaId: string; veterinarioId: string; fechaAplicacion: Date; lote: string; laboratorio?: string; observaciones?: string; } interface RefuerzoPendiente { mascota: Mascota; propietario: Propietario; vacuna: Vacuna; fechaRefuerzo: Date; diasRestantes: number; } ``` ## Flujos ### Aplicar Vacuna ``` 1. Consulta veterinaria 2. Veterinario decide vacunar 3. Seleccionar vacuna del catalogo 4. Registrar lote (obligatorio) 5. Sistema calcula fecha proxima 6. Guardar en cartilla 7. Imprimir certificado (opcional) 8. Agregar a factura ``` ### Alertas de Refuerzos ``` Diario (cron job): 1. Buscar refuerzos que vencen en 7 dias 2. Filtrar por preferencias de propietario 3. Enviar notificaciones: - Email: 7 dias antes - SMS: 3 dias antes - Push: 1 dia antes 4. Marcar como notificado ``` ### Reporte SENASICA ``` Mensual: 1. Filtrar vacunas de rabia aplicadas 2. Agrupar por especie y municipio 3. Incluir datos del veterinario 4. Generar formato oficial 5. Exportar para envio ``` ## Certificado de Vacunacion ``` ┌─────────────────────────────────────────────────────────┐ │ CERTIFICADO DE VACUNACION │ │ Clinica Veterinaria XYZ │ ├─────────────────────────────────────────────────────────┤ │ DATOS DE LA MASCOTA │ │ Nombre: Firulais │ │ Especie: Canino Raza: Labrador │ │ Sexo: Macho Edad: 2 años │ │ Color: Amarillo Chip: 123456789012345 │ ├─────────────────────────────────────────────────────────┤ │ DATOS DEL PROPIETARIO │ │ Nombre: Juan Perez Garcia │ │ Telefono: 555-123-4567 │ ├─────────────────────────────────────────────────────────┤ │ HISTORIAL DE VACUNACION │ │ Fecha │ Vacuna │ Lote │ Prox.Ref │ │ 07/01/2026 │ Rabia │ R12345 │ 07/01/2027 │ │ 07/01/2026 │ Quintuple │ Q98765 │ 07/01/2027 │ │ 15/06/2025 │ Quintuple │ Q54321 │ - │ ├─────────────────────────────────────────────────────────┤ │ Veterinario: Dr. Maria Lopez │ │ Cedula Profesional: 12345678 │ │ Firma: _________________________ │ └─────────────────────────────────────────────────────────┘ ``` ## Alertas Configurables ```typescript interface ConfiguracionAlertas { email: { enabled: boolean; diasAntes: number; // default: 7 }; sms: { enabled: boolean; diasAntes: number; // default: 3 }; push: { enabled: boolean; diasAntes: number; // default: 1 }; whatsapp: { enabled: boolean; diasAntes: number; }; } ``` ## Entregables | Entregable | Estado | Archivo | |------------|--------|---------| | DDL cartilla | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` | | DDL vacunas | Completado | `database/schemas/01-veterinaria-schema-ddl.sql` | | vacunacion.module.ts | Pendiente | `backend/modules/vacunacion/` | | CartillaVacunacion.tsx | Pendiente | `frontend/components/` | | CertificadoPDF.ts | Pendiente | `backend/services/` | | Seeds vacunas | Pendiente | `database/seeds/` | ## Dependencias ### Depende de - VET-001 (Mascotas) - clinica.doctors (erp-clinicas) - Notifications service ### Bloquea a - Reportes SENASICA - App para propietarios ## Criterios de Aceptacion - [ ] Catalogo de vacunas por especie - [ ] Registro de aplicacion con lote - [ ] Fecha proxima se calcula - [ ] Alertas se envian - [ ] Certificado PDF se genera - [ ] Historial completo visible - [ ] Reporte SENASICA correcto --- **Ultima actualizacion:** 2026-01-07