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:
rckrdmrd 2026-01-07 05:40:58 -06:00
parent 6e195553d2
commit 2b5c1d7e3f
7 changed files with 2764 additions and 0 deletions

View 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

View 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

View 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

View 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
View 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

View 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/"

View 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