# Herencia de Base de Datos - ERP Core -> Clínicas **Fecha:** 2025-12-08 **Versión:** 1.0 **Vertical:** Clínicas **Nivel:** 2B.2 --- ## RESUMEN La vertical de Clínicas hereda los schemas base del ERP Core y extiende con schemas específicos del dominio de gestión médica y expediente clínico. **Ubicación DDL Core:** `apps/erp-core/database/ddl/` --- ## ARQUITECTURA DE HERENCIA ``` ┌─────────────────────────────────────────────────────────────────┐ │ ERP CORE (Base) │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ auth │ │ core │ │financial│ │inventory│ │ hr │ │ │ │ 26 tbl │ │ 12 tbl │ │ 15 tbl │ │ 15 tbl │ │ 6 tbl │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ sales │ │analytics│ │ system │ │ crm │ │ │ │ 6 tbl │ │ 5 tbl │ │ 10 tbl │ │ 5 tbl │ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ TOTAL: ~100 tablas heredadas │ └─────────────────────────────────────────────────────────────────┘ │ │ HEREDA ▼ ┌─────────────────────────────────────────────────────────────────┐ │ CLÍNICAS (Extensiones) │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ medical │ │ appointments │ │ patients │ │ │ │ (expediente) │ │ (citas) │ │ (pacientes) │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ │ │ EXTENSIONES: ~35 tablas (planificadas) │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## SCHEMAS HEREDADOS DEL CORE | Schema | Tablas | Uso en Clínicas | |--------|--------|-----------------| | `auth` | 26 | Autenticación, usuarios médicos | | `core` | 12 | Partners (pacientes), catálogos | | `financial` | 15 | Facturas de servicios médicos | | `inventory` | 15 | Medicamentos, insumos | | `hr` | 6 | Personal médico | | `sales` | 6 | Servicios médicos | | `crm` | 5 | Seguimiento de pacientes | | `analytics` | 5 | Estadísticas médicas | | `system` | 10 | Recordatorios, notificaciones | **Total heredado:** ~100 tablas --- ## SCHEMAS ESPECÍFICOS DE CLÍNICAS (Planificados) ### 1. Schema `patients` (estimado 10+ tablas) **Propósito:** Gestión de pacientes ```sql -- Tablas principales planificadas: patients.patients -- Pacientes (extiende core.partners) patients.patient_contacts -- Contactos de emergencia patients.insurance_policies -- Pólizas de seguro patients.medical_history -- Antecedentes médicos patients.allergies -- Alergias patients.family_history -- Antecedentes familiares ``` ### 2. Schema `medical` (estimado 15+ tablas) **Propósito:** Expediente clínico electrónico ```sql -- Tablas principales planificadas: medical.consultations -- Consultas médicas medical.diagnoses -- Diagnósticos (CIE-10) medical.prescriptions -- Recetas médicas medical.prescription_lines -- Medicamentos recetados medical.vital_signs -- Signos vitales medical.lab_results -- Resultados de laboratorio medical.imaging_studies -- Estudios de imagen medical.clinical_notes -- Notas clínicas medical.treatments -- Tratamientos ``` ### 3. Schema `appointments` (estimado 10+ tablas) **Propósito:** Gestión de citas ```sql -- Tablas principales planificadas: appointments.doctors -- Médicos appointments.specialties -- Especialidades appointments.doctor_schedules -- Horarios de médicos appointments.consulting_rooms -- Consultorios appointments.appointments -- Citas appointments.appointment_types -- Tipos de cita appointments.reminders -- Recordatorios ``` --- ## SPECS DEL CORE APLICABLES **Documento detallado:** `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` ### Correcciones de DDL Core (2025-12-08) El DDL del ERP-Core fue corregido para resolver FK inválidas: 1. **stock_valuation_layers**: Campos `journal_entry_id` y `journal_entry_line_id` (antes `account_move_*`) 2. **stock_move_consume_rel**: Nueva tabla de trazabilidad (antes `move_line_consume_rel`) 3. **category_stock_accounts**: FK corregida a `core.product_categories` 4. **product_categories**: ALTERs ahora apuntan a schema `core` ### SPECS Obligatorias | Spec Core | Aplicación en Clínicas | SP | Estado | |-----------|----------------------|----:|--------| | SPEC-SISTEMA-SECUENCIAS | Foliado de expedientes y citas | 8 | ✅ DDL LISTO | | SPEC-SEGURIDAD-API-KEYS-PERMISOS | Control de acceso a expedientes | 31 | ✅ DDL LISTO | | SPEC-INTEGRACION-CALENDAR | Agenda de citas médicas | 8 | PENDIENTE | | SPEC-RRHH-EVALUACIONES-SKILLS | Credenciales médicas | 26 | ✅ DDL LISTO | | SPEC-MAIL-THREAD-TRACKING | Historial de comunicación | 13 | ✅ DDL LISTO | | SPEC-WIZARD-TRANSIENT-MODEL | Wizards de receta y referencia | 8 | PENDIENTE | | SPEC-FIRMA-ELECTRONICA-NOM151 | Firma de expedientes clínicos | 13 | PENDIENTE | | SPEC-TWO-FACTOR-AUTHENTICATION | Seguridad de acceso | 13 | ✅ DDL LISTO | | SPEC-OAUTH2-SOCIAL-LOGIN | Portal de pacientes | 8 | ✅ DDL LISTO | ### SPECS Opcionales | Spec Core | Decisión | Razón | |-----------|----------|-------| | SPEC-VALORACION-INVENTARIO | EVALUAR | Solo si hay farmacia interna | | SPEC-PRICING-RULES | EVALUAR | Para paquetes de servicios | | SPEC-TAREAS-RECURRENTES | EVALUAR | Para citas periódicas | ### SPECS No Aplican | Spec Core | Razón | |-----------|-------| | SPEC-PORTAL-PROVEEDORES | No hay compras complejas | | SPEC-BLANKET-ORDERS | No aplica en servicios médicos | | SPEC-INVENTARIOS-CICLICOS | Solo si hay farmacia grande | | SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN | No hay proyectos de este tipo | ### Cumplimiento Normativo | Norma | Descripción | SPECS Relacionadas | |-------|-------------|-------------------| | NOM-024-SSA3-2012 | Expediente clínico electrónico | SPEC-SEGURIDAD, SPEC-MAIL-THREAD | | LFPDPPP | Protección de datos personales | SPEC-SEGURIDAD, SPEC-2FA | | NOM-004-SSA3-2012 | Expediente clínico | SPEC-FIRMA-ELECTRONICA | --- ## CUMPLIMIENTO NORMATIVO Este sistema debe cumplir con: | Norma | Descripción | Impacto | |-------|-------------|---------| | NOM-024-SSA3-2012 | Expediente clínico electrónico | Estructura de datos | | LFPDPPP | Protección de datos personales | Seguridad y acceso | | NOM-004-SSA3-2012 | Expediente clínico | Contenido mínimo | --- ## ORDEN DE EJECUCIÓN DDL (Futuro) ```bash # PASO 1: Cargar ERP Core (base) cd apps/erp-core/database ./scripts/reset-database.sh --force # PASO 2: Cargar extensiones de Clínicas cd apps/verticales/clinicas/database psql $DATABASE_URL -f init/00-extensions.sql psql $DATABASE_URL -f init/01-create-schemas.sql psql $DATABASE_URL -f init/02-patients-tables.sql psql $DATABASE_URL -f init/03-medical-tables.sql psql $DATABASE_URL -f init/04-appointments-tables.sql ``` --- ## MAPEO DE NOMENCLATURA | Core | Clínicas | |------|----------| | `core.partners` | Pacientes base | | `hr.employees` | Personal médico | | `inventory.products` | Medicamentos, insumos | | `sales.sale_orders` | Servicios médicos | | `financial.invoices` | Facturas de consultas | --- ## REFERENCIAS - ERP Core DDL: `apps/erp-core/database/ddl/` - ERP Core README: `apps/erp-core/database/README.md` - Directivas: `orchestration/directivas/` - Inventarios: `orchestration/inventarios/` --- **Documento de herencia oficial** **Última actualización:** 2025-12-08