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