-- ============================================================= -- LIS 06 — Histórico transaccional (solo lectura post-migración) -- Crea: lab_recepciones, lab_relaciones, lab_pagos, lab_pagos_det -- Depende de: lab_pacientes, medicos, lab_empresas -- ============================================================= -- ----------------------------------------------------------- -- Recepciones (equivalente a facturas del legacy) -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_recepciones ( id INT NOT NULL COMMENT 'IDRECEPCION original Firebird', cod_paciente_legacy VARCHAR(20) DEFAULT NULL, paciente_id INT DEFAULT NULL, cod_medico_legacy VARCHAR(20) DEFAULT NULL, medico_id INT UNSIGNED DEFAULT NULL, nit_empresa VARCHAR(20) DEFAULT NULL, subgrupo VARCHAR(100) DEFAULT NULL, fecha_recepcion DATE NOT NULL, hora_inicio TIME DEFAULT NULL, prefijo VARCHAR(5) DEFAULT NULL, num_factura INT DEFAULT NULL, valor_total DECIMAL(12,2) NOT NULL DEFAULT 0, valor_desc DECIMAL(12,2) NOT NULL DEFAULT 0, diag_ppal VARCHAR(10) DEFAULT NULL COMMENT 'Código diagnóstico CIE-10', tipo_usuario VARCHAR(10) DEFAULT NULL, autorizacion VARCHAR(50) DEFAULT NULL, usuario VARCHAR(50) DEFAULT NULL COMMENT 'Login del operador en Firebird', es_historico TINYINT(1) NOT NULL DEFAULT 1, migrado_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_paciente (paciente_id), KEY idx_fecha (fecha_recepcion), KEY idx_empresa (nit_empresa), KEY idx_factura (prefijo, num_factura) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Recepciones históricas — solo lectura, migrado de Firebird'; -- ----------------------------------------------------------- -- Exámenes por recepción -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_relaciones ( recepcion_id INT NOT NULL, cod_examen_legacy VARCHAR(20) NOT NULL, exam_tipo_id INT UNSIGNED DEFAULT NULL, precio DECIMAL(12,2) NOT NULL DEFAULT 0, fecha_reportado DATE DEFAULT NULL, reportado TINYINT(1) NOT NULL DEFAULT 0, reportado_por VARCHAR(50) DEFAULT NULL, validado TINYINT(1) NOT NULL DEFAULT 0, usuario_valida VARCHAR(50) DEFAULT NULL, fecha_valida DATE DEFAULT NULL, PRIMARY KEY (recepcion_id, cod_examen_legacy), KEY idx_exam_tipo (exam_tipo_id), CONSTRAINT fk_rel_recepcion FOREIGN KEY (recepcion_id) REFERENCES lab_recepciones (id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Exámenes por recepción histórica — replica RELACION Firebird'; -- ----------------------------------------------------------- -- Pagos -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_pagos ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, numcaja_legacy INT NOT NULL UNIQUE COMMENT 'NUMCAJA original Firebird', recepcion_id INT NOT NULL, valor DECIMAL(12,2) NOT NULL, fecha DATE NOT NULL, usuario VARCHAR(50) DEFAULT NULL, PRIMARY KEY (id), KEY idx_recepcion (recepcion_id), CONSTRAINT fk_pago_recep FOREIGN KEY (recepcion_id) REFERENCES lab_recepciones (id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Pagos históricos — replica PAGOS Firebird'; -- ----------------------------------------------------------- -- Detalle de formas de pago por transacción -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_pagos_det ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, pago_id INT UNSIGNED NOT NULL, tipo_pago VARCHAR(30) NOT NULL COMMENT 'efectivo, cheque, tarjeta, etc.', valor DECIMAL(12,2) NOT NULL, num_doc VARCHAR(50) DEFAULT NULL, PRIMARY KEY (id), KEY idx_pago (pago_id), CONSTRAINT fk_pagdet_pago FOREIGN KEY (pago_id) REFERENCES lab_pagos (id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Detalle de formas de pago — replica PAGOS_DET Firebird';