-- ============================================================ -- Migration: 20260302_lab_03_ordenes_medicas -- Módulo Administrativo: Órdenes médicas recibidas por WhatsApp -- Vincula una imagen del chat con un paciente y un estado -- ============================================================ CREATE TABLE IF NOT EXISTS `lab_ordenes_medicas` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `paciente_id` INT(11) NOT NULL COMMENT 'FK a lab_pacientes.id', `conversation_id` INT(11) DEFAULT NULL COMMENT 'FK a conversations.id (mensaje con la imagen)', `whatsapp_media_id` VARCHAR(255) DEFAULT NULL COMMENT 'Media ID de WhatsApp para referencia', `local_file` VARCHAR(255) DEFAULT NULL COMMENT 'Ruta local de la imagen de la orden', -- Estado del flujo de revisión `estado` ENUM( 'pendiente', 'en_revision', 'autorizada', 'rechazada', 'en_domicilio', 'completada' ) NOT NULL DEFAULT 'pendiente', -- Datos de la orden médica (ingresados manualmente) `medico_nombre` VARCHAR(150) DEFAULT NULL, `medico_registro` VARCHAR(50) DEFAULT NULL, `fecha_orden` DATE DEFAULT NULL COMMENT 'Fecha que aparece en la orden impresa', `diagnostico` TEXT DEFAULT NULL, `examenes_solicitados` TEXT DEFAULT NULL COMMENT 'Lista de exámenes de la orden', `requiere_ayuno` TINYINT(1) DEFAULT 0, `horas_ayuno` TINYINT(3) DEFAULT NULL, `indicaciones` TEXT DEFAULT NULL, -- Gestión administrativa `revisada_por` INT(11) DEFAULT NULL COMMENT 'FK a admin_users.id', `revisada_at` DATETIME DEFAULT NULL, `autorizada_por` INT(11) DEFAULT NULL COMMENT 'FK a admin_users.id', `autorizada_at` DATETIME DEFAULT NULL, `comentario_revision` TEXT DEFAULT NULL, `notas_admin` TEXT DEFAULT NULL, `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_ord_paciente` (`paciente_id`), KEY `idx_ord_conversation` (`conversation_id`), KEY `idx_ord_estado` (`estado`), KEY `idx_ord_fecha` (`fecha_orden`), KEY `idx_ord_revisada_por` (`revisada_por`), KEY `idx_ord_autorizada` (`autorizada_por`), CONSTRAINT `fk_ord_paciente` FOREIGN KEY (`paciente_id`) REFERENCES `lab_pacientes` (`id`) ON DELETE RESTRICT, CONSTRAINT `fk_ord_conversation` FOREIGN KEY (`conversation_id`) REFERENCES `conversations` (`id`) ON DELETE SET NULL, CONSTRAINT `fk_ord_revisada` FOREIGN KEY (`revisada_por`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL, CONSTRAINT `fk_ord_autorizada` FOREIGN KEY (`autorizada_por`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Órdenes médicas recibidas vía WhatsApp';