'papel', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'permissao', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'configuracao', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'relatorio-historico-permissao-lotacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-historico-permissao-papel', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-historico-papel-lotacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'notificacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-acesso-funcionalidade', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-permissao-lotacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-acesso-sistema', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-permissao-papel', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-papel-lotacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'gestor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], ]; self::add($modulo, $permissoes); } public static function almoxarifado() { $modulo = 'almoxarifado'; $permissoes = [ [ 'identificador_funcionalidade' => 'motivo-baixa', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'entrada', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'saida', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'baixa', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['reverse'], ], ], [ 'identificador_funcionalidade' => 'inventario', 'acoes' => [ CrudAcao::ATUALIZAR => ['store'], ], ], [ 'identificador_funcionalidade' => 'entrada-inicial', 'acoes' => [ CrudAcao::CRIAR => ['store'], ], ], [ 'identificador_funcionalidade' => 'balancete', 'acoes' => [ CrudAcao::ATUALIZAR => ['store'], ] ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'requisicao-abertura-fechamento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'requisicao-pendente-permissao', 'acoes' => [ CrudAcao::CRIAR => ['storePermissoes', 'createImportacao', 'storeImportacao'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'transferencia', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'accept', 'reject'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estorno-entrada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estorno-saida', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-validade-material', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-entrada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-saida', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-consumo-financeiro', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-posicao-estoque', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-requisicao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-consumo-medio-mensal', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'dispensacao-materiais', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'relatorio-movimentacao-geral', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function bpa() { $modulo = 'bpa'; $permissoes = [ [ 'identificador_funcionalidade' => 'exportacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'procedimento-consolidado', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'procedimento-individualizado', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-inconsistencia', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-bpa-individualizado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-bpa-consolidado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], ]; self::add($modulo, $permissoes); } public static function raas() { $modulo = 'raas'; $permissoes = [ [ 'identificador_funcionalidade' => 'procedimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy', 'destroyAutomaticos'], ], ], [ 'identificador_funcionalidade' => 'exportacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-inconsistencia', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function apac() { $modulo = 'apac'; $permissoes = [ [ 'identificador_funcionalidade' => 'procedimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy', 'destroyAutomaticos'], ], ], [ 'identificador_funcionalidade' => 'exportacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-inconsistencia', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function cadastro() { $modulo = 'cadastro'; $permissoes = [ [ 'identificador_funcionalidade' => 'setor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'alergia', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'unidade', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'bairro', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'logradouro', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'loteamento', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'feriado', 'acoes' => [ CrudAcao::CRIAR => ['store', 'create'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'convenio-medico', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'paciente', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show', 'list'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear', 'desbloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'usuario', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => [ 'edit', 'update', 'gerarSenha', 'bloquear', 'desbloquear' ], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'unidade-externa', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['update', 'edit'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'medicamento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'sala', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'grupo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'subgrupo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'material', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'fabricante', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'fornecedor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'vacina', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'especialidade', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'activate', 'deactivate', 'saveAtribuicao'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'ferida', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'activate', 'deactivate'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'unificacao-usuario-paciente', 'acoes' => [ CrudAcao::CRIAR => ['store'], ], ], [ 'identificador_funcionalidade' => 'obito', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'unidade-executante-manutencao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'servico-manutencao', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], CrudAcao::VISUALIZAR => ['datatable', 'list'], ] ], [ 'identificador_funcionalidade' => 'supervisor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'origem-programatica', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'oci', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-usuario', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-material', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-paciente-bairro', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function exameImagem() { $modulo = 'exame-imagem'; $permissoes = [ [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'jornada', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['show', 'datatable'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'agendamento', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['show', 'datatable', 'getJornadas', 'getSupervisores'], CrudAcao::ATUALIZAR => ['cancel'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'fechamento', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'lancamento', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'impressao', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'listagem-exames-agendados', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'alteracao-exame-finalizado', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'reimpressao-resultado', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-exame-status', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'alteracao-resultado-lancamento', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['list'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'exame-agendado-realizado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show', 'list', 'datatable'], ], ], [ 'identificador_funcionalidade' => 'agendamento-retroativo', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::VISUALIZAR => ['show', 'datatable', 'getJornadas', 'getSupervisores'], CrudAcao::ATUALIZAR => ['cancel'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cota-profissional', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-financeiro-exame', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'reagendamento-cancelamento-exame', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'reschedule', 'cancel'], ], ], ]; self::add($modulo, $permissoes); } public static function exameLaboratorial() { $modulo = 'exame-laboratorial'; $permissoes = [ [ 'identificador_funcionalidade' => 'relatorio-exame-bloqueado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-paciente-atendido', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['saldo_exame', 'saldo_unidade_solicitante', 'getLotacoes'], ], ], [ 'identificador_funcionalidade' => 'formula-exame', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'jornada', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'datatable'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'agendamento-exame', 'acoes' => [ CrudAcao::CRIAR => ['store', 'saveExameBloqueado'], CrudAcao::VISUALIZAR => ['show', 'datatable', 'getJornadas', 'getSupervisor', 'getCotas'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'lancamento-coleta', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'lancamento-resultado', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'mapa-producao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'assinatura-eletronica', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'impressao-exame', 'acoes' => [ CrudAcao::CRIAR => ['create'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'importar-laudo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'list', 'load', 'download', 'getExames'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'entrega-exame', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'impressoes', 'acoes' => [ CrudAcao::CRIAR => ['create'], CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'exame-agendado-realizado', 'acoes' => [ CrudAcao::VISUALIZAR => ['show', 'list'], ], ], [ 'identificador_funcionalidade' => 'coleta-agendada', 'acoes' => [ CrudAcao::VISUALIZAR => ['show', 'list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'mapa-dia', 'acoes' => [ CrudAcao::CRIAR => ['create'], CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'agendamento-exame-retroativo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show', 'datatable', 'getJornadas', 'getSupervisor', 'getCotas'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'cancelamento-resultado', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['list', 'loadFields'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cota-consumo', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'exame-solicitado-status', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'exame-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-financeiro-paciente', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-coleta-realizada', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-financeiro-exame', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-historico-paciente', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-exame-solicitado', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'relatorio-exame-laboratorio-apoio', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'loadFields'], ], ], [ 'identificador_funcionalidade' => 'jornada-bloqueio', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], ]; self::add($modulo, $permissoes); } public static function imunizacao() { $modulo = 'imunizacao'; $permissoes = [ [ 'identificador_funcionalidade' => 'sala-vacinacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'entrada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'baixa', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'requisicao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'distribuicao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'registro-vacinacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'cadastro-campanha', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'aplicacao-campanha', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'consulta-estoque', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-de-aplicacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-consolidado-aplicacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'fila-atendimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'relatorio-posicao-estoque', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-faltoso-aprazamento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function painelSenha() { $modulo = 'painel-senha'; $permissoes = [ [ 'identificador_funcionalidade' => 'chamada', 'acoes' => [ CrudAcao::CRIAR => ['store'], ], ], [ 'identificador_funcionalidade' => 'emissao-senha', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'encaminhamento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'opcao-chamada', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'opcao-entrada', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'tela', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'tempo-espera', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'prioridade', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'fila-atendimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'aviso', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], ]; self::add($modulo, $permissoes); } public static function parametrizacao() { $modulo = 'parametrizacao'; $permissoes = [ [ 'identificador_funcionalidade' => 'exame', 'acoes' => [ CrudAcao::CRIAR => ['store', 'create'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['update', 'edit'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'procedimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'kit-exame', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'procedimento-cirurgico', 'acoes' => [ CrudAcao::CRIAR => ['store', 'create'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['update', 'edit'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'tabela-cid', 'acoes' => [ CrudAcao::ATUALIZAR => ['update'], ], ], [ 'identificador_funcionalidade' => 'tabela-obm', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], ], ], [ 'identificador_funcionalidade' => 'relatorio-exame-cadastrado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function prontoAtendimento() { $modulo = 'pronto-atendimento'; $permissoes = [ [ 'identificador_funcionalidade' => 'classificacao-risco', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'laudos', 'acoes' => [ CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'exame-imagem', 'acoes' => [ CrudAcao::CRIAR => ['store', 'create'], ], ], [ 'identificador_funcionalidade' => 'plantao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['list', 'index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'updateAllStatus'], CrudAcao::EXCLUIR => ['destroy', 'destroyAll'], ], ], [ 'identificador_funcionalidade' => 'atendimento-recepcao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'atendimento-medico', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'atendimento-triagem', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'atendimento-enfermagem', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'paciente-observacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'fechamento-faa', 'acoes' => [ CrudAcao::VISUALIZAR => ['list', 'index'], CrudAcao::ATUALIZAR => ['update'], ], ], [ 'identificador_funcionalidade' => 'cancelamento-evasao', 'acoes' => [ CrudAcao::ATUALIZAR => ['cancel'], ], ], [ 'identificador_funcionalidade' => 'paciente-busca', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['realocar'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'atendimento-retroativo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'reabertura-atendimento', 'acoes' => [ CrudAcao::ATUALIZAR => ['update'], ], ], [ 'identificador_funcionalidade' => 'regularizacao-cadastro', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['list', 'index'], ], ], [ 'identificador_funcionalidade' => 'impressao', 'acoes' => [ CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'impressao-faa-eletronica', 'acoes' => [ CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'aih', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'relatorio-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-plantao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-classificacao-risco', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-producao-medico', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'assinatura-eletronica', 'acoes' => [ CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-documento-nao-assinado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-exame-imagem', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'assistencia-social', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'fila-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'fechamento-faa-massa', 'acoes' => [ CrudAcao::VISUALIZAR => ['list'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'relatorio-prescricao-interna', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function transportePaciente() { $modulo = 'transporte-paciente'; $permissoes = [ [ 'identificador_funcionalidade' => 'condutor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'veiculo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'destino', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'ponto', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'jornada', 'acoes' => [ CrudAcao::CRIAR => ['store'], CrudAcao::ATUALIZAR => ['edit'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'grupo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'motivo-viagem-procedimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update', 'bloquear'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'pre-agendamento-transporte', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store', 'storeAgendamento', 'editAgendamento'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy', 'destroyAll'], ] ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'agendar', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['editHorario', 'updateHorario'] ], ], [ 'identificador_funcionalidade' => 'supervisor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'listagem', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], ], ], [ 'identificador_funcionalidade' => 'alterar-horario', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'escolher-veiculo', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], ], ], [ 'identificador_funcionalidade' => 'transferencia-paciente', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], ], ], [ 'identificador_funcionalidade' => 'fechamento-viagem', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], CrudAcao::ATUALIZAR => ['edit', 'update'], ] ], [ 'identificador_funcionalidade' => 'gerenciamento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show'], ], ], [ 'identificador_funcionalidade' => 'reimpressao-protocolo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-agendador', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-viagem', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-viagem-veiculo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-viagem-motorista', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-viagem-geral', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-prestacao-conta', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-viagem-data', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'reabertura-viagem', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], ]; self::add($modulo, $permissoes); } public static function ambulatorio() { $modulo = 'ambulatorio'; $permissoes = [ [ 'identificador_funcionalidade' => 'jornada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'updateAll'], CrudAcao::EXCLUIR => ['destroy', 'destroyAll'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'jornada-situacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'supervisor', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'agendamento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'cancel'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'agendamento-retroativo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'gerenciamento-medico', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'reschedule', 'cancel'], ], ], [ 'identificador_funcionalidade' => 'servico', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'jornada-bloqueio', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'recepcao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'gerenciamento-diario', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico-consulta', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ] ], [ 'identificador_funcionalidade' => 'fechamento-consulta', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'listagem-consulta-agendada-realizada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-cid', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-producao-ambulatorial', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-procedimento-lancado-periodo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico-status', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico-paciente', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-consulta-solicitada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-identificacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-consulta-solicitada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-procedimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-procedimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-consulta-finalizada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-paciente-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-jornada', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'alteracao-consultas-finalizadas', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-producao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'historico-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['show'], ], ], [ 'identificador_funcionalidade' => 'formulario-raas', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'atendimento-enfermagem', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'assinatura-eletronica', 'acoes' => [ CrudAcao::VISUALIZAR => ['list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-rastreio-ferida', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], ]; self::add($modulo, $permissoes); } public static function atencaoBasica() { $modulo = 'atencao-basica'; $permissoes = [ [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'marcador-consumo-alimentar', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'cadastro-individual', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'ficha-complementar', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'cadastro-domiciliar', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'atendimento-odontologico', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-atendimento-odontologico', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'show'], ] ], [ 'identificador_funcionalidade' => 'atendimento-individual', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], CrudAcao::VISUALIZAR => ['show'], ], ], [ 'identificador_funcionalidade' => 'atividade-coletiva', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], CrudAcao::VISUALIZAR => ['show'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cadastro-consistente', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'avaliacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'procedimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search', 'show'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'exportacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['show'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'visita-domiciliar', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], CrudAcao::VISUALIZAR => ['show'], ], ], [ 'identificador_funcionalidade' => 'atendimento-domiciliar', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-inconsistencia', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'search'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estatistico-paciente-cadastrado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-visita-domiciliar', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-acesso-cuidado-programado', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-desenvolvimento-infantil', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'mapa-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-atendimento-domiciliar', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-indicador-sad', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-mulher-prevencao-cancer', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-pessoa-idosa', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-pessoa-hipertensao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-pessoa-com-diabete', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-cuidado-gestacao-puerperio', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], [ 'identificador_funcionalidade' => 'reterritorializacao', 'acoes' => [ CrudAcao::CRIAR => ['store'], ], ], [ 'identificador_funcionalidade' => 'relatorio-atividade-coletiva', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], ]; self::add($modulo, $permissoes); } public static function farmacia() { $modulo = 'farmacia'; $permissoes = [ [ 'identificador_funcionalidade' => 'dispensacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'estorno-dispensacao', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'livro-psicotropico', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'fecharLivro'], ], ], [ 'identificador_funcionalidade' => 'livro-talidomida', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update', 'fecharLivro'], ], ], [ 'identificador_funcionalidade' => 'relatorio-dispensacao-paciente', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'alto-custo-gerenciamento-processo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-dispensacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-paciente-atendido', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-movimentacao-psicotropico', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-quantitativo-dispensacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-estorno-dispensacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-alto-custo-retirada-pendente', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-alto-custo-processo', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-atendimento-diario', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-alto-custo-dispensacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-alto-custo-processo-paciente', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'relatorio-alto-custo-estatistico-cid', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'supervisor', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'fila-atendimento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], ], ], [ 'identificador_funcionalidade' => 'relatorio-dispensacao-remedio-casa', 'acoes' => [ CrudAcao::VISUALIZAR => ['index'], ], ], ]; self::add($modulo, $permissoes); } public static function integracao() { $modulo = 'integracao'; $permissoes = [ [ 'identificador_funcionalidade' => 'ria-parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'ria-gerenciamento-envio', 'acoes' => [ CrudAcao::CRIAR => ['create', 'send'], ], ], [ 'identificador_funcionalidade' => 'ria-relatorio-envio', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'cns-parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'rira-parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'esus-parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'esus-gerenciamento-envio', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], [ 'identificador_funcionalidade' => 'bnafar-parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'bnafar-gerenciamento-envio', 'acoes' => [ CrudAcao::CRIAR => ['create', 'send'], ], ], [ 'identificador_funcionalidade' => 'bnafar-relatorio-envio', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ], ]; if (app('config')->get('database.default') === 'santarita') { $permissoes[] = [ 'identificador_funcionalidade' => 'erpsaude-relatorio-atendimento', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ], ]; } self::add($modulo, $permissoes); } public static function regulacao() { $modulo = 'regulacao'; $permissoes = [ [ 'identificador_funcionalidade' => 'status', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'solicitacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index'], CrudAcao::ATUALIZAR => ['edit', 'update', 'cancel'], ], ], [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'fila', 'acoes' => [ CrudAcao::CRIAR => [ 'createTentativaContato', 'storeTentativaContato', 'createOci', 'storeOci', ], CrudAcao::ATUALIZAR => [ 'editSolicitacao', 'updateSolicitacao', 'updatePaciente', 'editProtocoloAgendamento', 'updateProtocoloAgendamento', 'editPrioridade', 'updatePrioridade', 'updateSolicitacoes', ], ], ], [ 'identificador_funcionalidade' => 'monitoramento-protocolo', 'acoes' => [ CrudAcao::ATUALIZAR => ['encerrarOci'], ] ], [ 'identificador_funcionalidade' => 'relatorio-solicitacao', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ] ], ]; self::add($modulo, $permissoes); } public static function webService() { $modulo = 'web-service'; $permissoes = [ [ 'identificador_funcionalidade' => 'usuario', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-unidade', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-material', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-fornecedor', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-fabricante', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-periodo-contabil', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'almoxarifado-cliente-aprovacao-entrada', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'approve', 'reject'], ], ], [ 'identificador_funcionalidade' => 'laboratorio-cliente-laboratorio', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'laboratorio-cliente-exame', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], ]; self::add($modulo, $permissoes); } public static function manutencao() { $modulo = 'manutencao'; $permissoes = [ [ 'identificador_funcionalidade' => 'parametrizacao', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], ], ], [ 'identificador_funcionalidade' => 'solicitacao', 'acoes' => [ CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'list'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'gerenciamento', 'acoes' => [ CrudAcao::CRIAR => ['create', 'store'], CrudAcao::VISUALIZAR => ['index', 'show', 'list'], CrudAcao::ATUALIZAR => ['edit', 'update'], CrudAcao::EXCLUIR => ['destroy'], ], ], [ 'identificador_funcionalidade' => 'relatorio-solicitacoes', 'acoes' => [ CrudAcao::VISUALIZAR => ['index', 'list'], ] ] ]; self::add($modulo, $permissoes); } public static function add($identificadorModulo, $permissoes) { foreach ($permissoes as $permissao) { $modulo = Modulo::where('identificador', $identificadorModulo)->firstOrFail(); $funcionalidade = $modulo->funcionalidades() ->where('identificador', $permissao['identificador_funcionalidade']) ->firstOrFail(); $crudAcaoIds = []; foreach ($permissao['acoes'] as $crudAcaoId => $enpointAcoes) { $crudAcaoIds[] = $crudAcaoId; $permissao = PermissaoModel::updateOrCreate( [ 'funcionalidade_id' => $funcionalidade->id, 'crud_acao_id' => $crudAcaoId ] ); $idsEnpointsExcluidos = $permissao->endpointAcoes() ->whereNotIn('nome', $enpointAcoes) ->pluck('id'); if (!empty($idsEnpointsExcluidos)) { EndpointAcao::destroy($idsEnpointsExcluidos); } foreach ($enpointAcoes as $acao) { $permissao->endpointAcoes()->updateOrCreate([ 'nome' => $acao ]); } } $permissoesExcluidas = PermissaoModel::where('funcionalidade_id', $funcionalidade->id) ->whereNotIn('crud_acao_id', $crudAcaoIds); $permissoesExcluidas->each(function ($permissao) { LotacaoPermissaoHistorico::where('permissao_id', $permissao->id)->delete(); PapelPermissaoHistorico::where('permissao_id', $permissao->id)->delete(); $permissao->papeis()->sync([]); $permissao->lotacoes()->sync([]); $permissao->delete(); }); } } }