- Prefijo v2: CVT - TRACEABILITY-MASTER.yml creado - Listo para integracion como submodulo Workspace: v2.0.0 | SIMCO: v4.0.0
7.5 KiB
7.5 KiB
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
- Registro de vacunas aplicadas
- Esquemas por especie y edad
- Control de lotes y fabricantes
- Alertas de proximos refuerzos
- 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)
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)
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
interface VacunacionService {
getCatalogo(especieId?: string): Promise<Vacuna[]>;
getCartilla(mascotaId: string): Promise<VacunacionRecord[]>;
aplicar(data: AplicarVacuna): Promise<VacunacionRecord>;
getProximosRefuerzos(dias: number): Promise<RefuerzoPendiente[]>;
getVencidos(): Promise<RefuerzoPendiente[]>;
generarCertificado(mascotaId: string): Promise<Buffer>;
getReporteSenasica(mes: number, anio: number): Promise<ReporteSenasica>;
}
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
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