-- Migration v78: PACS/RIS — Laudos de Imagem

CREATE TABLE IF NOT EXISTS `pacs_laudos` (
  `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,
  `usuario_solicitante_id` int(11) DEFAULT NULL,
  `usuario_laudo_id`       int(11) DEFAULT NULL,
  `numero_exame`    varchar(20)  DEFAULT NULL,
  `modalidade`      ENUM('rx','tc','rm','us','eco','mamografia','densitometria','cintilografia','outros') NOT NULL DEFAULT 'rx',
  `regiao_anatomica` varchar(100) DEFAULT NULL,
  `nome_exame`      varchar(150) NOT NULL,
  `urgente`         tinyint(1)   NOT NULL DEFAULT 0,
  `status`          ENUM('solicitado','agendado','realizado','laudado','entregue','cancelado') NOT NULL DEFAULT 'solicitado',
  `laudo`           text         DEFAULT NULL,
  `conclusao`       text         DEFAULT NULL,
  `arquivo_imagem`  varchar(255) DEFAULT NULL COMMENT 'Caminho do arquivo DICOM ou PDF',
  `data_solicitacao` datetime    NOT NULL,
  `data_realizacao`  datetime    DEFAULT NULL,
  `data_laudo`       datetime    DEFAULT NULL,
  `observacoes`      text        DEFAULT NULL,
  `deleted_at`       datetime    DEFAULT NULL,
  `created_at`       datetime    DEFAULT current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `idx_pacs_clinica`   (`clinica_id`, `status`),
  KEY `idx_pacs_paciente`  (`paciente_id`),
  KEY `idx_pacs_internacao`(`internacao_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

INSERT IGNORE INTO `permissoes` (`chave`, `nome`, `descricao`) VALUES
('pacs_view',    'PACS/RIS — Visualizar',     'Visualizar laudos de imagem'),
('pacs_solicitar','PACS/RIS — Solicitar',     'Solicitar exames de imagem'),
('pacs_laudar',  'PACS/RIS — Laudar',         'Emitir laudo de imagem');

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 ('pacs_view','pacs_solicitar','pacs_laudar');

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 ('pacs_view','pacs_solicitar');
