-- Migration v77: LIS — Laboratório (integrado ao prontuário)

CREATE TABLE IF NOT EXISTS `lis_exames` (
  `id`              int(11)      NOT NULL AUTO_INCREMENT,
  `clinica_id`      int(11)      NOT NULL,
  `paciente_id`     int(11)      NOT NULL,
  `internacao_id`   int(11)      DEFAULT NULL,
  `sadt_id`         int(11)      DEFAULT NULL COMMENT 'Vinculado a SADT existente',
  `usuario_solicitante_id` int(11) DEFAULT NULL,
  `usuario_resultado_id`   int(11) DEFAULT NULL,
  `numero_exame`    varchar(20)  DEFAULT NULL,
  `tipo_amostra`    varchar(80)  DEFAULT NULL COMMENT 'Ex: Sangue, Urina, Swab',
  `codigo_exame`    varchar(20)  DEFAULT NULL,
  `nome_exame`      varchar(150) NOT NULL,
  `material`        varchar(80)  DEFAULT NULL,
  `urgente`         tinyint(1)   NOT NULL DEFAULT 0,
  `status`          ENUM('solicitado','coletado','em_analise','resultado_parcial','concluido','cancelado') NOT NULL DEFAULT 'solicitado',
  `resultado`       text         DEFAULT NULL,
  `valor_referencia` text        DEFAULT NULL,
  `unidade`         varchar(30)  DEFAULT NULL,
  `interpretacao`   ENUM('normal','alterado','critico') DEFAULT NULL,
  `laudo`           text         DEFAULT NULL,
  `data_solicitacao` datetime    NOT NULL,
  `data_coleta`      datetime    DEFAULT NULL,
  `data_resultado`   datetime    DEFAULT NULL,
  `observacoes`      text        DEFAULT NULL,
  `deleted_at`       datetime    DEFAULT NULL,
  `created_at`       datetime    DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_lis_clinica`   (`clinica_id`, `status`),
  KEY `idx_lis_paciente`  (`paciente_id`),
  KEY `idx_lis_internacao`(`internacao_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT IGNORE INTO `permissoes` (`chave`, `nome`, `descricao`) VALUES
('lis_view',       'LIS — Visualizar',          'Visualizar exames laboratoriais'),
('lis_solicitar',  'LIS — Solicitar',            'Solicitar exames'),
('lis_resultado',  'LIS — Lançar Resultado',     'Lançar resultados de exames');

INSERT IGNORE INTO `perfil_permissoes` (`perfil_id`, `permissao_id`)
SELECT p.id, pm.id FROM `perfis` p, `permissoes` pm
WHERE p.id IN (1,4) AND pm.chave IN ('lis_view','lis_solicitar','lis_resultado');

INSERT IGNORE INTO `perfil_permissoes` (`perfil_id`, `permissao_id`)
SELECT p.id, pm.id FROM `perfis` p, `permissoes` pm
WHERE p.id IN (7) AND pm.chave IN ('lis_view','lis_solicitar');
