--- id: MGN-019-fflags-vet title: Sistema de Feature Flags Veterinarios type: Module status: Draft priority: P1 version: 1.0.0 created_date: 2026-01-13 updated_date: 2026-01-13 source: erp-core/MGN-019-feature-flags --- # MGN-019: Sistema de Feature Flags para Clinicas Veterinarias ## Descripcion Sistema propio de feature flags para control granular de funcionalidades veterinarias por clinica y plan. Permite toggle de features sin redeploy, rollout gradual por porcentaje de clinicas, y override manual por clinica. ## Normativas Aplicables - **NOM-064-ZOO-2000**: Features relacionadas con prescripcion - **SENASICA**: Features de reportes oficiales - **Bienestar Animal**: Features de hospitalizacion ## Objetivos - Toggle features veterinarias sin necesidad de redeploy - Flags configurables por clinica y por plan - Gradual rollout (porcentaje de clinicas) - A/B testing de funcionalidades - Override manual por clinica con expiracion opcional ## Feature Flags Veterinarios ### Core - Disponibles en todos los planes | Flag | Descripcion | Default | |------|-------------|---------| | `expediente_digital` | Expediente clinico digital | ON | | `cartilla_vacunacion` | Cartilla de vacunacion digital | ON | | `agenda_citas` | Sistema de citas | ON | | `registro_mascotas` | Registro de pacientes | ON | ### Profesional - Plan Profesional+ | Flag | Descripcion | Default | |------|-------------|---------| | `hospitalizacion` | Modulo de internamiento | OFF (plan < Profesional) | | `laboratorio` | Integracion con laboratorios | OFF (plan < Profesional) | | `whatsapp_notifications` | Notificaciones WhatsApp | OFF (plan < Profesional) | | `control_vacunas` | Recordatorios automaticos de vacunas | OFF (plan < Profesional) | ### Clinica - Plan Clinica+ | Flag | Descripcion | Default | |------|-------------|---------| | `asistente_ia` | Asistente veterinario IA | OFF (plan < Clinica) | | `reportes_avanzados` | Analytics y dashboards | OFF (plan < Clinica) | | `webhooks_outbound` | Webhooks a sistemas externos | OFF (plan < Clinica) | | `telemedicina` | Consultas remotas | OFF (plan < Clinica) | ### Hospital - Plan Hospital | Flag | Descripcion | Default | |------|-------------|---------| | `multi_sucursal` | Gestion multi-sede | OFF (plan < Hospital) | | `api_publica` | Acceso a API REST | OFF (plan < Hospital) | | `custom_branding` | Personalizacion de marca | OFF (plan < Hospital) | | `senasica_integration` | Reportes automaticos SENASICA | OFF (plan < Hospital) | ### Experimentales (Rollout Gradual) | Flag | Descripcion | Rollout % | |------|-------------|-----------| | `nueva_ui_expediente` | Nueva interfaz de expediente | 10% | | `ia_diagnostico_apoyo` | IA de apoyo diagnostico | 5% | | `telemedicina_video` | Videollamadas con propietarios | 15% | | `integracion_wearables` | Collares inteligentes | 0% (beta cerrada) | ## Arquitectura de Evaluacion ``` Request a funcionalidad veterinaria | v +-------------------+ | FeatureFlagService| +-------------------+ | +---> 1. Check override de clinica | | | v (si existe) | Return override value | +---> 2. Check plan de clinica | | | v (si feature en plan) | Return plan value | +---> 3. Check rollout % | | | v | Evaluate by clinic_id hash | v Return final value (ON/OFF) ``` ## Prioridad de Evaluacion 1. **Override de Clinica** - Maxima prioridad, permite excepciones manuales 2. **Features del Plan** - Segun plan contratado por la clinica 3. **Rollout Gradual** - Para features experimentales ## Casos de Uso ### Caso 1: Activar Beta para Clinica Especifica ```yaml # Override para clinica VIP override: clinica_id: "vet-premium-001" flag: "ia_diagnostico_apoyo" value: true expires_at: "2026-03-01" reason: "Beta tester" ``` ### Caso 2: Rollout Gradual de Telemedicina ```yaml # Rollout gradual 15% flag: name: "telemedicina_video" rollout_percentage: 15 target_plans: ["clinica", "hospital"] tracking_enabled: true ``` ### Caso 3: Desactivar Feature por Incidente ```yaml # Kill switch de emergencia flag: name: "integracion_laboratorio_externo" value: false reason: "Incidente API externa - ticket INC-001" disabled_by: "admin@clinica.com" disabled_at: "2026-01-13T10:00:00Z" ``` ## Documentacion del Modulo - [Mapa del Modulo](./_MAP.md) - [Requerimientos](./requerimientos/INDICE-RF-FFLAGS.md) - [Especificaciones](./especificaciones/INDICE-ET-FFLAGS.md) - [Historias de Usuario](./historias-usuario/INDICE-US-FFLAGS.md) - [Trazabilidad](./implementacion/TRACEABILITY.yml) --- *Modulo: MGN-019-feature-flags-vet* *Propagado desde: erp-core/MGN-019-feature-flags* *Adaptado para: Dominio veterinario* *Actualizado: 2026-01-13*