Files
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

2675 lines
97 KiB
PHP

<?php
namespace Database\Seeders\Base;
use App\Enums\Administracao\CrudAcao;
use App\Models\Administracao\EndpointAcao;
use App\Models\Administracao\LotacaoPermissaoHistorico;
use App\Models\Administracao\Modulo;
use App\Models\Administracao\PapelPermissaoHistorico;
use App\Models\Administracao\Permissao as PermissaoModel;
class Permissao
{
public static function run()
{
self::administracao();
self::almoxarifado();
self::bpa();
self::raas();
self::apac();
self::cadastro();
self::exameImagem();
self::exameLaboratorial();
self::imunizacao();
self::painelSenha();
self::parametrizacao();
self::prontoAtendimento();
self::transportePaciente();
self::ambulatorio();
self::atencaoBasica();
self::farmacia();
self::integracao();
self::regulacao();
self::webService();
self::manutencao();
}
public static function administracao()
{
$modulo = 'administracao';
$permissoes = [
[
'identificador_funcionalidade' => '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();
});
}
}
}