feat: Add orchestration configuration and project documentation
- Add CONTEXT-MAP.yml and PROJECT-STATUS.md - Add _MAP.md for documentation index - Update orchestration structure 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
6e195553d2
commit
2b5c1d7e3f
392
docs/00-vision-general/VISION.md
Normal file
392
docs/00-vision-general/VISION.md
Normal file
@ -0,0 +1,392 @@
|
|||||||
|
# VISION - Sistema de Gestion Clinica Veterinaria
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Version:** 1.0.0
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
**Estado:** Fase 0 - Documentacion
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. PROPOSITO
|
||||||
|
|
||||||
|
Sistema de gestion integral para clinicas veterinarias que permite administrar mascotas (pacientes), propietarios, expedientes clinicos, cartilla de vacunacion, hospitalizacion, farmacia veterinaria y servicios de estetica.
|
||||||
|
|
||||||
|
### Problema que Resuelve
|
||||||
|
|
||||||
|
- Falta de registro digitalizado de mascotas y sus propietarios
|
||||||
|
- Control manual de esquemas de vacunacion por especie
|
||||||
|
- Seguimiento deficiente de pacientes hospitalizados
|
||||||
|
- Gestion inadecuada de inventario de medicamentos veterinarios
|
||||||
|
- Dificultad para cumplir reportes a SENASICA
|
||||||
|
|
||||||
|
### Propuesta de Valor
|
||||||
|
|
||||||
|
- **Registro multi-especie** con catalogos especializados por tipo de animal
|
||||||
|
- **Cartilla de vacunacion digital** con recordatorios automaticos
|
||||||
|
- **Control de hospitalizacion** con monitoreo de signos vitales
|
||||||
|
- **Farmacia integrada** con control de lotes y caducidades
|
||||||
|
- **Reportes SENASICA** para cumplimiento normativo
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. OBJETIVOS PRINCIPALES
|
||||||
|
|
||||||
|
### O1: Gestion de Mascotas y Propietarios
|
||||||
|
- Registro completo de datos de la mascota
|
||||||
|
- Vinculacion con propietario(s)
|
||||||
|
- Historial clinico por mascota
|
||||||
|
- Microchip y documentacion
|
||||||
|
|
||||||
|
### O2: Cartilla de Vacunacion
|
||||||
|
- Esquemas de vacunacion por especie
|
||||||
|
- Control de aplicaciones con lote y fecha
|
||||||
|
- Alertas de proximas vacunas
|
||||||
|
- Certificados digitales
|
||||||
|
|
||||||
|
### O3: Consultas Veterinarias
|
||||||
|
- Registro de signos vitales (peso, temperatura)
|
||||||
|
- Diagnosticos y tratamientos
|
||||||
|
- Recetas veterinarias
|
||||||
|
- Estudios de laboratorio
|
||||||
|
|
||||||
|
### O4: Hospitalizacion
|
||||||
|
- Ingreso y asignacion de espacios
|
||||||
|
- Monitoreo continuo
|
||||||
|
- Administracion de medicamentos
|
||||||
|
- Alta y seguimiento
|
||||||
|
|
||||||
|
### O5: Farmacia y Estetica
|
||||||
|
- Inventario de medicamentos veterinarios
|
||||||
|
- Control de lotes y caducidades
|
||||||
|
- Servicios de grooming
|
||||||
|
- Ventas de productos
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. USUARIOS Y ROLES
|
||||||
|
|
||||||
|
| Rol | Descripcion | Permisos Principales |
|
||||||
|
|-----|-------------|---------------------|
|
||||||
|
| **Veterinario** | Medico tratante | Consultas, diagnosticos, prescripciones, cirugias |
|
||||||
|
| **Auxiliar Veterinario** | Apoyo clinico | Ver expedientes, hospitalización, administrar medicamentos |
|
||||||
|
| **Recepcionista** | Atencion al cliente | Agendar citas, cobros, registro de mascotas |
|
||||||
|
| **Estilista** | Servicios grooming | Banos, cortes, tratamientos esteticos |
|
||||||
|
| **Farmaceutico** | Control de medicamentos | Inventario, dispensacion, control de lotes |
|
||||||
|
| **Administrador** | Gestion general | Configuracion, reportes, usuarios |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. FUNCIONALIDADES CORE
|
||||||
|
|
||||||
|
### 4.1 Modulo Mascotas (Pacientes)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entidad_principal: mascota
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- nombre: VARCHAR(100)
|
||||||
|
- especie_id: UUID (FK)
|
||||||
|
- raza_id: UUID (FK)
|
||||||
|
- sexo: ENUM (macho, hembra)
|
||||||
|
- fecha_nacimiento: DATE
|
||||||
|
- peso_actual: DECIMAL(6,2)
|
||||||
|
- color: VARCHAR(100)
|
||||||
|
- microchip: VARCHAR(50) UNIQUE
|
||||||
|
- esterilizado: BOOLEAN
|
||||||
|
- fecha_esterilizacion: DATE
|
||||||
|
- propietario_id: UUID (FK)
|
||||||
|
- foto_url: VARCHAR(500)
|
||||||
|
- notas: TEXT
|
||||||
|
- estado: ENUM (activo, fallecido, perdido, dado_de_baja)
|
||||||
|
|
||||||
|
funcionalidades:
|
||||||
|
- Registro con foto
|
||||||
|
- Busqueda por microchip
|
||||||
|
- Historial de pesos
|
||||||
|
- Vinculacion de multiples propietarios
|
||||||
|
- QR para acceso rapido a expediente
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.2 Modulo Propietarios
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entidad_principal: propietario
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- nombre: VARCHAR(200)
|
||||||
|
- telefono: VARCHAR(20)
|
||||||
|
- telefono_emergencia: VARCHAR(20)
|
||||||
|
- email: VARCHAR(255)
|
||||||
|
- direccion: TEXT
|
||||||
|
- codigo_postal: VARCHAR(10)
|
||||||
|
- rfc: VARCHAR(13)
|
||||||
|
- notas: TEXT
|
||||||
|
|
||||||
|
funcionalidades:
|
||||||
|
- Multiples mascotas por propietario
|
||||||
|
- Historial de visitas
|
||||||
|
- Preferencias de comunicacion
|
||||||
|
- Saldo a favor / adeudos
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.3 Modulo Vacunacion
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entidad_principal: vacunacion
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- mascota_id: UUID (FK)
|
||||||
|
- vacuna_id: UUID (FK catalogo)
|
||||||
|
- fecha_aplicacion: DATE
|
||||||
|
- fecha_proxima: DATE
|
||||||
|
- lote: VARCHAR(50)
|
||||||
|
- fabricante: VARCHAR(100)
|
||||||
|
- veterinario_id: UUID (FK)
|
||||||
|
- certificado_url: VARCHAR(500)
|
||||||
|
- notas: TEXT
|
||||||
|
|
||||||
|
funcionalidades:
|
||||||
|
- Esquemas automaticos por especie/edad
|
||||||
|
- Alertas de proximas vacunas (email, SMS, push)
|
||||||
|
- Generacion de certificados
|
||||||
|
- Reporte para SENASICA
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.4 Modulo Hospitalizacion
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entidad_principal: hospitalizacion
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- mascota_id: UUID (FK)
|
||||||
|
- fecha_ingreso: TIMESTAMP
|
||||||
|
- fecha_alta: TIMESTAMP
|
||||||
|
- motivo: TEXT
|
||||||
|
- espacio_id: UUID (FK jaulas/kennels)
|
||||||
|
- estado: ENUM (activo, alta, fallecido, referido)
|
||||||
|
- dieta: TEXT
|
||||||
|
- indicaciones: TEXT
|
||||||
|
- veterinario_responsable_id: UUID (FK)
|
||||||
|
|
||||||
|
funcionalidades:
|
||||||
|
- Asignacion de espacios (jaulas, kennels)
|
||||||
|
- Monitoreo de signos vitales cada X horas
|
||||||
|
- Administracion de medicamentos
|
||||||
|
- Notas de evolucion
|
||||||
|
- Comunicacion con propietario
|
||||||
|
- Costos acumulados
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.5 Modulo Farmacia
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
entidad_principal: medicamento
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- nombre: VARCHAR(200)
|
||||||
|
- principio_activo: VARCHAR(200)
|
||||||
|
- presentacion: VARCHAR(100)
|
||||||
|
- laboratorio: VARCHAR(100)
|
||||||
|
- requiere_receta: BOOLEAN
|
||||||
|
- controlado: BOOLEAN
|
||||||
|
- stock_actual: INTEGER
|
||||||
|
- stock_minimo: INTEGER
|
||||||
|
- precio_compra: DECIMAL
|
||||||
|
- precio_venta: DECIMAL
|
||||||
|
|
||||||
|
lote:
|
||||||
|
- id: UUID
|
||||||
|
- medicamento_id: UUID (FK)
|
||||||
|
- numero_lote: VARCHAR(50)
|
||||||
|
- fecha_caducidad: DATE
|
||||||
|
- cantidad_inicial: INTEGER
|
||||||
|
- cantidad_actual: INTEGER
|
||||||
|
|
||||||
|
funcionalidades:
|
||||||
|
- Control de existencias por lote
|
||||||
|
- Alertas de caducidad proxima
|
||||||
|
- Alertas de stock minimo
|
||||||
|
- Trazabilidad de dispensacion
|
||||||
|
- Medicamentos controlados
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. ESPECIES SOPORTADAS
|
||||||
|
|
||||||
|
### Principales
|
||||||
|
|
||||||
|
| Especie | Codigo | Vacunas Requeridas |
|
||||||
|
|---------|--------|-------------------|
|
||||||
|
| Canino (Perro) | CAN | Parvovirus, Moquillo, Hepatitis, Rabia, Leptospirosis, Bordetella |
|
||||||
|
| Felino (Gato) | FEL | Triple Felina, Leucemia Felina, Rabia |
|
||||||
|
|
||||||
|
### Otras Especies
|
||||||
|
|
||||||
|
| Especie | Codigo | Notas |
|
||||||
|
|---------|--------|-------|
|
||||||
|
| Ave | AVE | Paramixovirus, Viruela aviar (segun tipo) |
|
||||||
|
| Reptil | REP | Sin vacunas estandar, control de parasitos |
|
||||||
|
| Roedor | ROE | Sin vacunas estandar |
|
||||||
|
| Pez | PEZ | Sin vacunas, tratamientos de agua |
|
||||||
|
| Exotico | EXO | Segun especie especifica |
|
||||||
|
|
||||||
|
### Esquemas de Vacunacion por Especie
|
||||||
|
|
||||||
|
#### Caninos
|
||||||
|
```yaml
|
||||||
|
cachorro:
|
||||||
|
- 6_semanas: Parvovirus
|
||||||
|
- 8_semanas: Quintuple (Parvovirus, Moquillo, Hepatitis, Parainfluenza, Leptospirosis)
|
||||||
|
- 12_semanas: Refuerzo Quintuple
|
||||||
|
- 16_semanas: Rabia
|
||||||
|
- anual: Refuerzos + Rabia
|
||||||
|
|
||||||
|
adulto:
|
||||||
|
- anual: Quintuple + Rabia
|
||||||
|
- cada_6_meses: Bordetella (opcional, perros sociales)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Felinos
|
||||||
|
```yaml
|
||||||
|
gatito:
|
||||||
|
- 8_semanas: Triple Felina (Rinotraqueitis, Calicivirus, Panleucopenia)
|
||||||
|
- 12_semanas: Refuerzo Triple + Leucemia Felina
|
||||||
|
- 16_semanas: Rabia
|
||||||
|
- anual: Refuerzos
|
||||||
|
|
||||||
|
adulto:
|
||||||
|
- anual: Triple Felina + Rabia
|
||||||
|
- leucemia: Segun riesgo (gatos de exterior)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. CONSULTA VETERINARIA
|
||||||
|
|
||||||
|
### Flujo de Atencion
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Propietario llega con mascota
|
||||||
|
2. Recepcion verifica/registra cita
|
||||||
|
3. Pesaje y registro de temperatura
|
||||||
|
4. Veterinario realiza exploracion fisica
|
||||||
|
5. Diagnostico y tratamiento
|
||||||
|
6. Prescripcion de medicamentos
|
||||||
|
7. Actualizacion de cartilla (si aplica vacuna)
|
||||||
|
8. Agenda proxima cita
|
||||||
|
9. Cobro en recepcion
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. INTEGRACIONES
|
||||||
|
|
||||||
|
| Sistema | Proposito | Prioridad |
|
||||||
|
|---------|-----------|-----------|
|
||||||
|
| SENASICA | Reportes de vacunacion antirabica | P1 |
|
||||||
|
| Laboratorios | Resultados de analisis clinicos | P1 |
|
||||||
|
| Proveedores | Pedidos de medicamentos | P2 |
|
||||||
|
| Facturacion electronica | CFDI 4.0 | P1 |
|
||||||
|
| WhatsApp/SMS | Recordatorios de citas y vacunas | P2 |
|
||||||
|
|
||||||
|
### SENASICA
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
reporte_rabico:
|
||||||
|
frecuencia: Mensual
|
||||||
|
datos_requeridos:
|
||||||
|
- Numero de vacunas aplicadas
|
||||||
|
- Especie (canino/felino)
|
||||||
|
- Municipio
|
||||||
|
- Veterinario responsable
|
||||||
|
- Lote de vacuna
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. METRICAS DE EXITO
|
||||||
|
|
||||||
|
| Metrica | Descripcion | Objetivo |
|
||||||
|
|---------|-------------|----------|
|
||||||
|
| Consultas/dia | Mascotas atendidas | 15-25 |
|
||||||
|
| Tasa vacunacion | Esquemas completos | 85% |
|
||||||
|
| Ocupacion hospital | Uso de espacios | 70% |
|
||||||
|
| Dias hospitalizacion | Promedio estancia | 2-3 dias |
|
||||||
|
| Mortalidad | Fallecimientos en hospital | <5% |
|
||||||
|
| Satisfaccion cliente | NPS | 8.5+ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. FASES DE DESARROLLO
|
||||||
|
|
||||||
|
### Fase 1: Core (MVP)
|
||||||
|
- Registro de mascotas y propietarios
|
||||||
|
- Consultas basicas
|
||||||
|
- Agenda de citas
|
||||||
|
- Facturacion simple
|
||||||
|
|
||||||
|
### Fase 2: Vacunacion y Farmacia
|
||||||
|
- Cartilla de vacunacion completa
|
||||||
|
- Inventario de medicamentos
|
||||||
|
- Alertas automaticas
|
||||||
|
- Control de lotes
|
||||||
|
|
||||||
|
### Fase 3: Hospitalizacion
|
||||||
|
- Ingreso y espacios
|
||||||
|
- Monitoreo de pacientes
|
||||||
|
- Evolucion clinica
|
||||||
|
- Costos por estancia
|
||||||
|
|
||||||
|
### Fase 4: Servicios Adicionales
|
||||||
|
- Estetica (grooming)
|
||||||
|
- Laboratorio interno
|
||||||
|
- Tienda de productos
|
||||||
|
- App para propietarios
|
||||||
|
|
||||||
|
### Fase 5: Integraciones
|
||||||
|
- SENASICA automatizado
|
||||||
|
- Laboratorios externos
|
||||||
|
- Proveedores
|
||||||
|
- Recordatorios multicanal
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. HERENCIA Y DEPENDENCIAS
|
||||||
|
|
||||||
|
### Hereda de erp-clinicas
|
||||||
|
- Modulo Expedientes (adaptado a mascotas)
|
||||||
|
- Modulo Citas
|
||||||
|
- Modulo Consultas
|
||||||
|
- Modulo Recetas
|
||||||
|
|
||||||
|
### Hereda de erp-core
|
||||||
|
- Autenticacion y usuarios
|
||||||
|
- Roles y permisos
|
||||||
|
- Facturacion
|
||||||
|
- Inventario
|
||||||
|
- Catalogos base
|
||||||
|
|
||||||
|
### Especifico Veterinaria (Nuevo)
|
||||||
|
- Mascotas (pacientes)
|
||||||
|
- Propietarios
|
||||||
|
- Cartilla de vacunacion
|
||||||
|
- Hospitalizacion
|
||||||
|
- Farmacia veterinaria
|
||||||
|
- Estetica (grooming)
|
||||||
|
- Integracion SENASICA
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Documento creado:** 2026-01-07
|
||||||
|
**Autor:** Agente Orquestador Workspace
|
||||||
|
**Basado en:** SIMCO v2.5, CONTEXTO-PROYECTO.md
|
||||||
193
docs/02-definicion-modulos/_MAP.md
Normal file
193
docs/02-definicion-modulos/_MAP.md
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
# Clinica Veterinaria - Mapa de Modulos
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Seccion:** 02-definicion-modulos
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Estructura de Modulos
|
||||||
|
|
||||||
|
```
|
||||||
|
02-definicion-modulos/
|
||||||
|
├── _MAP.md <- ESTE ARCHIVO
|
||||||
|
├── modulo-mascotas.md <- Registro de pacientes
|
||||||
|
├── modulo-propietarios.md <- Duenos de mascotas
|
||||||
|
├── modulo-vacunacion.md <- Cartilla de vacunas
|
||||||
|
├── modulo-consultas.md <- Atencion veterinaria
|
||||||
|
├── modulo-hospitalizacion.md <- Internamiento
|
||||||
|
├── modulo-farmacia.md <- Medicamentos veterinarios
|
||||||
|
├── modulo-estetica.md <- Grooming
|
||||||
|
├── modulo-laboratorio.md <- Analisis clinicos
|
||||||
|
└── modulo-cirugia.md <- Procedimientos quirurgicos
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modulos Especializados (Veterinaria)
|
||||||
|
|
||||||
|
### Core - Prioridad P1
|
||||||
|
|
||||||
|
| Modulo | Archivo | Estado | Descripcion |
|
||||||
|
|--------|---------|--------|-------------|
|
||||||
|
| Mascotas | modulo-mascotas.md | EN_PROGRESO | Registro de pacientes animales |
|
||||||
|
| Propietarios | modulo-propietarios.md | PENDIENTE | Gestion de duenos |
|
||||||
|
| Vacunacion | modulo-vacunacion.md | EN_PROGRESO | Cartilla de vacunas por especie |
|
||||||
|
| Consultas | modulo-consultas.md | PENDIENTE | Atencion veterinaria |
|
||||||
|
|
||||||
|
### Especializados - Prioridad P2
|
||||||
|
|
||||||
|
| Modulo | Archivo | Estado | Descripcion |
|
||||||
|
|--------|---------|--------|-------------|
|
||||||
|
| Hospitalizacion | modulo-hospitalizacion.md | PENDIENTE | Internamiento y seguimiento |
|
||||||
|
| Farmacia | modulo-farmacia.md | PENDIENTE | Medicamentos con control de lotes |
|
||||||
|
| Estetica | modulo-estetica.md | PENDIENTE | Bano, corte, grooming |
|
||||||
|
| Laboratorio | modulo-laboratorio.md | PENDIENTE | Analisis clinicos |
|
||||||
|
| Cirugia | modulo-cirugia.md | PENDIENTE | Procedimientos quirurgicos |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modulos Heredados (de erp-clinicas)
|
||||||
|
|
||||||
|
| Modulo | Fuente | Adaptacion |
|
||||||
|
|--------|--------|------------|
|
||||||
|
| Expedientes | erp-clinicas | Adaptar a mascotas (no humanos) |
|
||||||
|
| Citas | erp-clinicas | Sin cambios |
|
||||||
|
| Consultas | erp-clinicas | Signos vitales animales |
|
||||||
|
| Recetas | erp-clinicas | Medicamentos veterinarios |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modulos Heredados (de erp-core)
|
||||||
|
|
||||||
|
| Modulo | Fuente | Adaptacion |
|
||||||
|
|--------|--------|------------|
|
||||||
|
| Autenticacion | erp-core | Sin cambios |
|
||||||
|
| Usuarios | erp-core | Sin cambios |
|
||||||
|
| Roles/Permisos | erp-core | Agregar roles veterinarios |
|
||||||
|
| Facturacion | erp-core | Sin cambios |
|
||||||
|
| Inventario | erp-core | Productos veterinarios |
|
||||||
|
| Catalogos | erp-core | Especies, razas, vacunas |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Entidades por Modulo
|
||||||
|
|
||||||
|
### Mascotas
|
||||||
|
- `mascota` - Paciente animal
|
||||||
|
- `especie` - Catalogo de especies
|
||||||
|
- `raza` - Catalogo de razas por especie
|
||||||
|
- `historial_peso` - Registro de pesos
|
||||||
|
|
||||||
|
### Propietarios
|
||||||
|
- `propietario` - Dueno de mascota(s)
|
||||||
|
- `mascota_propietario` - Relacion N:M
|
||||||
|
- `contacto_emergencia` - Contactos adicionales
|
||||||
|
|
||||||
|
### Vacunacion
|
||||||
|
- `vacunacion` - Aplicacion de vacuna
|
||||||
|
- `vacuna` - Catalogo de vacunas
|
||||||
|
- `esquema_vacunacion` - Esquema por especie/edad
|
||||||
|
- `certificado_vacunacion` - Documentos generados
|
||||||
|
|
||||||
|
### Hospitalizacion
|
||||||
|
- `hospitalizacion` - Ingreso
|
||||||
|
- `espacio` - Jaulas, kennels, peceras
|
||||||
|
- `monitoreo` - Signos vitales periodicos
|
||||||
|
- `evolucion` - Notas clinicas
|
||||||
|
|
||||||
|
### Farmacia
|
||||||
|
- `medicamento` - Producto
|
||||||
|
- `lote` - Control de lotes
|
||||||
|
- `movimiento_inventario` - Entradas/salidas
|
||||||
|
- `dispensacion` - Entrega a paciente
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Relaciones entre Modulos
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────┐
|
||||||
|
│ Propietario │
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
┌──────▼──────┐
|
||||||
|
│ Mascota │
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
┌──────────────┬───────┼───────┬──────────────┐
|
||||||
|
│ │ │ │ │
|
||||||
|
┌───▼───┐ ┌──────▼──────┐│ ┌─────▼─────┐ ┌──────▼──────┐
|
||||||
|
│Vacuna-│ │ Citas ││ │Hospitaliza│ │ Estetica │
|
||||||
|
│cion │ └──────┬──────┘│ │cion │ └─────────────┘
|
||||||
|
└───────┘ │ │ └─────┬─────┘
|
||||||
|
│ │ │
|
||||||
|
┌──────▼──────┐│ ┌─────▼─────┐
|
||||||
|
│ Consulta ││ │ Monitoreo │
|
||||||
|
└──────┬──────┘│ └───────────┘
|
||||||
|
│ │
|
||||||
|
┌──────▼──────┐│
|
||||||
|
│ Receta │◄─────────────────┐
|
||||||
|
└──────┬──────┘ │
|
||||||
|
│ │
|
||||||
|
┌──────▼──────┐ ┌──────┴──────┐
|
||||||
|
│ Dispensacion│◄──────────│ Farmacia │
|
||||||
|
└─────────────┘ └─────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Especies y Vacunas
|
||||||
|
|
||||||
|
### Caninos (Perros)
|
||||||
|
|
||||||
|
| Vacuna | Edad Inicial | Refuerzo | Frecuencia |
|
||||||
|
|--------|--------------|----------|------------|
|
||||||
|
| Parvovirus | 6 semanas | 8, 12 semanas | Anual |
|
||||||
|
| Quintuple | 8 semanas | 12 semanas | Anual |
|
||||||
|
| Rabia | 16 semanas | - | Anual |
|
||||||
|
| Bordetella | 12 semanas | - | 6 meses |
|
||||||
|
|
||||||
|
### Felinos (Gatos)
|
||||||
|
|
||||||
|
| Vacuna | Edad Inicial | Refuerzo | Frecuencia |
|
||||||
|
|--------|--------------|----------|------------|
|
||||||
|
| Triple Felina | 8 semanas | 12 semanas | Anual |
|
||||||
|
| Leucemia Felina | 12 semanas | 16 semanas | Anual |
|
||||||
|
| Rabia | 16 semanas | - | Anual |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Integraciones Externas
|
||||||
|
|
||||||
|
| Sistema | Modulo Relacionado | Prioridad |
|
||||||
|
|---------|-------------------|-----------|
|
||||||
|
| SENASICA | Vacunacion (Rabia) | P1 |
|
||||||
|
| Laboratorios | Laboratorio | P1 |
|
||||||
|
| Proveedores | Farmacia | P2 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Estado de Documentacion
|
||||||
|
|
||||||
|
| Modulo | README | ESPECIFICACION | FLUJOS | TESTS |
|
||||||
|
|--------|--------|----------------|--------|-------|
|
||||||
|
| Mascotas | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||||
|
| Propietarios | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||||
|
| Vacunacion | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||||
|
| Hospitalizacion | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||||
|
| Farmacia | PENDIENTE | PENDIENTE | PENDIENTE | PENDIENTE |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Proximos Pasos
|
||||||
|
|
||||||
|
1. **Completar modulo-mascotas.md** - Especificacion completa
|
||||||
|
2. **Documentar modulo-vacunacion.md** - Esquemas por especie
|
||||||
|
3. **Definir entidades** en DATABASE_INVENTORY.yml
|
||||||
|
4. **Crear User Stories** para Sprint 1
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Ultima actualizacion:** 2026-01-07
|
||||||
|
**Version:** 1.0.0
|
||||||
697
docs/02-definicion-modulos/modulo-mascotas.md
Normal file
697
docs/02-definicion-modulos/modulo-mascotas.md
Normal file
@ -0,0 +1,697 @@
|
|||||||
|
# Modulo Mascotas
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Modulo:** VET-001
|
||||||
|
**Prioridad:** P1 - Core
|
||||||
|
**Estado:** Especificacion
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. DESCRIPCION GENERAL
|
||||||
|
|
||||||
|
El modulo de Mascotas es el nucleo del sistema veterinario. Gestiona el registro de pacientes animales, su vinculacion con propietarios, datos clinicos basicos y seguimiento de peso/estado.
|
||||||
|
|
||||||
|
### Proposito
|
||||||
|
- Registro completo de datos de cada mascota
|
||||||
|
- Vinculacion con propietarios (1 o multiples)
|
||||||
|
- Historial de pesos y mediciones
|
||||||
|
- Identificacion por microchip
|
||||||
|
- Base para expediente clinico
|
||||||
|
|
||||||
|
### Alcance
|
||||||
|
- Multiples especies (canino, felino, aves, exoticos)
|
||||||
|
- Razas por especie
|
||||||
|
- Datos de identificacion (microchip)
|
||||||
|
- Estado reproductivo (esterilizado/entero)
|
||||||
|
- Fotos de identificacion
|
||||||
|
- Estados (activo, fallecido, perdido)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. ENTIDADES
|
||||||
|
|
||||||
|
### 2.1 especie
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.especies
|
||||||
|
descripcion: "Catalogo de especies soportadas"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: codigo
|
||||||
|
tipo: VARCHAR(10)
|
||||||
|
unique: true
|
||||||
|
not_null: true
|
||||||
|
descripcion: "CAN, FEL, AVE, REP, ROE, PEZ, EXO"
|
||||||
|
|
||||||
|
- nombre: nombre
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Canino, Felino, Ave, etc"
|
||||||
|
|
||||||
|
- nombre: nombre_cientifico
|
||||||
|
tipo: VARCHAR(200)
|
||||||
|
descripcion: "Nombre cientifico"
|
||||||
|
|
||||||
|
- nombre: tiene_vacunas
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
descripcion: "Si tiene esquema de vacunacion"
|
||||||
|
|
||||||
|
- nombre: activo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
seeds:
|
||||||
|
- {codigo: 'CAN', nombre: 'Canino (Perro)', tiene_vacunas: true}
|
||||||
|
- {codigo: 'FEL', nombre: 'Felino (Gato)', tiene_vacunas: true}
|
||||||
|
- {codigo: 'AVE', nombre: 'Ave', tiene_vacunas: true}
|
||||||
|
- {codigo: 'REP', nombre: 'Reptil', tiene_vacunas: false}
|
||||||
|
- {codigo: 'ROE', nombre: 'Roedor', tiene_vacunas: false}
|
||||||
|
- {codigo: 'PEZ', nombre: 'Pez', tiene_vacunas: false}
|
||||||
|
- {codigo: 'EXO', nombre: 'Exotico', tiene_vacunas: true}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 raza
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.razas
|
||||||
|
descripcion: "Catalogo de razas por especie"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: especie_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.especies(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: nombre
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Nombre de la raza"
|
||||||
|
|
||||||
|
- nombre: tamano
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['miniatura', 'pequeno', 'mediano', 'grande', 'gigante']
|
||||||
|
descripcion: "Tamano tipico de la raza"
|
||||||
|
|
||||||
|
- nombre: peso_promedio_kg
|
||||||
|
tipo: DECIMAL(5,2)
|
||||||
|
descripcion: "Peso promedio adulto"
|
||||||
|
|
||||||
|
- nombre: esperanza_vida_anos
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Anos de vida promedio"
|
||||||
|
|
||||||
|
- nombre: activo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_raza_especie
|
||||||
|
campos: [especie_id]
|
||||||
|
- nombre: uk_raza_especie_nombre
|
||||||
|
campos: [especie_id, nombre]
|
||||||
|
unique: true
|
||||||
|
|
||||||
|
seeds_caninos:
|
||||||
|
- {nombre: 'Labrador Retriever', tamano: 'grande', peso_promedio: 30}
|
||||||
|
- {nombre: 'Pastor Aleman', tamano: 'grande', peso_promedio: 35}
|
||||||
|
- {nombre: 'Golden Retriever', tamano: 'grande', peso_promedio: 32}
|
||||||
|
- {nombre: 'Chihuahua', tamano: 'miniatura', peso_promedio: 2}
|
||||||
|
- {nombre: 'Bulldog Frances', tamano: 'pequeno', peso_promedio: 12}
|
||||||
|
- {nombre: 'Poodle', tamano: 'mediano', peso_promedio: 20}
|
||||||
|
- {nombre: 'Mestizo', tamano: 'mediano', peso_promedio: 15}
|
||||||
|
|
||||||
|
seeds_felinos:
|
||||||
|
- {nombre: 'Persa', tamano: 'mediano', peso_promedio: 5}
|
||||||
|
- {nombre: 'Siames', tamano: 'mediano', peso_promedio: 4}
|
||||||
|
- {nombre: 'Maine Coon', tamano: 'grande', peso_promedio: 8}
|
||||||
|
- {nombre: 'Comun Europeo', tamano: 'mediano', peso_promedio: 4}
|
||||||
|
- {nombre: 'Mestizo', tamano: 'mediano', peso_promedio: 4}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.3 mascota
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.mascotas
|
||||||
|
descripcion: "Registro de pacientes animales"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: tenant_id
|
||||||
|
tipo: UUID
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Multi-tenant"
|
||||||
|
|
||||||
|
- nombre: nombre
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Nombre de la mascota"
|
||||||
|
|
||||||
|
- nombre: especie_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.especies(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: raza_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.razas(id)
|
||||||
|
descripcion: "Raza (opcional si es mestizo)"
|
||||||
|
|
||||||
|
- nombre: sexo
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['macho', 'hembra']
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: fecha_nacimiento
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Fecha exacta o aproximada"
|
||||||
|
|
||||||
|
- nombre: fecha_nacimiento_aproximada
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
descripcion: "Si la fecha es aproximada"
|
||||||
|
|
||||||
|
- nombre: color
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
descripcion: "Color de pelaje/plumaje"
|
||||||
|
|
||||||
|
- nombre: peso_actual_kg
|
||||||
|
tipo: DECIMAL(6,2)
|
||||||
|
descripcion: "Ultimo peso registrado"
|
||||||
|
|
||||||
|
- nombre: peso_fecha
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Fecha del ultimo peso"
|
||||||
|
|
||||||
|
- nombre: microchip
|
||||||
|
tipo: VARCHAR(50)
|
||||||
|
unique: true
|
||||||
|
descripcion: "Numero de microchip"
|
||||||
|
|
||||||
|
- nombre: microchip_fecha
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Fecha de colocacion"
|
||||||
|
|
||||||
|
- nombre: esterilizado
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
|
||||||
|
- nombre: fecha_esterilizacion
|
||||||
|
tipo: DATE
|
||||||
|
|
||||||
|
- nombre: foto_url
|
||||||
|
tipo: VARCHAR(500)
|
||||||
|
descripcion: "URL de foto principal"
|
||||||
|
|
||||||
|
- nombre: caracteristicas_especiales
|
||||||
|
tipo: TEXT
|
||||||
|
descripcion: "Marcas, cicatrices, etc"
|
||||||
|
|
||||||
|
- nombre: alergias
|
||||||
|
tipo: TEXT[]
|
||||||
|
descripcion: "Lista de alergias conocidas"
|
||||||
|
|
||||||
|
- nombre: condiciones_cronicas
|
||||||
|
tipo: TEXT[]
|
||||||
|
descripcion: "Enfermedades cronicas"
|
||||||
|
|
||||||
|
- nombre: estado
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['activo', 'fallecido', 'perdido', 'dado_de_baja', 'referido']
|
||||||
|
default: 'activo'
|
||||||
|
|
||||||
|
- nombre: fecha_fallecimiento
|
||||||
|
tipo: DATE
|
||||||
|
|
||||||
|
- nombre: causa_fallecimiento
|
||||||
|
tipo: TEXT
|
||||||
|
|
||||||
|
- nombre: notas
|
||||||
|
tipo: TEXT
|
||||||
|
descripcion: "Observaciones generales"
|
||||||
|
|
||||||
|
- nombre: created_at
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
default: NOW()
|
||||||
|
|
||||||
|
- nombre: updated_at
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_mascota_tenant
|
||||||
|
campos: [tenant_id]
|
||||||
|
- nombre: idx_mascota_especie
|
||||||
|
campos: [especie_id]
|
||||||
|
- nombre: idx_mascota_microchip
|
||||||
|
campos: [microchip]
|
||||||
|
where: "microchip IS NOT NULL"
|
||||||
|
- nombre: idx_mascota_nombre
|
||||||
|
campos: [tenant_id, nombre]
|
||||||
|
|
||||||
|
rls:
|
||||||
|
- policy: "tenant_isolation"
|
||||||
|
using: "tenant_id = current_tenant_id()"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4 mascota_propietario
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.mascotas_propietarios
|
||||||
|
descripcion: "Relacion N:M entre mascotas y propietarios"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: mascota_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.mascotas(id)
|
||||||
|
not_null: true
|
||||||
|
on_delete: CASCADE
|
||||||
|
|
||||||
|
- nombre: propietario_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.propietarios(id)
|
||||||
|
not_null: true
|
||||||
|
on_delete: CASCADE
|
||||||
|
|
||||||
|
- nombre: es_principal
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
descripcion: "Si es el propietario principal"
|
||||||
|
|
||||||
|
- nombre: parentesco
|
||||||
|
tipo: VARCHAR(50)
|
||||||
|
descripcion: "Relacion: dueno, familiar, cuidador"
|
||||||
|
|
||||||
|
- nombre: fecha_desde
|
||||||
|
tipo: DATE
|
||||||
|
default: CURRENT_DATE
|
||||||
|
|
||||||
|
- nombre: fecha_hasta
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Si dejo de ser propietario"
|
||||||
|
|
||||||
|
- nombre: activo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: uk_mascota_propietario
|
||||||
|
campos: [mascota_id, propietario_id]
|
||||||
|
unique: true
|
||||||
|
- nombre: idx_mp_propietario
|
||||||
|
campos: [propietario_id]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.5 historial_peso
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.historial_pesos
|
||||||
|
descripcion: "Registro historico de pesos"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: mascota_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.mascotas(id)
|
||||||
|
not_null: true
|
||||||
|
on_delete: CASCADE
|
||||||
|
|
||||||
|
- nombre: peso_kg
|
||||||
|
tipo: DECIMAL(6,2)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: fecha_registro
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
default: NOW()
|
||||||
|
|
||||||
|
- nombre: registrado_por
|
||||||
|
tipo: UUID
|
||||||
|
fk: core.usuarios(id)
|
||||||
|
|
||||||
|
- nombre: notas
|
||||||
|
tipo: TEXT
|
||||||
|
descripcion: "Observaciones (dieta, enfermedad, etc)"
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_historial_peso_mascota
|
||||||
|
campos: [mascota_id]
|
||||||
|
- nombre: idx_historial_peso_fecha
|
||||||
|
campos: [mascota_id, fecha_registro DESC]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. API ENDPOINTS
|
||||||
|
|
||||||
|
### Mascotas
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
endpoints:
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas
|
||||||
|
descripcion: "Listar mascotas del tenant"
|
||||||
|
query:
|
||||||
|
especie: string (filtro)
|
||||||
|
estado: string (filtro)
|
||||||
|
propietario_id: string (filtro)
|
||||||
|
search: string (nombre, microchip)
|
||||||
|
page: number
|
||||||
|
limit: number
|
||||||
|
response: PaginatedResponse<Mascota>
|
||||||
|
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/{id}
|
||||||
|
descripcion: "Obtener mascota por ID"
|
||||||
|
response: Mascota con propietarios y ultimo peso
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/mascotas
|
||||||
|
descripcion: "Registrar nueva mascota"
|
||||||
|
body:
|
||||||
|
nombre: string (requerido)
|
||||||
|
especie_id: string (requerido)
|
||||||
|
raza_id: string (opcional)
|
||||||
|
sexo: string (requerido)
|
||||||
|
fecha_nacimiento: date (opcional)
|
||||||
|
color: string
|
||||||
|
peso_kg: number
|
||||||
|
microchip: string
|
||||||
|
esterilizado: boolean
|
||||||
|
propietario_id: string (requerido, al menos uno)
|
||||||
|
foto_url: string
|
||||||
|
notas: string
|
||||||
|
response: Mascota creada
|
||||||
|
|
||||||
|
- method: PUT
|
||||||
|
path: /api/v1/mascotas/{id}
|
||||||
|
descripcion: "Actualizar datos de mascota"
|
||||||
|
body: Campos actualizables
|
||||||
|
response: Mascota actualizada
|
||||||
|
|
||||||
|
- method: PATCH
|
||||||
|
path: /api/v1/mascotas/{id}/estado
|
||||||
|
descripcion: "Cambiar estado (fallecido, perdido, etc)"
|
||||||
|
body:
|
||||||
|
estado: string
|
||||||
|
fecha: date
|
||||||
|
motivo: string
|
||||||
|
response: Mascota actualizada
|
||||||
|
|
||||||
|
- method: DELETE
|
||||||
|
path: /api/v1/mascotas/{id}
|
||||||
|
descripcion: "Dar de baja mascota (soft delete)"
|
||||||
|
response: 204 No Content
|
||||||
|
```
|
||||||
|
|
||||||
|
### Busqueda por Microchip
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/microchip/{numero}
|
||||||
|
descripcion: "Buscar por numero de microchip"
|
||||||
|
response: Mascota o 404
|
||||||
|
```
|
||||||
|
|
||||||
|
### Historial de Peso
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/{id}/pesos
|
||||||
|
descripcion: "Historial de pesos"
|
||||||
|
query:
|
||||||
|
desde: date
|
||||||
|
hasta: date
|
||||||
|
response: Array de registros de peso
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/mascotas/{id}/pesos
|
||||||
|
descripcion: "Registrar nuevo peso"
|
||||||
|
body:
|
||||||
|
peso_kg: number (requerido)
|
||||||
|
notas: string
|
||||||
|
response: Registro de peso + mascota actualizada
|
||||||
|
```
|
||||||
|
|
||||||
|
### Propietarios de Mascota
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/{id}/propietarios
|
||||||
|
descripcion: "Propietarios vinculados"
|
||||||
|
response: Array de propietarios
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/mascotas/{id}/propietarios
|
||||||
|
descripcion: "Vincular propietario adicional"
|
||||||
|
body:
|
||||||
|
propietario_id: string
|
||||||
|
es_principal: boolean
|
||||||
|
parentesco: string
|
||||||
|
response: Relacion creada
|
||||||
|
|
||||||
|
- method: DELETE
|
||||||
|
path: /api/v1/mascotas/{id}/propietarios/{propietarioId}
|
||||||
|
descripcion: "Desvincular propietario"
|
||||||
|
response: 204 No Content
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. FLUJOS DE USUARIO
|
||||||
|
|
||||||
|
### 4.1 Registro de Nueva Mascota
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Recepcionista busca propietario existente o lo crea
|
||||||
|
2. Click en "Nueva Mascota"
|
||||||
|
3. Formulario de datos basicos:
|
||||||
|
- Nombre
|
||||||
|
- Especie (dropdown)
|
||||||
|
- Raza (dropdown filtrado por especie)
|
||||||
|
- Sexo
|
||||||
|
- Fecha nacimiento (con checkbox "aproximada")
|
||||||
|
- Color
|
||||||
|
- Peso actual
|
||||||
|
4. Datos de identificacion:
|
||||||
|
- Microchip (si tiene)
|
||||||
|
- Esterilizado (si/no + fecha)
|
||||||
|
5. Foto (opcional)
|
||||||
|
6. Notas adicionales
|
||||||
|
7. Guardar
|
||||||
|
8. Sistema vincula con propietario automaticamente
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.2 Busqueda de Mascota
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Campo de busqueda en header
|
||||||
|
2. Escribir nombre, microchip o nombre de propietario
|
||||||
|
3. Resultados en tiempo real
|
||||||
|
4. Click en resultado para abrir expediente
|
||||||
|
5. Alternativa: Escanear codigo de microchip
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.3 Registro de Peso en Consulta
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Al iniciar consulta, sistema pide peso
|
||||||
|
2. Auxiliar pesa a la mascota
|
||||||
|
3. Ingresa peso en sistema
|
||||||
|
4. Sistema muestra grafica de historico
|
||||||
|
5. Alerta si hay variacion significativa (>10%)
|
||||||
|
6. Peso se asocia a la consulta
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4.4 Fallecimiento de Mascota
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Abrir expediente de mascota
|
||||||
|
2. Menu: "Cambiar estado" > "Fallecido"
|
||||||
|
3. Formulario:
|
||||||
|
- Fecha de fallecimiento
|
||||||
|
- Causa (libre o catalogo)
|
||||||
|
- Lugar (clinica, domicilio, otro)
|
||||||
|
- Notas
|
||||||
|
4. Confirmacion con mensaje de condolencias
|
||||||
|
5. Sistema actualiza estado
|
||||||
|
6. Mascota aparece en seccion "Inactivos"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. COMPONENTES UI
|
||||||
|
|
||||||
|
### 5.1 MascotaCard
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
interface MascotaCardProps {
|
||||||
|
mascota: Mascota;
|
||||||
|
showPropietario?: boolean;
|
||||||
|
onClick?: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Muestra foto, nombre, especie, raza, edad
|
||||||
|
// Badge de estado (activo, fallecido, etc)
|
||||||
|
// Iconos de vacunas, alergias si aplica
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 MascotaForm
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
interface MascotaFormProps {
|
||||||
|
mascota?: Mascota; // Para edicion
|
||||||
|
propietarioId?: string; // Precarga propietario
|
||||||
|
onSave: (mascota: Mascota) => void;
|
||||||
|
onCancel: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wizard de pasos o formulario largo
|
||||||
|
// Validaciones en tiempo real
|
||||||
|
// Preview de foto
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.3 PesoChart
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
interface PesoChartProps {
|
||||||
|
mascotaId: string;
|
||||||
|
periodoMeses?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Grafica de linea con historico de peso
|
||||||
|
// Linea de peso ideal segun raza
|
||||||
|
// Tooltips con fechas y valores
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.4 MascotaExpediente
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
interface MascotaExpedienteProps {
|
||||||
|
mascotaId: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vista completa del expediente
|
||||||
|
// Tabs: Datos, Vacunas, Consultas, Hospitalizaciones
|
||||||
|
// Timeline de eventos
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. VALIDACIONES
|
||||||
|
|
||||||
|
### Reglas de Negocio
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
validaciones:
|
||||||
|
- regla: "Microchip unico en el tenant"
|
||||||
|
condicion: microchip duplicado
|
||||||
|
error: "Este numero de microchip ya esta registrado"
|
||||||
|
|
||||||
|
- regla: "Raza debe corresponder a especie"
|
||||||
|
condicion: raza.especie_id != mascota.especie_id
|
||||||
|
error: "La raza seleccionada no corresponde a la especie"
|
||||||
|
|
||||||
|
- regla: "Fecha nacimiento no puede ser futura"
|
||||||
|
condicion: fecha_nacimiento > today()
|
||||||
|
error: "La fecha de nacimiento no puede ser en el futuro"
|
||||||
|
|
||||||
|
- regla: "Peso debe ser positivo"
|
||||||
|
condicion: peso_kg <= 0
|
||||||
|
error: "El peso debe ser mayor a 0"
|
||||||
|
|
||||||
|
- regla: "Al menos un propietario"
|
||||||
|
condicion: propietarios.length == 0
|
||||||
|
error: "La mascota debe tener al menos un propietario"
|
||||||
|
|
||||||
|
- regla: "Solo un propietario principal"
|
||||||
|
condicion: propietarios.filter(p => p.es_principal).length > 1
|
||||||
|
error: "Solo puede haber un propietario principal"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. CASOS DE USO
|
||||||
|
|
||||||
|
### CU-VET-001: Registro de Mascota Nueva
|
||||||
|
|
||||||
|
**Actor:** Recepcionista / Veterinario
|
||||||
|
**Precondición:** Propietario registrado en sistema
|
||||||
|
**Flujo:**
|
||||||
|
1. Seleccionar propietario
|
||||||
|
2. Click "Nueva Mascota"
|
||||||
|
3. Completar datos obligatorios
|
||||||
|
4. Agregar foto (opcional)
|
||||||
|
5. Guardar
|
||||||
|
**Postcondición:** Mascota registrada, vinculada a propietario
|
||||||
|
|
||||||
|
### CU-VET-002: Busqueda por Microchip
|
||||||
|
|
||||||
|
**Actor:** Cualquier usuario
|
||||||
|
**Precondición:** Mascota con microchip registrado
|
||||||
|
**Flujo:**
|
||||||
|
1. Escanear o ingresar numero de microchip
|
||||||
|
2. Sistema busca en base de datos
|
||||||
|
3. Mostrar mascota encontrada
|
||||||
|
**Postcondición:** Acceso rapido al expediente
|
||||||
|
|
||||||
|
### CU-VET-003: Actualizacion de Peso
|
||||||
|
|
||||||
|
**Actor:** Auxiliar / Veterinario
|
||||||
|
**Precondición:** Mascota en consulta
|
||||||
|
**Flujo:**
|
||||||
|
1. Pesar mascota
|
||||||
|
2. Ingresar peso en sistema
|
||||||
|
3. Sistema calcula diferencia vs anterior
|
||||||
|
4. Mostrar alerta si variacion > 10%
|
||||||
|
5. Guardar con notas si aplica
|
||||||
|
**Postcondición:** Peso registrado, historial actualizado
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. DEPENDENCIAS
|
||||||
|
|
||||||
|
### Depende de
|
||||||
|
- `veterinaria.propietarios` - Duenos de mascotas
|
||||||
|
- `core.usuarios` - Quien registra
|
||||||
|
- `core.tenants` - Multi-tenant
|
||||||
|
|
||||||
|
### Dependientes
|
||||||
|
- `veterinaria.vacunaciones` - Cartilla de vacunas
|
||||||
|
- `veterinaria.consultas` - Historia clinica
|
||||||
|
- `veterinaria.hospitalizaciones` - Ingresos
|
||||||
|
- `veterinaria.facturas` - Facturacion
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. METRICAS
|
||||||
|
|
||||||
|
| Metrica | Descripcion | Query |
|
||||||
|
|---------|-------------|-------|
|
||||||
|
| Total mascotas | Mascotas activas | `WHERE estado = 'activo'` |
|
||||||
|
| Por especie | Distribucion | `GROUP BY especie_id` |
|
||||||
|
| Nuevas/mes | Registros mensuales | `WHERE created_at >= ?` |
|
||||||
|
| Tasa mortalidad | Fallecidos / total | Calculo |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Documento creado:** 2026-01-07
|
||||||
|
**Autor:** Agente Orquestador Workspace
|
||||||
|
**Version:** 1.0.0
|
||||||
744
docs/02-definicion-modulos/modulo-vacunacion.md
Normal file
744
docs/02-definicion-modulos/modulo-vacunacion.md
Normal file
@ -0,0 +1,744 @@
|
|||||||
|
# Modulo Vacunacion
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Modulo:** VET-002
|
||||||
|
**Prioridad:** P1 - Core
|
||||||
|
**Estado:** Especificacion
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. DESCRIPCION GENERAL
|
||||||
|
|
||||||
|
El modulo de Vacunacion gestiona la cartilla digital de vacunas de cada mascota, incluyendo esquemas por especie/edad, recordatorios automaticos, control de lotes y generacion de certificados para SENASICA.
|
||||||
|
|
||||||
|
### Proposito
|
||||||
|
- Registro de vacunas aplicadas
|
||||||
|
- Esquemas automaticos por especie
|
||||||
|
- Alertas de proximas vacunas
|
||||||
|
- Control de lotes y caducidad
|
||||||
|
- Certificados oficiales
|
||||||
|
- Reporte a SENASICA (rabia)
|
||||||
|
|
||||||
|
### Alcance
|
||||||
|
- Todas las especies con vacunas
|
||||||
|
- Esquemas personalizables
|
||||||
|
- Recordatorios multicanal (email, SMS, push)
|
||||||
|
- Integracion con SENASICA
|
||||||
|
- Historial completo de inmunizaciones
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. ENTIDADES
|
||||||
|
|
||||||
|
### 2.1 vacuna (catalogo)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.vacunas
|
||||||
|
descripcion: "Catalogo de vacunas disponibles"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: tenant_id
|
||||||
|
tipo: UUID
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Null para vacunas globales"
|
||||||
|
|
||||||
|
- nombre: codigo
|
||||||
|
tipo: VARCHAR(20)
|
||||||
|
unique: true
|
||||||
|
descripcion: "Codigo interno"
|
||||||
|
|
||||||
|
- nombre: nombre
|
||||||
|
tipo: VARCHAR(200)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Nombre comercial"
|
||||||
|
|
||||||
|
- nombre: nombre_generico
|
||||||
|
tipo: VARCHAR(200)
|
||||||
|
descripcion: "Nombre generico/principio activo"
|
||||||
|
|
||||||
|
- nombre: fabricante
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
|
||||||
|
- nombre: especies_aplicables
|
||||||
|
tipo: UUID[]
|
||||||
|
descripcion: "Array de IDs de especies"
|
||||||
|
|
||||||
|
- nombre: enfermedades_previene
|
||||||
|
tipo: TEXT[]
|
||||||
|
descripcion: "Enfermedades que previene"
|
||||||
|
|
||||||
|
- nombre: via_administracion
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['subcutanea', 'intramuscular', 'intranasal', 'oral']
|
||||||
|
|
||||||
|
- nombre: dosis_ml
|
||||||
|
tipo: DECIMAL(4,2)
|
||||||
|
descripcion: "Dosis estandar en ml"
|
||||||
|
|
||||||
|
- nombre: requiere_refuerzo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
- nombre: intervalo_refuerzo_dias
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Dias entre aplicaciones"
|
||||||
|
|
||||||
|
- nombre: intervalo_anual_dias
|
||||||
|
tipo: INTEGER
|
||||||
|
default: 365
|
||||||
|
descripcion: "Frecuencia de refuerzo anual"
|
||||||
|
|
||||||
|
- nombre: edad_minima_semanas
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Edad minima para aplicar"
|
||||||
|
|
||||||
|
- nombre: obligatoria
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
descripcion: "Si es obligatoria por ley"
|
||||||
|
|
||||||
|
- nombre: reportar_senasica
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
descripcion: "Si debe reportarse a SENASICA"
|
||||||
|
|
||||||
|
- nombre: precio_sugerido
|
||||||
|
tipo: DECIMAL(10,2)
|
||||||
|
|
||||||
|
- nombre: activo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_vacuna_especies
|
||||||
|
tipo: GIN
|
||||||
|
campos: [especies_aplicables]
|
||||||
|
- nombre: idx_vacuna_senasica
|
||||||
|
campos: [reportar_senasica]
|
||||||
|
where: "reportar_senasica = true"
|
||||||
|
|
||||||
|
seeds:
|
||||||
|
# Caninos
|
||||||
|
- {codigo: 'PARVO', nombre: 'Parvovirus Canino', especies: ['CAN'], obligatoria: false}
|
||||||
|
- {codigo: 'MOQUILLO', nombre: 'Moquillo Canino', especies: ['CAN'], obligatoria: false}
|
||||||
|
- {codigo: 'QUINTUPLE', nombre: 'Quintuple Canina', especies: ['CAN'], obligatoria: false}
|
||||||
|
- {codigo: 'RABIA_CAN', nombre: 'Rabia Canina', especies: ['CAN'], obligatoria: true, reportar_senasica: true}
|
||||||
|
- {codigo: 'BORDETELLA', nombre: 'Bordetella (Tos de Perrera)', especies: ['CAN'], obligatoria: false}
|
||||||
|
|
||||||
|
# Felinos
|
||||||
|
- {codigo: 'TRIPLE_FEL', nombre: 'Triple Felina', especies: ['FEL'], obligatoria: false}
|
||||||
|
- {codigo: 'LEUCEMIA', nombre: 'Leucemia Felina', especies: ['FEL'], obligatoria: false}
|
||||||
|
- {codigo: 'RABIA_FEL', nombre: 'Rabia Felina', especies: ['FEL'], obligatoria: true, reportar_senasica: true}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 esquema_vacunacion
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.esquemas_vacunacion
|
||||||
|
descripcion: "Esquemas de vacunacion por especie/edad"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: especie_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.especies(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: nombre
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Ej: Cachorro, Adulto, Senior"
|
||||||
|
|
||||||
|
- nombre: edad_inicio_semanas
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Edad minima en semanas"
|
||||||
|
|
||||||
|
- nombre: edad_fin_semanas
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Edad maxima en semanas (null = sin limite)"
|
||||||
|
|
||||||
|
- nombre: descripcion
|
||||||
|
tipo: TEXT
|
||||||
|
|
||||||
|
- nombre: activo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: true
|
||||||
|
|
||||||
|
seeds:
|
||||||
|
- {especie: 'CAN', nombre: 'Cachorro (0-16 sem)', edad_inicio: 0, edad_fin: 16}
|
||||||
|
- {especie: 'CAN', nombre: 'Adulto (16+ sem)', edad_inicio: 16, edad_fin: null}
|
||||||
|
- {especie: 'FEL', nombre: 'Gatito (0-16 sem)', edad_inicio: 0, edad_fin: 16}
|
||||||
|
- {especie: 'FEL', nombre: 'Adulto (16+ sem)', edad_inicio: 16, edad_fin: null}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.3 esquema_vacuna_detalle
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.esquema_vacuna_detalle
|
||||||
|
descripcion: "Vacunas incluidas en cada esquema"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: esquema_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.esquemas_vacunacion(id)
|
||||||
|
not_null: true
|
||||||
|
on_delete: CASCADE
|
||||||
|
|
||||||
|
- nombre: vacuna_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.vacunas(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: semana_aplicacion
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Semana de edad para aplicar"
|
||||||
|
|
||||||
|
- nombre: orden
|
||||||
|
tipo: INTEGER
|
||||||
|
descripcion: "Orden de prioridad"
|
||||||
|
|
||||||
|
- nombre: es_refuerzo
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
descripcion: "Si es refuerzo de aplicacion anterior"
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: uk_esquema_vacuna
|
||||||
|
campos: [esquema_id, vacuna_id, semana_aplicacion]
|
||||||
|
unique: true
|
||||||
|
|
||||||
|
seeds_cachorro:
|
||||||
|
# Esquema cachorro canino
|
||||||
|
- {esquema: 'Cachorro', vacuna: 'PARVO', semana: 6, orden: 1}
|
||||||
|
- {esquema: 'Cachorro', vacuna: 'QUINTUPLE', semana: 8, orden: 2}
|
||||||
|
- {esquema: 'Cachorro', vacuna: 'QUINTUPLE', semana: 12, orden: 3, es_refuerzo: true}
|
||||||
|
- {esquema: 'Cachorro', vacuna: 'RABIA_CAN', semana: 16, orden: 4}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4 vacunacion (aplicacion)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.vacunaciones
|
||||||
|
descripcion: "Registro de vacunas aplicadas"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: tenant_id
|
||||||
|
tipo: UUID
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: mascota_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.mascotas(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: vacuna_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.vacunas(id)
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: fecha_aplicacion
|
||||||
|
tipo: DATE
|
||||||
|
not_null: true
|
||||||
|
|
||||||
|
- nombre: fecha_proxima
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Fecha sugerida de proxima aplicacion"
|
||||||
|
|
||||||
|
- nombre: lote
|
||||||
|
tipo: VARCHAR(50)
|
||||||
|
descripcion: "Numero de lote"
|
||||||
|
|
||||||
|
- nombre: fecha_caducidad_lote
|
||||||
|
tipo: DATE
|
||||||
|
descripcion: "Caducidad del lote usado"
|
||||||
|
|
||||||
|
- nombre: fabricante
|
||||||
|
tipo: VARCHAR(100)
|
||||||
|
|
||||||
|
- nombre: veterinario_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: core.usuarios(id)
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Quien aplico"
|
||||||
|
|
||||||
|
- nombre: cedula_veterinario
|
||||||
|
tipo: VARCHAR(20)
|
||||||
|
descripcion: "Cedula profesional (para certificados)"
|
||||||
|
|
||||||
|
- nombre: consulta_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.consultas(id)
|
||||||
|
descripcion: "Consulta donde se aplico (si aplica)"
|
||||||
|
|
||||||
|
- nombre: dosis_aplicada_ml
|
||||||
|
tipo: DECIMAL(4,2)
|
||||||
|
|
||||||
|
- nombre: via_administracion
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['subcutanea', 'intramuscular', 'intranasal', 'oral']
|
||||||
|
|
||||||
|
- nombre: sitio_aplicacion
|
||||||
|
tipo: VARCHAR(50)
|
||||||
|
descripcion: "Ej: muslo derecho, escapula"
|
||||||
|
|
||||||
|
- nombre: reaccion_adversa
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
|
||||||
|
- nombre: descripcion_reaccion
|
||||||
|
tipo: TEXT
|
||||||
|
|
||||||
|
- nombre: costo
|
||||||
|
tipo: DECIMAL(10,2)
|
||||||
|
|
||||||
|
- nombre: certificado_generado
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
|
||||||
|
- nombre: certificado_url
|
||||||
|
tipo: VARCHAR(500)
|
||||||
|
|
||||||
|
- nombre: reportado_senasica
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
|
||||||
|
- nombre: fecha_reporte_senasica
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
|
||||||
|
- nombre: notas
|
||||||
|
tipo: TEXT
|
||||||
|
|
||||||
|
- nombre: created_at
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
default: NOW()
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_vacunacion_mascota
|
||||||
|
campos: [mascota_id]
|
||||||
|
- nombre: idx_vacunacion_fecha
|
||||||
|
campos: [fecha_aplicacion DESC]
|
||||||
|
- nombre: idx_vacunacion_proxima
|
||||||
|
campos: [fecha_proxima]
|
||||||
|
where: "fecha_proxima IS NOT NULL"
|
||||||
|
- nombre: idx_vacunacion_senasica
|
||||||
|
campos: [reportado_senasica, fecha_aplicacion]
|
||||||
|
where: "reportado_senasica = false"
|
||||||
|
|
||||||
|
rls:
|
||||||
|
- policy: "tenant_isolation"
|
||||||
|
using: "tenant_id = current_tenant_id()"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.5 recordatorio_vacuna
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
tabla: veterinaria.recordatorios_vacunas
|
||||||
|
descripcion: "Recordatorios programados"
|
||||||
|
|
||||||
|
campos:
|
||||||
|
- nombre: id
|
||||||
|
tipo: UUID
|
||||||
|
pk: true
|
||||||
|
|
||||||
|
- nombre: vacunacion_id
|
||||||
|
tipo: UUID
|
||||||
|
fk: veterinaria.vacunaciones(id)
|
||||||
|
not_null: true
|
||||||
|
on_delete: CASCADE
|
||||||
|
descripcion: "Vacunacion de referencia"
|
||||||
|
|
||||||
|
- nombre: fecha_recordatorio
|
||||||
|
tipo: DATE
|
||||||
|
not_null: true
|
||||||
|
descripcion: "Fecha para enviar recordatorio"
|
||||||
|
|
||||||
|
- nombre: tipo
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['7_dias_antes', '3_dias_antes', '1_dia_antes', 'dia_programado', 'vencido']
|
||||||
|
|
||||||
|
- nombre: canal
|
||||||
|
tipo: ENUM
|
||||||
|
valores: ['email', 'sms', 'push', 'whatsapp']
|
||||||
|
|
||||||
|
- nombre: enviado
|
||||||
|
tipo: BOOLEAN
|
||||||
|
default: false
|
||||||
|
|
||||||
|
- nombre: fecha_envio
|
||||||
|
tipo: TIMESTAMP
|
||||||
|
|
||||||
|
- nombre: error_envio
|
||||||
|
tipo: TEXT
|
||||||
|
|
||||||
|
indices:
|
||||||
|
- nombre: idx_recordatorio_fecha
|
||||||
|
campos: [fecha_recordatorio]
|
||||||
|
where: "enviado = false"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. ESQUEMAS DE VACUNACION
|
||||||
|
|
||||||
|
### 3.1 Caninos (Perros)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
cachorro_canino:
|
||||||
|
- semana_6:
|
||||||
|
vacuna: "Parvovirus"
|
||||||
|
nota: "Primera vacuna"
|
||||||
|
- semana_8:
|
||||||
|
vacuna: "Quintuple (Parvovirus, Moquillo, Hepatitis, Parainfluenza, Leptospirosis)"
|
||||||
|
nota: "Inicio de esquema completo"
|
||||||
|
- semana_12:
|
||||||
|
vacuna: "Quintuple (Refuerzo)"
|
||||||
|
nota: "Refuerzo obligatorio"
|
||||||
|
- semana_16:
|
||||||
|
vacuna: "Rabia"
|
||||||
|
nota: "Obligatoria por ley"
|
||||||
|
reportar_senasica: true
|
||||||
|
- semana_16:
|
||||||
|
vacuna: "Bordetella (opcional)"
|
||||||
|
nota: "Recomendada para perros en contacto con otros"
|
||||||
|
|
||||||
|
adulto_canino:
|
||||||
|
- anual:
|
||||||
|
vacunas: ["Quintuple", "Rabia"]
|
||||||
|
nota: "Refuerzos anuales"
|
||||||
|
- cada_6_meses:
|
||||||
|
vacuna: "Bordetella (opcional)"
|
||||||
|
nota: "Para perros sociales"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 Felinos (Gatos)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
gatito_felino:
|
||||||
|
- semana_8:
|
||||||
|
vacuna: "Triple Felina (Rinotraqueitis, Calicivirus, Panleucopenia)"
|
||||||
|
nota: "Primera vacuna"
|
||||||
|
- semana_12:
|
||||||
|
vacuna: "Triple Felina (Refuerzo)"
|
||||||
|
nota: "Refuerzo"
|
||||||
|
- semana_12:
|
||||||
|
vacuna: "Leucemia Felina"
|
||||||
|
nota: "Segun riesgo"
|
||||||
|
- semana_16:
|
||||||
|
vacuna: "Rabia"
|
||||||
|
nota: "Obligatoria"
|
||||||
|
reportar_senasica: true
|
||||||
|
|
||||||
|
adulto_felino:
|
||||||
|
- anual:
|
||||||
|
vacunas: ["Triple Felina", "Rabia"]
|
||||||
|
- anual_riesgo:
|
||||||
|
vacuna: "Leucemia Felina"
|
||||||
|
nota: "Solo gatos de exterior o conviviendo con positivos"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. API ENDPOINTS
|
||||||
|
|
||||||
|
### Vacunaciones
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
endpoints:
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/{mascotaId}/vacunaciones
|
||||||
|
descripcion: "Historial de vacunas de una mascota"
|
||||||
|
query:
|
||||||
|
desde: date
|
||||||
|
hasta: date
|
||||||
|
response: Array de vacunaciones con detalles
|
||||||
|
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/mascotas/{mascotaId}/vacunaciones/pendientes
|
||||||
|
descripcion: "Vacunas pendientes segun esquema"
|
||||||
|
response: Array de vacunas sugeridas con fecha
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/mascotas/{mascotaId}/vacunaciones
|
||||||
|
descripcion: "Registrar aplicacion de vacuna"
|
||||||
|
body:
|
||||||
|
vacuna_id: string (requerido)
|
||||||
|
fecha_aplicacion: date (requerido)
|
||||||
|
lote: string
|
||||||
|
fabricante: string
|
||||||
|
via_administracion: string
|
||||||
|
sitio_aplicacion: string
|
||||||
|
dosis_ml: number
|
||||||
|
costo: number
|
||||||
|
notas: string
|
||||||
|
response: Vacunacion registrada + proxima fecha
|
||||||
|
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/vacunaciones/{id}
|
||||||
|
descripcion: "Detalle de una vacunacion"
|
||||||
|
response: Vacunacion completa
|
||||||
|
|
||||||
|
- method: PATCH
|
||||||
|
path: /api/v1/vacunaciones/{id}/reaccion
|
||||||
|
descripcion: "Registrar reaccion adversa"
|
||||||
|
body:
|
||||||
|
reaccion_adversa: boolean
|
||||||
|
descripcion_reaccion: string
|
||||||
|
response: Vacunacion actualizada
|
||||||
|
```
|
||||||
|
|
||||||
|
### Certificados
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/vacunaciones/{id}/certificado
|
||||||
|
descripcion: "Generar certificado PDF"
|
||||||
|
response: PDF file
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/mascotas/{mascotaId}/cartilla
|
||||||
|
descripcion: "Generar cartilla completa PDF"
|
||||||
|
body:
|
||||||
|
incluir_proximas: boolean
|
||||||
|
response: PDF file
|
||||||
|
```
|
||||||
|
|
||||||
|
### Recordatorios
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/recordatorios/pendientes
|
||||||
|
descripcion: "Recordatorios pendientes de envio"
|
||||||
|
query:
|
||||||
|
fecha: date (default: hoy)
|
||||||
|
response: Array de recordatorios
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/recordatorios/enviar
|
||||||
|
descripcion: "Procesar y enviar recordatorios"
|
||||||
|
body:
|
||||||
|
fecha: date
|
||||||
|
response: Resumen de envios
|
||||||
|
```
|
||||||
|
|
||||||
|
### SENASICA
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- method: GET
|
||||||
|
path: /api/v1/senasica/pendientes
|
||||||
|
descripcion: "Vacunas de rabia pendientes de reportar"
|
||||||
|
query:
|
||||||
|
desde: date
|
||||||
|
hasta: date
|
||||||
|
response: Array de vacunaciones
|
||||||
|
|
||||||
|
- method: POST
|
||||||
|
path: /api/v1/senasica/reportar
|
||||||
|
descripcion: "Generar reporte mensual SENASICA"
|
||||||
|
body:
|
||||||
|
mes: number
|
||||||
|
anio: number
|
||||||
|
response: Archivo de reporte + resumen
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. FLUJOS DE USUARIO
|
||||||
|
|
||||||
|
### 5.1 Aplicar Vacuna
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Veterinario abre expediente de mascota
|
||||||
|
2. Ir a seccion "Vacunas"
|
||||||
|
3. Click "Nueva Vacunacion"
|
||||||
|
4. Sistema muestra:
|
||||||
|
- Vacunas sugeridas segun edad/especie
|
||||||
|
- Vacunas vencidas (alertas)
|
||||||
|
5. Seleccionar vacuna del catalogo
|
||||||
|
6. Completar datos:
|
||||||
|
- Lote
|
||||||
|
- Fabricante
|
||||||
|
- Via de administracion
|
||||||
|
- Sitio de aplicacion
|
||||||
|
7. Guardar
|
||||||
|
8. Sistema:
|
||||||
|
- Calcula proxima fecha
|
||||||
|
- Programa recordatorios
|
||||||
|
- Si es rabia, marca para SENASICA
|
||||||
|
9. Ofrecer generar certificado
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 Verificar Esquema
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Abrir expediente de mascota
|
||||||
|
2. Ir a seccion "Vacunas"
|
||||||
|
3. Vista de timeline muestra:
|
||||||
|
- Vacunas aplicadas (verde)
|
||||||
|
- Vacunas pendientes segun esquema (amarillo)
|
||||||
|
- Vacunas vencidas (rojo)
|
||||||
|
4. Click en pendiente para aplicar
|
||||||
|
5. Click en aplicada para ver detalle/certificado
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.3 Procesar Recordatorios Diarios
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Cron job diario (8am)
|
||||||
|
2. Sistema busca recordatorios con fecha = hoy
|
||||||
|
3. Por cada recordatorio:
|
||||||
|
- Obtener datos de mascota y propietario
|
||||||
|
- Preparar mensaje personalizado
|
||||||
|
- Enviar por canal configurado
|
||||||
|
- Marcar como enviado
|
||||||
|
4. Generar log de envios
|
||||||
|
5. Alertar errores a administrador
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.4 Generar Reporte SENASICA
|
||||||
|
|
||||||
|
```
|
||||||
|
1. Admin accede a seccion SENASICA
|
||||||
|
2. Selecciona mes/ano
|
||||||
|
3. Sistema genera reporte con:
|
||||||
|
- Total vacunas de rabia aplicadas
|
||||||
|
- Por especie (canino/felino)
|
||||||
|
- Por municipio
|
||||||
|
- Datos de veterinarios
|
||||||
|
4. Descargar en formato requerido
|
||||||
|
5. Marcar vacunaciones como reportadas
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. CERTIFICADO DE VACUNACION
|
||||||
|
|
||||||
|
### Contenido del Certificado
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
certificado_vacunacion:
|
||||||
|
encabezado:
|
||||||
|
- Logo de clinica
|
||||||
|
- Nombre de clinica
|
||||||
|
- Direccion
|
||||||
|
- Telefono
|
||||||
|
- RFC
|
||||||
|
|
||||||
|
datos_mascota:
|
||||||
|
- Nombre
|
||||||
|
- Especie y raza
|
||||||
|
- Sexo
|
||||||
|
- Edad
|
||||||
|
- Color
|
||||||
|
- Microchip (si tiene)
|
||||||
|
- Foto
|
||||||
|
|
||||||
|
datos_propietario:
|
||||||
|
- Nombre completo
|
||||||
|
- Direccion
|
||||||
|
- Telefono
|
||||||
|
|
||||||
|
datos_vacunacion:
|
||||||
|
- Vacuna aplicada
|
||||||
|
- Fecha de aplicacion
|
||||||
|
- Lote
|
||||||
|
- Fabricante
|
||||||
|
- Fecha de proxima aplicacion
|
||||||
|
- Via y sitio de administracion
|
||||||
|
|
||||||
|
datos_veterinario:
|
||||||
|
- Nombre completo
|
||||||
|
- Cedula profesional
|
||||||
|
- Firma digital
|
||||||
|
|
||||||
|
pie:
|
||||||
|
- Numero de folio
|
||||||
|
- Fecha de emision
|
||||||
|
- QR de verificacion
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. INTEGRACION SENASICA
|
||||||
|
|
||||||
|
### Requerimientos del Reporte
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
reporte_senasica:
|
||||||
|
frecuencia: "Mensual"
|
||||||
|
plazo: "Primeros 5 dias del mes siguiente"
|
||||||
|
|
||||||
|
datos_requeridos:
|
||||||
|
- Numero de vacunas de rabia aplicadas
|
||||||
|
- Desglose por especie (canino/felino)
|
||||||
|
- Municipio de aplicacion
|
||||||
|
- Clave de establecimiento
|
||||||
|
- Datos del MVZ responsable
|
||||||
|
|
||||||
|
formato:
|
||||||
|
- Excel con plantilla oficial
|
||||||
|
- O captura en sistema web SENASICA
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. VALIDACIONES
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
validaciones:
|
||||||
|
- regla: "Vacuna debe ser aplicable a la especie"
|
||||||
|
condicion: vacuna.especies_aplicables NOT CONTAINS mascota.especie_id
|
||||||
|
error: "Esta vacuna no aplica para esta especie"
|
||||||
|
|
||||||
|
- regla: "Edad minima para aplicar"
|
||||||
|
condicion: mascota.edad_semanas < vacuna.edad_minima_semanas
|
||||||
|
error: "La mascota no tiene la edad minima para esta vacuna"
|
||||||
|
|
||||||
|
- regla: "Lote no caducado"
|
||||||
|
condicion: fecha_aplicacion > fecha_caducidad_lote
|
||||||
|
error: "El lote de vacuna esta caducado"
|
||||||
|
|
||||||
|
- regla: "Veterinario con cedula para rabia"
|
||||||
|
condicion: vacuna.reportar_senasica AND NOT veterinario.cedula
|
||||||
|
error: "Se requiere cedula profesional para vacunas de rabia"
|
||||||
|
|
||||||
|
- regla: "No duplicar vacuna en mismo dia"
|
||||||
|
condicion: EXISTS vacunacion con misma vacuna y fecha
|
||||||
|
warning: "Ya existe una aplicacion de esta vacuna en la misma fecha"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. DEPENDENCIAS
|
||||||
|
|
||||||
|
### Depende de
|
||||||
|
- `veterinaria.mascotas` - Paciente a vacunar
|
||||||
|
- `veterinaria.propietarios` - Para recordatorios
|
||||||
|
- `core.usuarios` - Veterinario que aplica
|
||||||
|
- `notificaciones` - Envio de recordatorios
|
||||||
|
|
||||||
|
### Dependientes
|
||||||
|
- `veterinaria.consultas` - Vinculo con consulta
|
||||||
|
- `reportes` - Estadisticas de vacunacion
|
||||||
|
- `facturacion` - Cobro de vacunas
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Documento creado:** 2026-01-07
|
||||||
|
**Autor:** Agente Orquestador Workspace
|
||||||
|
**Version:** 1.0.0
|
||||||
172
docs/_MAP.md
Normal file
172
docs/_MAP.md
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
# Clinica Veterinaria - Mapa de Documentacion
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Tipo:** ERP Especializado (hereda de erp-clinicas)
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
**Estado:** Fase 0 - Preparacion
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Estructura de Documentacion
|
||||||
|
|
||||||
|
```
|
||||||
|
docs/
|
||||||
|
├── _MAP.md <- ESTE ARCHIVO
|
||||||
|
├── 00-vision-general/
|
||||||
|
│ ├── README.md <- Indice de vision
|
||||||
|
│ └── VISION.md <- Vision estrategica [PENDIENTE]
|
||||||
|
│
|
||||||
|
├── 02-definicion-modulos/
|
||||||
|
│ ├── _MAP.md <- Indice de modulos [PENDIENTE]
|
||||||
|
│ ├── modulo-mascotas.md <- Registro de pacientes [PENDIENTE]
|
||||||
|
│ ├── modulo-propietarios.md <- Duenos de mascotas [PENDIENTE]
|
||||||
|
│ ├── modulo-vacunacion.md <- Cartilla de vacunas [PENDIENTE]
|
||||||
|
│ ├── modulo-hospitalizacion.md <- Internamiento [PENDIENTE]
|
||||||
|
│ ├── modulo-farmacia.md <- Medicamentos [PENDIENTE]
|
||||||
|
│ ├── modulo-estetica.md <- Grooming [PENDIENTE]
|
||||||
|
│ ├── modulo-laboratorio.md <- Analisis clinicos [PENDIENTE]
|
||||||
|
│ └── modulo-cirugia.md <- Procedimientos [PENDIENTE]
|
||||||
|
│
|
||||||
|
├── 03-especificaciones/
|
||||||
|
│ └── ... (futuras especificaciones tecnicas)
|
||||||
|
│
|
||||||
|
└── 90-transversal/
|
||||||
|
└── ... (documentacion transversal)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modulos Especializados (Veterinaria)
|
||||||
|
|
||||||
|
### Modulos Core
|
||||||
|
|
||||||
|
| Modulo | Prioridad | Estado | Descripcion |
|
||||||
|
|--------|-----------|--------|-------------|
|
||||||
|
| Mascotas | P1 | Pendiente | Registro de pacientes animales |
|
||||||
|
| Propietarios | P1 | Pendiente | Gestion de duenos |
|
||||||
|
| Vacunacion | P1 | Pendiente | Cartilla de vacunas por especie |
|
||||||
|
| Consultas | P1 | Pendiente | Atencion veterinaria |
|
||||||
|
|
||||||
|
### Modulos Especializados
|
||||||
|
|
||||||
|
| Modulo | Prioridad | Estado | Descripcion |
|
||||||
|
|--------|-----------|--------|-------------|
|
||||||
|
| Hospitalizacion | P2 | Pendiente | Internamiento y seguimiento |
|
||||||
|
| Farmacia | P2 | Pendiente | Medicamentos veterinarios |
|
||||||
|
| Estetica | P2 | Pendiente | Grooming, bano, corte |
|
||||||
|
| Laboratorio | P2 | Pendiente | Analisis clinicos |
|
||||||
|
| Cirugia | P2 | Pendiente | Procedimientos quirurgicos |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Modulos Heredados (de erp-clinicas)
|
||||||
|
|
||||||
|
| Modulo | Fuente | Adaptacion Requerida |
|
||||||
|
|--------|--------|----------------------|
|
||||||
|
| Expedientes | erp-clinicas | Adaptar a mascotas |
|
||||||
|
| Citas | erp-clinicas | Ninguna |
|
||||||
|
| Consultas | erp-clinicas | Agregar signos vitales animales |
|
||||||
|
| Recetas | erp-clinicas | Medicamentos veterinarios |
|
||||||
|
| Facturacion | erp-core | Ninguna |
|
||||||
|
| Inventario | erp-core | Productos veterinarios |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Especies Soportadas
|
||||||
|
|
||||||
|
### Principales
|
||||||
|
|
||||||
|
| Especie | Vacunas Requeridas |
|
||||||
|
|---------|-------------------|
|
||||||
|
| Canino (Perro) | Parvovirus, Moquillo, Hepatitis, Rabia, Leptospirosis, Bordetella |
|
||||||
|
| Felino (Gato) | Triple felina, Leucemia felina, Rabia |
|
||||||
|
|
||||||
|
### Otras Especies
|
||||||
|
|
||||||
|
| Especie | Notas |
|
||||||
|
|---------|-------|
|
||||||
|
| Ave | Vacunas segun tipo |
|
||||||
|
| Reptil | Sin vacunas estandar |
|
||||||
|
| Roedor | Sin vacunas estandar |
|
||||||
|
| Pez | Sin vacunas |
|
||||||
|
| Exotico | Segun especie especifica |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Entidades Especificas
|
||||||
|
|
||||||
|
### Mascota (Paciente)
|
||||||
|
```yaml
|
||||||
|
campos_principales:
|
||||||
|
- nombre: VARCHAR(100)
|
||||||
|
- especie: ENUM (canino, felino, ave, reptil, roedor, pez, exotico)
|
||||||
|
- raza: VARCHAR(100)
|
||||||
|
- sexo: ENUM (macho, hembra)
|
||||||
|
- fecha_nacimiento: DATE
|
||||||
|
- peso_actual: DECIMAL(6,2)
|
||||||
|
- color: VARCHAR(100)
|
||||||
|
- microchip: VARCHAR(50) UNIQUE
|
||||||
|
- esterilizado: BOOLEAN
|
||||||
|
- propietario_id: UUID (FK)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Propietario
|
||||||
|
```yaml
|
||||||
|
campos_principales:
|
||||||
|
- nombre: VARCHAR(200)
|
||||||
|
- telefono: VARCHAR(20)
|
||||||
|
- email: VARCHAR(255)
|
||||||
|
- direccion: TEXT
|
||||||
|
- rfc: VARCHAR(13)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cartilla Vacunacion
|
||||||
|
```yaml
|
||||||
|
campos_principales:
|
||||||
|
- mascota_id: UUID (FK)
|
||||||
|
- vacuna_id: UUID (FK catalogo)
|
||||||
|
- fecha_aplicacion: DATE
|
||||||
|
- fecha_proxima: DATE
|
||||||
|
- lote: VARCHAR(50)
|
||||||
|
- veterinario_id: UUID (FK)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Integraciones Externas
|
||||||
|
|
||||||
|
| Sistema | Proposito | Estado |
|
||||||
|
|---------|-----------|--------|
|
||||||
|
| SENASICA | Reportes de vacunacion | Pendiente |
|
||||||
|
| Laboratorios | Resultados de analisis | Pendiente |
|
||||||
|
| Proveedores | Pedidos de medicamentos | Pendiente |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Navegacion Rapida
|
||||||
|
|
||||||
|
### Por Rol de Usuario
|
||||||
|
- **Veterinario:** Consultas, diagnosticos, prescripciones
|
||||||
|
- **Auxiliar veterinario:** Apoyo en consultas, hospitalizacion
|
||||||
|
- **Recepcionista:** Citas, cobros, atencion al propietario
|
||||||
|
- **Estilista:** Servicios de estetica (grooming)
|
||||||
|
- **Administrador:** Gestion general, reportes
|
||||||
|
|
||||||
|
### Por Componente Tecnico
|
||||||
|
- **Database:** Ver orchestration/inventarios/DATABASE_INVENTORY.yml
|
||||||
|
- **Backend:** Ver orchestration/inventarios/BACKEND_INVENTORY.yml
|
||||||
|
- **Frontend:** Ver orchestration/inventarios/FRONTEND_INVENTORY.yml
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Referencias
|
||||||
|
|
||||||
|
- [CONTEXTO-PROYECTO.md](../orchestration/00-guidelines/CONTEXTO-PROYECTO.md)
|
||||||
|
- [HERENCIA-ERP-CLINICAS.md](../orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md)
|
||||||
|
- [PROXIMA-ACCION.md](../orchestration/PROXIMA-ACCION.md)
|
||||||
|
- [CONTEXT-MAP.yml](../orchestration/CONTEXT-MAP.yml)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Ultima actualizacion:** 2026-01-07
|
||||||
|
**Version:** 1.0.0
|
||||||
322
orchestration/CONTEXT-MAP.yml
Normal file
322
orchestration/CONTEXT-MAP.yml
Normal file
@ -0,0 +1,322 @@
|
|||||||
|
# CONTEXT-MAP: CLINICA-VETERINARIA
|
||||||
|
# Sistema: SIMCO - NEXUS v4.0
|
||||||
|
# Proposito: Mapear contexto automatico por nivel y tarea
|
||||||
|
# Version: 1.0.0
|
||||||
|
# Fecha: 2026-01-07
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
proyecto: "clinica-veterinaria"
|
||||||
|
nivel: "VERTICAL"
|
||||||
|
version: "1.0.0"
|
||||||
|
ultima_actualizacion: "2026-01-07"
|
||||||
|
workspace_root: "/home/isem/workspace-v1"
|
||||||
|
project_root: "/home/isem/workspace-v1/projects/clinica-veterinaria"
|
||||||
|
hereda_de: "/home/isem/workspace-v1/projects/erp-clinicas"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# VARIABLES DEL PROYECTO (PRE-RESUELTAS)
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
variables:
|
||||||
|
# Identificacion
|
||||||
|
PROJECT: "clinica-veterinaria"
|
||||||
|
PROJECT_NAME: "CLINICA-VETERINARIA"
|
||||||
|
PROJECT_LEVEL: "VERTICAL"
|
||||||
|
PARENT_PROJECT: "erp-clinicas"
|
||||||
|
|
||||||
|
# Base de datos
|
||||||
|
DB_NAME: "clinica_veterinaria"
|
||||||
|
DB_DDL_PATH: "/home/isem/workspace-v1/projects/clinica-veterinaria/database/schemas"
|
||||||
|
DB_SCRIPTS_PATH: "/home/isem/workspace-v1/projects/clinica-veterinaria/database"
|
||||||
|
DB_SEEDS_PATH: "/home/isem/workspace-v1/projects/clinica-veterinaria/database/seeds"
|
||||||
|
RECREATE_CMD: "drop-and-recreate-database.sh"
|
||||||
|
|
||||||
|
# Backend
|
||||||
|
BACKEND_ROOT: "/home/isem/workspace-v1/projects/clinica-veterinaria/backend"
|
||||||
|
BACKEND_SRC: "/home/isem/workspace-v1/projects/clinica-veterinaria/backend/src"
|
||||||
|
BACKEND_TESTS: "/home/isem/workspace-v1/projects/clinica-veterinaria/backend/tests"
|
||||||
|
|
||||||
|
# Frontend
|
||||||
|
FRONTEND_ROOT: "/home/isem/workspace-v1/projects/clinica-veterinaria/frontend"
|
||||||
|
FRONTEND_SRC: "/home/isem/workspace-v1/projects/clinica-veterinaria/frontend/src"
|
||||||
|
|
||||||
|
# Documentacion
|
||||||
|
DOCS_PATH: "/home/isem/workspace-v1/projects/clinica-veterinaria/docs"
|
||||||
|
ORCHESTRATION_PATH: "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# ALIASES RESUELTOS
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
aliases:
|
||||||
|
# Directivas globales
|
||||||
|
"@SIMCO": "/home/isem/workspace-v1/orchestration/directivas/simco"
|
||||||
|
"@PRINCIPIOS": "/home/isem/workspace-v1/orchestration/directivas/principios"
|
||||||
|
"@PERFILES": "/home/isem/workspace-v1/orchestration/agents/perfiles"
|
||||||
|
"@CATALOG": "/home/isem/workspace-v1/shared/catalog"
|
||||||
|
|
||||||
|
# Proyecto padre (erp-clinicas)
|
||||||
|
"@PARENT": "/home/isem/workspace-v1/projects/erp-clinicas"
|
||||||
|
"@PARENT_CORE": "/home/isem/workspace-v1/projects/erp-core"
|
||||||
|
|
||||||
|
# Proyecto especifico
|
||||||
|
"@DDL": "/home/isem/workspace-v1/projects/clinica-veterinaria/database/schemas"
|
||||||
|
"@SEEDS": "/home/isem/workspace-v1/projects/clinica-veterinaria/database/seeds"
|
||||||
|
"@BACKEND": "/home/isem/workspace-v1/projects/clinica-veterinaria/backend/src"
|
||||||
|
"@FRONTEND": "/home/isem/workspace-v1/projects/clinica-veterinaria/frontend/src"
|
||||||
|
"@DOCS": "/home/isem/workspace-v1/projects/clinica-veterinaria/docs"
|
||||||
|
|
||||||
|
# Inventarios
|
||||||
|
"@INVENTORY": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios"
|
||||||
|
"@INV_DB": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/DATABASE_INVENTORY.yml"
|
||||||
|
"@INV_BE": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/BACKEND_INVENTORY.yml"
|
||||||
|
"@INV_FE": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
||||||
|
|
||||||
|
# Trazas
|
||||||
|
"@TRAZA_DB": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/trazas/TRAZA-TAREAS-DATABASE.md"
|
||||||
|
"@TRAZA_BE": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/trazas/TRAZA-TAREAS-BACKEND.md"
|
||||||
|
"@TRAZA_FE": "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# CONTEXTO POR NIVEL
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
contexto_por_nivel:
|
||||||
|
L0_sistema:
|
||||||
|
descripcion: "Principios fundamentales y perfil de agente"
|
||||||
|
tokens_estimados: 4500
|
||||||
|
obligatorio: true
|
||||||
|
archivos:
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-CAPVED.md"
|
||||||
|
proposito: "Ciclo de vida de tareas"
|
||||||
|
tokens: 800
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md"
|
||||||
|
proposito: "Documentacion antes de codigo"
|
||||||
|
tokens: 500
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md"
|
||||||
|
proposito: "Verificar catalogo antes de crear"
|
||||||
|
tokens: 600
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md"
|
||||||
|
proposito: "Build/lint deben pasar"
|
||||||
|
tokens: 600
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md"
|
||||||
|
proposito: "Limites de contexto"
|
||||||
|
tokens: 500
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-NO-ASUMIR.md"
|
||||||
|
proposito: "Preguntar si falta informacion"
|
||||||
|
tokens: 500
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/referencias/ALIASES.yml"
|
||||||
|
proposito: "Resolucion de @ALIAS"
|
||||||
|
tokens: 400
|
||||||
|
|
||||||
|
L1_proyecto:
|
||||||
|
descripcion: "Contexto especifico de CLINICA-VETERINARIA"
|
||||||
|
tokens_estimados: 3000
|
||||||
|
obligatorio: true
|
||||||
|
archivos:
|
||||||
|
- path: "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/00-guidelines/CONTEXTO-PROYECTO.md"
|
||||||
|
proposito: "Variables y configuracion del proyecto"
|
||||||
|
tokens: 1500
|
||||||
|
- path: "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/PROXIMA-ACCION.md"
|
||||||
|
proposito: "Estado actual y siguiente paso"
|
||||||
|
tokens: 500
|
||||||
|
- path: "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md"
|
||||||
|
proposito: "Herencia de modulos del padre"
|
||||||
|
tokens: 800
|
||||||
|
|
||||||
|
L2_operacion:
|
||||||
|
descripcion: "SIMCO especificos segun operacion y dominio"
|
||||||
|
tokens_estimados: 2500
|
||||||
|
archivos_por_operacion:
|
||||||
|
CREAR:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-CREAR.md"
|
||||||
|
MODIFICAR:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-MODIFICAR.md"
|
||||||
|
VALIDAR:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-VALIDAR.md"
|
||||||
|
DELEGAR:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-DELEGACION.md"
|
||||||
|
archivos_por_dominio:
|
||||||
|
DDL:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-DDL.md"
|
||||||
|
- "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/DATABASE_INVENTORY.yml"
|
||||||
|
BACKEND:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-BACKEND.md"
|
||||||
|
- "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/BACKEND_INVENTORY.yml"
|
||||||
|
FRONTEND:
|
||||||
|
- "/home/isem/workspace-v1/orchestration/directivas/simco/SIMCO-FRONTEND.md"
|
||||||
|
- "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/inventarios/FRONTEND_INVENTORY.yml"
|
||||||
|
|
||||||
|
L3_tarea:
|
||||||
|
descripcion: "Contexto especifico de la tarea"
|
||||||
|
tokens_max: 8000
|
||||||
|
dinamico: true
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# INTEGRACION CON DOCUMENTACION (docs/)
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
integracion_docs:
|
||||||
|
mapa_docs: "@DOCS/_MAP.md"
|
||||||
|
|
||||||
|
estructura:
|
||||||
|
vision: "@DOCS/00-vision-general/"
|
||||||
|
modulos: "@DOCS/02-definicion-modulos/"
|
||||||
|
|
||||||
|
modulos_especializados:
|
||||||
|
- modulo_mascotas:
|
||||||
|
descripcion: "Registro de pacientes animales"
|
||||||
|
ruta: "@DOCS/02-definicion-modulos/modulo-mascotas.md"
|
||||||
|
- modulo_propietarios:
|
||||||
|
descripcion: "Gestion de duenos de mascotas"
|
||||||
|
ruta: "@DOCS/02-definicion-modulos/modulo-propietarios.md"
|
||||||
|
- modulo_vacunacion:
|
||||||
|
descripcion: "Cartilla de vacunas y desparasitacion"
|
||||||
|
ruta: "@DOCS/02-definicion-modulos/modulo-vacunacion.md"
|
||||||
|
- modulo_hospitalizacion:
|
||||||
|
descripcion: "Internamiento y seguimiento"
|
||||||
|
ruta: "@DOCS/02-definicion-modulos/modulo-hospitalizacion.md"
|
||||||
|
- modulo_farmacia:
|
||||||
|
descripcion: "Inventario de medicamentos veterinarios"
|
||||||
|
ruta: "@DOCS/02-definicion-modulos/modulo-farmacia.md"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# MAPA TAREA -> ARCHIVOS (Especifico CLINICA-VETERINARIA)
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
mapa_tarea_contexto:
|
||||||
|
database:
|
||||||
|
crear_tabla:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-DDL.md"]
|
||||||
|
inventario: "@INV_DB"
|
||||||
|
referencia: "@DDL/*.sql"
|
||||||
|
docs: "@DOCS/02-definicion-modulos/"
|
||||||
|
|
||||||
|
crear_mascota:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-DDL.md"]
|
||||||
|
inventario: "@INV_DB"
|
||||||
|
referencia: "@DDL/01-veterinaria-schema-ddl.sql"
|
||||||
|
|
||||||
|
backend:
|
||||||
|
crear_entity:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||||
|
inventario: "@INV_BE"
|
||||||
|
referencia: "@BACKEND/modules/*/entities/*.entity.ts"
|
||||||
|
|
||||||
|
crear_service:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||||
|
inventario: "@INV_BE"
|
||||||
|
referencia: "@BACKEND/modules/*/services/*.service.ts"
|
||||||
|
|
||||||
|
crear_controller:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-BACKEND.md"]
|
||||||
|
inventario: "@INV_BE"
|
||||||
|
referencia: "@BACKEND/modules/*/controllers/*.controller.ts"
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
crear_componente:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-FRONTEND.md"]
|
||||||
|
inventario: "@INV_FE"
|
||||||
|
referencia: "@FRONTEND/components/**/*.tsx"
|
||||||
|
|
||||||
|
crear_pagina:
|
||||||
|
simco: ["SIMCO-CREAR.md", "SIMCO-FRONTEND.md"]
|
||||||
|
inventario: "@INV_FE"
|
||||||
|
referencia: "@FRONTEND/pages/**/*.tsx"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# INFORMACION ESPECIFICA DEL PROYECTO
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
info_proyecto:
|
||||||
|
tipo: "ERP Especializado - Clinica Veterinaria"
|
||||||
|
estado: "Fase 0 - Preparacion"
|
||||||
|
version: "0.1.0"
|
||||||
|
|
||||||
|
stack:
|
||||||
|
backend: "NestJS (hereda de erp-clinicas)"
|
||||||
|
frontend: "React + TailwindCSS"
|
||||||
|
database: "PostgreSQL 16+ con RLS"
|
||||||
|
|
||||||
|
entidades_especializadas:
|
||||||
|
- mascotas
|
||||||
|
- propietarios
|
||||||
|
- cartilla_vacunacion
|
||||||
|
- hospitalizaciones
|
||||||
|
- estetica_canina
|
||||||
|
- farmacia_veterinaria
|
||||||
|
|
||||||
|
modulos_heredados:
|
||||||
|
- expedientes (de erp-clinicas, adaptado a mascotas)
|
||||||
|
- citas (de erp-clinicas)
|
||||||
|
- consultas (de erp-clinicas)
|
||||||
|
- recetas (de erp-clinicas)
|
||||||
|
- facturacion (de erp-core)
|
||||||
|
- inventario (de erp-core)
|
||||||
|
|
||||||
|
especies_soportadas:
|
||||||
|
- canino (perro)
|
||||||
|
- felino (gato)
|
||||||
|
- ave
|
||||||
|
- reptil
|
||||||
|
- roedor
|
||||||
|
- pez
|
||||||
|
- exotico
|
||||||
|
|
||||||
|
vacunas_por_especie:
|
||||||
|
canino:
|
||||||
|
- parvovirus
|
||||||
|
- moquillo
|
||||||
|
- hepatitis
|
||||||
|
- rabia
|
||||||
|
- leptospirosis
|
||||||
|
- bordetella
|
||||||
|
felino:
|
||||||
|
- triple_felina
|
||||||
|
- leucemia_felina
|
||||||
|
- rabia
|
||||||
|
|
||||||
|
integraciones:
|
||||||
|
- SENASICA (reportes de vacunacion)
|
||||||
|
- laboratorios (resultados)
|
||||||
|
- proveedores (medicamentos)
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# VALIDACION DE TOKENS
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
validacion_tokens:
|
||||||
|
limite_absoluto: 25000
|
||||||
|
limite_seguro: 18000
|
||||||
|
limite_alerta: 20000
|
||||||
|
|
||||||
|
presupuesto:
|
||||||
|
L0_sistema: 4500
|
||||||
|
L1_proyecto: 3000
|
||||||
|
L2_operacion: 2500
|
||||||
|
L3_tarea_max: 8000
|
||||||
|
total_base: 10000
|
||||||
|
disponible_tarea: 8000
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# HERENCIA
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
herencia:
|
||||||
|
tipo: "VERTICAL"
|
||||||
|
hereda_de:
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-clinicas/"
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-core/"
|
||||||
|
- "/home/isem/workspace-v1/orchestration/"
|
||||||
|
|
||||||
|
# ===============================================================================
|
||||||
|
# BUSQUEDA DE HISTORICO
|
||||||
|
# ===============================================================================
|
||||||
|
|
||||||
|
busqueda_historico:
|
||||||
|
habilitado: true
|
||||||
|
ubicaciones:
|
||||||
|
- "/home/isem/workspace-v1/projects/clinica-veterinaria/orchestration/trazas/"
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-clinicas/orchestration/trazas/"
|
||||||
|
- "/home/isem/workspace-v1/orchestration/errores/REGISTRO-ERRORES.yml"
|
||||||
|
- "/home/isem/workspace-v1/shared/knowledge-base/lessons-learned/"
|
||||||
244
orchestration/PROXIMA-ACCION.md
Normal file
244
orchestration/PROXIMA-ACCION.md
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
# PROXIMA ACCION - Clinica Veterinaria
|
||||||
|
|
||||||
|
**Proyecto:** clinica-veterinaria
|
||||||
|
**Estado:** Fase 0 - Preparacion
|
||||||
|
**Fecha:** 2026-01-07
|
||||||
|
**Hereda de:** erp-clinicas > erp-core
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## RESUMEN DEL ESTADO ACTUAL
|
||||||
|
|
||||||
|
### Estructura Base: CREADA
|
||||||
|
|
||||||
|
| Artefacto | Estado | Ubicacion |
|
||||||
|
|-----------|--------|-----------|
|
||||||
|
| README.md | EXISTE | raiz |
|
||||||
|
| CONTEXTO-PROYECTO.md | EXISTE | orchestration/00-guidelines/ |
|
||||||
|
| HERENCIA-ERP-CLINICAS.md | EXISTE | orchestration/00-guidelines/ |
|
||||||
|
| ENVIRONMENT-INVENTORY.yml | EXISTE | orchestration/environment/ |
|
||||||
|
| MASTER_INVENTORY.yml | EXISTE | orchestration/inventarios/ |
|
||||||
|
| PROJECT-STATUS.md | FALTA | orchestration/ |
|
||||||
|
| CONTEXT-MAP.yml | CREADO | orchestration/ |
|
||||||
|
| PROXIMA-ACCION.md | CREADO | orchestration/ |
|
||||||
|
|
||||||
|
### Documentacion: MINIMA
|
||||||
|
|
||||||
|
| Artefacto | Estado | Prioridad |
|
||||||
|
|-----------|--------|-----------|
|
||||||
|
| docs/00-vision-general/VISION.md | FALTA | P0 |
|
||||||
|
| docs/00-vision-general/_MAP.md | FALTA | P1 |
|
||||||
|
| docs/02-definicion-modulos/_MAP.md | FALTA | P0 |
|
||||||
|
| modulo-mascotas.md | FALTA | P1 |
|
||||||
|
| modulo-propietarios.md | FALTA | P1 |
|
||||||
|
| modulo-vacunacion.md | FALTA | P1 |
|
||||||
|
| modulo-hospitalizacion.md | FALTA | P2 |
|
||||||
|
| modulo-farmacia.md | FALTA | P2 |
|
||||||
|
| orchestration/_MAP.md | FALTA | P1 |
|
||||||
|
| PROJECT-STATUS.md | FALTA | P1 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PROXIMA ACCION INMEDIATA
|
||||||
|
|
||||||
|
### Tarea: Crear docs/00-vision-general/VISION.md
|
||||||
|
|
||||||
|
**Prioridad:** P0
|
||||||
|
**Estimacion:** 2-3 horas
|
||||||
|
**Responsable:** Agente Requirements Analyst
|
||||||
|
|
||||||
|
**Descripcion:**
|
||||||
|
Documentar la vision estrategica del proyecto de clinica veterinaria, incluyendo:
|
||||||
|
- Propuesta de valor
|
||||||
|
- Target market
|
||||||
|
- Diferenciadores vs erp-clinicas base
|
||||||
|
- Roadmap de funcionalidades veterinarias especificas
|
||||||
|
|
||||||
|
**Contenido esperado:**
|
||||||
|
```markdown
|
||||||
|
# Vision - Clinica Veterinaria
|
||||||
|
|
||||||
|
## 1. Proposito
|
||||||
|
Sistema de gestion integral para clinicas veterinarias...
|
||||||
|
|
||||||
|
## 2. Propuesta de Valor
|
||||||
|
- Gestion de mascotas por especie
|
||||||
|
- Cartilla de vacunacion digital
|
||||||
|
- Control de hospitalizacion
|
||||||
|
- Farmacia veterinaria
|
||||||
|
- Estetica canina/felina
|
||||||
|
|
||||||
|
## 3. Usuarios Objetivo
|
||||||
|
- Veterinarios
|
||||||
|
- Auxiliares veterinarios
|
||||||
|
- Recepcionistas
|
||||||
|
- Estilistas (grooming)
|
||||||
|
- Administradores
|
||||||
|
|
||||||
|
## 4. Diferenciadores
|
||||||
|
- Soporte multi-especie
|
||||||
|
- Integracion SENASICA
|
||||||
|
- Control de vacunacion por especie
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## BACKLOG DE TAREAS
|
||||||
|
|
||||||
|
### Sprint 1: Vision y Navegacion (7h)
|
||||||
|
|
||||||
|
| # | Tarea | Prioridad | Horas |
|
||||||
|
|---|-------|-----------|-------|
|
||||||
|
| 1 | Crear VISION.md | P0 | 2-3 |
|
||||||
|
| 2 | Crear PROJECT-STATUS.md | P1 | 1 |
|
||||||
|
| 3 | Crear docs/00-vision-general/_MAP.md | P1 | 1 |
|
||||||
|
| 4 | Crear docs/02-definicion-modulos/_MAP.md | P0 | 1-2 |
|
||||||
|
| 5 | Crear orchestration/_MAP.md | P1 | 1 |
|
||||||
|
|
||||||
|
### Sprint 2: Modulos Core (9h)
|
||||||
|
|
||||||
|
| # | Tarea | Prioridad | Horas |
|
||||||
|
|---|-------|-----------|-------|
|
||||||
|
| 1 | modulo-mascotas.md | P1 | 2-3 |
|
||||||
|
| 2 | modulo-propietarios.md | P1 | 1.5-2 |
|
||||||
|
| 3 | modulo-vacunacion.md | P1 | 2-2.5 |
|
||||||
|
| 4 | modulo-consultas.md | P1 | 1.5-2 |
|
||||||
|
|
||||||
|
### Sprint 3: Modulos Especializados (8h)
|
||||||
|
|
||||||
|
| # | Tarea | Prioridad | Horas |
|
||||||
|
|---|-------|-----------|-------|
|
||||||
|
| 1 | modulo-hospitalizacion.md | P2 | 1.5-2 |
|
||||||
|
| 2 | modulo-farmacia.md | P2 | 2.5-3 |
|
||||||
|
| 3 | modulo-estetica.md | P2 | 1-1.5 |
|
||||||
|
| 4 | modulo-laboratorio.md | P2 | 1.5-2 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## DEPENDENCIAS
|
||||||
|
|
||||||
|
### De erp-clinicas (heredados):
|
||||||
|
- Modulo Expedientes (adaptado a mascotas)
|
||||||
|
- Modulo Citas
|
||||||
|
- Modulo Consultas
|
||||||
|
- Modulo Recetas
|
||||||
|
|
||||||
|
### De erp-core (heredados):
|
||||||
|
- Modulo Autenticacion
|
||||||
|
- Modulo Usuarios
|
||||||
|
- Modulo Facturacion
|
||||||
|
- Modulo Inventario
|
||||||
|
- Modulo Catalogs
|
||||||
|
|
||||||
|
### Especificos Veterinaria:
|
||||||
|
- Mascotas (nuevo)
|
||||||
|
- Propietarios (nuevo)
|
||||||
|
- Cartilla Vacunacion (nuevo)
|
||||||
|
- Hospitalizacion (nuevo)
|
||||||
|
- Farmacia Veterinaria (nuevo)
|
||||||
|
- Estetica (nuevo)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ENTIDADES ESPECIALIZADAS
|
||||||
|
|
||||||
|
### Mascota (Paciente)
|
||||||
|
```yaml
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- nombre: VARCHAR(100)
|
||||||
|
- especie_id: UUID (FK especies)
|
||||||
|
- raza_id: UUID (FK razas)
|
||||||
|
- sexo: ENUM (macho, hembra)
|
||||||
|
- fecha_nacimiento: DATE
|
||||||
|
- peso_actual: DECIMAL(6,2)
|
||||||
|
- color: VARCHAR(100)
|
||||||
|
- microchip: VARCHAR(50) UNIQUE
|
||||||
|
- esterilizado: BOOLEAN
|
||||||
|
- propietario_id: UUID (FK propietarios)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Propietario
|
||||||
|
```yaml
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- nombre: VARCHAR(200)
|
||||||
|
- telefono: VARCHAR(20)
|
||||||
|
- email: VARCHAR(255)
|
||||||
|
- direccion: TEXT
|
||||||
|
- rfc: VARCHAR(13)
|
||||||
|
- mascotas: FK[]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cartilla Vacunacion
|
||||||
|
```yaml
|
||||||
|
campos:
|
||||||
|
- id: UUID
|
||||||
|
- mascota_id: UUID (FK)
|
||||||
|
- vacuna_id: UUID (FK catalogo)
|
||||||
|
- fecha_aplicacion: DATE
|
||||||
|
- fecha_proxima: DATE
|
||||||
|
- lote: VARCHAR(50)
|
||||||
|
- veterinario_id: UUID (FK)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ESPECIES SOPORTADAS
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
especies:
|
||||||
|
- canino:
|
||||||
|
vacunas: [parvovirus, moquillo, hepatitis, rabia, leptospirosis, bordetella]
|
||||||
|
- felino:
|
||||||
|
vacunas: [triple_felina, leucemia_felina, rabia]
|
||||||
|
- ave:
|
||||||
|
vacunas: [paramixovirus, viruela_aviar]
|
||||||
|
- reptil:
|
||||||
|
vacunas: []
|
||||||
|
- roedor:
|
||||||
|
vacunas: []
|
||||||
|
- pez:
|
||||||
|
vacunas: []
|
||||||
|
- exotico:
|
||||||
|
vacunas: [segun_especie]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## INTEGRACIONES
|
||||||
|
|
||||||
|
| Sistema | Proposito | Estado |
|
||||||
|
|---------|-----------|--------|
|
||||||
|
| SENASICA | Reportes de vacunacion | Pendiente |
|
||||||
|
| Laboratorios | Resultados de analisis | Pendiente |
|
||||||
|
| Proveedores | Pedidos de medicamentos | Pendiente |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## METRICAS DE PROGRESO
|
||||||
|
|
||||||
|
| Metrica | Valor Actual | Objetivo |
|
||||||
|
|---------|--------------|----------|
|
||||||
|
| Archivos SIMCO | 8 | 22+ |
|
||||||
|
| Modulos documentados | 0 | 9 |
|
||||||
|
| User Stories | 0 | 30+ |
|
||||||
|
| Cobertura docs | ~25% | 100% |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## NOTAS
|
||||||
|
|
||||||
|
- Hereda base completa de erp-clinicas
|
||||||
|
- Especializar en medicina veterinaria
|
||||||
|
- Mascotas reemplazan a Pacientes humanos
|
||||||
|
- Propietarios son los responsables
|
||||||
|
- Vacunacion varia segun especie
|
||||||
|
- Considerar integracion SENASICA
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Ultima actualizacion:** 2026-01-07
|
||||||
|
**Autor:** Agente Orquestador Workspace
|
||||||
|
**Version:** 1.0.0
|
||||||
Loading…
Reference in New Issue
Block a user