diff --git a/docs/00-vision-general/VISION.md b/docs/00-vision-general/VISION.md new file mode 100644 index 0000000..bf9cf76 --- /dev/null +++ b/docs/00-vision-general/VISION.md @@ -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 diff --git a/docs/02-definicion-modulos/_MAP.md b/docs/02-definicion-modulos/_MAP.md new file mode 100644 index 0000000..7d0d459 --- /dev/null +++ b/docs/02-definicion-modulos/_MAP.md @@ -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 diff --git a/docs/02-definicion-modulos/modulo-mascotas.md b/docs/02-definicion-modulos/modulo-mascotas.md new file mode 100644 index 0000000..6c362b3 --- /dev/null +++ b/docs/02-definicion-modulos/modulo-mascotas.md @@ -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 + + - 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 diff --git a/docs/02-definicion-modulos/modulo-vacunacion.md b/docs/02-definicion-modulos/modulo-vacunacion.md new file mode 100644 index 0000000..6cfc670 --- /dev/null +++ b/docs/02-definicion-modulos/modulo-vacunacion.md @@ -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 diff --git a/docs/_MAP.md b/docs/_MAP.md new file mode 100644 index 0000000..73e3f8a --- /dev/null +++ b/docs/_MAP.md @@ -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 diff --git a/orchestration/CONTEXT-MAP.yml b/orchestration/CONTEXT-MAP.yml new file mode 100644 index 0000000..1f8c535 --- /dev/null +++ b/orchestration/CONTEXT-MAP.yml @@ -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/" diff --git a/orchestration/PROXIMA-ACCION.md b/orchestration/PROXIMA-ACCION.md new file mode 100644 index 0000000..60ae3c3 --- /dev/null +++ b/orchestration/PROXIMA-ACCION.md @@ -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