Files
rkm-conectasus-ci-sandbox/api/database/seeders/base/Menu.php
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

1773 lines
77 KiB
PHP

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