self::getFuncionalidade('administracao', 'papel')->id, 'nome' => 'Papel', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'permissao')->id, 'nome' => 'Permissão', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'configuracao')->id, 'nome' => 'Configuração', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-historico-permissao-lotacao')->id, 'nome' => 'Relatório de histórico de permissão por lotação', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-historico-permissao-papel')->id, 'nome' => 'Relatório de histórico de permissão por papel', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-historico-papel-lotacao')->id, 'nome' => 'Relatório de histórico de papel por lotação', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-acesso-funcionalidade')->id, 'nome' => 'Relatório de acesso à funcionalidade', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-acesso-sistema')->id, 'nome' => 'Relatório de acesso ao sistema', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-permissao-lotacao')->id, 'nome' => 'Relatório de permissão por lotação', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-permissao-papel')->id, 'nome' => 'Relatório de permissão por papel', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'relatorio-papel-lotacao')->id, 'nome' => 'Relatório de papel por lotação', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'notificacao')->id, 'nome' => 'Notificação', ], [ 'funcionalidade_id' => self::getFuncionalidade('administracao', 'gestor')->id, 'nome' => 'Gestor', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function almoxarifado() { $nome = 'Almoxarifado'; $icone = 'fas/x-ray'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'motivo-baixa')->id, 'nome' => 'Motivo de baixa', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'entrada')->id, 'nome' => 'Entrada', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'saida')->id, 'nome' => 'Saída', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'baixa')->id, 'nome' => 'Baixa', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'inventario')->id, 'nome' => 'Inventário', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'entrada-inicial')->id, 'nome' => 'Entrada inicial', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'balancete')->id, 'nome' => 'Balancete', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'requisicao-abertura-fechamento')->id, 'nome' => 'Requisição abertura/fechamento', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'requisicao-pendente-permissao')->id, 'nome' => 'Requisição pendente e permissão', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'transferencia')->id, 'nome' => 'Transferência', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'dispensacao-materiais')->id, 'nome' => 'Dispensação de materiais', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-estorno-entrada')->id, 'nome' => 'Relatório de estorno de entradas', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-estorno-saida')->id, 'nome' => 'Relatório de estorno de saída', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-validade-material')->id, 'nome' => 'Relatório de validade de materiais', ], [ 'funcionalidade_id' => self::getFuncionalidade('Almoxarifado', 'relatorio-entrada')->id, 'nome' => 'Relatório de entrada', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-saida')->id, 'nome' => 'Relatório de saídas', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-consumo-financeiro')->id, 'nome' => 'Relatório de consumo financeiro', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-posicao-estoque')->id, 'nome' => 'Relatório de posição de estoque', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-requisicao')->id, 'nome' => 'Relatório de requisições', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-consumo-medio-mensal')->id, 'nome' => 'Relatório de consumo médio mensal/diário', ], [ 'funcionalidade_id' => self::getFuncionalidade('almoxarifado', 'relatorio-movimentacao-geral')->id, 'nome' => 'Relatório de movimentação geral', ], ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function faturamento() { $nome = 'Faturamento'; $icone = 'fas/dollar-sign'; $itens = [ [ 'nome' => 'BPA', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'exportacao')->id, 'nome' => 'Exportação', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'procedimento-consolidado')->id, 'nome' => 'Geração / Lançamento de procedimento consolidado', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'procedimento-individualizado')->id, 'nome' => 'Geração / Lançamento de procedimento individualizado', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'relatorio-inconsistencia')->id, 'nome' => 'Relatório de inconsistência', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'relatorio-quantitativo-producao')->id, 'nome' => 'Relatório quantitativo de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'relatorio-bpa-individualizado')->id, 'nome' => 'Relatório de BPA individualizado', ], [ 'funcionalidade_id' => self::getFuncionalidade('bpa', 'relatorio-bpa-consolidado')->id, 'nome' => 'Relatório de BPA consolidado', ], ] ], [ 'nome' => 'RAAS', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('raas', 'procedimento')->id, 'nome' => 'Geração / Lançamento de procedimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('raas', 'exportacao')->id, 'nome' => 'Exportação', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('raas', 'relatorio-inconsistencia')->id, 'nome' => 'Relatório de inconsistência', ], ], ], ] ], [ 'nome' => 'APAC', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('apac', 'procedimento')->id, 'nome' => 'Geração / Lançamento de procedimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('apac', 'exportacao')->id, 'nome' => 'Exportação', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('apac', 'relatorio-inconsistencia')->id, 'nome' => 'Relatório de inconsistência', ], ], ], ] ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function cadastro() { $nome = 'Cadastro'; $icone = 'fas/folder-plus'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'setor')->id, 'nome' => 'Setor', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'alergia')->id, 'nome' => 'Alergia', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'unidade')->id, 'nome' => 'Unidade', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'bairro')->id, 'nome' => 'Bairro', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'logradouro')->id, 'nome' => 'Logradouro', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'loteamento')->id, 'nome' => 'Loteamento', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'convenio-medico')->id, 'nome' => 'Convênio médico', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'paciente')->id, 'nome' => 'Paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'usuario')->id, 'nome' => 'Usuário', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'medicamento')->id, 'nome' => 'Medicamento', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'sala')->id, 'nome' => 'Sala', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'feriado')->id, 'nome' => 'Feriado', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'grupo')->id, 'nome' => 'Grupo', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'subgrupo')->id, 'nome' => 'Subgrupo', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'material')->id, 'nome' => 'Material', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'fabricante')->id, 'nome' => 'Fabricante', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'fornecedor')->id, 'nome' => 'Fornecedor', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'vacina')->id, 'nome' => 'Vacina', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'especialidade')->id, 'nome' => 'Especialidade', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'unificacao-usuario-paciente')->id, 'nome' => 'Unificação de usuário/paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'obito')->id, 'nome' => 'Óbito', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'unidade-executante-manutencao')->id, 'nome' => 'Unidade executante manutenção', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'servico-manutencao')->id, 'nome' => 'Serviço manutenção', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'supervisor')->id, 'nome' => 'Supervisor', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'ferida')->id, 'nome' => 'Ferida', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'origem-programatica')->id, 'nome' => 'Origem programática', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'oci')->id, 'nome' => 'OCI', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'relatorio-usuario')->id, 'nome' => 'Usuários', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'relatorio-material')->id, 'nome' => 'Relatório de material', ], [ 'funcionalidade_id' => self::getFuncionalidade('cadastro', 'relatorio-paciente-bairro')->id, 'nome' => 'Relatório de paciente por bairro', ], ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function exameImagem() { $nome = 'Exame de imagem'; $icone = 'fas/x-ray'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'jornada')->id, 'nome' => 'Jornada', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'agendamento')->id, 'nome' => 'Agendamento de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'fechamento')->id, 'nome' => 'Fechamento de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'lancamento')->id, 'nome' => 'Lançamento de resultado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'impressao')->id, 'nome' => 'Impressões', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'alteracao-exame-finalizado')->id, 'nome' => 'Alteração de exame finalizado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'reimpressao-resultado')->id, 'nome' => 'Reimpressão lançamento resultado', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'relatorio-exame-status')->id, 'nome' => 'Relatório de exame por status', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'relatorio-cota-profissional')->id, 'nome' => 'Relatório de jornada - Cota profissional', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'relatorio-financeiro-exame')->id, 'nome' => 'Relatório financeiro de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'relatorio-producao')->id, 'nome' => 'Relatório de produção', ] ] ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'alteracao-resultado-lancamento')->id, 'nome' => 'Alteração de resultado de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'listagem-exames-agendados')->id, 'nome' => 'Listagem de exame agendado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'exame-agendado-realizado')->id, 'nome' => 'Exame agendados/realizado por paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'agendamento-retroativo')->id, 'nome' => 'Agendamento de exame retroativo', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-imagem', 'reagendamento-cancelamento-exame')->id, 'nome' => 'Reagendamento/cancelamento de exame', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function exameLaboratorial() { $nome = 'Exame laboratorial'; $icone = 'fas/vial'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'formula-exame')->id, 'nome' => 'Fórmula de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'jornada')->id, 'nome' => 'Jornada', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'agendamento-exame')->id, 'nome' => 'Agendamento de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'lancamento-coleta')->id, 'nome' => 'Lançamento de coleta', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'lancamento-resultado')->id, 'nome' => 'Lançamento de resultado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'mapa-producao')->id, 'nome' => 'Mapa de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'assinatura-eletronica')->id, 'nome' => 'Assinatura eletrônica', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'impressao-exame')->id, 'nome' => 'Impressão de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'importar-laudo')->id, 'nome' => 'Importar laudo', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'entrega-exame')->id, 'nome' => 'Entrega de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'impressoes')->id, 'nome' => 'Impressões', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'exame-agendado-realizado')->id, 'nome' => 'Relatório de exames agendados/realizados por paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'coleta-agendada')->id, 'nome' => 'Relatório de coletas agendadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-cota-consumo')->id, 'nome' => 'Relatório de cotas e consumo', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'exame-solicitado-status')->id, 'nome' => 'Relatório de exames solicitados por status', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'exame-producao')->id, 'nome' => 'Relatório de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-financeiro-paciente')->id, 'nome' => 'Relatório financeiro por paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-coleta-realizada')->id, 'nome' => 'Relatório de coletas realizadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-financeiro-exame')->id, 'nome' => 'Relatório financeiro de exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-historico-paciente')->id, 'nome' => 'Relatório de histórico do paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-quantitativo-producao')->id, 'nome' => 'Relatório quantitativo de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-paciente-atendido')->id, 'nome' => 'Relatório de paciente atendido', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-quantitativo-exame-solicitado')->id, 'nome' => 'Relatório quantitativo de exame solicitado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-exame-laboratorio-apoio')->id, 'nome' => 'Relatório de exame para laboratório de apoio', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'relatorio-exame-bloqueado')->id, 'nome' => 'Relatório de exame bloqueado', ] ], ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'mapa-dia')->id, 'nome' => 'Mapa do dia', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'agendamento-exame-retroativo')->id, 'nome' => 'Agendamento de exame retroativo', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'cancelamento-resultado')->id, 'nome' => 'Cancelamento de resultado', ], [ 'funcionalidade_id' => self::getFuncionalidade('exame-laboratorial', 'jornada-bloqueio')->id, 'nome' => 'Bloqueio de jornada', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function imunizacao() { $nome = 'Imunização'; $icone = 'fas/syringe'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'sala-vacinacao')->id, 'nome' => 'Sala de vacinação', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'entrada')->id, 'nome' => 'Entrada', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'baixa')->id, 'nome' => 'Baixa', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'requisicao')->id, 'nome' => 'Requisição', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'distribuicao')->id, 'nome' => 'Distribuição', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'registro-vacinacao')->id, 'nome' => 'Registro de vacinação', ], [ 'nome' => 'Campanha', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'cadastro-campanha')->id, 'nome' => 'Cadastro', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'aplicacao-campanha')->id, 'nome' => 'Aplicação', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'consulta-estoque')->id, 'nome' => 'Consulta de estoque', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'relatorio-de-aplicacao')->id, 'nome' => 'Relatório de aplicação', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'relatorio-consolidado-aplicacao')->id, 'nome' => 'Relatório consolidado de aplicação', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'relatorio-posicao-estoque')->id, 'nome' => 'Relatório de posição de estoque', ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'relatorio-faltoso-aprazamento')->id, 'nome' => 'Relatório de faltosos e aprazamentos', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('imunizacao', 'fila-atendimento')->id, 'nome' => 'Fila de atendimento', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function painelSenha() { $nome = 'Painel de senha'; $icone = 'fas/tv'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'emissao-senha')->id, 'nome' => 'Emissão de senha', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'encaminhamento')->id, 'nome' => 'Encaminhamento', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'opcao-chamada')->id, 'nome' => 'Opção de chamada', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'opcao-entrada')->id, 'nome' => 'Opção de entrada', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'tela')->id, 'nome' => 'Tela', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'tempo-espera')->id, 'nome' => 'Tempo de espera', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'prioridade')->id, 'nome' => 'Prioridade', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'fila-atendimento')->id, 'nome' => 'Fila de atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('painel-senha', 'aviso')->id, 'nome' => 'Aviso', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function parametrizacao() { $nome = 'Parametrização'; $icone = 'fas/cogs'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'kit-exame')->id, 'nome' => 'Kit de exames', ], [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'procedimento')->id, 'nome' => 'Procedimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'exame')->id, 'nome' => 'Exame', ], [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'procedimento-cirurgico')->id, 'nome' => 'Procedimento cirúrgico', ], [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'tabela-cid')->id, 'nome' => 'Tabela de CID', ], [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'tabela-obm')->id, 'nome' => 'Tabela OBM', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('parametrizacao', 'relatorio-exame-cadastrado')->id, 'nome' => 'Relatório exames cadastrados', ], ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function prontoAtendimento() { $nome = 'Pronto atendimento'; $icone = 'fas/user-injured'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'atendimento-medico')->id, 'nome' => 'Atendimento médico', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'atendimento-triagem')->id, 'nome' => 'Atendimento de triagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'atendimento-enfermagem')->id, 'nome' => 'Atendimento de enfermagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'paciente-observacao')->id, 'nome' => 'Paciente em observação', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'classificacao-risco')->id, 'nome' => 'Classificação de risco', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'exame-imagem')->id, 'nome' => 'Exame de imagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'plantao')->id, 'nome' => 'Plantão', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'atendimento-recepcao')->id, 'nome' => 'Recepção', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'fechamento-faa')->id, 'nome' => 'Fechamento de FAA', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'cancelamento-evasao')->id, 'nome' => 'Cancelamento de evasão', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'paciente-busca')->id, 'nome' => 'Histórico do atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'atendimento-retroativo')->id, 'nome' => 'Atendimento retroativo', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'reabertura-atendimento')->id, 'nome' => 'Reabertura de atendimento finalizado', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'regularizacao-cadastro')->id, 'nome' => 'Regularização de cadastro', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'impressao')->id, 'nome' => 'Impressões', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'impressao-faa-eletronica')->id, 'nome' => 'Impressão FAA eletrônica', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'aih')->id, 'nome' => 'AIH', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'assinatura-eletronica')->id, 'nome' => 'Assinatura eletrônica', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-plantao')->id, 'nome' => 'Relatório de plantão', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-atendimento')->id, 'nome' => 'Relatório de atendimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-atendimento-finalizado')->id, 'nome' => 'Relatório de atendimentos finalizados', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-quantitativo-producao')->id, 'nome' => 'Relatório quantitativo de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-classificacao-risco')->id, 'nome' => 'Relatório de classificação de risco', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-producao-medico')->id, 'nome' => 'Relatório de produção do médico', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-exame-imagem')->id, 'nome' => 'Relatório de exame de imagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-prescricao-interna')->id, 'nome' => 'Relatório de prescrição interna', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'relatorio-documento-nao-assinado')->id, 'nome' => 'Relatório de documentos não assinados', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'assistencia-social')->id, 'nome' => 'Assistência social', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'fila-atendimento')->id, 'nome' => 'Fila de atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('pronto-atendimento', 'fechamento-faa-massa')->id, 'nome' => 'Fechamento de FAA em massa', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function transportePaciente() { $nome = 'Transporte de paciente'; $icone = 'fas/bus'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'condutor')->id, 'nome' => 'Cadastro de condutor', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'veiculo')->id, 'nome' => 'Cadastro de veículo', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'destino')->id, 'nome' => 'Cadastro de destino', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'jornada')->id, 'nome' => 'Jornadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'ponto')->id, 'nome' => 'Cadastro de ponto', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'grupo')->id, 'nome' => 'Cadastro de grupo', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'motivo-viagem-procedimento')->id, 'nome' => 'Cadastro de motivo de viagem / procedimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'pre-agendamento-transporte')->id, 'nome' => 'Pré agendar transporte', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'agendar')->id, 'nome' => 'Agendar transporte', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'supervisor')->id, 'nome' => 'Cadastro de supervisor', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'listagem')->id, 'nome' => 'Listagem de transporte agendado', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'alterar-horario')->id, 'nome' => 'Alterar horário de saída', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'escolher-veiculo')->id, 'nome' => 'Escolher veículo', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'transferencia-paciente')->id, 'nome' => 'Transferência de paciente entre veículos', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'fechamento-viagem')->id, 'nome' => 'Fechamento de viagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'gerenciamento')->id, 'nome' => 'Gerenciamento de viagens', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'reimpressao-protocolo')->id, 'nome' => 'Reimpressão de protocolo', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-agendador')->id, 'nome' => 'Relatório de agendamentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-viagem')->id, 'nome' => 'Relatório de viagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-estatistico')->id, 'nome' => 'Relatório estatístico de viagem por motorista', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-quantitativo')->id, 'nome' => 'Relatório quantitativo de viagem', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-viagem-veiculo')->id, 'nome' => 'Relatório de viagem por veículo', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-viagem-motorista')->id, 'nome' => 'Relatório de viagem por motorista', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-viagem-geral')->id, 'nome' => 'Relatório de viagem geral', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-prestacao-conta')->id, 'nome' => 'Relatório de prestação de contas', ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'relatorio-viagem-data')->id, 'nome' => 'Relatório de viagem por data', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('transporte-paciente', 'reabertura-viagem')->id, 'nome' => 'Reabertura de viagem', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function ambulatorio() { $nome = 'Ambulatório'; $icone = 'fas/hospital'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'jornada')->id, 'nome' => 'Jornada', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'jornada-situacao')->id, 'nome' => 'Situação de jornada', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'supervisor')->id, 'nome' => 'Supervisor', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'agendamento')->id, 'nome' => 'Agendamento', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'agendamento-retroativo')->id, 'nome' => 'Agendamento retroativo', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'gerenciamento-medico')->id, 'nome' => 'Gerenciamento por médico', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'servico')->id, 'nome' => 'Serviço', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'atendimento')->id, 'nome' => 'Atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'jornada-bloqueio')->id, 'nome' => 'Bloqueio de jornada', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'recepcao')->id, 'nome' => 'Recepção', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'gerenciamento-diario')->id, 'nome' => 'Gerenciamento diário', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'fechamento-consulta')->id, 'nome' => 'Fechamento de consulta agendada', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'historico-atendimento')->id, 'nome' => 'Histórico de atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'assinatura-eletronica')->id, 'nome' => 'Assinatura eletrônica', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'listagem-consulta-agendada-realizada')->id, 'nome' => 'Listagem de consultas agendadas/realizadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-estatistico-consulta')->id, 'nome' => 'Relatório estatístico de consulta', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-quantitativo-atendimento')->id, 'nome' => 'Relatório quantitativo de atendimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-quantitativo-producao')->id, 'nome' => 'Relatório quantitativo de produção', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-quantitativo-cid')->id, 'nome' => 'Relatório quantitativo por CID (Morbidade)', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-producao-ambulatorial')->id, 'nome' => 'Relatório de produção ambulatorial - BPA', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-procedimento-lancado-periodo')->id, 'nome' => 'Relatório de procedimentos lançados por período', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-identificacao')->id, 'nome' => 'Relatório de identificação (Procedimentos lançados)', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-estatistico-status')->id, 'nome' => 'Relatório estatístico por status', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-estatistico-paciente')->id, 'nome' => 'Relatório estatístico de pacientes', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-quantitativo-consulta-solicitada')->id, 'nome' => 'Relatório quantitativo de consultas solicitadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-consulta-solicitada')->id, 'nome' => 'Relatório de consultas solicitadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-quantitativo-procedimento')->id, 'nome' => 'Relatório quantitativo de procedimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-procedimento')->id, 'nome' => 'Relatório de procedimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-consulta-finalizada')->id, 'nome' => 'Relatório de consultas finalizadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-paciente-atendimento')->id, 'nome' => 'Relatório de pacientes para atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-jornada')->id, 'nome' => 'Relatório de jornadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'relatorio-rastreio-ferida')->id, 'nome' => 'Relatório rastreio de feridas', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'alteracao-consultas-finalizadas')->id, 'nome' => 'Alteração consultas finalizadas', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'formulario-raas')->id, 'nome' => 'Formulário RAAS', ], [ 'funcionalidade_id' => self::getFuncionalidade('ambulatorio', 'atendimento-enfermagem')->id, 'nome' => 'Atendimento de enfermagem', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function atencaoBasica() { $nome = 'Atenção básica'; $icone = 'fas/id-card'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'atividade-coletiva')->id, 'nome' => 'Atividade coletiva', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'atendimento-domiciliar')->id, 'nome' => 'Atendimento domiciliar', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'atendimento-individual')->id, 'nome' => 'Atendimento individual', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'atendimento-odontologico')->id, 'nome' => 'Atendimento odontológico', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'avaliacao')->id, 'nome' => 'Avaliaçăo de Elegibilidade e admissăo', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'cadastro-domiciliar')->id, 'nome' => 'Cadastro domiciliar e territorial', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'cadastro-individual')->id, 'nome' => 'Cadastro individual', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'exportacao')->id, 'nome' => 'Exportação', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'ficha-complementar')->id, 'nome' => 'Ficha complementar', ], [ 'funcionalidade_id' => self::getFuncionalidade( 'atencao-basica', 'marcador-consumo-alimentar' )->id, 'nome' => 'Marcador de consumo alimentar', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'mapa-atendimento')->id, 'nome' => 'Mapa de atendimento', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'procedimento')->id, 'nome' => 'Procedimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'visita-domiciliar')->id, 'nome' => 'Visita domiciliar', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'reterritorializacao')->id, 'nome' => 'Reterritorialização', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'nome' => 'Indicadores APS', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-acesso-cuidado-programado')->id, 'nome' => 'C1 - Acesso ao cuidado programado', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-desenvolvimento-infantil')->id, 'nome' => 'C2 - Cuidado no Desenvolvimento Infantil', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-mulher-prevencao-cancer')->id, 'nome' => 'C7 - Cuidado da mulher na prevenção do câncer', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-pessoa-idosa')->id, 'nome' => 'C6 - Relatório de cuidado da pessoa idosa', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-pessoa-hipertensao')->id, 'nome' => 'C5 - Cuidado da pessoa com hipertensão', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-pessoa-com-diabete')->id, 'nome' => 'C4 - Cuidado da pessoa com diabetes', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cuidado-gestacao-puerperio')->id, 'nome' => 'C3 - Cuidado na gestação e puerpério', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-atendimento-domiciliar')->id, 'nome' => 'Relatório de atendimento domiciliar', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-atendimento-odontologico')->id, 'nome' => 'Relatório de atendimentos odontológicos', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-cadastro-consistente')->id, 'nome' => 'Relatório de cadastros consistentes', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-inconsistencia')->id, 'nome' => 'Relatório de inconsistências', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-indicador-sad')->id, 'nome' => 'Relatório de indicadores SAD', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-visita-domiciliar')->id, 'nome' => 'Relatório de visita domiciliar', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-estatistico-atendimento')->id, 'nome' => 'Relatório estatístico de atendimentos', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-estatistico-paciente-cadastrado')->id, 'nome' => 'Relatório estatístico de pacientes cadastrados', ], [ 'funcionalidade_id' => self::getFuncionalidade('atencao-basica', 'relatorio-atividade-coletiva')->id, 'nome' => 'Relatório de atividade coletiva', ], ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function farmacia() { $nome = 'Farmácia'; $icone = 'fas/pills'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'dispensacao')->id, 'nome' => 'Dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'estorno-dispensacao')->id, 'nome' => 'Estorno de dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'livro-psicotropico')->id, 'nome' => 'Livro de medicamentos controlados', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'livro-talidomida')->id, 'nome' => 'Livro de talidomida', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-dispensacao-paciente')->id, 'nome' => 'Relatório de dispensação por paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-dispensacao')->id, 'nome' => 'Relatório de dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-paciente-atendido')->id, 'nome' => 'Relatório de paciente atendido', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-movimentacao-psicotropico')->id, 'nome' => 'Relatório de movimentação de psicotrópico', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-quantitativo-dispensacao')->id, 'nome' => 'Relatório quantitativo de dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-estorno-dispensacao')->id, 'nome' => 'Relatório de estorno de dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-alto-custo-retirada-pendente')->id, 'nome' => 'Alto custo - Relatório de retiradas pendentes', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-alto-custo-processo')->id, 'nome' => 'Alto custo - Relatório de processo', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-atendimento-diario')->id, 'nome' => 'Relatório de atendimento diário', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-alto-custo-dispensacao')->id, 'nome' => 'Alto custo - Relatório de dispensação', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-alto-custo-processo-paciente')->id, 'nome' => 'Alto custo - Relatório de processo por paciente', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-alto-custo-estatistico-cid')->id, 'nome' => 'Alto custo - Relatório estatístico de CID', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'relatorio-dispensacao-remedio-casa')->id, 'nome' => 'Relatório de dispensação - Remédio em casa', ], ], ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'alto-custo-gerenciamento-processo')->id, 'nome' => 'Alto custo - Gerenciamento de processo', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'supervisor')->id, 'nome' => 'Cadastro de supervisor', ], [ 'funcionalidade_id' => self::getFuncionalidade('farmacia', 'fila-atendimento')->id, 'nome' => 'Fila de atendimento', ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function integracao() { $nome = 'Integração'; $icone = 'fas/globe'; $itens = [ [ 'nome' => 'Registro de imunobiológico administrado (RIA)', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'ria-parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'ria-gerenciamento-envio')->id, 'nome' => 'Gerenciamento de envio', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'ria-relatorio-envio')->id, 'nome' => 'Relatório de envio', ], ], ], ], ], [ 'nome' => 'Cartão nacional de saúde (CNS)', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'cns-parametrizacao')->id, 'nome' => 'Parametrização', ], ], ], [ 'nome' => 'Registro de informações de regulação assistencial (RIRA)', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'rira-parametrizacao')->id, 'nome' => 'Parametrização', ], ], ], [ 'nome' => 'Sistema único de saúde eletrônico (e-SUS)', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'esus-parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'esus-gerenciamento-envio')->id, 'nome' => 'Gerenciamento de envio (Inconsistência)', ], ], ], [ 'nome' => 'Base nacional de dados de ações e serviços da assistência farmacêutica (BNAFAR)', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'bnafar-parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'bnafar-gerenciamento-envio')->id, 'nome' => 'Gerenciamento de envio', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'bnafar-relatorio-envio')->id, 'nome' => 'Relatório de envio', ], ], ], ], ], ]; if (app('config')->get('database.default') === 'santarita') { $itens[] = [ 'nome' => 'Santa Casa (ERPSaúde)', 'itens' => [ [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('integracao', 'erpsaude-relatorio-atendimento')->id, 'nome' => 'Relatório de atendimentos', ], ], ], ], ]; } self::add([compact('nome', 'icone', 'itens')]); } public static function regulacao() { $nome = 'Regulação'; $icone = 'fas/list-ul'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'status')->id, 'nome' => 'Status', ], [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'solicitacao')->id, 'nome' => 'Solicitação', ], [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'fila')->id, 'nome' => 'Fila', ], [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'monitoramento-protocolo')->id, 'nome' => 'Monitoramento de protocolos', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('regulacao', 'relatorio-solicitacao')->id, 'nome' => 'Relatório de solicitações', ], ] ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function webService() { $nome = 'Web service'; $icone = 'fas/network-wired'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'usuario')->id, 'nome' => 'Usuário', ], [ 'nome' => 'Almoxarifado', 'itens' => [ [ 'nome' => 'Cliente', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-unidade')->id, 'nome' => 'Unidade', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-material')->id, 'nome' => 'Material', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-fornecedor')->id, 'nome' => 'Fornecedor', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-fabricante')->id, 'nome' => 'Fabricante', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-periodo-contabil')->id, 'nome' => 'Período contábil', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'almoxarifado-cliente-aprovacao-entrada')->id, 'nome' => 'Aprovação de entrada', ], ], ], ], ], [ 'nome' => 'Laboratório', 'itens' => [ [ 'nome' => 'Cliente', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'laboratorio-cliente-laboratorio')->id, 'nome' => 'Laboratório', ], [ 'funcionalidade_id' => self::getFuncionalidade('web-service', 'laboratorio-cliente-exame')->id, 'nome' => 'Exame', ], ], ], ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function manutencao() { $nome = 'Manutenção'; $icone = 'fas/wrench'; $itens = [ [ 'funcionalidade_id' => self::getFuncionalidade('manutencao', 'parametrizacao')->id, 'nome' => 'Parametrização', ], [ 'funcionalidade_id' => self::getFuncionalidade('manutencao', 'solicitacao')->id, 'nome' => 'Solicitação', ], [ 'funcionalidade_id' => self::getFuncionalidade('manutencao', 'gerenciamento')->id, 'nome' => 'Gerenciamento', ], [ 'nome' => 'Relatórios', 'itens' => [ [ 'funcionalidade_id' => self::getFuncionalidade('manutencao', 'relatorio-solicitacoes')->id, 'nome' => 'Relatório de solicitações', ] ], ], ]; self::add([compact('nome', 'icone', 'itens')]); } public static function add($itens, $identificador = null) { foreach ($itens as $item) { $menu = MenuModel::create([ 'menu_id' => $identificador, 'funcionalidade_id' => $item['funcionalidade_id'] ?? null, 'nome' => $item['nome'], 'icone' => $item['icone'] ?? null, ]); if (isset($item['itens'])) { self::add($item['itens'], $menu->id); } } } public static function getFuncionalidade($modulo, $funcionalidade) { return Funcionalidade::where('identificador', $funcionalidade) ->whereHas('modulo', function ($query) use ($modulo) { $query->where('identificador', $modulo); }) ->firstOrFail(); } }