clinica-veterinaria/docs/01-epicas/VET-001-mascotas-propietarios.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

6.5 KiB

VET-001: Mascotas y Propietarios

Metadata

  • Codigo: VET-001
  • Modulo: Mascotas + Propietarios
  • Prioridad: P0
  • Estado: DDL Completado
  • Fase: 1 - Core

Descripcion

Sistema de gestion de mascotas (pacientes) y sus propietarios: registro completo de datos del animal, vinculacion con duenos, historial de pesos, identificacion por microchip, y estado del paciente.

Objetivos

  1. Registro completo de mascotas
  2. Vinculacion mascota-propietario
  3. Gestion multi-especie y razas
  4. Identificacion por microchip
  5. Historial de pesos

Alcance

Incluido

  • CRUD de propietarios
  • CRUD de mascotas con foto
  • Catalogos de especies y razas
  • Busqueda por microchip
  • Historial de pesos
  • Vinculacion de multiples propietarios
  • Estados: activo, fallecido, perdido, dado_de_baja

Excluido

  • QR para expediente (fase posterior)
  • App para propietarios (fase posterior)
  • Portal de autoservicio

Especies Soportadas

Especie Codigo Vacunas Tipicas
Canino (Perro) CAN Parvovirus, Moquillo, Rabia
Felino (Gato) FEL Triple Felina, Leucemia, Rabia
Ave AVE Variable segun tipo
Reptil REP Sin vacunas estandar
Roedor ROE Sin vacunas estandar
Pez PEZ Tratamientos de agua
Exotico EXO Segun especie

Modelo de Datos

Tablas

veterinaria.propietarios

  • id, tenant_id, partner_id (opcional)
  • nombre, apellidos, telefono, telefono_emergencia
  • email, direccion, rfc
  • active

veterinaria.mascotas

  • id, tenant_id, propietario_id
  • especie_id, raza_id
  • nombre, sexo, fecha_nacimiento, edad_aproximada
  • color, peso_kg
  • numero_chip, tiene_chip
  • esterilizado, fecha_esterilizacion
  • alergias, condiciones_especiales, notas
  • foto_url, active

veterinaria.especies (Catalogo)

  • id, tenant_id, nombre, nombre_cientifico

veterinaria.razas (Catalogo)

  • id, tenant_id, especie_id, nombre
  • tamanio_promedio, peso_promedio_kg

Endpoints API

Propietarios

Metodo Endpoint Descripcion
GET /propietarios Listar propietarios
GET /propietarios/:id Detalle propietario
POST /propietarios Crear propietario
PUT /propietarios/:id Actualizar
DELETE /propietarios/:id Desactivar
GET /propietarios/:id/mascotas Mascotas del propietario

Mascotas

Metodo Endpoint Descripcion
GET /mascotas Listar mascotas
GET /mascotas/:id Detalle mascota
POST /mascotas Registrar mascota
PUT /mascotas/:id Actualizar
DELETE /mascotas/:id Desactivar
GET /mascotas/chip/:numero Buscar por microchip
POST /mascotas/:id/foto Subir foto
GET /mascotas/:id/historial-peso Historial de pesos
POST /mascotas/:id/peso Registrar peso

Catalogos

Metodo Endpoint Descripcion
GET /especies Listar especies
GET /especies/:id/razas Razas de especie
POST /razas Crear raza

Interfaz del Servicio

interface MascotasService {
  getAll(filters?: MascotaFilters): Promise<Mascota[]>;
  getById(id: string): Promise<Mascota>;
  create(data: CreateMascota): Promise<Mascota>;
  update(id: string, data: UpdateMascota): Promise<Mascota>;
  findByChip(numeroChip: string): Promise<Mascota | null>;
  registrarPeso(mascotaId: string, pesoKg: number): Promise<void>;
  getHistorialPeso(mascotaId: string): Promise<PesoHistorial[]>;
}

interface PropietariosService {
  getAll(filters?: PropietarioFilters): Promise<Propietario[]>;
  getById(id: string): Promise<Propietario>;
  create(data: CreatePropietario): Promise<Propietario>;
  getMascotas(propietarioId: string): Promise<Mascota[]>;
}

interface CreateMascota {
  propietarioId: string;
  especieId: string;
  razaId?: string;
  nombre: string;
  sexo: SexoAnimal;
  fechaNacimiento?: Date;
  edadAproximada?: string;
  color?: string;
  pesoKg?: number;
  numeroChip?: string;
  esterilizado?: boolean;
  alergias?: string;
}

Flujos

Registrar Nueva Mascota

1. Propietario llega a registrar mascota
2. Buscar si propietario existe (por telefono)
3. Si no existe, crear propietario
4. Crear registro de mascota:
   - Seleccionar especie
   - Seleccionar raza (opcional)
   - Datos basicos (nombre, sexo, edad)
   - Identificacion (chip si tiene)
   - Tomar foto
5. Guardar y abrir expediente

Buscar por Microchip

1. Escanear microchip
2. Buscar en base de datos
3. Si existe: mostrar expediente
4. Si no existe: opcion de registrar
5. Validar propietario actual

Signos Vitales por Especie

Especie Temp Normal FC Normal FR Normal
Canino 38-39°C 60-120 lpm 10-30 rpm
Felino 38-39°C 120-180 lpm 20-40 rpm
Conejo 38.5-40°C 130-325 lpm 30-60 rpm
Ave 40-42°C Variable Variable

Componentes Frontend

MascotaCard

interface MascotaCardProps {
  mascota: Mascota;
  onClick: () => void;
  showOwner?: boolean;
}

// Muestra:
// - Foto de la mascota
// - Nombre y especie
// - Raza
// - Edad
// - Chip (si tiene)
// - Estado (activo/fallecido)

MascotaForm

interface MascotaFormProps {
  propietarioId: string;
  onSave: (mascota: Mascota) => void;
}

// Campos:
// - Nombre
// - Especie (dropdown)
// - Raza (dropdown filtrado por especie)
// - Sexo
// - Fecha nacimiento / Edad aproximada
// - Color
// - Peso
// - Microchip
// - Esterilizado
// - Alergias
// - Foto

Entregables

Entregable Estado Archivo
DDL mascotas Completado database/schemas/01-veterinaria-schema-ddl.sql
DDL propietarios Completado database/schemas/01-veterinaria-schema-ddl.sql
mascotas.module.ts Pendiente backend/modules/mascotas/
propietarios.module.ts Pendiente backend/modules/propietarios/
MascotaCard.tsx Pendiente frontend/components/
MascotaForm.tsx Pendiente frontend/components/

Dependencias

Depende de

  • Auth/Tenants (erp-core)

Bloquea a

  • VET-002 (Vacunacion - requiere mascota)
  • VET-003 (Desparasitaciones)
  • VET-004 (Hospitalizacion)
  • VET-005 (Estetica)
  • Consultas veterinarias

Criterios de Aceptacion

  • CRUD propietarios funciona
  • CRUD mascotas funciona
  • Catalogos de especies/razas
  • Busqueda por microchip
  • Foto se sube correctamente
  • Historial de peso funciona
  • Vinculacion propietario-mascota

Ultima actualizacion: 2026-01-07