-- Migration V37: Prontuário Eletrônico Completo
-- Data: 2026-03-23
-- Objetivo: Criar todas as tabelas, índices e permissões para o módulo de Prontuário Eletrônico profissional.

-- ============================================================
-- 1. TABELA PRINCIPAL: prontuarios
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuarios` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `paciente_id` INT(11) NOT NULL,
  `agendamento_id` INT(11) DEFAULT NULL,
  `profissional_id` INT(11) NOT NULL,
  `clinica_id` INT(11) DEFAULT NULL,
  `evolucao` LONGTEXT DEFAULT NULL COMMENT 'Texto livre da evolução/conduta',
  `status` ENUM('rascunho','em_atendimento','finalizado','bloqueado') NOT NULL DEFAULT 'em_atendimento',
  `bloqueado_em` DATETIME DEFAULT NULL,
  `desbloqueado_por` INT(11) DEFAULT NULL COMMENT 'ID do admin que desbloqueou',
  `desbloqueado_em` DATETIME DEFAULT NULL,
  `assinatura_hash` VARCHAR(64) DEFAULT NULL COMMENT 'SHA-256 do conteúdo assinado',
  `versao` INT(11) NOT NULL DEFAULT 1,
  `data_atendimento` DATETIME NOT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `deleted_at` DATETIME DEFAULT NULL COMMENT 'Soft delete - registros nunca são apagados fisicamente',
  PRIMARY KEY (`id`),
  KEY `idx_prontuario_paciente` (`paciente_id`),
  KEY `idx_prontuario_agendamento` (`agendamento_id`),
  KEY `idx_prontuario_profissional` (`profissional_id`),
  KEY `idx_prontuario_clinica` (`clinica_id`),
  KEY `idx_prontuario_status` (`status`),
  KEY `idx_prontuario_data` (`data_atendimento`),
  KEY `idx_prontuario_deleted` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 2. ANAMNESE
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_anamneses` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `queixa_principal` TEXT DEFAULT NULL,
  `historia_doenca_atual` LONGTEXT DEFAULT NULL,
  `antecedentes_pessoais` TEXT DEFAULT NULL,
  `antecedentes_familiares` TEXT DEFAULT NULL,
  `alergias` TEXT DEFAULT NULL,
  `medicamentos_em_uso` TEXT DEFAULT NULL,
  `habitos_vida` TEXT DEFAULT NULL COMMENT 'Tabagismo, etilismo, atividade física, etc.',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_anamnese_prontuario` (`prontuario_id`),
  CONSTRAINT `fk_anamnese_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 3. EXAME FÍSICO
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_exames_fisicos` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  -- Sinais Vitais
  `pressao_arterial_sistolica` INT(11) DEFAULT NULL,
  `pressao_arterial_diastolica` INT(11) DEFAULT NULL,
  `frequencia_cardiaca` INT(11) DEFAULT NULL COMMENT 'bpm',
  `frequencia_respiratoria` INT(11) DEFAULT NULL COMMENT 'irpm',
  `temperatura` DECIMAL(4,1) DEFAULT NULL COMMENT '°C',
  `saturacao_o2` INT(11) DEFAULT NULL COMMENT '%',
  `peso` DECIMAL(6,2) DEFAULT NULL COMMENT 'kg',
  `altura` DECIMAL(4,2) DEFAULT NULL COMMENT 'metros',
  `imc` DECIMAL(5,2) DEFAULT NULL COMMENT 'Calculado automaticamente',
  -- Exame por sistemas
  `estado_geral` TEXT DEFAULT NULL,
  `cabeca_pescoco` TEXT DEFAULT NULL,
  `aparelho_cardiovascular` TEXT DEFAULT NULL,
  `aparelho_respiratorio` TEXT DEFAULT NULL,
  `abdome` TEXT DEFAULT NULL,
  `membros` TEXT DEFAULT NULL,
  `sistema_nervoso` TEXT DEFAULT NULL,
  `pele_anexos` TEXT DEFAULT NULL,
  `observacoes_exame` TEXT DEFAULT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_exame_prontuario` (`prontuario_id`),
  CONSTRAINT `fk_exame_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 4. CATÁLOGO CID-10
-- ============================================================
CREATE TABLE IF NOT EXISTS `cad_cid10` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `codigo` VARCHAR(10) NOT NULL,
  `descricao` VARCHAR(255) NOT NULL,
  `categoria` VARCHAR(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_cid10_codigo` (`codigo`),
  KEY `idx_cid10_descricao` (`descricao`),
  FULLTEXT KEY `ft_cid10_busca` (`codigo`, `descricao`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 5. HIPÓTESES DIAGNÓSTICAS
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_hipoteses` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `cid10_id` INT(11) DEFAULT NULL COMMENT 'FK para cad_cid10',
  `cid10_codigo` VARCHAR(10) DEFAULT NULL COMMENT 'Código CID-10 (desnormalizado para performance)',
  `cid10_descricao` VARCHAR(255) DEFAULT NULL COMMENT 'Descrição (desnormalizado)',
  `tipo` ENUM('principal','secundario') NOT NULL DEFAULT 'principal',
  `observacao` TEXT DEFAULT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_hipotese_prontuario` (`prontuario_id`),
  KEY `idx_hipotese_cid10` (`cid10_id`),
  CONSTRAINT `fk_hipotese_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 6. PRESCRIÇÕES MÉDICAS
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_prescricoes` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `medicamento` VARCHAR(200) NOT NULL,
  `dosagem` VARCHAR(100) DEFAULT NULL,
  `via_administracao` VARCHAR(50) DEFAULT NULL COMMENT 'Oral, IV, IM, SC, Tópica, etc.',
  `frequencia` VARCHAR(100) DEFAULT NULL COMMENT 'Ex: 8/8h, 12/12h, 1x ao dia',
  `duracao` VARCHAR(100) DEFAULT NULL COMMENT 'Ex: 7 dias, 30 dias, uso contínuo',
  `quantidade` VARCHAR(50) DEFAULT NULL,
  `observacoes` TEXT DEFAULT NULL,
  `uso_continuo` TINYINT(1) NOT NULL DEFAULT 0,
  `hash_validacao` VARCHAR(64) DEFAULT NULL COMMENT 'SHA-256 para validação pública',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_prescricao_prontuario` (`prontuario_id`),
  KEY `idx_prescricao_hash` (`hash_validacao`),
  CONSTRAINT `fk_prescricao_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 7. SOLICITAÇÃO DE EXAMES
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_solicitacao_exames` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `tipo_exame` VARCHAR(200) NOT NULL,
  `justificativa` TEXT DEFAULT NULL,
  `urgencia` ENUM('rotina','urgente','emergencia') NOT NULL DEFAULT 'rotina',
  `observacoes` TEXT DEFAULT NULL,
  `hash_validacao` VARCHAR(64) DEFAULT NULL COMMENT 'SHA-256 para validação pública',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_solicitacao_prontuario` (`prontuario_id`),
  KEY `idx_solicitacao_hash` (`hash_validacao`),
  CONSTRAINT `fk_solicitacao_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 8. ATESTADOS / DECLARAÇÕES
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_atestados` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `tipo` ENUM('atestado','declaracao','relatorio') NOT NULL DEFAULT 'atestado',
  `texto` LONGTEXT NOT NULL,
  `dias_afastamento` INT(11) DEFAULT NULL,
  `data_inicio` DATE DEFAULT NULL,
  `data_fim` DATE DEFAULT NULL,
  `cid10_codigo` VARCHAR(10) DEFAULT NULL,
  `hash_validacao` VARCHAR(64) NOT NULL COMMENT 'SHA-256 para QR code de validação pública',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_atestado_prontuario` (`prontuario_id`),
  UNIQUE KEY `uk_atestado_hash` (`hash_validacao`),
  CONSTRAINT `fk_atestado_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 9. HISTÓRICO DE EDIÇÕES (Audit Trail)
-- ============================================================
CREATE TABLE IF NOT EXISTS `prontuario_historico_edicao` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prontuario_id` INT(11) NOT NULL,
  `usuario_id` INT(11) NOT NULL,
  `usuario_nome` VARCHAR(100) NOT NULL,
  `acao` VARCHAR(50) NOT NULL COMMENT 'criar, editar, finalizar, desbloquear, etc.',
  `campo_alterado` VARCHAR(100) DEFAULT NULL,
  `valor_anterior` LONGTEXT DEFAULT NULL,
  `valor_novo` LONGTEXT DEFAULT NULL,
  `ip` VARCHAR(45) DEFAULT NULL,
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `idx_historico_prontuario` (`prontuario_id`),
  KEY `idx_historico_usuario` (`usuario_id`),
  KEY `idx_historico_data` (`created_at`),
  CONSTRAINT `fk_historico_prontuario` FOREIGN KEY (`prontuario_id`) REFERENCES `prontuarios` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- 10. PERMISSÕES (10 novas - LGPD compliant)
-- ============================================================

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Ver Prontuários (Básico)', 'prontuario_view_basic', 'Visualizar que o prontuário existe, horário e status (recepção)')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Ver Prontuários (Clínico)', 'prontuario_view_clinical', 'Acessar evoluções, prescrições e exames do prontuário (equipe de saúde)')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Criar Prontuário', 'prontuario_create', 'Criar e registrar atendimento no prontuário')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Editar Prontuário', 'prontuario_edit', 'Editar prontuário finalizado (requer desbloqueio pelo admin)')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Desbloquear Prontuário', 'prontuario_unlock', 'Desbloquear prontuário finalizado para edição (somente admin)')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Imprimir Prontuário', 'prontuario_print', 'Gerar impressão/PDF do prontuário')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Histórico de Edições', 'prontuario_history', 'Visualizar log completo de alterações do prontuário')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Emitir Atestados', 'prontuario_atestado', 'Criar atestados, declarações e relatórios médicos')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Prescrever Medicamentos', 'prontuario_prescricao', 'Criar prescrições médicas no prontuário')
ON DUPLICATE KEY UPDATE nome = nome;

INSERT INTO `permissoes` (`nome`, `chave`, `descricao`) VALUES
('Solicitar Exames', 'prontuario_solicitacao_exames', 'Criar solicitações de exames no prontuário')
ON DUPLICATE KEY UPDATE nome = nome;

-- ============================================================
-- 11. ATRIBUIR TODAS AS PERMISSÕES AO PERFIL ADMINISTRADOR (ID 1)
-- ============================================================
INSERT IGNORE INTO `perfil_permissoes` (`perfil_id`, `permissao_id`)
SELECT 1, id FROM `permissoes` WHERE `chave` IN (
  'prontuario_view_basic', 'prontuario_view_clinical', 'prontuario_create',
  'prontuario_edit', 'prontuario_unlock', 'prontuario_print',
  'prontuario_history', 'prontuario_atestado', 'prontuario_prescricao',
  'prontuario_solicitacao_exames'
);

-- ============================================================
-- 12. POPULAR CID-10 (Códigos mais comuns em clínicas)
-- ============================================================

INSERT INTO `cad_cid10` (`codigo`, `descricao`, `categoria`) VALUES
-- Doenças infecciosas e parasitárias (A00-B99)
('A09', 'Diarreia e gastroenterite de origem infecciosa presumível', 'Infecciosas'),
('A15', 'Tuberculose respiratória, confirmada bacteriológica e histologicamente', 'Infecciosas'),
('A90', 'Dengue', 'Infecciosas'),
('A91', 'Febre hemorrágica devida ao vírus do dengue', 'Infecciosas'),
('B15', 'Hepatite aguda A', 'Infecciosas'),
('B16', 'Hepatite aguda B', 'Infecciosas'),
('B17', 'Outras hepatites virais agudas', 'Infecciosas'),
('B18', 'Hepatite viral crônica', 'Infecciosas'),
('B24', 'Doença pelo vírus da imunodeficiência humana (HIV) não especificada', 'Infecciosas'),
('B34.9', 'Infecção viral não especificada', 'Infecciosas'),
-- Neoplasias (C00-D48)
('C50', 'Neoplasia maligna da mama', 'Neoplasias'),
('C61', 'Neoplasia maligna da próstata', 'Neoplasias'),
('C34', 'Neoplasia maligna dos brônquios e dos pulmões', 'Neoplasias'),
('D50', 'Anemia por deficiência de ferro', 'Neoplasias'),
-- Endócrinas, nutricionais e metabólicas (E00-E90)
('E03', 'Hipotireoidismo', 'Endócrinas'),
('E04', 'Bócio não-tóxico', 'Endócrinas'),
('E05', 'Tireotoxicose (hipertireoidismo)', 'Endócrinas'),
('E10', 'Diabetes mellitus insulino-dependente (tipo 1)', 'Endócrinas'),
('E11', 'Diabetes mellitus não insulino-dependente (tipo 2)', 'Endócrinas'),
('E11.9', 'Diabetes mellitus tipo 2 sem complicações', 'Endócrinas'),
('E14', 'Diabetes mellitus não especificado', 'Endócrinas'),
('E66', 'Obesidade', 'Endócrinas'),
('E66.0', 'Obesidade devida a excesso de calorias', 'Endócrinas'),
('E78', 'Distúrbios do metabolismo de lipoproteínas e outras lipidemias', 'Endócrinas'),
('E78.0', 'Hipercolesterolemia pura', 'Endócrinas'),
('E78.5', 'Hiperlipidemia não especificada', 'Endócrinas'),
('E79', 'Distúrbios do metabolismo de purina e pirimidina', 'Endócrinas'),
-- Transtornos mentais (F00-F99)
('F10', 'Transtornos mentais e comportamentais devidos ao uso de álcool', 'Transtornos mentais'),
('F17', 'Transtornos mentais e comportamentais devidos ao uso de fumo', 'Transtornos mentais'),
('F20', 'Esquizofrenia', 'Transtornos mentais'),
('F31', 'Transtorno afetivo bipolar', 'Transtornos mentais'),
('F32', 'Episódio depressivo', 'Transtornos mentais'),
('F32.0', 'Episódio depressivo leve', 'Transtornos mentais'),
('F32.1', 'Episódio depressivo moderado', 'Transtornos mentais'),
('F32.2', 'Episódio depressivo grave sem sintomas psicóticos', 'Transtornos mentais'),
('F33', 'Transtorno depressivo recorrente', 'Transtornos mentais'),
('F40', 'Transtornos fóbico-ansiosos', 'Transtornos mentais'),
('F41', 'Outros transtornos ansiosos', 'Transtornos mentais'),
('F41.0', 'Transtorno de pânico', 'Transtornos mentais'),
('F41.1', 'Ansiedade generalizada', 'Transtornos mentais'),
('F41.2', 'Transtorno misto ansioso e depressivo', 'Transtornos mentais'),
('F43', 'Reações ao stress grave e transtornos de adaptação', 'Transtornos mentais'),
('F51', 'Transtornos não-orgânicos do sono', 'Transtornos mentais'),
-- Sistema nervoso (G00-G99)
('G40', 'Epilepsia', 'Sistema nervoso'),
('G43', 'Enxaqueca', 'Sistema nervoso'),
('G43.0', 'Enxaqueca sem aura', 'Sistema nervoso'),
('G43.1', 'Enxaqueca com aura', 'Sistema nervoso'),
('G44', 'Outras síndromes de algias cefálicas', 'Sistema nervoso'),
('G47', 'Distúrbios do sono', 'Sistema nervoso'),
('G54', 'Transtornos das raízes e dos plexos nervosos', 'Sistema nervoso'),
('G56', 'Mononeuropatias do membro superior', 'Sistema nervoso'),
('G56.0', 'Síndrome do túnel do carpo', 'Sistema nervoso'),
-- Olhos e ouvidos (H00-H95)
('H10', 'Conjuntivite', 'Olhos'),
('H25', 'Catarata senil', 'Olhos'),
('H40', 'Glaucoma', 'Olhos'),
('H52', 'Transtornos de refração e da acomodação', 'Olhos'),
('H60', 'Otite externa', 'Ouvidos'),
('H65', 'Otite média não-supurativa', 'Ouvidos'),
('H66', 'Otite média supurativa e as não especificadas', 'Ouvidos'),
-- Aparelho circulatório (I00-I99)
('I10', 'Hipertensão essencial (primária)', 'Circulatório'),
('I11', 'Doença cardíaca hipertensiva', 'Circulatório'),
('I20', 'Angina pectoris', 'Circulatório'),
('I21', 'Infarto agudo do miocárdio', 'Circulatório'),
('I25', 'Doença isquêmica crônica do coração', 'Circulatório'),
('I25.1', 'Doença aterosclerótica do coração', 'Circulatório'),
('I42', 'Cardiomiopatia', 'Circulatório'),
('I48', 'Fibrilação e flutter atrial', 'Circulatório'),
('I49', 'Outras arritmias cardíacas', 'Circulatório'),
('I50', 'Insuficiência cardíaca', 'Circulatório'),
('I63', 'Infarto cerebral', 'Circulatório'),
('I64', 'Acidente vascular cerebral não especificado', 'Circulatório'),
('I70', 'Aterosclerose', 'Circulatório'),
('I83', 'Varizes dos membros inferiores', 'Circulatório'),
('I84', 'Hemorroidas', 'Circulatório'),
-- Aparelho respiratório (J00-J99)
('J00', 'Nasofaringite aguda (resfriado comum)', 'Respiratório'),
('J01', 'Sinusite aguda', 'Respiratório'),
('J02', 'Faringite aguda', 'Respiratório'),
('J03', 'Amigdalite aguda', 'Respiratório'),
('J04', 'Laringite e traqueíte agudas', 'Respiratório'),
('J06', 'Infecções agudas das vias aéreas superiores de localizações múltiplas e não especificadas', 'Respiratório'),
('J06.9', 'Infecção aguda das vias aéreas superiores não especificada', 'Respiratório'),
('J10', 'Influenza devida a vírus influenza identificado', 'Respiratório'),
('J11', 'Influenza devida a vírus não identificado', 'Respiratório'),
('J15', 'Pneumonia bacteriana não classificada em outra parte', 'Respiratório'),
('J18', 'Pneumonia por microrganismo não especificado', 'Respiratório'),
('J20', 'Bronquite aguda', 'Respiratório'),
('J30', 'Rinite alérgica e vasomotora', 'Respiratório'),
('J31', 'Rinite, nasofaringite e faringite crônicas', 'Respiratório'),
('J32', 'Sinusite crônica', 'Respiratório'),
('J35', 'Doenças crônicas das amígdalas e das adenoides', 'Respiratório'),
('J40', 'Bronquite não especificada como aguda ou crônica', 'Respiratório'),
('J42', 'Bronquite crônica não especificada', 'Respiratório'),
('J44', 'Doença pulmonar obstrutiva crônica (DPOC)', 'Respiratório'),
('J45', 'Asma', 'Respiratório'),
('J45.0', 'Asma predominantemente alérgica', 'Respiratório'),
-- Aparelho digestivo (K00-K93)
('K04', 'Doenças da polpa e dos tecidos periapicais', 'Digestivo'),
('K21', 'Doença de refluxo gastroesofágico', 'Digestivo'),
('K25', 'Úlcera gástrica', 'Digestivo'),
('K26', 'Úlcera duodenal', 'Digestivo'),
('K29', 'Gastrite e duodenite', 'Digestivo'),
('K29.7', 'Gastrite não especificada', 'Digestivo'),
('K30', 'Dispepsia', 'Digestivo'),
('K35', 'Apendicite aguda', 'Digestivo'),
('K40', 'Hérnia inguinal', 'Digestivo'),
('K42', 'Hérnia umbilical', 'Digestivo'),
('K52', 'Outras gastroenterites e colites não-infecciosas', 'Digestivo'),
('K58', 'Síndrome do intestino irritável', 'Digestivo'),
('K59', 'Outros transtornos funcionais do intestino', 'Digestivo'),
('K59.0', 'Constipação', 'Digestivo'),
('K70', 'Doença alcoólica do fígado', 'Digestivo'),
('K74', 'Fibrose e cirrose hepáticas', 'Digestivo'),
('K76', 'Outras doenças do fígado', 'Digestivo'),
('K80', 'Colelitíase', 'Digestivo'),
('K81', 'Colecistite', 'Digestivo'),
('K85', 'Pancreatite aguda', 'Digestivo'),
-- Pele e tecido subcutâneo (L00-L99)
('L02', 'Abscesso cutâneo, furúnculo e carbúnculo', 'Pele'),
('L08', 'Outras infecções localizadas da pele e do tecido subcutâneo', 'Pele'),
('L20', 'Dermatite atópica', 'Pele'),
('L23', 'Dermatite alérgica de contato', 'Pele'),
('L30', 'Outras dermatites', 'Pele'),
('L40', 'Psoríase', 'Pele'),
('L50', 'Urticária', 'Pele'),
('L60', 'Transtornos das unhas', 'Pele'),
('L65', 'Alopecia (queda de cabelo)', 'Pele'),
('L70', 'Acne', 'Pele'),
-- Osteomuscular (M00-M99)
('M15', 'Poliartrose', 'Osteomuscular'),
('M16', 'Coxartrose (artrose do quadril)', 'Osteomuscular'),
('M17', 'Gonartrose (artrose do joelho)', 'Osteomuscular'),
('M19', 'Outras artroses', 'Osteomuscular'),
('M25', 'Outros transtornos articulares', 'Osteomuscular'),
('M41', 'Escoliose', 'Osteomuscular'),
('M47', 'Espondilose', 'Osteomuscular'),
('M50', 'Transtornos dos discos cervicais', 'Osteomuscular'),
('M51', 'Outros transtornos de discos intervertebrais', 'Osteomuscular'),
('M54', 'Dorsalgia', 'Osteomuscular'),
('M54.2', 'Cervicalgia', 'Osteomuscular'),
('M54.4', 'Lumbago com ciática', 'Osteomuscular'),
('M54.5', 'Dor lombar baixa (lombalgia)', 'Osteomuscular'),
('M65', 'Sinovite e tenossinovite', 'Osteomuscular'),
('M75', 'Lesões do ombro', 'Osteomuscular'),
('M75.1', 'Síndrome do manguito rotador', 'Osteomuscular'),
('M77', 'Outras entesopatias', 'Osteomuscular'),
('M79', 'Outros transtornos de tecidos moles', 'Osteomuscular'),
('M79.1', 'Mialgia', 'Osteomuscular'),
('M79.3', 'Paniculite não especificada', 'Osteomuscular'),
-- Geniturinário (N00-N99)
('N10', 'Nefrite túbulo-intersticial aguda (pielonefrite)', 'Geniturinário'),
('N12', 'Nefrite túbulo-intersticial não especificada', 'Geniturinário'),
('N18', 'Insuficiência renal crônica', 'Geniturinário'),
('N20', 'Calculose do rim e do ureter', 'Geniturinário'),
('N30', 'Cistite', 'Geniturinário'),
('N39', 'Outros transtornos do trato urinário', 'Geniturinário'),
('N39.0', 'Infecção do trato urinário de localização não especificada', 'Geniturinário'),
('N40', 'Hiperplasia da próstata', 'Geniturinário'),
('N76', 'Outras inflamações da vagina e da vulva', 'Geniturinário'),
('N92', 'Menstruação excessiva, frequente e irregular', 'Geniturinário'),
('N94', 'Dor e outras afecções associadas com órgãos genitais femininos', 'Geniturinário'),
-- Gravidez e parto (O00-O99)
('O80', 'Parto único espontâneo', 'Gravidez'),
('O82', 'Parto único por cesariana', 'Gravidez'),
('O20', 'Hemorragia do início da gravidez', 'Gravidez'),
('O21', 'Vômitos excessivos na gravidez', 'Gravidez'),
('O26', 'Assistência materna por outras complicações da gravidez', 'Gravidez'),
-- Perinatal (P00-P96) e Malformações (Q00-Q99)
('P07', 'Transtornos relacionados com a gestação curta e peso baixo ao nascer', 'Perinatal'),
('Q21', 'Malformações congênitas dos septos cardíacos', 'Malformações'),
-- Sinais e sintomas (R00-R99)
('R00', 'Anormalidades do batimento cardíaco', 'Sintomas'),
('R05', 'Tosse', 'Sintomas'),
('R06', 'Anormalidades da respiração', 'Sintomas'),
('R07', 'Dor de garganta e no peito', 'Sintomas'),
('R10', 'Dor abdominal e pélvica', 'Sintomas'),
('R10.4', 'Outras dores abdominais e as não especificadas', 'Sintomas'),
('R11', 'Náusea e vômitos', 'Sintomas'),
('R42', 'Tontura e instabilidade', 'Sintomas'),
('R50', 'Febre de origem desconhecida', 'Sintomas'),
('R50.9', 'Febre não especificada', 'Sintomas'),
('R51', 'Cefaleia', 'Sintomas'),
('R52', 'Dor não classificada em outra parte', 'Sintomas'),
('R53', 'Mal-estar e fadiga', 'Sintomas'),
('R55', 'Síncope e colapso', 'Sintomas'),
('R56', 'Convulsões', 'Sintomas'),
('R73', 'Valores elevados da glicemia', 'Sintomas'),
-- Lesões e causas externas (S00-T98)
('S00', 'Traumatismo superficial da cabeça', 'Lesões'),
('S01', 'Ferimento da cabeça', 'Lesões'),
('S02', 'Fratura do crânio e dos ossos da face', 'Lesões'),
('S06', 'Traumatismo intracraniano', 'Lesões'),
('S22', 'Fratura de costela(s), esterno e coluna torácica', 'Lesões'),
('S32', 'Fratura da coluna lombar e da pelve', 'Lesões'),
('S42', 'Fratura do ombro e do braço', 'Lesões'),
('S52', 'Fratura do antebraço', 'Lesões'),
('S62', 'Fratura ao nível do punho e da mão', 'Lesões'),
('S72', 'Fratura do fêmur', 'Lesões'),
('S82', 'Fratura da perna, incluindo tornozelo', 'Lesões'),
('S83', 'Luxação, entorse e distensão de articulações e ligamentos do joelho', 'Lesões'),
('S93', 'Luxação, entorse e distensão de articulações e ligamentos do tornozelo e do pé', 'Lesões'),
('T14', 'Traumatismo de região não especificada do corpo', 'Lesões'),
('T78.4', 'Alergia não especificada', 'Lesões'),
-- Fatores de saúde e contato com serviços (Z00-Z99)
('Z00', 'Exame geral e investigação de pessoas sem queixas ou diagnóstico', 'Fatores'),
('Z00.0', 'Exame médico geral', 'Fatores'),
('Z01', 'Outros exames especiais e investigações em pessoas sem queixa ou diagnóstico', 'Fatores'),
('Z02', 'Exame e consulta com finalidades administrativas', 'Fatores'),
('Z10', 'Exame de saúde ocupacional de rotina', 'Fatores'),
('Z20', 'Contato com e exposição a doenças transmissíveis', 'Fatores'),
('Z23', 'Necessidade de imunização contra doença bacteriana única', 'Fatores'),
('Z30', 'Anticoncepção', 'Fatores'),
('Z34', 'Supervisão de gravidez normal', 'Fatores'),
('Z71', 'Pessoas em contato com serviços de saúde para outros aconselhamentos', 'Fatores'),
('Z73', 'Problemas relacionados com a organização de seu modo de vida', 'Fatores'),
('Z76.0', 'Emissão de receita de repetição', 'Fatores')
ON DUPLICATE KEY UPDATE descricao = VALUES(descricao);
