- Migraciones LIS 01-08: schema completo del nuevo LIS (secciones, protocolos, ítems de resultado, perfiles, tarifas, empresas, histórico transaccional) - ETL Firebird→MySQL: script CLI con conversión WIN1252→UTF-8, batches de 500, resolución de FKs y deduplicación de pacientes - turnero_muestras: tracking pendiente/recibida/rechazada por tipo de tubo - lugar.php: widget de recepción de muestras (solo tipo=muestras) - update_muestra_estado.php: API para marcar estado de muestra - create_solicitud.php: auto-crea muestras al guardar solicitud - get_consentimientos.php: incluye muestras[] en el response - 6 vistas SQL: v_muestras_hoy, v_recepcion_completa, v_examen_precio, etc. - numero_orden en encabezado del formulario firmado (D-/F- color diferenciado) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
98 lines
4.8 KiB
SQL
98 lines
4.8 KiB
SQL
-- =============================================================
|
|
-- LIS 05 — Motor de precios y convenios
|
|
-- Crea: lab_tarifas_id, lab_tarifas, lab_empresas,
|
|
-- lab_empresa_subgrupos, lab_examenes_empresa
|
|
-- =============================================================
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Catálogo de tarifas
|
|
-- -----------------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS lab_tarifas_id (
|
|
id INT NOT NULL,
|
|
nombre VARCHAR(150) NOT NULL,
|
|
tarifa_origen INT DEFAULT NULL
|
|
COMMENT 'Si != NULL, esta tarifa = tarifa_origen * (1 + porcentaje/100)',
|
|
porcentaje DECIMAL(8,4) NOT NULL DEFAULT 0
|
|
COMMENT '0 = precios fijos, >0 = derivada porcentualmente',
|
|
PRIMARY KEY (id),
|
|
KEY idx_origen (tarifa_origen)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Catálogo de tarifas — replica TARIFAID Firebird';
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Precios por examen y tarifa
|
|
-- -----------------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS lab_tarifas (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
cod_examen_legacy VARCHAR(20) NOT NULL COMMENT 'CODIGO original Firebird para trazabilidad',
|
|
exam_tipo_id INT UNSIGNED DEFAULT NULL,
|
|
tarifa_id INT NOT NULL,
|
|
valor DECIMAL(12,2) NOT NULL,
|
|
recargo_urg DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
recargo_fes DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
recargo_esp DECIMAL(12,2) NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uq_examen_tarifa (exam_tipo_id, tarifa_id),
|
|
KEY idx_legacy (cod_examen_legacy),
|
|
KEY idx_tarifa (tarifa_id),
|
|
CONSTRAINT fk_tar_tarifa FOREIGN KEY (tarifa_id)
|
|
REFERENCES lab_tarifas_id (id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Precios por examen y tarifa — replica TARIFA Firebird';
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Empresas / convenios
|
|
-- -----------------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS lab_empresas (
|
|
nit VARCHAR(20) NOT NULL,
|
|
nombre VARCHAR(200) NOT NULL,
|
|
razon_social VARCHAR(200) DEFAULT NULL,
|
|
tarifa_id INT DEFAULT NULL,
|
|
descuento_pct DECIMAL(8,4) NOT NULL DEFAULT 0,
|
|
codigo_eps VARCHAR(20) DEFAULT NULL,
|
|
tipo_usuario VARCHAR(10) DEFAULT NULL COMMENT 'Tipo usuario para facturación',
|
|
tipo_usuario_sispro VARCHAR(10) DEFAULT NULL,
|
|
cod_contrato VARCHAR(50) DEFAULT NULL,
|
|
cod_tercero VARCHAR(50) DEFAULT NULL,
|
|
centro_costo VARCHAR(50) DEFAULT NULL,
|
|
req_autoriza TINYINT(1) NOT NULL DEFAULT 0
|
|
COMMENT '1 = exige número de autorización en recepción',
|
|
activa TINYINT(1) NOT NULL DEFAULT 1,
|
|
PRIMARY KEY (nit),
|
|
KEY idx_tarifa (tarifa_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Empresas y convenios — replica EMPRESA Firebird';
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Subgrupos de empresa
|
|
-- -----------------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS lab_empresa_subgrupos (
|
|
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
nit_empresa VARCHAR(20) NOT NULL,
|
|
subgrupo VARCHAR(100) NOT NULL,
|
|
tarifa_id INT DEFAULT NULL,
|
|
ref_subgrupo VARCHAR(50) DEFAULT NULL,
|
|
cod_contrato VARCHAR(50) DEFAULT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uq_empresa_sub (nit_empresa, subgrupo),
|
|
KEY idx_tarifa (tarifa_id),
|
|
CONSTRAINT fk_esub_empresa FOREIGN KEY (nit_empresa)
|
|
REFERENCES lab_empresas (nit) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Subgrupos por empresa — replica EMPRESA_SUB Firebird';
|
|
|
|
-- -----------------------------------------------------------
|
|
-- Códigos de examen alternos por empresa (para interfaces)
|
|
-- -----------------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS lab_examenes_empresa (
|
|
nit_empresa VARCHAR(20) NOT NULL,
|
|
cod_examen_legacy VARCHAR(20) NOT NULL,
|
|
exam_tipo_id INT UNSIGNED DEFAULT NULL,
|
|
codigo_empresa VARCHAR(50) NOT NULL,
|
|
PRIMARY KEY (nit_empresa, cod_examen_legacy),
|
|
KEY idx_exam (exam_tipo_id),
|
|
CONSTRAINT fk_ee_empresa FOREIGN KEY (nit_empresa)
|
|
REFERENCES lab_empresas (nit) ON DELETE CASCADE ON UPDATE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
|
COMMENT='Códigos alternos por empresa — replica EXAMEN_EMP Firebird';
|