Épico 5 — Menu Lateral — Definição (v1.0)
Documentos deste épico: 01 - Definição (v1.0) · 02 - Especificação (v1.0) · 03 - Protótipo (v1.0, código executável em 03 - Protótipo v1.0.html) · 04 - Mapeamento de Banco de Dados (v1.0). Este épico faz parte do documento guarda-chuva Check-in de Usuários.
SEÇÃO 1 — DEFINIÇÃO
Objetivo
Dar a todo profissional autenticado um único ponto de navegação entre os módulos que seu perfil de acesso libera na clínica em que está trabalhando — substituindo a necessidade de conhecer de cor onde cada funcionalidade fica, e permitindo que ele volte rapidamente às telas que mais usa no dia a dia (favoritos) ou encontre qualquer outra por busca.
Escopo
Dentro do escopo:
- Menu lateral exibido para qualquer profissional autenticado, em qualquer perfil — não é uma tela exclusiva de um tipo de profissional
- Estrutura de grupos e itens de navegação, filtrada pelo perfil de acesso do profissional na clínica atual
- Favoritar e desfavoritar itens do menu
- Busca em tempo real dentro do menu
- Comportamento responsivo: recolher/expandir no desktop, abrir como camada sobre o conteúdo no mobile
- Botão de troca de clínica, quando aplicável
- Rodapé com identificação do fabricante do sistema
Fora do escopo:
- Conteúdo e comportamento interno de qualquer tela para a qual o menu link a — inclusive Meu Perfil (E4, ainda não especificado) e a aplicação de suporte técnico da Interprocess TI, tratada aqui apenas como um item de menu comum que leva a um destino externo
- Definição de quais grupos, itens e ícones compõem a árvore completa do menu em produção — depende de um levantamento de produto ainda não disponível para este documento (ver “Lista consolidada de itens [PROPOSTA]”); os itens usados neste documento e no protótipo são exemplos, não a árvore final
- Cadastro e administração de perfis de acesso, e a configuração de quais itens cada perfil libera — pertence ao Contexto de Segurança e à gestão de usuários da clínica; este épico apenas consome o resultado dessa configuração
- Definição de qual tela cada item do menu abre — cada uma é uma funcionalidade própria, especificada (ou a especificar) em seu próprio documento
Personas
- Qualquer profissional autenticado — médico oncologista, enfermeiro, farmacêutico, colaborador de backoffice ou qualquer outro perfil presente ou futuro do sistema. O menu lateral é transversal: não muda de componente conforme o profissional, só muda os itens que aparecem nele.
Workflow do Profissional
Resumo: depois de autenticado e com uma clínica de trabalho definida (E1, E6), o profissional passa o resto da sessão navegando entre módulos — abrindo o cockpit, indo a uma tela de prescrição, voltando ao início, checando outra funcionalidade. O menu lateral é o mecanismo dessa navegação: fica disponível o tempo todo, ao lado (desktop) ou por trás de um botão (mobile) do conteúdo principal, e não é específico de nenhum workflow assistencial, de farmácia ou financeiro em particular — é o ponto de partida de todos eles.
Touchpoints:
| Momento do workflow | Necessidade do profissional | O que a funcionalidade oferece | Decisão de design justificada |
|---|---|---|---|
| Imediatamente após autenticar-se e ter uma clínica de trabalho definida (E1, E6) | Ver rapidamente só os módulos que pode de fato usar, sem se perder em opções que não fazem parte do seu trabalho | Menu montado a partir do perfil de acesso do profissional naquela clínica — itens fora do seu perfil simplesmente não aparecem (RN-CIU-027) | Filtragem no carregamento, não uma lista completa com itens desabilitados — reduz poluição visual e evita a pergunta “por que não consigo clicar aqui” |
| Ao longo do dia, retornando repetidamente a um pequeno conjunto de telas (ex.: cockpit, agenda) | Chegar direto às telas mais usadas, sem abrir grupo por grupo toda vez | Seção Favoritos, destacada no topo do menu; no desktop recolhido, só os ícones dos favoritos continuam visíveis e clicáveis (RN-CIU-028) | Favoritos ficam separados da árvore normal porque representam uma escolha pessoal do profissional, não a estrutura do sistema — e continuam acessíveis mesmo com o menu ocupando o mínimo de espaço possível |
| Precisa abrir um módulo específico e não lembra em qual grupo ele está | Achar o item rapidamente, sem navegar pela árvore inteira | Campo de busca que filtra a lista de itens em tempo real, ignorando o estado de expansão dos grupos (RN-CIU-030) | Busca em tempo real (sem precisar confirmar) porque o profissional está no meio do atendimento e cada segundo de espera importa; achatar a árvore evita que o resultado fique escondido dentro de um grupo recolhido |
| Em um smartphone, durante um atendimento com pouco espaço de tela | Abrir o menu sem perder de vista o que já estava na tela | Menu mobile abre como camada sobre o conteúdo (overlay), sem redimensionar nada por baixo (RN-CIU-029) | Redimensionar o conteúdo principal, como no desktop, não é viável na largura de um celular — a camada sobreposta preserva o contexto de onde o profissional estava |
| Em um desktop, quando quer mais espaço para o conteúdo principal | Recolher o menu sem perder o acesso às telas que mais usa | Menu recolhido mostra só os ícones dos itens favoritados, ainda clicáveis; o conteúdo principal ocupa o espaço liberado (RN-CIU-029) | Diferente do overlay do mobile, no desktop há espaço de sobra para redistribuir — recolher sem perder o atalho aos favoritos evita que o profissional precise reabrir o menu inteiro só para voltar a uma tela que já usa com frequência |
| Profissional com acesso a mais de uma clínica quer atender em outra clínica sem sair do sistema | Trocar de clínica de trabalho sem precisar sair e logar de novo | Botão “Trocar”, visível apenas quando há mais de uma clínica acessível (RN-CIU-009, em CIU-E1), que leva à tela de seleção de clínica (E6) | O botão fica oculto para quem só tem uma clínica — não faz sentido oferecer uma troca que não existe; ao trocar, o menu inteiro (itens e favoritos) recarrega para o perfil de acesso da nova clínica, já que ambos dependem do vínculo específico daquela clínica (ver RN-CIU-028) |
Regras de Negócio
Regra transversal aplicável, redação completa no guarda-chuva: RN-CIU-022 (roteamento pós-autenticação que leva o profissional a ter uma clínica de trabalho definida antes de ver o menu). Também referenciada por ID, sem redefinição: RN-CIU-009 (CIU-E1) — define “clínica acessível”, base da visibilidade do botão Trocar.
Regras específicas deste épico:
RN-CIU-026 — Estrutura e transversalidade do menu lateral
O menu lateral é exibido para todo profissional autenticado com uma clínica de trabalho definida, qualquer que seja o seu perfil de acesso — não existe uma variação do componente por tipo de profissional, apenas uma variação de quais itens aparecem (RN-CIU-027).
O menu organiza os itens em grupos. Um grupo não contém outros grupos dentro dele — a estrutura tem uma única camada de agrupamento, sem hierarquia aninhada. Cada grupo pode ser expandido ou recolhido individualmente, sem afetar o estado dos demais grupos. Um item pode também existir fora de qualquer grupo, exibido diretamente na lista principal do menu.
O menu tem um rodapé fixo com o texto de identificação do fabricante do sistema (“Powered by Interprocess TI”) — um rótulo estático, sem comportamento associado.
Motivador: uma estrutura de agrupamento única (sem sub-grupos) mantém a navegação previsível — o profissional nunca precisa descer mais de um nível para encontrar um item dentro de um grupo.
RN-CIU-027 — Filtragem de itens do menu por Perfil de acesso
Um item só aparece no menu quando o perfil de acesso do profissional, na clínica em que está trabalhando, libera aquele item para exibição no menu. Itens não liberados pelo perfil de acesso não aparecem de forma alguma — nem desabilitados, nem ocultos atrás de uma ação extra: simplesmente não fazem parte da lista carregada.
A ordem dos itens dentro de um grupo (e dos itens sem grupo) segue a ordem definida para aquele perfil de acesso especificamente — dois perfis distintos podem ver os mesmos itens em ordens diferentes.
Quando o perfil de acesso do profissional não libera nenhum item para exibição no menu, o menu é exibido vazio, com uma mensagem orientando o profissional a contatar o administrador da sua clínica (EX-E5-01).
Motivador: a filtragem por perfil de acesso é o mesmo mecanismo de controle de acesso já usado no restante do sistema (Contexto de Segurança) — o menu não introduz uma segunda fonte de verdade sobre o que um profissional pode ou não acessar, apenas reflete visualmente essa mesma permissão.
RN-CIU-028 — Favoritos do menu
O profissional pode favoritar qualquer item do menu ao qual tenha acesso, e desfavoritar um item já favoritado, a qualquer momento. Um item favoritado passa a aparecer também numa seção “Favoritos”, destacada no topo do menu, além de continuar no seu lugar de origem (grupo ou lista principal) — favoritar não move o item, duplica sua visibilidade. Desfavoritar remove o item apenas da seção Favoritos; o item permanece normalmente na árvore.
A seção Favoritos só aparece quando o profissional tem ao menos um item favoritado — sem nenhum favorito, a seção inteira não é exibida (nem como um espaço vazio com mensagem).
Favoritos são específicos da combinação entre o vínculo do profissional, seu perfil de acesso e a clínica em que está trabalhando — não do profissional em geral. Como consequência direta, um item favoritado numa clínica não aparece necessariamente favoritado ao trocar para outra clínica acessível: cada clínica pode ter um perfil de acesso diferente associado ao mesmo profissional, e os favoritos acompanham essa combinação, não a pessoa isoladamente. Ao trocar de clínica (E6), a seção Favoritos e a árvore do menu recarregam do zero para o perfil de acesso da nova clínica.
Motivador: manter os favoritos por clínica evita mostrar, numa clínica, um atalho para um item que nem sequer está liberado pelo perfil de acesso do profissional ali — o mesmo raciocínio que já rege a filtragem do menu como um todo (RN-CIU-027).
Nota: o mecanismo de dados que sustenta os favoritos guarda também um indicador de item que abriria automaticamente ao entrar no sistema — comportamento fora do escopo funcional desta versão (nenhum critério de aceitação o exercita); ver Seção 4 para o detalhe técnico e a marcação [PROPOSTA] sobre seu significado exato.
RN-CIU-029 — Comportamento responsivo do menu
No desktop, o menu pode ser recolhido ou expandido pelo profissional. Expandido, exibe grupos e itens por extenso, e o conteúdo principal ocupa o espaço restante da tela. Recolhido, exibe apenas os ícones dos itens favoritados (RN-CIU-028) — não os demais itens da árvore — e o conteúdo principal se redimensiona para ocupar o espaço que o menu liberou. Um ícone do menu recolhido, ao ser clicado, navega diretamente para aquele item, sem exigir que o profissional expanda o menu primeiro.
No mobile, o menu não tem estado “recolhido/expandido” — ele fica oculto até o profissional acioná-lo, e então se abre como uma camada sobre o conteúdo principal, sem redimensionar nada por baixo. Fechar o menu (nova ação do profissional, ou seleção de um item) volta a ocultá-lo, revelando o conteúdo como estava.
Motivador: no desktop há espaço de tela suficiente para redistribuir entre menu e conteúdo; no mobile, a largura da tela não permite as duas coisas ao mesmo tempo sem espremer o conteúdo — por isso os dois comportamentos são deliberadamente opostos (redimensionar vs. sobrepor), cada um adequado ao espaço disponível.
RN-CIU-030 — Busca no menu
O menu tem um campo de busca que filtra os itens pelo nome, em tempo real — a cada caractere digitado, sem exigir confirmação. Durante uma busca com texto digitado, a lista exibida ignora o estado de expansão dos grupos: todo item cujo nome corresponde ao texto buscado aparece, esteja o grupo que o contém expandido ou recolhido. Quando a busca não encontra nenhum item, é exibido um estado vazio orientando o profissional a limpar o filtro (EX-E5-02).
A busca considera apenas os itens já liberados pelo perfil de acesso do profissional (RN-CIU-027) — nunca revela um item que o menu, sem busca, também não mostraria.
Motivador: achatar a árvore durante a busca evita que um resultado relevante fique escondido dentro de um grupo que o profissional não tinha aberto — a busca existe justamente para poupar essa navegação manual.
Premissas
- Todo profissional que vê o menu já está autenticado e já tem uma clínica de trabalho definida — o menu nunca é o primeiro ponto de contato com o sistema (RN-CIU-022, no guarda-chuva).
- A árvore completa de grupos e itens do menu em produção (quais módulos existem, em quais grupos, com quais ícones) não está disponível para este documento — os itens usados na Especificação e no Protótipo são exemplos dos módulos já especificados em outras partes do projeto (Central do Médico/Cockpit, Agenda do Médico) mais placeholders explicitamente marcados para módulos ainda não especificados (enfermagem, farmácia, backoffice), e não devem ser lidos como a árvore final.
- O estado de expansão/recolhimento de um grupo, e o estado recolhido/expandido do menu no desktop, não são persistidos entre sessões — não existe, na estrutura de dados consultada para este épico, um lugar para guardar essa preferência; o menu inicia expandido, com todos os grupos expandidos, a cada nova sessão.
Dependências
Depende do E1 (Núcleo de Identidade e Autenticação) para a autenticação e para a contagem de clínicas acessíveis que decide a visibilidade do botão Trocar (RN-CIU-009). Depende do E6 (Seleção de Clínica) como destino do botão Trocar, e como o ponto em que o profissional escolhe a clínica cujo perfil de acesso determina os itens e favoritos deste menu. Depende do Contexto de Segurança para a existência prévia de perfis de acesso configurados com os itens e a ordem que cada um libera — este épico consome essa configuração, não a define.
Requisitos SBIS Aplicáveis
ECF.17.18 (Idioma do S-RES — menus em português do Brasil), ECF.17.19 (Mensagens do sistema), NGS1.03.01 (Impedir acesso por pessoas não autorizadas), NGS1.03.03 (Gerenciamento de perfis), NGS1.03.07 (Atribuição de mais de um perfil para um usuário) — todos estágio 1 (Clínica/ambulatório), obrigatórios. Detalhamento na Seção 2.
Metadados do Épico
| Atributo | Valor |
|---|---|
| Prioridade | Must Have — sem o menu lateral, nenhum profissional autenticado tem como navegar entre os módulos do sistema |
| Complexidade | Média — nenhuma tabela nova, mas reúne filtragem por perfil, favoritos, busca e dois comportamentos responsivos distintos num único componente transversal a todo o sistema |
| Dependências | E1 (autenticação, contagem de clínicas acessíveis); E6 (destino do botão Trocar, origem do perfil de acesso vigente); Contexto de Segurança (configuração de perfis de acesso e itens liberados) |
| Regras transversais aplicadas | 1 (RN-CIU-022) |
| Regras específicas deste épico | 5 (RN-CIU-026 a RN-CIU-030) |
| Histórias de usuário | 1 (US-CIU-010) |
| Critérios de aceitação | 9 (CA-010.1 a CA-010.9) |
| Fluxos de exceção | 4 (EX-E5-01 a EX-E5-04) |
| Endpoints | 3 |
| Telas | 1 (Menu lateral, com estados desktop expandido/recolhido e mobile overlay) — prototipada em HTML |
| Tabelas utilizadas | 8 existentes (Processo, ProcessoGrupo, ClienteProcesso, ClientePerfilAcesso, ClientePerfilAcessoUsuario, ClientePerfilAcessoProcesso, ClienteUsuarioMenuFavorito, ClienteEmpresa) — nenhuma nova |
| Mensagens catalogadas | 8 (2 erros, 2 informativas/estado vazio, 1 placeholder, 1 texto orientador estático, 2 rótulos de botão) |
| Requisitos SBIS atendidos | 5 (ECF.17.18, ECF.17.19, NGS1.03.01, NGS1.03.03, NGS1.03.07) |
Lista consolidada de itens [PROPOSTA]
- Árvore completa de grupos e itens do menu em produção — o mockup original com a árvore real foi perdido; os itens usados na Especificação e no Protótipo são exemplos dos módulos já especificados no projeto (Central do Médico/Cockpit, Agenda do Médico) mais placeholders de módulos futuros (enfermagem, farmácia, backoffice), claramente identificados como tal.
- Item de menu “Suporte Gemed”, linkando para uma aplicação de suporte técnico externa ao Gemed — usado como exemplo de item de menu comum com destino externo; sua existência e nome exatos dependem de confirmação contra o mockup original, hoje indisponível.
- Interpretação do campo que indica se um item favoritado abre automaticamente ao entrar no sistema — por comparação com o campo equivalente da estrutura legada (Seção 4), a interpretação mais provável é “abre automaticamente ao iniciar a sessão”, mas não há confirmação direta para a estrutura atual; nenhum critério de aceitação desta versão exercita esse comportamento.
- Critério de ordenação dos favoritos dentro da seção Favoritos — não especificado nesta versão; o protótipo usa a ordem em que foram favoritados.
- Estado inicial de expansão dos grupos a cada nova sessão (todos expandidos) — decisão adotada na ausência de um mecanismo de persistência dessa preferência (ver Premissas); a confirmar se um mecanismo de persistência deveria existir numa versão futura.
Histórico de Versões
- v1.0 (15/09/2026) — versão inicial do épico. Estrutura de dados para menu, RBAC de itens e favoritos localizada por completo na Biblioteca de Schema (DDL), banco IpSeguranca (
Processo,ProcessoGrupo,ClienteProcesso,ClientePerfilAcessoProcesso,ClienteUsuarioMenuFavorito) — nenhuma tabela nova necessária. Identificado, a partir da granularidade deClientePerfilAcessoUsuario(específica por clínica desde a correção de granularidade dos Épicos 1/3/6), que os favoritos de um profissional não necessariamente se repetem ao trocar de clínica — achado estrutural documentado em RN-CIU-028, não uma decisão de produto. Árvore completa de grupos/itens do menu não disponível (levantamento original perdido) — este documento e os demais desta versão usam itens de exemplo/placeholder, marcados como tal.