CHECK-IN DE USUÁRIOS NO SISTEMA

Documento pai: Especificação Funcional de Software — Gemed Onco Versão: 1.0 Data: 12/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

As regras abaixo se aplicam a todos os épicos do Check-in de Usuários.

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.

Unicidade global do usuário

O cadastro de usuário é global — existe uma única conta por pessoa no sistema, independentemente de quantas clínicas ela esteja vinculada. O usuário não se cadastra novamente para cada clínica; ele se cadastra uma vez e recebe vínculos conforme é convidado.

Documento único como chave de identificação

O usuário é identificado de forma unívoca pelo seu documento único. No Brasil, o CPF é a chave de identificação. Em outros países, o sistema deve adaptar para o documento local equivalente. O documento é exclusivo — não pode pertencer a dois usuários ativos diferentes.

Anti-enumeração no login

No fluxo de login, o sistema não aplica máscara, validação de formato nem restrição de entrada no campo de documento. O campo aceita qualquer texto livre. A única resposta para qualquer falha de login é a mensagem genérica “Usuário ou senha inválidos.” — sem distinguir se o problema foi documento não encontrado, formato inválido, senha incorreta ou usuário excluído.

Parametrização via UsuarioSenhaParametros

Os seguintes parâmetros são parametrizáveis via tabela UsuarioSenhaParametros (IpSeguranca):

ParâmetroDescriçãoValor atual
QuantidadeTentativasMáximo de tentativas falhas antes do bloqueio5
MinutosBloqueadoDuração do bloqueio temporário (minutos)15
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

Estrutura genérica de conselho profissional

O sistema utiliza uma estrutura genérica para registro de conselho profissional: tipo de conselho (CRM, COREN, CRF, CRFA, CRN, CRO, CRP, etc.), número de registro e UF. O conselho é obrigatório para todo profissional de saúde que assina prontuário. Usuários que não assinam prontuário não precisam informar conselho.

Suporte multilíngue

O sistema suporta três idiomas: pt-BR (português do Brasil), en-US (inglês) e es-419 (espanhol latinoamericano). 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.

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.

Máscara de celular parametrizada por país

A máscara de celular é parametrizada por país. No Brasil, utiliza o formato (00) 00000-0000. Quando o sistema operar em outros países, a máscara deve ser adaptada conforme o padrão telefônico local.

Documentos condicionais por nacionalidade

A seção de documentos é condicional conforme a nacionalidade selecionada:

  • Brasileira ou Naturalizado: exibe documentos nacionais (identidade, CNS)
  • Estrangeiro: exibe documentos de estrangeiro (passaporte, CNS)

Preparado para internacionalização futura — a seção de documentos nacionais deve ser adaptada para exibir os documentos específicos do país de operação (SSN, DNI, CURP, etc.).


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 transversais9
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)