Files
whatsapp/migrations/20260704_lis_04_exam_ampliar.sql
Lizandro GuarnizoandClaude Sonnet 4.6 5fedd233f4 feat(lis): migración completa Firebird→MySQL + tracking de muestras en turnero
- 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>
2026-07-04 21:44:22 -05:00

51 lines
2.6 KiB
SQL

-- =============================================================
-- LIS 04 — Ampliar exam_tipos y lab_pacientes con campos legacy
-- Depende de: lab_tipos_muestra (LIS 01), lab_protocolos (LIS 02)
-- =============================================================
-- -----------------------------------------------------------
-- exam_tipos: agregar campos del EXAMEN Firebird
-- -----------------------------------------------------------
ALTER TABLE exam_tipos
ADD COLUMN IF NOT EXISTS codigo_legacy VARCHAR(20) DEFAULT NULL
COMMENT 'Código original Firebird (CODIGO). Usado para ETL y mapeos.',
ADD COLUMN IF NOT EXISTS cups VARCHAR(20) DEFAULT NULL
COMMENT 'Código CUPS colombiano',
ADD COLUMN IF NOT EXISTS cod_protocolo VARCHAR(20) DEFAULT NULL
COMMENT 'FK lab_protocolos.codigo',
ADD COLUMN IF NOT EXISTS tipo_muestra VARCHAR(20) DEFAULT NULL
COMMENT 'FK lab_tipos_muestra.codigo',
ADD COLUMN IF NOT EXISTS nivel TINYINT DEFAULT NULL
COMMENT 'Nivel de complejidad (1/2/3)',
ADD COLUMN IF NOT EXISTS abreviatura VARCHAR(30) DEFAULT NULL,
ADD COLUMN IF NOT EXISTS seremite TINYINT(1) NOT NULL DEFAULT 0
COMMENT '1 = se remite a laboratorio externo',
ADD COLUMN IF NOT EXISTS serecibe VARCHAR(50) DEFAULT NULL
COMMENT 'Nombre del laboratorio donde se recibe si seremite=1';
-- Índice único para buscar por código legacy durante el ETL
ALTER TABLE exam_tipos
ADD UNIQUE KEY IF NOT EXISTS uq_codigo_legacy (codigo_legacy);
-- FK suave (no FK real para facilitar carga masiva del ETL)
ALTER TABLE exam_tipos
ADD KEY IF NOT EXISTS idx_cod_protocolo (cod_protocolo),
ADD KEY IF NOT EXISTS idx_tipo_muestra (tipo_muestra);
-- -----------------------------------------------------------
-- lab_pacientes: agregar campos del PACIENTE Firebird
-- -----------------------------------------------------------
ALTER TABLE lab_pacientes
ADD COLUMN IF NOT EXISTS codigo_legacy VARCHAR(20) DEFAULT NULL
COMMENT 'CODPAC Firebird',
ADD COLUMN IF NOT EXISTS codetnia VARCHAR(10) DEFAULT NULL
COMMENT 'Código de etnia (RIPS/SISPRO)',
ADD COLUMN IF NOT EXISTS tipores VARCHAR(10) DEFAULT NULL
COMMENT 'Tipo de residencia (RIPS/SISPRO)',
ADD COLUMN IF NOT EXISTS ocupacion VARCHAR(100) DEFAULT NULL,
ADD COLUMN IF NOT EXISTS es_historico TINYINT(1) NOT NULL DEFAULT 0
COMMENT '1 = migrado solo de Firebird, sin cuenta en nuevo sistema';
ALTER TABLE lab_pacientes
ADD KEY IF NOT EXISTS idx_codigo_legacy (codigo_legacy);