diff --git a/docs/_MAP.md b/docs/_MAP.md index aa8226c..50ceb25 100644 --- a/docs/_MAP.md +++ b/docs/_MAP.md @@ -2,8 +2,9 @@ **Proyecto:** clinica-veterinaria **Tipo:** ERP Especializado (hereda de erp-clinicas -> erp-core) -**Fecha:** 2026-01-13 -**Estado:** Documentacion SaaS e IA propagada +**Fecha:** 2026-01-16 +**Estado:** Estructura _definitions/ y _quick/ completada +**Nivel de Herencia:** 3 (clinica-veterinaria <- erp-clinicas <- erp-core) --- @@ -12,6 +13,19 @@ ``` docs/ ├── _MAP.md <- ESTE ARCHIVO +├── _definitions/ <- [NUEVO] Definiciones canonicas +│ ├── _INDEX.yml <- Indice de definiciones +│ ├── DATABASE-SCHEMA.md <- Schema BD (@PROJ_DEF_DB) +│ ├── ENTITIES-CATALOG.md <- Catalogo entities (@PROJ_DEF_ENTITIES) +│ ├── SERVICES-CATALOG.md <- Catalogo services (@PROJ_DEF_SERVICES) +│ └── MODULES-CATALOG.md <- Catalogo modulos (@PROJ_DEF_MODULES) +│ +├── _quick/ <- [NUEVO] Navegacion rapida +│ ├── QUICK-INDEX.yml <- Punto de entrada rapido +│ ├── QUICK-MODULES.yml <- Navegacion por modulos +│ ├── QUICK-DATABASE.yml <- Navegacion por BD +│ └── QUICK-API.yml <- Navegacion por API +│ ├── 00-vision-general/ │ ├── README.md <- Indice de vision │ └── VISION.md <- Vision estrategica @@ -25,7 +39,7 @@ docs/ │ ├── modulo-vacunacion.md <- Cartilla de vacunas │ └── ... <- Otros modulos veterinarios │ -├── 04-fase-saas/ <- [NUEVO] Modulos SaaS +├── 04-fase-saas/ <- Modulos SaaS │ ├── README.md <- Vision de fase SaaS │ ├── _MAP.md <- Mapa de navegacion │ ├── MGN-016-billing/ <- Facturacion veterinaria @@ -33,7 +47,7 @@ docs/ │ ├── MGN-018-webhooks/ <- Eventos veterinarios │ └── MGN-019-feature-flags/ <- Control de funcionalidades │ -├── 05-fase-ia/ <- [NUEVO] Modulos IA +├── 05-fase-ia/ <- Modulos IA │ ├── README.md <- Vision de fase IA │ ├── _MAP.md <- Mapa de navegacion │ ├── MGN-020-ai-integration/ <- Asistente veterinario IA @@ -46,6 +60,17 @@ docs/ --- +## Aliases de Definiciones + +| Alias | Archivo | Descripcion | +|-------|---------|-------------| +| @PROJ_DEF_DB | `_definitions/DATABASE-SCHEMA.md` | Schema canonico BD | +| @PROJ_DEF_ENTITIES | `_definitions/ENTITIES-CATALOG.md` | Catalogo de entidades | +| @PROJ_DEF_SERVICES | `_definitions/SERVICES-CATALOG.md` | Catalogo de servicios | +| @PROJ_DEF_MODULES | `_definitions/MODULES-CATALOG.md` | Catalogo de modulos | + +--- + ## Modulos Especializados (Veterinaria) ### Modulos Core @@ -229,5 +254,5 @@ Ver: [PROPAGATION-STATUS.yml](/home/isem/workspace-v2/shared/mirrors/clinica-vet --- -**Ultima actualizacion:** 2026-01-13 -**Version:** 1.1.0 +**Ultima actualizacion:** 2026-01-16 +**Version:** 1.2.0 diff --git a/docs/_definitions/DATABASE-SCHEMA.md b/docs/_definitions/DATABASE-SCHEMA.md new file mode 100644 index 0000000..f1f8ff3 --- /dev/null +++ b/docs/_definitions/DATABASE-SCHEMA.md @@ -0,0 +1,534 @@ +# Database Schema - clinica-veterinaria + +**Alias:** @PROJ_DEF_DB +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Schema Principal** | veterinaria | +| **Total Tablas** | 15 | +| **Total Catalogos** | 3 | +| **Total Enums** | 5 | +| **Total Relaciones** | 18 | +| **Tablas con RLS** | 15 | + +--- + +## 2. SCHEMAS + +### 2.1 Schema: veterinaria + +Schema principal con tablas especializadas para clinicas veterinarias. + +```yaml +catalogos: + - especies + - razas + - vacunas + +tablas_core: + - propietarios + - mascotas + - cartilla_vacunacion + - desparasitaciones + +tablas_hospitalizacion: + - hospitalizacion + - hospitalizacion_monitoreo + +tablas_servicios: + - estetica + +tablas_farmacia: + - medicamentos + - medicamentos_lotes + - dispensaciones + - movimientos_farmacia + - bitacora_controlados +``` + +### 2.2 Schemas Heredados + +| Schema | Origen | Tablas Usadas | +|--------|--------|---------------| +| auth | erp-core | users, sessions, roles | +| tenants | erp-core | tenants, tenant_config | +| clinica | erp-clinicas | doctors, appointments, consultations | + +--- + +## 3. ENUMS + +### 3.1 sexo_animal +```sql +CREATE TYPE veterinaria.sexo_animal AS ENUM ( + 'macho', + 'hembra', + 'desconocido' +); +``` + +### 3.2 estado_hospitalizacion +```sql +CREATE TYPE veterinaria.estado_hospitalizacion AS ENUM ( + 'ingresado', + 'en_tratamiento', + 'estable', + 'critico', + 'alta', + 'fallecido' +); +``` + +### 3.3 categoria_medicamento +```sql +CREATE TYPE veterinaria.categoria_medicamento AS ENUM ( + 'antibiotico', + 'antiparasitario', + 'analgesico', + 'antiinflamatorio', + 'vacuna', + 'vitamina', + 'dermatologico', + 'oftalmico', + 'cardiaco', + 'digestivo', + 'otro' +); +``` + +### 3.4 tipo_movimiento_farmacia +```sql +CREATE TYPE veterinaria.tipo_movimiento_farmacia AS ENUM ( + 'entrada', + 'salida', + 'ajuste_positivo', + 'ajuste_negativo', + 'devolucion', + 'merma' +); +``` + +### 3.5 fraccion_controlada +```sql +CREATE TYPE veterinaria.fraccion_controlada AS ENUM ( + 'no_controlado', + 'fraccion_i', + 'fraccion_ii', + 'fraccion_iii', + 'fraccion_iv' +); +``` + +--- + +## 4. TABLAS PRINCIPALES + +### 4.1 veterinaria.especies (Catalogo) + +```yaml +tabla: "especies" +schema: "veterinaria" +descripcion: "Catalogo de especies animales" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "nombre" + tipo: "VARCHAR(50)" + - nombre: "nombre_cientifico" + tipo: "VARCHAR(100)" + - nombre: "descripcion" + tipo: "TEXT" + - nombre: "active" + tipo: "BOOLEAN" + - nombre: "created_at" + tipo: "TIMESTAMPTZ" +indices: + - nombre: "idx_especies_tenant" + columnas: ["tenant_id"] +rls: true +``` + +### 4.2 veterinaria.razas (Catalogo) + +```yaml +tabla: "razas" +schema: "veterinaria" +descripcion: "Catalogo de razas por especie" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "especie_id" + tipo: "UUID" + fk: "veterinaria.especies" + - nombre: "nombre" + tipo: "VARCHAR(100)" + - nombre: "descripcion" + tipo: "TEXT" + - nombre: "tamanio_promedio" + tipo: "VARCHAR(20)" + - nombre: "peso_promedio_kg" + tipo: "NUMERIC(5,2)" + - nombre: "active" + tipo: "BOOLEAN" +indices: + - nombre: "idx_razas_tenant" + columnas: ["tenant_id"] + - nombre: "idx_razas_especie" + columnas: ["especie_id"] +rls: true +``` + +### 4.3 veterinaria.propietarios + +```yaml +tabla: "propietarios" +schema: "veterinaria" +descripcion: "Propietarios/duenos de mascotas" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "partner_id" + tipo: "UUID" + nullable: true + - nombre: "nombre" + tipo: "VARCHAR(100)" + - nombre: "apellidos" + tipo: "VARCHAR(100)" + - nombre: "telefono" + tipo: "VARCHAR(20)" + - nombre: "telefono_emergencia" + tipo: "VARCHAR(20)" + - nombre: "email" + tipo: "VARCHAR(100)" + - nombre: "direccion" + tipo: "TEXT" + - nombre: "rfc" + tipo: "VARCHAR(13)" + - nombre: "active" + tipo: "BOOLEAN" +indices: + - nombre: "idx_propietarios_tenant" + columnas: ["tenant_id"] + - nombre: "idx_propietarios_telefono" + columnas: ["telefono"] +rls: true +``` + +### 4.4 veterinaria.mascotas + +```yaml +tabla: "mascotas" +schema: "veterinaria" +descripcion: "Mascotas/pacientes de la clinica" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "propietario_id" + tipo: "UUID" + fk: "veterinaria.propietarios" + - nombre: "especie_id" + tipo: "UUID" + fk: "veterinaria.especies" + - nombre: "raza_id" + tipo: "UUID" + fk: "veterinaria.razas" + nullable: true + - nombre: "nombre" + tipo: "VARCHAR(100)" + - nombre: "sexo" + tipo: "veterinaria.sexo_animal" + - nombre: "fecha_nacimiento" + tipo: "DATE" + - nombre: "edad_aproximada" + tipo: "VARCHAR(50)" + - nombre: "color" + tipo: "VARCHAR(50)" + - nombre: "peso_kg" + tipo: "NUMERIC(6,2)" + - nombre: "numero_chip" + tipo: "VARCHAR(50)" + - nombre: "tiene_chip" + tipo: "BOOLEAN" + - nombre: "esterilizado" + tipo: "BOOLEAN" + - nombre: "fecha_esterilizacion" + tipo: "DATE" + - nombre: "alergias" + tipo: "TEXT" + - nombre: "condiciones_especiales" + tipo: "TEXT" + - nombre: "notas" + tipo: "TEXT" + - nombre: "foto_url" + tipo: "VARCHAR(255)" + - nombre: "active" + tipo: "BOOLEAN" +indices: + - nombre: "idx_mascotas_tenant" + columnas: ["tenant_id"] + - nombre: "idx_mascotas_propietario" + columnas: ["propietario_id"] + - nombre: "idx_mascotas_especie" + columnas: ["especie_id"] + - nombre: "idx_mascotas_chip" + columnas: ["numero_chip"] + parcial: "WHERE numero_chip IS NOT NULL" +rls: true +``` + +### 4.5 veterinaria.cartilla_vacunacion + +```yaml +tabla: "cartilla_vacunacion" +schema: "veterinaria" +descripcion: "Historial de vacunacion de mascotas" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "mascota_id" + tipo: "UUID" + fk: "veterinaria.mascotas" + - nombre: "vacuna_id" + tipo: "UUID" + fk: "veterinaria.vacunas" + - nombre: "veterinario_id" + tipo: "UUID" + fk: "clinica.doctors" + - nombre: "fecha_aplicacion" + tipo: "DATE" + - nombre: "fecha_proximo_refuerzo" + tipo: "DATE" + - nombre: "lote" + tipo: "VARCHAR(50)" + - nombre: "laboratorio" + tipo: "VARCHAR(100)" + - nombre: "observaciones" + tipo: "TEXT" +indices: + - nombre: "idx_cartilla_tenant" + columnas: ["tenant_id"] + - nombre: "idx_cartilla_mascota" + columnas: ["mascota_id"] + - nombre: "idx_cartilla_fecha" + columnas: ["fecha_proximo_refuerzo"] +rls: true +``` + +### 4.6 veterinaria.hospitalizacion + +```yaml +tabla: "hospitalizacion" +schema: "veterinaria" +descripcion: "Registro de hospitalizaciones" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + fk: true + - nombre: "mascota_id" + tipo: "UUID" + fk: "veterinaria.mascotas" + - nombre: "veterinario_id" + tipo: "UUID" + fk: "clinica.doctors" + - nombre: "consultation_id" + tipo: "UUID" + fk: "clinica.consultations" + - nombre: "fecha_ingreso" + tipo: "TIMESTAMPTZ" + - nombre: "motivo_ingreso" + tipo: "TEXT" + - nombre: "diagnostico_ingreso" + tipo: "TEXT" + - nombre: "area" + tipo: "VARCHAR(50)" + - nombre: "numero_jaula" + tipo: "VARCHAR(20)" + - nombre: "estado" + tipo: "veterinaria.estado_hospitalizacion" + - nombre: "fecha_alta" + tipo: "TIMESTAMPTZ" + - nombre: "diagnostico_alta" + tipo: "TEXT" + - nombre: "instrucciones_alta" + tipo: "TEXT" +indices: + - nombre: "idx_hospitalizacion_tenant" + columnas: ["tenant_id"] + - nombre: "idx_hospitalizacion_mascota" + columnas: ["mascota_id"] + - nombre: "idx_hospitalizacion_estado" + columnas: ["tenant_id", "estado"] +rls: true +``` + +### 4.7 veterinaria.medicamentos (Farmacia) + +```yaml +tabla: "medicamentos" +schema: "veterinaria" +descripcion: "Catalogo de medicamentos veterinarios" +columnas: + - nombre: "id" + tipo: "UUID" + pk: true + - nombre: "tenant_id" + tipo: "UUID" + - nombre: "codigo" + tipo: "VARCHAR(50)" + - nombre: "nombre" + tipo: "VARCHAR(150)" + - nombre: "nombre_comercial" + tipo: "VARCHAR(150)" + - nombre: "principio_activo" + tipo: "VARCHAR(200)" + - nombre: "categoria" + tipo: "veterinaria.categoria_medicamento" + - nombre: "presentacion" + tipo: "VARCHAR(100)" + - nombre: "concentracion" + tipo: "VARCHAR(50)" + - nombre: "laboratorio" + tipo: "VARCHAR(100)" + - nombre: "requiere_receta" + tipo: "BOOLEAN" + - nombre: "controlado" + tipo: "BOOLEAN" + - nombre: "fraccion_controlada" + tipo: "veterinaria.fraccion_controlada" + - nombre: "stock_minimo" + tipo: "INTEGER" + - nombre: "stock_actual" + tipo: "INTEGER" + - nombre: "precio_compra" + tipo: "NUMERIC(10,2)" + - nombre: "precio_venta" + tipo: "NUMERIC(10,2)" + - nombre: "especies_aplicables" + tipo: "UUID[]" + - nombre: "active" + tipo: "BOOLEAN" +indices: + - nombre: "idx_medicamentos_tenant" + columnas: ["tenant_id"] + - nombre: "idx_medicamentos_codigo" + columnas: ["codigo"] + - nombre: "idx_medicamentos_categoria" + columnas: ["categoria"] + - nombre: "idx_medicamentos_controlado" + columnas: ["controlado"] +rls: true +``` + +--- + +## 5. RELACIONES + +``` + HERENCIA + ┌─────────────────────────────────────────────────────────┐ + │ erp-core │ + │ ├── auth.users │ + │ └── tenants.tenants ─────────────────────────┐ │ + └───────────────────────────────────────────────│─────────┘ + │ + ┌─────────────────────────────────────────────────────────┐ + │ erp-clinicas │ │ + │ ├── clinica.doctors │ │ + │ ├── clinica.appointments │ │ + │ └── clinica.consultations ───────────────────│─────┐ │ + └───────────────────────────────────────────────│─────│───┘ + │ │ + ┌───────────────────────────────────────────────│─────│───┐ + │ veterinaria (este proyecto) │ │ │ + │ ▼ │ │ + │ ┌─────────────┐ ┌─────────────┐ FK │ │ + │ │ especies │◄──────│ razas │ │ │ + │ └─────────────┘ FK └─────────────┘ │ │ + │ │ │ │ │ + │ │ FK │ FK │ │ + │ ▼ ▼ │ │ + │ ┌─────────────┐ ┌─────────────┐ │ │ + │ │ propietarios│◄──────│ mascotas │◄────────────│ │ + │ └─────────────┘ FK └─────────────┘ │ │ + │ │ ▼ │ + │ ┌─────────────────────┼─────────────────────┐ │ + │ │ │ │ │ + │ ▼ ▼ ▼ │ + │ ┌───────────┐ ┌───────────────────┐ ┌───────────┐│ + │ │ cartilla_ │ │ desparasitaciones │ │hospitali- ││ + │ │vacunacion │ │ │ │ zacion ││ + │ └───────────┘ └───────────────────┘ └───────────┘│ + │ │ │ │ + │ ▼ ▼ │ + │ ┌───────────┐ ┌───────────┐ │ + │ │ vacunas │ │ monitoreo │ │ + │ └───────────┘ └───────────┘ │ + │ │ + │ FARMACIA: │ + │ ┌─────────────┐ ┌─────────────────┐ │ + │ │medicamentos │◄────│medicamentos_lotes│ │ + │ └─────────────┘ FK └─────────────────┘ │ + │ │ │ │ + │ ▼ ▼ │ + │ ┌─────────────────────────────────────┐ │ + │ │ dispensaciones │ │ + │ └─────────────────────────────────────┘ │ + │ │ │ + │ ▼ │ + │ ┌─────────────────────────────────────┐ │ + │ │ movimientos_farmacia │ │ + │ │ bitacora_controlados │ │ + │ └─────────────────────────────────────┘ │ + └────────────────────────────────────────────────────────┘ +``` + +--- + +## 6. ARCHIVOS DDL + +| Archivo | Descripcion | +|---------|-------------| +| `database/schemas/01-veterinaria-schema-ddl.sql` | Schema principal veterinaria | +| `database/schemas/02-veterinaria-farmacia-ddl.sql` | Modulo farmacia | +| `database/seeds/fase8/01-veterinaria-catalogos.sql` | Seeds de catalogos | + +--- + +## 7. REFERENCIAS + +- Inventario detallado: `orchestration/inventarios/DATABASE_INVENTORY.yml` +- Entities: Ver @PROJ_DEF_ENTITIES +- Navegacion rapida: Ver `docs/_quick/QUICK-DATABASE.yml` + +--- + +*Generado: 2026-01-16 - clinica-veterinaria v1.0.0* diff --git a/docs/_definitions/ENTITIES-CATALOG.md b/docs/_definitions/ENTITIES-CATALOG.md new file mode 100644 index 0000000..6713b78 --- /dev/null +++ b/docs/_definitions/ENTITIES-CATALOG.md @@ -0,0 +1,181 @@ +# Entities Catalog - clinica-veterinaria + +**Alias:** @PROJ_DEF_ENTITIES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Entities** | 0 (Pendiente implementacion) | +| **Por Modulo** | Ver seccion 2 | +| **Estado** | Planificado | + +> **Nota:** Este proyecto actualmente tiene solo DDL de base de datos. +> Las entities de NestJS se implementaran en fases posteriores. + +--- + +## 2. ENTITIES POR MODULO (Planificadas) + +### 2.1 Modulo: Core Veterinaria (VET-001) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Especie | `especie.entity.ts` | veterinaria.especies | Catalogo de especies | +| Raza | `raza.entity.ts` | veterinaria.razas | Catalogo de razas | +| Propietario | `propietario.entity.ts` | veterinaria.propietarios | Duenos de mascotas | +| Mascota | `mascota.entity.ts` | veterinaria.mascotas | Pacientes (mascotas) | + +### 2.2 Modulo: Vacunacion (VET-002) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Vacuna | `vacuna.entity.ts` | veterinaria.vacunas | Catalogo de vacunas | +| CartillaVacunacion | `cartilla-vacunacion.entity.ts` | veterinaria.cartilla_vacunacion | Historial vacunas | + +### 2.3 Modulo: Desparasitaciones (VET-003) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Desparasitacion | `desparasitacion.entity.ts` | veterinaria.desparasitaciones | Historial desparasitaciones | + +### 2.4 Modulo: Hospitalizacion (VET-004) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Hospitalizacion | `hospitalizacion.entity.ts` | veterinaria.hospitalizacion | Registro internamiento | +| HospitalizacionMonitoreo | `hospitalizacion-monitoreo.entity.ts` | veterinaria.hospitalizacion_monitoreo | Monitoreo signos vitales | + +### 2.5 Modulo: Estetica (VET-005) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Estetica | `estetica.entity.ts` | veterinaria.estetica | Servicios grooming | + +### 2.6 Modulo: Farmacia (VET-006) + +| Entity | Archivo | Tabla BD | Descripcion | +|--------|---------|----------|-------------| +| Medicamento | `medicamento.entity.ts` | veterinaria.medicamentos | Catalogo medicamentos | +| MedicamentoLote | `medicamento-lote.entity.ts` | veterinaria.medicamentos_lotes | Lotes con caducidad | +| Dispensacion | `dispensacion.entity.ts` | veterinaria.dispensaciones | Despacho medicamentos | +| MovimientoFarmacia | `movimiento-farmacia.entity.ts` | veterinaria.movimientos_farmacia | Kardex inventario | +| BitacoraControlados | `bitacora-controlados.entity.ts` | veterinaria.bitacora_controlados | Auditoria COFEPRIS | + +### 2.7 Entities Heredadas (de erp-clinicas) + +| Entity | Origen | Uso en Veterinaria | +|--------|--------|-------------------| +| Doctor | erp-clinicas | Veterinarios | +| Appointment | erp-clinicas | Citas | +| Consultation | erp-clinicas | Consultas (extendida con mascota_id) | +| Patient | erp-clinicas | Base (reemplazado por Mascota) | + +--- + +## 3. RELACIONES ENTRE ENTITIES + +```yaml +relaciones: + Propietario: + has_many: + - Mascota + + Mascota: + belongs_to: + - Propietario + - Especie + - Raza (opcional) + has_many: + - CartillaVacunacion + - Desparasitacion + - Hospitalizacion + - Estetica + - Dispensacion + + Hospitalizacion: + belongs_to: + - Mascota + - Consultation (opcional) + has_many: + - HospitalizacionMonitoreo + + Medicamento: + has_many: + - MedicamentoLote + - Dispensacion + - MovimientoFarmacia + + MedicamentoLote: + belongs_to: + - Medicamento + has_many: + - Dispensacion + - MovimientoFarmacia + + Dispensacion: + belongs_to: + - Medicamento + - MedicamentoLote + - Mascota + - Consultation (opcional) +``` + +--- + +## 4. ESTRUCTURA DE DIRECTORIOS (Planificada) + +``` +backend/src/modules/ +├── veterinaria/ +│ ├── entities/ +│ │ ├── especie.entity.ts +│ │ ├── raza.entity.ts +│ │ ├── propietario.entity.ts +│ │ └── mascota.entity.ts +│ ├── services/ +│ ├── controllers/ +│ └── veterinaria.module.ts +│ +├── vacunacion/ +│ ├── entities/ +│ │ ├── vacuna.entity.ts +│ │ └── cartilla-vacunacion.entity.ts +│ └── ... +│ +├── hospitalizacion/ +│ ├── entities/ +│ │ ├── hospitalizacion.entity.ts +│ │ └── hospitalizacion-monitoreo.entity.ts +│ └── ... +│ +├── estetica/ +│ ├── entities/ +│ │ └── estetica.entity.ts +│ └── ... +│ +└── farmacia/ + ├── entities/ + │ ├── medicamento.entity.ts + │ ├── medicamento-lote.entity.ts + │ ├── dispensacion.entity.ts + │ ├── movimiento-farmacia.entity.ts + │ └── bitacora-controlados.entity.ts + └── ... +``` + +--- + +## 5. REFERENCIAS + +- Database Schema: @PROJ_DEF_DB +- Services: @PROJ_DEF_SERVICES +- Ubicacion planificada: `backend/src/modules/*/entities/` + +--- + +*Template v1.0.0 - clinica-veterinaria - Pendiente implementacion backend* diff --git a/docs/_definitions/MODULES-CATALOG.md b/docs/_definitions/MODULES-CATALOG.md new file mode 100644 index 0000000..cff06d3 --- /dev/null +++ b/docs/_definitions/MODULES-CATALOG.md @@ -0,0 +1,244 @@ +# Modules Catalog - clinica-veterinaria + +**Alias:** @PROJ_DEF_MODULES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Modulos Propios** | 6 | +| **Modulos Heredados** | 10+ | +| **Documentados** | 6 | +| **En Desarrollo** | 0 | +| **Estado DDL** | Completado | + +--- + +## 2. INDICE DE MODULOS + +### 2.1 Modulos Core (Heredados de erp-clinicas / erp-core) + +| ID | Nombre | Estado | Origen | +|----|--------|--------|--------| +| MGN-001 | Authentication | Heredado | erp-core | +| MGN-002 | Tenants | Heredado | erp-core | +| MGN-003 | Users | Heredado | erp-core | +| MGN-004 | Audit | Heredado | erp-core | +| CLN-001 | Doctors | Heredado | erp-clinicas | +| CLN-002 | Appointments | Heredado | erp-clinicas | +| CLN-003 | Consultations | Heredado/Extendido | erp-clinicas | + +### 2.2 Modulos Propios (Veterinaria) + +| ID | Nombre | Estado | Documentacion | +|----|--------|--------|---------------| +| VET-001 | Mascotas y Propietarios | DDL Completado | docs/01-epicas/VET-001-mascotas-propietarios.md | +| VET-002 | Vacunacion | DDL Completado | docs/01-epicas/VET-002-vacunacion.md | +| VET-003 | Desparasitaciones | DDL Completado | docs/01-epicas/VET-003-desparasitaciones.md | +| VET-004 | Hospitalizacion | DDL Completado | docs/01-epicas/VET-004-hospitalizacion.md | +| VET-005 | Estetica | DDL Completado | docs/01-epicas/VET-005-estetica.md | +| VET-006 | Farmacia | DDL Completado | docs/01-epicas/VET-006-farmacia.md | + +### 2.3 Modulos SaaS (Heredados/Planificados) + +| ID | Nombre | Estado | Documentacion | +|----|--------|--------|---------------| +| MGN-016 | Billing | Draft | docs/04-fase-saas/MGN-016-billing/ | +| MGN-017 | Plans | Draft | docs/04-fase-saas/MGN-017-plans/ | +| MGN-018 | Webhooks | Draft | docs/04-fase-saas/MGN-018-webhooks/ | +| MGN-019 | Feature Flags | Draft | docs/04-fase-saas/MGN-019-feature-flags/ | + +### 2.4 Modulos IA (Heredados/Planificados) + +| ID | Nombre | Estado | Documentacion | +|----|--------|--------|---------------| +| MGN-020 | AI Integration | Draft | docs/05-fase-ia/MGN-020-ai-integration/ | +| MGN-021 | WhatsApp Business | Draft | docs/05-fase-ia/MGN-021-whatsapp-business/ | +| MGN-022 | MCP Server | Draft | docs/05-fase-ia/MGN-022-mcp-server/ | + +--- + +## 3. DETALLE POR MODULO + +### VET-001: Mascotas y Propietarios + +```yaml +modulo: + id: "VET-001" + nombre: "Mascotas y Propietarios" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-001-mascotas-propietarios.md" + requerimientos: ["RF-VET-001", "RF-VET-002"] + + objetos: + tablas: + - veterinaria.especies + - veterinaria.razas + - veterinaria.propietarios + - veterinaria.mascotas + entities: [] # Pendiente + services: [] # Pendiente + controllers: [] # Pendiente + + dependencias: + modulos: ["MGN-002"] # Tenants + externos: [] +``` + +### VET-002: Vacunacion + +```yaml +modulo: + id: "VET-002" + nombre: "Vacunacion" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-002-vacunacion.md" + especificacion_modulo: "docs/02-definicion-modulos/modulo-vacunacion.md" + + objetos: + tablas: + - veterinaria.vacunas + - veterinaria.cartilla_vacunacion + entities: [] + services: [] + + dependencias: + modulos: ["VET-001"] +``` + +### VET-003: Desparasitaciones + +```yaml +modulo: + id: "VET-003" + nombre: "Desparasitaciones" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-003-desparasitaciones.md" + + objetos: + tablas: + - veterinaria.desparasitaciones + entities: [] + services: [] + + dependencias: + modulos: ["VET-001"] +``` + +### VET-004: Hospitalizacion + +```yaml +modulo: + id: "VET-004" + nombre: "Hospitalizacion" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-004-hospitalizacion.md" + + objetos: + tablas: + - veterinaria.hospitalizacion + - veterinaria.hospitalizacion_monitoreo + entities: [] + services: [] + + dependencias: + modulos: ["VET-001", "CLN-003"] +``` + +### VET-005: Estetica + +```yaml +modulo: + id: "VET-005" + nombre: "Estetica" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-005-estetica.md" + + objetos: + tablas: + - veterinaria.estetica + entities: [] + services: [] + + dependencias: + modulos: ["VET-001"] +``` + +### VET-006: Farmacia + +```yaml +modulo: + id: "VET-006" + nombre: "Farmacia" + estado: "ddl_completado" + version: "1.0.0" + + documentacion: + especificacion: "docs/01-epicas/VET-006-farmacia.md" + + objetos: + tablas: + - veterinaria.medicamentos + - veterinaria.medicamentos_lotes + - veterinaria.dispensaciones + - veterinaria.movimientos_farmacia + - veterinaria.bitacora_controlados + entities: [] + services: [] + + dependencias: + modulos: ["VET-001", "CLN-003"] + externos: + - "COFEPRIS" # Regulacion medicamentos controlados +``` + +--- + +## 4. MATRIZ DE DEPENDENCIAS + +``` +┌──────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐ +│ │ VET-001 │ VET-002 │ VET-003 │ VET-004 │ VET-005 │ VET-006 │ +├──────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤ +│ VET-001 │ - │ │ │ │ │ │ +│ VET-002 │ X │ - │ │ │ │ │ +│ VET-003 │ X │ │ - │ │ │ │ +│ VET-004 │ X │ │ │ - │ │ │ +│ VET-005 │ X │ │ │ │ - │ │ +│ VET-006 │ X │ │ │ │ │ - │ +└──────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ + +Leyenda: X = depende de +``` + +--- + +## 5. REFERENCIAS + +- Database: @PROJ_DEF_DB +- Entities: @PROJ_DEF_ENTITIES +- Services: @PROJ_DEF_SERVICES +- Navegacion rapida: docs/_quick/QUICK-MODULES.yml + +--- + +*Template v1.0.0 - clinica-veterinaria* diff --git a/docs/_definitions/SERVICES-CATALOG.md b/docs/_definitions/SERVICES-CATALOG.md new file mode 100644 index 0000000..f9118e2 --- /dev/null +++ b/docs/_definitions/SERVICES-CATALOG.md @@ -0,0 +1,135 @@ +# Services Catalog - clinica-veterinaria + +**Alias:** @PROJ_DEF_SERVICES +**Version:** 1.0.0 +**Ultima actualizacion:** 2026-01-16 + +--- + +## 1. RESUMEN + +| Metrica | Valor | +|---------|-------| +| **Total Services** | 0 (Pendiente implementacion) | +| **Por Modulo** | Ver seccion 2 | +| **Estado** | Planificado | + +> **Nota:** Este proyecto actualmente tiene solo DDL de base de datos. +> Los services de NestJS se implementaran en fases posteriores. + +--- + +## 2. SERVICES POR MODULO (Planificados) + +### 2.1 Modulo: Core Veterinaria (VET-001) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| EspeciesService | `especies.service.ts` | TypeORM | CRUD especies | +| RazasService | `razas.service.ts` | EspeciesService | CRUD razas | +| PropietariosService | `propietarios.service.ts` | TypeORM | CRUD propietarios | +| MascotasService | `mascotas.service.ts` | PropietariosService, EspeciesService | CRUD mascotas | + +### 2.2 Modulo: Vacunacion (VET-002) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| VacunasService | `vacunas.service.ts` | EspeciesService | CRUD vacunas | +| CartillaService | `cartilla.service.ts` | MascotasService, VacunasService | Registro vacunacion | +| RecordatoriosVacunasService | `recordatorios-vacunas.service.ts` | CartillaService, NotificationsService | Alertas refuerzos | + +### 2.3 Modulo: Desparasitaciones (VET-003) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| DesparasitacionesService | `desparasitaciones.service.ts` | MascotasService | CRUD desparasitaciones | +| RecordatoriosDesparasitacionService | `recordatorios-desparasitacion.service.ts` | DesparasitacionesService | Alertas proximas | + +### 2.4 Modulo: Hospitalizacion (VET-004) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| HospitalizacionService | `hospitalizacion.service.ts` | MascotasService | Gestion internamientos | +| MonitoreoService | `monitoreo.service.ts` | HospitalizacionService | Registro signos vitales | +| AlertasHospitalizacionService | `alertas-hospitalizacion.service.ts` | MonitoreoService | Alertas criticos | + +### 2.5 Modulo: Estetica (VET-005) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| EsteticaService | `estetica.service.ts` | MascotasService | CRUD servicios grooming | +| AgendaEsteticaService | `agenda-estetica.service.ts` | EsteticaService | Agenda de turnos | + +### 2.6 Modulo: Farmacia (VET-006) + +| Service | Archivo | Dependencias | Descripcion | +|---------|---------|--------------|-------------| +| MedicamentosService | `medicamentos.service.ts` | TypeORM | CRUD medicamentos | +| LotesService | `lotes.service.ts` | MedicamentosService | Gestion lotes | +| DispensacionService | `dispensacion.service.ts` | LotesService, MascotasService | Despacho medicamentos | +| KardexService | `kardex.service.ts` | MedicamentosService, LotesService | Movimientos inventario | +| ControladosService | `controlados.service.ts` | DispensacionService | Bitacora COFEPRIS | +| AlertasStockService | `alertas-stock.service.ts` | MedicamentosService | Stock bajo | +| AlertasCaducidadService | `alertas-caducidad.service.ts` | LotesService | Proximos a caducar | + +--- + +## 3. INYECCION DE DEPENDENCIAS + +```yaml +dependencias: + MascotasService: + inyecta: + - PropietariosService + - EspeciesService + - RazasService + inyectado_en: + - CartillaService + - DesparasitacionesService + - HospitalizacionService + - EsteticaService + - DispensacionService + - MascotasController + + DispensacionService: + inyecta: + - MedicamentosService + - LotesService + - MascotasService + - ControladosService + inyectado_en: + - DispensacionController + - ConsultationsService (extension) + + HospitalizacionService: + inyecta: + - MascotasService + - MonitoreoService + inyectado_en: + - HospitalizacionController + - AlertasHospitalizacionService +``` + +--- + +## 4. SERVICES HEREDADOS (de erp-clinicas) + +| Service | Origen | Uso en Veterinaria | +|---------|--------|-------------------| +| DoctorsService | erp-clinicas | Gestion veterinarios | +| AppointmentsService | erp-clinicas | Citas | +| ConsultationsService | erp-clinicas | Consultas (extendido) | +| NotificationsService | erp-core | Alertas y recordatorios | +| AuditService | erp-core | Trazabilidad | + +--- + +## 5. REFERENCIAS + +- Entities: @PROJ_DEF_ENTITIES +- Controllers: Ver documentacion API +- Ubicacion planificada: `backend/src/modules/*/services/` + +--- + +*Template v1.0.0 - clinica-veterinaria - Pendiente implementacion backend* diff --git a/docs/_definitions/_INDEX.yml b/docs/_definitions/_INDEX.yml new file mode 100644 index 0000000..a137a20 --- /dev/null +++ b/docs/_definitions/_INDEX.yml @@ -0,0 +1,112 @@ +# Indice de Definiciones del Proyecto +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" +fecha_creacion: "2026-01-16" +descripcion: "Definiciones canonicas del proyecto clinica-veterinaria" + +# ============================================================================ +# REFERENCIAS A WORKSPACE (Definiciones Globales) +# ============================================================================ +referencias_workspace: + protocolos: + CCA: "@WS_DEF_CCA" + CAPVED: "@WS_DEF_CAPVED" + + validaciones: + backend: "@WS_DEF_VAL_BE" + frontend: "@WS_DEF_VAL_FE" + ddl: "@WS_DEF_VAL_DDL" + devops: "@WS_DEF_VAL_DEVOPS" + +# ============================================================================ +# DEFINICIONES LOCALES DEL PROYECTO +# ============================================================================ +definiciones_locales: + database: + archivo: "DATABASE-SCHEMA.md" + alias: "@PROJ_DEF_DB" + descripcion: "Schema canonico de base de datos veterinaria" + tablas_principales: + - "veterinaria.especies" + - "veterinaria.razas" + - "veterinaria.vacunas" + - "veterinaria.propietarios" + - "veterinaria.mascotas" + - "veterinaria.cartilla_vacunacion" + - "veterinaria.desparasitaciones" + - "veterinaria.hospitalizacion" + - "veterinaria.hospitalizacion_monitoreo" + - "veterinaria.estetica" + - "veterinaria.medicamentos" + - "veterinaria.medicamentos_lotes" + - "veterinaria.dispensaciones" + - "veterinaria.movimientos_farmacia" + - "veterinaria.bitacora_controlados" + + entities: + archivo: "ENTITIES-CATALOG.md" + alias: "@PROJ_DEF_ENTITIES" + descripcion: "Catalogo de entidades del proyecto" + total_entities: 0 # Pendiente implementacion backend + + services: + archivo: "SERVICES-CATALOG.md" + alias: "@PROJ_DEF_SERVICES" + descripcion: "Catalogo de servicios del proyecto" + total_services: 0 # Pendiente implementacion backend + + modules: + archivo: "MODULES-CATALOG.md" + alias: "@PROJ_DEF_MODULES" + descripcion: "Catalogo de modulos del proyecto" + total_modules: 6 + modulos: + - id: "VET-001" + nombre: "Mascotas y Propietarios" + - id: "VET-002" + nombre: "Vacunacion" + - id: "VET-003" + nombre: "Desparasitaciones" + - id: "VET-004" + nombre: "Hospitalizacion" + - id: "VET-005" + nombre: "Estetica" + - id: "VET-006" + nombre: "Farmacia" + +# ============================================================================ +# HERENCIA (Nivel 3: clinica-veterinaria <- erp-clinicas <- erp-core) +# ============================================================================ +herencia: + padre: "erp-clinicas" + nivel: 3 + cadena: + - proyecto: "erp-core" + nivel: 1 + tipo: "core base" + - proyecto: "erp-clinicas" + nivel: 2 + tipo: "vertical clinicas" + - proyecto: "clinica-veterinaria" + nivel: 3 + tipo: "especializacion veterinaria" + definiciones_heredadas: + - "@ERP_CORE_DEF_AUTH" + - "@ERP_CORE_DEF_TENANTS" + - "@ERP_CLINICAS_DEF_PATIENTS" + - "@ERP_CLINICAS_DEF_APPOINTMENTS" + - "@ERP_CLINICAS_DEF_CONSULTATIONS" + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + total_definiciones: 4 + total_referencias_ws: 6 + total_tablas_bd: 15 + total_enums: 5 + total_catalogos: 3 + ultima_actualizacion: "2026-01-16" diff --git a/docs/_quick/QUICK-API.yml b/docs/_quick/QUICK-API.yml new file mode 100644 index 0000000..90e1cd3 --- /dev/null +++ b/docs/_quick/QUICK-API.yml @@ -0,0 +1,166 @@ +# Navegacion Rapida de API +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" + +# ============================================================================ +# NOTA: API Pendiente de Implementacion +# ============================================================================ +# Este proyecto actualmente tiene solo DDL de base de datos. +# Los endpoints de API se implementaran en fases posteriores del backend. +# Esta documentacion describe la estructura planificada de la API. + +# ============================================================================ +# ENDPOINTS POR MODULO (Planificados) +# ============================================================================ +por_modulo: + # VET-001: Mascotas y Propietarios + mascotas: + base: "/api/v1/veterinaria/mascotas" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar mascotas del tenant" } + - { method: "GET", path: "/:id", descripcion: "Obtener mascota por ID" } + - { method: "POST", path: "/", descripcion: "Crear nueva mascota" } + - { method: "PUT", path: "/:id", descripcion: "Actualizar mascota" } + - { method: "DELETE", path: "/:id", descripcion: "Eliminar mascota (soft delete)" } + - { method: "GET", path: "/:id/historial", descripcion: "Historial completo de la mascota" } + - { method: "GET", path: "/:id/vacunas", descripcion: "Cartilla de vacunacion" } + - { method: "GET", path: "/:id/hospitalizaciones", descripcion: "Historial de hospitalizaciones" } + + propietarios: + base: "/api/v1/veterinaria/propietarios" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar propietarios" } + - { method: "GET", path: "/:id", descripcion: "Obtener propietario" } + - { method: "POST", path: "/", descripcion: "Crear propietario" } + - { method: "PUT", path: "/:id", descripcion: "Actualizar propietario" } + - { method: "GET", path: "/:id/mascotas", descripcion: "Mascotas del propietario" } + + especies: + base: "/api/v1/veterinaria/catalogos/especies" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar especies" } + - { method: "GET", path: "/:id/razas", descripcion: "Razas de la especie" } + + # VET-002: Vacunacion + vacunas: + base: "/api/v1/veterinaria/vacunas" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar vacunas disponibles" } + - { method: "POST", path: "/aplicar", descripcion: "Registrar aplicacion de vacuna" } + - { method: "GET", path: "/pendientes", descripcion: "Vacunas con refuerzo pendiente" } + - { method: "GET", path: "/proximas", descripcion: "Proximos refuerzos (7 dias)" } + + # VET-003: Desparasitaciones + desparasitaciones: + base: "/api/v1/veterinaria/desparasitaciones" + endpoints: + - { method: "GET", path: "/mascota/:mascotaId", descripcion: "Historial de desparasitaciones" } + - { method: "POST", path: "/", descripcion: "Registrar desparasitacion" } + - { method: "GET", path: "/pendientes", descripcion: "Desparasitaciones pendientes" } + + # VET-004: Hospitalizacion + hospitalizacion: + base: "/api/v1/veterinaria/hospitalizacion" + endpoints: + - { method: "GET", path: "/activos", descripcion: "Pacientes hospitalizados actuales" } + - { method: "POST", path: "/ingresar", descripcion: "Ingresar paciente" } + - { method: "PUT", path: "/:id/estado", descripcion: "Actualizar estado" } + - { method: "POST", path: "/:id/monitoreo", descripcion: "Registrar signos vitales" } + - { method: "POST", path: "/:id/alta", descripcion: "Dar de alta paciente" } + - { method: "GET", path: "/:id/monitoreos", descripcion: "Historial de monitoreo" } + + # VET-005: Estetica + estetica: + base: "/api/v1/veterinaria/estetica" + endpoints: + - { method: "GET", path: "/", descripcion: "Listar servicios de estetica" } + - { method: "POST", path: "/", descripcion: "Agendar servicio de estetica" } + - { method: "PUT", path: "/:id/estado", descripcion: "Actualizar estado del servicio" } + - { method: "GET", path: "/agenda/:fecha", descripcion: "Agenda del dia" } + + # VET-006: Farmacia + farmacia: + base: "/api/v1/veterinaria/farmacia" + endpoints: + - { method: "GET", path: "/medicamentos", descripcion: "Listar medicamentos" } + - { method: "GET", path: "/medicamentos/:id/lotes", descripcion: "Lotes del medicamento" } + - { method: "POST", path: "/dispensar", descripcion: "Dispensar medicamento" } + - { method: "GET", path: "/stock-bajo", descripcion: "Medicamentos con stock bajo" } + - { method: "GET", path: "/proximos-caducar", descripcion: "Lotes proximos a caducar" } + - { method: "GET", path: "/controlados/bitacora", descripcion: "Bitacora de controlados" } + +# ============================================================================ +# ENDPOINTS POR METODO (Resumen) +# ============================================================================ +por_metodo: + GET: + - "/api/v1/veterinaria/mascotas" + - "/api/v1/veterinaria/propietarios" + - "/api/v1/veterinaria/hospitalizacion/activos" + - "/api/v1/veterinaria/farmacia/stock-bajo" + POST: + - "/api/v1/veterinaria/mascotas" + - "/api/v1/veterinaria/vacunas/aplicar" + - "/api/v1/veterinaria/hospitalizacion/ingresar" + - "/api/v1/veterinaria/farmacia/dispensar" + PUT: + - "/api/v1/veterinaria/mascotas/:id" + - "/api/v1/veterinaria/hospitalizacion/:id/estado" + DELETE: + - "/api/v1/veterinaria/mascotas/:id" + +# ============================================================================ +# AUTENTICACION +# ============================================================================ +autenticacion: + tipo: "JWT Bearer" + header: "Authorization" + formato: "Bearer {token}" + hereda_de: "erp-core (MGN-001)" + endpoints_publicos: + - "/api/v1/auth/login" + - "/api/v1/auth/register" + - "/api/v1/health" + +# ============================================================================ +# MULTI-TENANCY +# ============================================================================ +multi_tenancy: + header: "X-Tenant-ID" + estrategia: "RLS (Row Level Security)" + hereda_de: "erp-core (MGN-002)" + +# ============================================================================ +# ERRORES COMUNES +# ============================================================================ +errores: + 400: "Bad Request - Datos invalidos" + 401: "Unauthorized - Token invalido o expirado" + 403: "Forbidden - Sin permisos" + 404: "Not Found - Recurso no encontrado" + 409: "Conflict - Mascota/Propietario ya existe" + 422: "Unprocessable Entity - Validacion fallida" + 500: "Internal Server Error" + +# ============================================================================ +# ERRORES ESPECIFICOS VETERINARIA +# ============================================================================ +errores_veterinaria: + VET001: "Mascota no encontrada" + VET002: "Propietario no encontrado" + VET003: "Vacuna no aplicable a esta especie" + VET004: "Paciente ya hospitalizado" + VET005: "Stock insuficiente de medicamento" + VET006: "Lote caducado no puede dispensarse" + VET007: "Medicamento controlado requiere receta" + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + swagger: "/api/docs (planificado)" + services: "@PROJ_DEF_SERVICES" + herencia_auth: "orchestration/00-guidelines/HERENCIA-ERP-CORE.md" diff --git a/docs/_quick/QUICK-DATABASE.yml b/docs/_quick/QUICK-DATABASE.yml new file mode 100644 index 0000000..f77bde4 --- /dev/null +++ b/docs/_quick/QUICK-DATABASE.yml @@ -0,0 +1,169 @@ +# Navegacion Rapida de Base de Datos +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" + +# ============================================================================ +# SCHEMAS +# ============================================================================ +schemas: + veterinaria: + descripcion: "Schema principal con tablas veterinarias" + tablas_count: 15 + tablas_principales: + - especies + - razas + - vacunas + - propietarios + - mascotas + - cartilla_vacunacion + - desparasitaciones + - hospitalizacion + - hospitalizacion_monitoreo + - estetica + - medicamentos + - medicamentos_lotes + - dispensaciones + - movimientos_farmacia + - bitacora_controlados + + heredados: + auth: + origen: "erp-core" + descripcion: "Autenticacion y sesiones" + tenants: + origen: "erp-core" + descripcion: "Multi-tenancy" + clinica: + origen: "erp-clinicas" + descripcion: "Doctors, appointments, consultations" + nota: "consultations extendida con mascota_id" + +# ============================================================================ +# TABLAS PRINCIPALES (Top 10) +# ============================================================================ +tablas_principales: + - nombre: "mascotas" + schema: "veterinaria" + descripcion: "Pacientes (mascotas) de la clinica" + entity: "Mascota.entity.ts (planificado)" + relaciones: ["propietarios", "especies", "razas", "cartilla_vacunacion", "hospitalizacion"] + rls: true + + - nombre: "propietarios" + schema: "veterinaria" + descripcion: "Duenos de mascotas" + entity: "Propietario.entity.ts (planificado)" + relaciones: ["mascotas"] + rls: true + + - nombre: "cartilla_vacunacion" + schema: "veterinaria" + descripcion: "Historial de vacunas por mascota" + entity: "CartillaVacunacion.entity.ts (planificado)" + relaciones: ["mascotas", "vacunas"] + rls: true + + - nombre: "hospitalizacion" + schema: "veterinaria" + descripcion: "Registro de internamientos" + entity: "Hospitalizacion.entity.ts (planificado)" + relaciones: ["mascotas", "hospitalizacion_monitoreo"] + rls: true + + - nombre: "medicamentos" + schema: "veterinaria" + descripcion: "Catalogo de medicamentos veterinarios" + entity: "Medicamento.entity.ts (planificado)" + relaciones: ["medicamentos_lotes", "dispensaciones"] + rls: true + + - nombre: "dispensaciones" + schema: "veterinaria" + descripcion: "Despacho de medicamentos" + entity: "Dispensacion.entity.ts (planificado)" + relaciones: ["medicamentos", "medicamentos_lotes", "mascotas"] + rls: true + +# ============================================================================ +# ENUMS +# ============================================================================ +enums: + - nombre: "sexo_animal" + valores: ["macho", "hembra", "desconocido"] + usado_en: ["mascotas"] + + - nombre: "estado_hospitalizacion" + valores: ["ingresado", "en_tratamiento", "estable", "critico", "alta", "fallecido"] + usado_en: ["hospitalizacion"] + + - nombre: "categoria_medicamento" + valores: ["antibiotico", "antiparasitario", "analgesico", "antiinflamatorio", "vacuna", "vitamina", "dermatologico", "oftalmico", "cardiaco", "digestivo", "otro"] + usado_en: ["medicamentos"] + + - nombre: "tipo_movimiento_farmacia" + valores: ["entrada", "salida", "ajuste_positivo", "ajuste_negativo", "devolucion", "merma"] + usado_en: ["movimientos_farmacia", "bitacora_controlados"] + + - nombre: "fraccion_controlada" + valores: ["no_controlado", "fraccion_i", "fraccion_ii", "fraccion_iii", "fraccion_iv"] + usado_en: ["medicamentos"] + +# ============================================================================ +# BUSQUEDA RAPIDA +# ============================================================================ +busqueda: + por_modulo: + VET-001: ["especies", "razas", "propietarios", "mascotas"] + VET-002: ["vacunas", "cartilla_vacunacion"] + VET-003: ["desparasitaciones"] + VET-004: ["hospitalizacion", "hospitalizacion_monitoreo"] + VET-005: ["estetica"] + VET-006: ["medicamentos", "medicamentos_lotes", "dispensaciones", "movimientos_farmacia", "bitacora_controlados"] + + por_tipo: + catalogo: + - especies + - razas + - vacunas + - medicamentos + transaccional: + - cartilla_vacunacion + - desparasitaciones + - hospitalizacion + - hospitalizacion_monitoreo + - estetica + - dispensaciones + - movimientos_farmacia + auditoria: + - bitacora_controlados + +# ============================================================================ +# ARCHIVOS DDL +# ============================================================================ +ddl: + ubicacion: "database/schemas/" + archivos: + - archivo: "01-veterinaria-schema-ddl.sql" + descripcion: "Schema principal veterinaria" + fecha: "2026-01-04" + + - archivo: "02-veterinaria-farmacia-ddl.sql" + descripcion: "Modulo farmacia" + fecha: "2026-01-07" + + seeds: + ubicacion: "database/seeds/" + archivos: + - archivo: "fase8/01-veterinaria-catalogos.sql" + descripcion: "Seeds de catalogos (especies, razas, vacunas)" + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + schema_completo: "@PROJ_DEF_DB" + entities: "@PROJ_DEF_ENTITIES" + inventario: "orchestration/inventarios/DATABASE_INVENTORY.yml" diff --git a/docs/_quick/QUICK-INDEX.yml b/docs/_quick/QUICK-INDEX.yml new file mode 100644 index 0000000..7292173 --- /dev/null +++ b/docs/_quick/QUICK-INDEX.yml @@ -0,0 +1,107 @@ +# Indice de Navegacion Rapida +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" +fecha_creacion: "2026-01-16" +descripcion: "Navegacion rapida del proyecto clinica-veterinaria" + +# ============================================================================ +# PUNTO DE ENTRADA RAPIDO +# ============================================================================ +inicio_rapido: + descripcion: "Accesos directos a recursos principales" + + documentacion: + principal: "docs/README.md" + mapa: "docs/_MAP.md" + vision: "docs/00-vision-general/" + + definiciones: + indice: "docs/_definitions/_INDEX.yml" + database: "docs/_definitions/DATABASE-SCHEMA.md" + entities: "docs/_definitions/ENTITIES-CATALOG.md" + services: "docs/_definitions/SERVICES-CATALOG.md" + modules: "docs/_definitions/MODULES-CATALOG.md" + + orchestration: + indice: "orchestration/_MAP.md" + inventarios: "orchestration/inventarios/" + trazas: "orchestration/trazas/" + contexto: "orchestration/00-guidelines/CONTEXTO-PROYECTO.md" + + epicas: + mascotas: "docs/01-epicas/VET-001-mascotas-propietarios.md" + vacunacion: "docs/01-epicas/VET-002-vacunacion.md" + desparasitaciones: "docs/01-epicas/VET-003-desparasitaciones.md" + hospitalizacion: "docs/01-epicas/VET-004-hospitalizacion.md" + estetica: "docs/01-epicas/VET-005-estetica.md" + farmacia: "docs/01-epicas/VET-006-farmacia.md" + +# ============================================================================ +# INDICES RAPIDOS +# ============================================================================ +indices_rapidos: + modulos: "QUICK-MODULES.yml" + database: "QUICK-DATABASE.yml" + api: "QUICK-API.yml" + +# ============================================================================ +# ATAJOS POR ROL +# ============================================================================ +por_rol: + veterinario: + - "docs/01-epicas/VET-001-mascotas-propietarios.md" + - "docs/01-epicas/VET-002-vacunacion.md" + - "docs/01-epicas/VET-004-hospitalizacion.md" + - "docs/01-epicas/VET-006-farmacia.md" + + auxiliar_veterinario: + - "docs/01-epicas/VET-004-hospitalizacion.md" + - "docs/02-definicion-modulos/modulo-vacunacion.md" + + recepcionista: + - "docs/01-epicas/VET-001-mascotas-propietarios.md" + - "docs/04-fase-saas/MGN-016-billing/" + + estilista: + - "docs/01-epicas/VET-005-estetica.md" + + backend_developer: + - "docs/_definitions/ENTITIES-CATALOG.md" + - "docs/_definitions/SERVICES-CATALOG.md" + - "orchestration/inventarios/DATABASE_INVENTORY.yml" + + database_admin: + - "docs/_definitions/DATABASE-SCHEMA.md" + - "docs/_quick/QUICK-DATABASE.yml" + - "orchestration/inventarios/DATABASE_INVENTORY.yml" + - "database/schemas/" + + architect: + - "docs/00-vision-general/VISION.md" + - "docs/_definitions/MODULES-CATALOG.md" + - "orchestration/DEPENDENCY-GRAPH.yml" + - "orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md" + +# ============================================================================ +# HERENCIA Y REFERENCIAS +# ============================================================================ +herencia: + nivel: 3 + cadena: + - proyecto: "erp-core" + referencias: "orchestration/00-guidelines/HERENCIA-ERP-CORE.md" + - proyecto: "erp-clinicas" + referencias: "orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md" + dependencias: "orchestration/referencias/DEPENDENCIAS-ERP-CORE.yml" + +# ============================================================================ +# REFERENCIAS A WORKSPACE +# ============================================================================ +workspace: + quick_index: "@WS_QUICK_INDEX" + definitions: "@WS_DEF_*" + catalog: "shared/catalog/" + ws_references: "orchestration/_refs/WS-REFERENCES.yml" diff --git a/docs/_quick/QUICK-MODULES.yml b/docs/_quick/QUICK-MODULES.yml new file mode 100644 index 0000000..21c055c --- /dev/null +++ b/docs/_quick/QUICK-MODULES.yml @@ -0,0 +1,141 @@ +# Navegacion Rapida de Modulos +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" + +# ============================================================================ +# MODULOS POR ESTADO +# ============================================================================ +por_estado: + ddl_completado: + - id: "VET-001" + nombre: "Mascotas y Propietarios" + ruta: "docs/01-epicas/VET-001-mascotas-propietarios.md" + tablas: ["especies", "razas", "propietarios", "mascotas"] + + - id: "VET-002" + nombre: "Vacunacion" + ruta: "docs/01-epicas/VET-002-vacunacion.md" + tablas: ["vacunas", "cartilla_vacunacion"] + + - id: "VET-003" + nombre: "Desparasitaciones" + ruta: "docs/01-epicas/VET-003-desparasitaciones.md" + tablas: ["desparasitaciones"] + + - id: "VET-004" + nombre: "Hospitalizacion" + ruta: "docs/01-epicas/VET-004-hospitalizacion.md" + tablas: ["hospitalizacion", "hospitalizacion_monitoreo"] + + - id: "VET-005" + nombre: "Estetica" + ruta: "docs/01-epicas/VET-005-estetica.md" + tablas: ["estetica"] + + - id: "VET-006" + nombre: "Farmacia" + ruta: "docs/01-epicas/VET-006-farmacia.md" + tablas: ["medicamentos", "medicamentos_lotes", "dispensaciones", "movimientos_farmacia", "bitacora_controlados"] + + heredados: + - id: "MGN-001" + nombre: "Authentication" + origen: "erp-core" + + - id: "CLN-001" + nombre: "Doctors" + origen: "erp-clinicas" + + - id: "CLN-002" + nombre: "Appointments" + origen: "erp-clinicas" + + - id: "CLN-003" + nombre: "Consultations" + origen: "erp-clinicas" + nota: "Extendido con mascota_id" + + planificado: + - id: "MGN-016" + nombre: "Billing" + ruta: "docs/04-fase-saas/MGN-016-billing/" + + - id: "MGN-020" + nombre: "AI Integration" + ruta: "docs/05-fase-ia/MGN-020-ai-integration/" + + - id: "MGN-022" + nombre: "MCP Server" + ruta: "docs/05-fase-ia/MGN-022-mcp-server/" + +# ============================================================================ +# MODULOS POR CATEGORIA +# ============================================================================ +por_categoria: + core_veterinaria: + descripcion: "Modulos base especificos de veterinaria" + modulos: + - { id: "VET-001", nombre: "Mascotas y Propietarios", estado: "ddl_completado" } + - { id: "VET-002", nombre: "Vacunacion", estado: "ddl_completado" } + - { id: "VET-003", nombre: "Desparasitaciones", estado: "ddl_completado" } + + servicios_clinicos: + descripcion: "Servicios clinicos veterinarios" + modulos: + - { id: "VET-004", nombre: "Hospitalizacion", estado: "ddl_completado" } + - { id: "VET-005", nombre: "Estetica", estado: "ddl_completado" } + + farmacia_inventario: + descripcion: "Gestion de medicamentos e inventario" + modulos: + - { id: "VET-006", nombre: "Farmacia", estado: "ddl_completado" } + + saas: + descripcion: "Capacidades SaaS" + modulos: + - { id: "MGN-016", nombre: "Billing", estado: "draft" } + - { id: "MGN-017", nombre: "Plans", estado: "draft" } + - { id: "MGN-018", nombre: "Webhooks", estado: "draft" } + - { id: "MGN-019", nombre: "Feature Flags", estado: "draft" } + + inteligencia_artificial: + descripcion: "Modulos de IA" + modulos: + - { id: "MGN-020", nombre: "AI Integration", estado: "draft" } + - { id: "MGN-021", nombre: "WhatsApp Business", estado: "draft" } + - { id: "MGN-022", nombre: "MCP Server", estado: "draft" } + +# ============================================================================ +# BUSQUEDA RAPIDA +# ============================================================================ +busqueda: + por_prefijo: + VET: "Modulo veterinaria especifico" + CLN: "Modulo heredado de erp-clinicas" + MGN: "Modulo generico compartido" + + por_archivo: + especificacion: "VET-*.md" + definicion_modulo: "modulo-*.md" + + por_tabla: + mascotas: "VET-001" + propietarios: "VET-001" + vacunas: "VET-002" + cartilla_vacunacion: "VET-002" + desparasitaciones: "VET-003" + hospitalizacion: "VET-004" + estetica: "VET-005" + medicamentos: "VET-006" + dispensaciones: "VET-006" + +# ============================================================================ +# REFERENCIAS +# ============================================================================ +referencias: + catalogo_completo: "@PROJ_DEF_MODULES" + indice_general: "docs/_MAP.md" + inventario_bd: "orchestration/inventarios/DATABASE_INVENTORY.yml" diff --git a/orchestration/DEPENDENCY-GRAPH.yml b/orchestration/DEPENDENCY-GRAPH.yml new file mode 100644 index 0000000..4a2ae89 --- /dev/null +++ b/orchestration/DEPENDENCY-GRAPH.yml @@ -0,0 +1,193 @@ +# Grafo de Dependencias del Proyecto +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# DEPENDENCIAS EXTERNAS (NPM, etc.) +# ============================================================================ +dependencias_externas: + backend: + framework: "NestJS" + version: "^10.0.0" + estado: "planificado" + principales: + - nombre: "@nestjs/core" + version: "^10.0.0" + uso: "Framework core" + - nombre: "@nestjs/typeorm" + version: "^10.0.0" + uso: "ORM" + - nombre: "typeorm" + version: "^0.3.0" + uso: "ORM para PostgreSQL" + - nombre: "@nestjs/jwt" + version: "^10.0.0" + uso: "Autenticacion JWT" + + frontend: + framework: "React" + version: "^18.0.0" + estado: "planificado" + principales: + - nombre: "react" + version: "^18.0.0" + - nombre: "react-router-dom" + version: "^6.0.0" + - nombre: "zustand" + version: "^4.0.0" + uso: "State management" + + database: + tipo: "PostgreSQL" + version: "15+" + orm: "TypeORM" + estado: "activo" + +# ============================================================================ +# DEPENDENCIAS INTERNAS (Entre modulos del proyecto) +# ============================================================================ +dependencias_internas: + modulos: + VET-001_mascotas: + depende_de: + - "MGN-002 (Tenants)" + dependientes: + - "VET-002 (Vacunacion)" + - "VET-003 (Desparasitaciones)" + - "VET-004 (Hospitalizacion)" + - "VET-005 (Estetica)" + - "VET-006 (Farmacia)" + + VET-002_vacunacion: + depende_de: + - "VET-001 (Mascotas)" + dependientes: [] + + VET-003_desparasitaciones: + depende_de: + - "VET-001 (Mascotas)" + dependientes: [] + + VET-004_hospitalizacion: + depende_de: + - "VET-001 (Mascotas)" + - "CLN-003 (Consultations)" + dependientes: [] + + VET-005_estetica: + depende_de: + - "VET-001 (Mascotas)" + dependientes: [] + + VET-006_farmacia: + depende_de: + - "VET-001 (Mascotas)" + - "CLN-003 (Consultations)" + dependientes: [] + +# ============================================================================ +# DEPENDENCIAS DE WORKSPACE +# ============================================================================ +dependencias_workspace: + definiciones: + - "@WS_DEF_CCA" + - "@WS_DEF_CAPVED" + - "@WS_DEF_VAL_BE" + - "@WS_DEF_VAL_FE" + - "@WS_DEF_VAL_DDL" + + catalogos: + - "shared/catalog/auth/" + - "shared/catalog/multi-tenancy/" + - "shared/catalog/notifications/" + +# ============================================================================ +# DEPENDENCIAS DE OTROS PROYECTOS (Herencia) +# ============================================================================ +dependencias_proyectos: + - proyecto: "erp-core" + tipo: "herencia indirecta (via erp-clinicas)" + nivel: 1 + modulos: + - "MGN-001 (Authentication)" + - "MGN-002 (Tenants)" + - "MGN-003 (Users)" + - "MGN-004 (Audit)" + + - proyecto: "erp-clinicas" + tipo: "herencia directa" + nivel: 2 + modulos: + - "CLN-001 (Doctors)" + - "CLN-002 (Appointments)" + - "CLN-003 (Consultations)" + +# ============================================================================ +# GRAFO VISUAL +# ============================================================================ +grafo: + formato: "mermaid" + diagrama: | + graph TD + subgraph "erp-core (Nivel 1)" + AUTH[MGN-001 Auth] + TENANTS[MGN-002 Tenants] + USERS[MGN-003 Users] + end + + subgraph "erp-clinicas (Nivel 2)" + DOCTORS[CLN-001 Doctors] + APPTS[CLN-002 Appointments] + CONSULT[CLN-003 Consultations] + end + + subgraph "clinica-veterinaria (Nivel 3)" + MASC[VET-001 Mascotas] + VAC[VET-002 Vacunacion] + DESP[VET-003 Desparasitaciones] + HOSP[VET-004 Hospitalizacion] + EST[VET-005 Estetica] + FARM[VET-006 Farmacia] + end + + %% Herencia + AUTH --> DOCTORS + TENANTS --> DOCTORS + DOCTORS --> MASC + CONSULT --> HOSP + CONSULT --> FARM + + %% Dependencias internas + MASC --> VAC + MASC --> DESP + MASC --> HOSP + MASC --> EST + MASC --> FARM + +# ============================================================================ +# MATRIZ DE DEPENDENCIAS INTERNAS +# ============================================================================ +matriz: + filas: ["VET-001", "VET-002", "VET-003", "VET-004", "VET-005", "VET-006"] + columnas: ["VET-001", "VET-002", "VET-003", "VET-004", "VET-005", "VET-006", "CLN-003"] + datos: + VET-001: ["-", "", "", "", "", "", ""] + VET-002: ["X", "-", "", "", "", "", ""] + VET-003: ["X", "", "-", "", "", "", ""] + VET-004: ["X", "", "", "-", "", "", "X"] + VET-005: ["X", "", "", "", "-", "", ""] + VET-006: ["X", "", "", "", "", "-", "X"] + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + total_dependencias_externas: 8 + total_dependencias_internas: 7 + total_dependencias_workspace: 5 + total_dependencias_proyectos: 2 + ultima_actualizacion: "2026-01-16" diff --git a/orchestration/TRACEABILITY.yml b/orchestration/TRACEABILITY.yml new file mode 100644 index 0000000..8381ca5 --- /dev/null +++ b/orchestration/TRACEABILITY.yml @@ -0,0 +1,285 @@ +# Trazabilidad del Proyecto +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# TRAZABILIDAD MODULO <-> OBJETOS +# ============================================================================ +trazabilidad_modulos: + VET-001: + nombre: "Mascotas y Propietarios" + documentacion: + especificacion: "docs/01-epicas/VET-001-mascotas-propietarios.md" + definicion_modulo: "docs/02-definicion-modulos/modulo-mascotas.md" + + objetos_bd: + tablas: + - "veterinaria.especies" + - "veterinaria.razas" + - "veterinaria.propietarios" + - "veterinaria.mascotas" + schemas: ["veterinaria"] + enums: ["sexo_animal"] + + objetos_backend: + entities: [] # Pendiente implementacion + services: [] # Pendiente implementacion + controllers: [] # Pendiente implementacion + + objetos_frontend: + componentes: [] # Pendiente implementacion + stores: [] + hooks: [] + + VET-002: + nombre: "Vacunacion" + documentacion: + especificacion: "docs/01-epicas/VET-002-vacunacion.md" + definicion_modulo: "docs/02-definicion-modulos/modulo-vacunacion.md" + + objetos_bd: + tablas: + - "veterinaria.vacunas" + - "veterinaria.cartilla_vacunacion" + schemas: ["veterinaria"] + + objetos_backend: + entities: [] + services: [] + controllers: [] + + VET-003: + nombre: "Desparasitaciones" + documentacion: + especificacion: "docs/01-epicas/VET-003-desparasitaciones.md" + + objetos_bd: + tablas: + - "veterinaria.desparasitaciones" + schemas: ["veterinaria"] + + objetos_backend: + entities: [] + services: [] + + VET-004: + nombre: "Hospitalizacion" + documentacion: + especificacion: "docs/01-epicas/VET-004-hospitalizacion.md" + + objetos_bd: + tablas: + - "veterinaria.hospitalizacion" + - "veterinaria.hospitalizacion_monitoreo" + schemas: ["veterinaria"] + enums: ["estado_hospitalizacion"] + + objetos_backend: + entities: [] + services: [] + + VET-005: + nombre: "Estetica" + documentacion: + especificacion: "docs/01-epicas/VET-005-estetica.md" + + objetos_bd: + tablas: + - "veterinaria.estetica" + schemas: ["veterinaria"] + + objetos_backend: + entities: [] + services: [] + + VET-006: + nombre: "Farmacia" + documentacion: + especificacion: "docs/01-epicas/VET-006-farmacia.md" + + objetos_bd: + tablas: + - "veterinaria.medicamentos" + - "veterinaria.medicamentos_lotes" + - "veterinaria.dispensaciones" + - "veterinaria.movimientos_farmacia" + - "veterinaria.bitacora_controlados" + schemas: ["veterinaria"] + enums: + - "categoria_medicamento" + - "tipo_movimiento_farmacia" + - "fraccion_controlada" + funciones: + - "get_lotes_proximos_caducar" + - "get_medicamentos_stock_bajo" + - "seleccionar_lote_fefo" + triggers: + - "trg_actualizar_stock" + - "trg_registrar_dispensacion" + + objetos_backend: + entities: [] + services: [] + +# ============================================================================ +# MATRIZ DE COBERTURA +# ============================================================================ +cobertura: + total_modulos: 6 + con_documentacion: 6 + con_ddl: 6 + con_backend: 0 + con_frontend: 0 + con_tests: 0 + con_trazabilidad_completa: 0 + + detalle: + VET-001: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + + VET-002: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + + VET-003: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + + VET-004: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + + VET-005: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + + VET-006: + documentacion: true + ddl: true + backend: false + frontend: false + tests: false + +# ============================================================================ +# REFERENCIAS CRUZADAS +# ============================================================================ +referencias_cruzadas: + por_tabla: + mascotas: + modulo: "VET-001" + documentos: + - "docs/01-epicas/VET-001-mascotas-propietarios.md" + - "docs/02-definicion-modulos/modulo-mascotas.md" + - "docs/_definitions/DATABASE-SCHEMA.md" + dependientes: + - "cartilla_vacunacion" + - "desparasitaciones" + - "hospitalizacion" + - "estetica" + - "dispensaciones" + + hospitalizacion: + modulo: "VET-004" + documentos: + - "docs/01-epicas/VET-004-hospitalizacion.md" + - "docs/_definitions/DATABASE-SCHEMA.md" + dependientes: + - "hospitalizacion_monitoreo" + + medicamentos: + modulo: "VET-006" + documentos: + - "docs/01-epicas/VET-006-farmacia.md" + - "docs/_definitions/DATABASE-SCHEMA.md" + dependientes: + - "medicamentos_lotes" + - "dispensaciones" + - "movimientos_farmacia" + - "bitacora_controlados" + +# ============================================================================ +# IMPACTO DE CAMBIOS +# ============================================================================ +impacto: + mascotas: + tipo: "tabla" + impacta: + tablas: + - "cartilla_vacunacion" + - "desparasitaciones" + - "hospitalizacion" + - "estetica" + - "dispensaciones" + entities: [] # Pendiente + services: [] # Pendiente + modulos: + - "VET-002" + - "VET-003" + - "VET-004" + - "VET-005" + - "VET-006" + + medicamentos: + tipo: "tabla" + impacta: + tablas: + - "medicamentos_lotes" + - "dispensaciones" + - "movimientos_farmacia" + - "bitacora_controlados" + entities: [] + services: [] + modulos: + - "VET-006" + +# ============================================================================ +# HISTORIAL DE CAMBIOS +# ============================================================================ +historial: + - fecha: "2026-01-04" + tipo: "creacion" + descripcion: "DDL inicial schema veterinaria" + autor: "Sprint 7" + modulos: ["VET-001", "VET-002", "VET-003", "VET-004", "VET-005"] + + - fecha: "2026-01-07" + tipo: "agregado" + descripcion: "DDL modulo farmacia (VET-006)" + autor: "Sprint 9" + modulos: ["VET-006"] + + - fecha: "2026-01-16" + tipo: "documentacion" + descripcion: "Creacion estructura _definitions/ y _quick/" + autor: "Migracion documentacion" + modulos: ["VET-001", "VET-002", "VET-003", "VET-004", "VET-005", "VET-006"] + +# ============================================================================ +# ESTADISTICAS +# ============================================================================ +estadisticas: + modulos_mapeados: 6 + tablas_mapeadas: 15 + entities_mapeadas: 0 + documentos_referenciados: 12 + ultima_actualizacion: "2026-01-16" diff --git a/orchestration/_refs/WS-REFERENCES.yml b/orchestration/_refs/WS-REFERENCES.yml new file mode 100644 index 0000000..ed5af59 --- /dev/null +++ b/orchestration/_refs/WS-REFERENCES.yml @@ -0,0 +1,191 @@ +# Referencias a Workspace +# clinica-veterinaria +# Creado: 2026-01-16 + +version: "1.0.0" +proyecto: "clinica-veterinaria" +fecha_creacion: "2026-01-16" + +# ============================================================================ +# REFERENCIAS A DEFINICIONES GLOBALES +# ============================================================================ +definiciones_workspace: + protocolos: + CCA: + alias: "@WS_DEF_CCA" + archivo: "orchestration/_definitions/protocols/CCA-PROTOCOL.md" + uso: "Protocolo de Carga de Contexto Automatica" + + CCA_LIGHT: + alias: "@WS_DEF_CCA_LIGHT" + archivo: "orchestration/_definitions/protocols/CCA-LIGHT.md" + uso: "Version ligera para subagentes" + + CAPVED: + alias: "@WS_DEF_CAPVED" + archivo: "orchestration/directivas/principios/PRINCIPIO-CAPVED.md" + uso: "Ciclo de vida de tareas" + + validaciones: + backend: + alias: "@WS_DEF_VAL_BE" + archivo: "orchestration/_definitions/validations/VALIDATION-BACKEND.md" + comandos: ["npm run build", "npm run lint", "npm run test"] + + frontend: + alias: "@WS_DEF_VAL_FE" + archivo: "orchestration/_definitions/validations/VALIDATION-FRONTEND.md" + comandos: ["npm run build", "npm run lint", "npm run typecheck"] + + ddl: + alias: "@WS_DEF_VAL_DDL" + archivo: "orchestration/_definitions/validations/VALIDATION-DDL.md" + + devops: + alias: "@WS_DEF_VAL_DEVOPS" + archivo: "orchestration/_definitions/validations/VALIDATION-DEVOPS.md" + +# ============================================================================ +# REFERENCIAS A NAVEGACION RAPIDA GLOBAL +# ============================================================================ +navegacion_workspace: + indice: + alias: "@WS_QUICK_INDEX" + archivo: "orchestration/_quick/QUICK-INDEX.yml" + + perfiles: + alias: "@WS_QUICK_PERFILES" + archivo: "orchestration/_quick/QUICK-PERFILES.yml" + + directivas: + alias: "@WS_QUICK_DIRECTIVAS" + archivo: "orchestration/_quick/QUICK-DIRECTIVAS.yml" + +# ============================================================================ +# REFERENCIAS A CATALOGO COMPARTIDO +# ============================================================================ +catalogo_compartido: + indice: + alias: "@WS_CATALOG" + archivo: "shared/catalog/CATALOG-INDEX.yml" + + funcionalidades: + auth: "shared/catalog/auth/" + notifications: "shared/catalog/notifications/" + multi_tenancy: "shared/catalog/multi-tenancy/" + +# ============================================================================ +# HERENCIA DE PROYECTO (Nivel 3) +# ============================================================================ +herencia: + padre: "erp-clinicas" + nivel: 3 + tipo: "especializacion" + + cadena_completa: + - proyecto: "erp-core" + nivel: 1 + tipo: "core base" + hereda: + - "Authentication (MGN-001)" + - "Tenants (MGN-002)" + - "Users (MGN-003)" + - "Audit (MGN-004)" + + - proyecto: "erp-clinicas" + nivel: 2 + tipo: "vertical clinicas" + hereda: + - "Doctors (CLN-001)" + - "Appointments (CLN-002)" + - "Consultations (CLN-003)" + + - proyecto: "clinica-veterinaria" + nivel: 3 + tipo: "especializacion veterinaria" + implementa: + - "Mascotas y Propietarios (VET-001)" + - "Vacunacion (VET-002)" + - "Desparasitaciones (VET-003)" + - "Hospitalizacion (VET-004)" + - "Estetica (VET-005)" + - "Farmacia (VET-006)" + + hereda_de: + - proyecto: "erp-clinicas" + tipo: "definiciones + codigo" + definiciones: + - "@ERP_CLINICAS_DEF_DOCTORS" + - "@ERP_CLINICAS_DEF_APPOINTMENTS" + - "@ERP_CLINICAS_DEF_CONSULTATIONS" + + - proyecto: "erp-core" + tipo: "definiciones base" + definiciones: + - "@ERP_CORE_DEF_AUTH" + - "@ERP_CORE_DEF_TENANTS" + - "@ERP_CORE_DEF_USERS" + +# ============================================================================ +# EXTENSIONES ESPECIFICAS +# ============================================================================ +extensiones: + consultations: + origen: "erp-clinicas" + tabla: "clinica.consultations" + columnas_agregadas: + - nombre: "mascota_id" + tipo: "UUID FK" + referencia: "veterinaria.mascotas" + - nombre: "peso_actual" + tipo: "NUMERIC(6,2)" + - nombre: "temperatura" + tipo: "NUMERIC(4,1)" + +# ============================================================================ +# PROPAGACION +# ============================================================================ +propagacion: + recibe_de: + - proyecto: "erp-core" + via: "erp-clinicas" + tipos: ["documentacion", "definiciones"] + + - proyecto: "erp-clinicas" + via: "directo" + tipos: ["documentacion", "definiciones", "codigo"] + + mirror: "shared/mirrors/clinica-veterinaria/" + status: "shared/mirrors/clinica-veterinaria/PROPAGATION-STATUS.yml" + consumidores: [] + +# ============================================================================ +# DEFINICIONES LOCALES +# ============================================================================ +definiciones_locales: + database: "@PROJ_DEF_DB" + entities: "@PROJ_DEF_ENTITIES" + services: "@PROJ_DEF_SERVICES" + modules: "@PROJ_DEF_MODULES" + +# ============================================================================ +# RUTAS IMPORTANTES +# ============================================================================ +rutas: + documentacion: + mapa: "docs/_MAP.md" + definiciones: "docs/_definitions/" + quick: "docs/_quick/" + epicas: "docs/01-epicas/" + + orchestration: + contexto: "orchestration/00-guidelines/CONTEXTO-PROYECTO.md" + inventarios: "orchestration/inventarios/" + trazas: "orchestration/trazas/" + herencia_clinicas: "orchestration/00-guidelines/HERENCIA-ERP-CLINICAS.md" + herencia_core: "orchestration/00-guidelines/HERENCIA-ERP-CORE.md" + + database: + schemas: "database/schemas/" + seeds: "database/seeds/" + inventario: "orchestration/inventarios/DATABASE_INVENTORY.yml"