Files
whatsapp/migrations/20260302_lab_03_ordenes_medicas.sql
2026-03-10 18:42:51 -05:00

57 lines
3.4 KiB
SQL

-- ============================================================
-- 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';