CHECK-IN DE USUÁRIOS NO SISTEMA

Documento pai: Especificação Funcional de Software — Gemed Onco Versão: 1.1 Data: 27/08/2026


1. Objetivo

Definir e especificar todas as funcionalidades relacionadas ao check-in de usuários no sistema Gemed — o conjunto de fluxos que permite que um profissional crie sua conta, autentique-se, recupere seu acesso, seja convidado por clínicas e selecione onde trabalhar.


2. Escopo

2.1 Dentro do escopo

  • Login com documento único e senha
  • Controle de tentativas de login com bloqueio parametrizável
  • Recuperação de senha via código de verificação
  • Auto-cadastro público (conta global do usuário)
  • Validação de documento e conselho profissional no cadastro
  • Dados avançados opcionais conforme SBIS ECF.02.01
  • Convite de profissionais por clínicas (a especificar — E3)
  • Vínculo entre usuário e clínica (a especificar — E3)
  • Seleção de clínica quando o usuário possui múltiplos vínculos (a especificar — E6)
  • Meu Perfil — visualização e edição dos dados do usuário (a especificar — E4)

2.2 Fora do escopo

  • Single Sign-On (SSO) externo
  • Gestão de identidade federada
  • Controle biométrico de acesso
  • Criptografia de dados em repouso
  • Gestão de perfis de acesso (RBAC) — tratado no Contexto de Segurança
  • Gestão de sessão e timeout por inatividade — tratado no Contexto de Segurança

3. Personas

PersonaDescrição
Profissional não cadastradoMédico, enfermeira, farmacêutica ou outro profissional de saúde que ainda não possui conta no Gemed
Usuário autenticadoProfissional com conta ativa, autenticado no sistema
Administrador da clínicaUsuário com perfil de administrador que convida e vincula profissionais à sua clínica
Suporte técnico GemedUsuário N1/N2 que auxilia na resolução de conflitos de cadastro e conselho

4. Épicos

ÉpicoTítuloStatusVersãoDependências
E1Núcleo de Identidade e Autenticação✅ Finalizadov1.5Nenhuma (épico base)
E2Auto-cadastro Público✅ Finalizadov1.2E1
E3Convite e Vínculo⏳ A especificarE1, E2
E4Meu Perfil⏳ A especificarE1, E2
E6Seleção de Clínica⏳ A especificarE1

4.1 Resumo dos épicos finalizados

E1 — Núcleo de Identidade e Autenticação (v1.5): Tela de login com documento único + senha, sem máscara nem validação de formato (anti-enumeração). Controle de tentativas parametrizável (QuantidadeTentativas = 5, MinutosBloqueado = 15). Recuperação de senha em 2 etapas com código de 6 dígitos, dupla verificação de documento e critérios de complexidade parametrizados. Mensagens multilíngues (pt-BR, en-US, es-419). 2 histórias de usuário, 19 critérios de aceitação, 6 fluxos de exceção, 4 endpoints, 4 tabelas.

E2 — Auto-cadastro Público (v1.2): Wizard de 3 etapas (dados básicos com complemento profissional condicional, dados avançados opcionais, definição de senha). Validação de CPF com dígitos verificadores. Verificação de duplicidade de CPF e conselho em tempo real. Estrutura genérica de conselho profissional (tipo, número, UF). Identificação de tipo de profissional de saúde (médico, enfermeira, farmacêutica, psicólogo, etc.). Documentos condicionais por nacionalidade. Dados avançados opcionais conforme SBIS ECF.02.01. Máscara de celular parametrizada por país. Conflito de conselho não bloqueia o cadastro — permite concluir sem conselho. 2 histórias de usuário, 22 critérios de aceitação, 6 fluxos de exceção, 4 endpoints, 4 tabelas.


5. Regras de Negócio Transversais

Regras que se aplicam a mais de um épico do Check-in de Usuários. A redação completa de cada uma vive aqui — os épicos não a repetem, apenas referenciam o ID (RN-CIU-XXX). Regras que pertencem a um único épico foram movidas para lá (ver tabela de referência ao final desta seção).

RN-CIU-005 — Exclusão lógica (sem campo Status)

O conceito de campo Status foi abolido das tabelas IpSeguranca. A exclusão lógica utiliza a estrutura padrão da infraestrutura:

  • RemovidoEm (datetimeoffset) — registra a data e hora da exclusão
  • UsuarioIdRemovido (uniqueidentifier) — identifica quem fez a exclusão

Um registro é considerado ativo quando RemovidoEm é nulo. Um registro é considerado excluído quando RemovidoEm possui uma data/hora preenchida. Todas as consultas, validações e verificações de duplicidade consideram apenas registros ativos.

Usada por: (CIU-E1) — verificação de login e de recuperação de senha; (CIU-E2) — verificação de duplicidade de CPF e de conselho profissional.

RN-CIU-006 — Qualidade e histórico de senha parametrizados

Os seguintes parâmetros de qualidade e histórico de senha são parametrizáveis via tabela UsuarioSenhaParametros (IpSeguranca):

ParâmetroDescriçãoValor atual
TamanhoMinimoMínimo de caracteres na senha8
MinimoCaracterEspecialMínimo de caracteres especiais1
MinimoLetraMaiusculaMínimo de letras maiúsculas1
MinimoLetraMinusculaMínimo de letras minúsculas1
MinimoNumeroMínimo de números (dígitos)1
CaracteresEspeciaisCaracteres especiais válidos aceitos!@#$%^&*-_+=?;:|
MinutosValidadeNovaSolicitacaoValidade do código de recuperação (minutos)15
QuantidadeMemoriaQuantidade de senhas anteriores guardadas (0 = não guarda)7

Nota: os parâmetros de tentativas de login e bloqueio (QuantidadeTentativas, MinutosBloqueado) não fazem parte desta regra — são específicos do fluxo de login e estão em RN-CIU-010 (CIU-E1).

Usada por: (CIU-E1) — redefinição de senha na recuperação; (CIU-E2) — definição de senha no auto-cadastro.

RN-CIU-007 — Suporte multilíngue

O sistema suporta três idiomas: pt-BR (português do Brasil), en-US (inglês) e es-419 (espanhol latino-americano). Todas as mensagens exibidas ao usuário são catalogadas com IDs (MSG-E01, MSG-S01, etc.) e traduzidas para os três idiomas. As mensagens inline nos documentos referenciam os IDs do catálogo.

Usada por: (CIU-E1) e (CIU-E2) — catálogos de mensagens (Seção 10 de cada épico).

RN-CIU-008 — Comportamento de campos de input

Todo campo de input possui um placeholder que é o nome do campo (apenas o nome, sem verbos de comando). Quando o usuário clica no campo para digitar, o placeholder some e se torna um label acima do campo (colado à borda superior do campo). O label é sempre igual ao placeholder.

Usada por: (CIU-E1) e (CIU-E2) — todos os campos de todas as telas.

Regras específicas de um único épico

As regras abaixo pertencem a um único épico — a redação completa está no documento do épico correspondente. Aqui consta apenas a referência, para não duplicar conteúdo.

RNTítuloÉpico dono
RN-CIU-001Documento único como chave de identificação(CIU-E1), Seção 2
RN-CIU-002Unicidade global do usuário(CIU-E2), Seção 2
RN-CIU-010Tentativas de login (parametrizável)(CIU-E1), Seção 2
RN-CIU-016Anti-enumeração no login(CIU-E1), Seção 2
RN-CIU-017Estrutura genérica de conselho profissional(CIU-E2), Seção 2
RN-CIU-020Máscara de celular parametrizada por país(CIU-E2), Seção 2
RN-CIU-021Documentos condicionais por nacionalidade(CIU-E2), Seção 2

6. Convenções de Documentação

Estrutura de cada épico

Cada épico segue a estrutura:

  1. Visão Geral (o que inclui, dependências, paralelização)
  2. Regras de Negócio (em linguagem de negócio, sem referências a campos de banco)
  3. Histórias de Usuário
  4. Descrição Funcional Detalhada (layout, comportamento, estados visuais, decisões de design, detalhes técnicos)
  5. Critérios de Aceitação (formato Dado/Quando/Então)
  6. Fluxos de Exceção (gatilho, comportamento, recuperação)
  7. Validações de Campos (tabela)
  8. Mapeamento de Componentes de Interface (tabela com tokens do Design System)
  9. Integração com Backend (endpoints, mapeamento de tabelas)
  10. Catálogo de Mensagens (multilíngue, com IDs)
  11. Conformidade SBIS
  12. Metadados do Épico

Numeração

  • Regras de negócio: RN-CIU-XXX (CIU = Check-in de Usuários)
  • Histórias de usuário: US-CIU-XXX
  • Critérios de aceitação: CA-XXX.X
  • Fluxos de exceção: EX-XXX (numeração global entre épicos — o usuário renumera)
  • Mensagens: MSG-EXX (erro), MSG-SXX (sucesso), MSG-IXX (informativa), MSG-PXX (placeholder), MSG-TXX (texto orientador), MSG-BXX (botão/link), MSG-CXX (checkbox)

Separação de preocupações

  • Regras de Negócio: descrevem o que o sistema faz, em linguagem de negócio. Sem nomes de tabelas, campos ou mecanismos técnicos.
  • Descrição Funcional: descreve como o sistema funciona, incluindo detalhes técnicos (campos de banco, mecanismos de hash/salt, etc.).
  • Mapeamento de Tabelas: lista as tabelas e campos utilizados, com o banco de dados correspondente.

7. Bancos de Dados Utilizados

BancoDescriçãoUso no Check-in
IpSegurancaSegurança e configuraçãoTabelas Usuario, UsuarioSenhaHistorico, UsuarioSenhaParametros, UsuarioCliente
IpTerminologiaTabelas de domínioListas de tipos de conselho, tipos de profissional, especialidades, CBO

Tabelas existentes utilizadas

TabelaBancoÉpicos
UsuarioIpSegurancaE1, E2
UsuarioSenhaHistoricoIpSegurancaE1, E2
UsuarioSenhaParametrosIpSegurancaE1, E2
UsuarioClienteIpSegurancaE1, E2

Campos e tabelas a criar (pendências de BD)

  • Campos de dados avançados (SBIS ECF.02.01): nome da mãe, sexo, gênero, raça/cor, nacionalidade, naturalidade, endereço, documentos nacionais, passaporte, CNS — não existem na tabela Usuario atual. Propor criação de campos ou tabela complementar na Seção 4 do documento guarda-chuva.
  • Estrutura genérica de conselho (tipo, número, UF) e tipo de profissional — podem exigir novos campos ou tabela separada.
  • Tabelas de terminologia (tipos de conselho, tipos de profissional, especialidades, CBO) — verificar existência e estrutura no banco IpTerminologia.

8. Conformidade SBIS — Visão Geral

RequisitoEstágioDescriçãoÉpicos que atendem
ECF.02.011 (obrigatório)Identificação dos profissionais — campos presentes no formulárioE2
ECF.02.021 (obrigatório)Duplicidade de cadastros — validação por CPF e conselhoE2
NGS1.02.011 (obrigatório)Método de autenticação — usuário + senha, validação no servidorE1
NGS1.02.021 (obrigatório)Proteção dos parâmetros de autenticação — hash de no mínimo 160 bitsE1
NGS1.02.031 (obrigatório)Qualidade da senha — mínimo 8 caracteres, 1 alfabético, 1 numéricoE1, E2
NGS1.02.111 (obrigatório)Igualdade de senhas — nova senha diferente da atual e da imediatamente anteriorE1
NGS1.02.121 (obrigatório)Obtenção de nova senha — opção “esqueci a senha” na tela de loginE1
NGS1.02.131 (obrigatório)Controle de tentativas de login — bloqueio após máximo configurável (≤10)E1
NGS1.02.161 (obrigatório)Informações em autenticação inválida — mensagem genérica sem revelar motivoE1
NGS1.02.171 (obrigatório)Revelação de credenciais — máscara de caracteres, sem memorizaçãoE1, E2
NGS1.02.192 (recomendado)Uso de SALT — novo salt para cada senhaE1, E2
ECF.17.191 (obrigatório)Mensagens do sistema — linguagem não técnica em português do BrasilE1, E2

9. Metadados

AtributoValor
Funcionalidade paiCheck-in de Usuários no Sistema
Épicos finalizados2 (E1 v1.5, E2 v1.2)
Épicos pendentes3 (E3, E4, E6)
Regras de negócio transversais (redação completa nesta seção)4 (RN-CIU-005, 006, 007, 008)
Regras de negócio específicas de épico (referenciadas aqui)7 (RN-CIU-001, 002, 010, 016, 017, 020, 021)
Requisitos SBIS aplicáveis12
Bancos utilizados2 (IpSeguranca, IpTerminologia)
Tabelas existentes utilizadas4
Pendências de BD3 grupos (dados avançados, conselho genérico, terminologias)
Idiomas suportados3 (pt-BR, en-US, es-419)