- 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>
269 lines
7.5 KiB
Markdown
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
|