-- ============================================
-- SCRIPT SQL: MÓDULO SOLICITUD DE EXÁMENES
-- Sistema: HC MEDICA
-- Fecha: 2026-01-07
-- ============================================

-- Crear tabla para solicitudes de exámenes médicos
CREATE TABLE IF NOT EXISTS `solicitud_examen` (
  `idsolicitud` int(11) NOT NULL AUTO_INCREMENT,
  `idatencion` int(11) DEFAULT NULL COMMENT 'Referencia a atención (opcional)',
  `idpersona` int(11) NOT NULL COMMENT 'Paciente',
  `tipo` enum('LABORATORIO','IMAGENOLOGIA','ESPECIALIZADO') NOT NULL COMMENT 'Tipo de solicitud',
  `contenido` text NOT NULL COMMENT 'JSON con datos específicos del examen',
  `fecha_emision` date NOT NULL COMMENT 'Fecha de emisión de la solicitud',
  `fecha_registro` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Fecha y hora de creación',
  `firmado` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0=No firmado, 1=Firmado',
  `fecha_firma` datetime DEFAULT NULL COMMENT 'Fecha y hora de firma digital',
  `ruta_pdf_firmado` varchar(255) DEFAULT NULL COMMENT 'Ruta del PDF firmado digitalmente',
  `idempleado` int(11) NOT NULL COMMENT 'Médico que genera la solicitud',
  `idempleado_firma` int(11) DEFAULT NULL COMMENT 'Médico que firma (puede ser el mismo)',
  `estado` enum('borrador','firmado','anulado') NOT NULL DEFAULT 'borrador' COMMENT 'Estado de la solicitud',
  PRIMARY KEY (`idsolicitud`),
  KEY `fk_solicitud_persona` (`idpersona`),
  KEY `fk_solicitud_empleado` (`idempleado`),
  KEY `fk_solicitud_empleado_firma` (`idempleado_firma`),
  KEY `idx_fecha_registro` (`fecha_registro`),
  KEY `idx_estado` (`estado`),
  CONSTRAINT `fk_solicitud_persona` FOREIGN KEY (`idpersona`) REFERENCES `persona` (`idpersona`) ON DELETE CASCADE,
  CONSTRAINT `fk_solicitud_empleado` FOREIGN KEY (`idempleado`) REFERENCES `usuario` (`idusuario`) ON DELETE CASCADE,
  CONSTRAINT `fk_solicitud_empleado_firma` FOREIGN KEY (`idempleado_firma`) REFERENCES `usuario` (`idusuario`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Solicitudes de exámenes médicos complementarios';

-- Mensaje de confirmación
SELECT 'Tabla solicitud_examen creada exitosamente' AS Resultado;
