- 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>
91 lines
4.7 KiB
SQL
91 lines
4.7 KiB
SQL
-- =============================================================
|
|
-- 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';
|