clinica-veterinaria/docs/01-epicas/VET-002-vacunacion.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

269 lines
7.5 KiB
Markdown

# 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<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
```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