ÉPICO 2 — AUTO-CADASTRO PÚBLICO

Funcionalidade pai: Check-in de Usuários no Sistema Persona principal: Profissional não cadastrado Versão: 1.4 (revisada) Data: 27/08/2026


1. Visão Geral do Épico

1.1 O que inclui

Este épico permite que um profissional crie sua conta no Gemed de forma autônoma, sem depender de um administrador. Ele contempla:

  • Wizard de auto-cadastro em 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 (apenas no cadastro — nunca no login)
  • Verificação de duplicidade de CPF em tempo real
  • Upload de foto opcional com preview circular
  • Estrutura genérica de conselho profissional (tipo, número, UF) — atende CRM, COREN, CRF e demais conselhos
  • Identificação do tipo de profissional de saúde (médico, enfermeira, farmacêutica, psicólogo, nutricionista, etc.)
  • Conselho profissional obrigatório para todo profissional de saúde que assina prontuário
  • Campos condicionais para profissionais de saúde (conselho + especialidades + CBO)
  • Dados avançados opcionais conforme requisito SBIS ECF.02.01 (demográficos, endereço, documentos, naturalidade)
  • Seção de documentos condicional por nacionalidade (nacional → documentos do país; estrangeiro → passaporte)
  • Etapa de dados avançados opcional — fácil de acessar mas sem atrapalhar o fluxo básico
  • Máscara de celular parametrizada por país
  • Indicador de força de senha com critérios visuais parametrizados
  • Tela de sucesso ao finalizar

1.2 Dependências

Este épico depende do E1 (Núcleo de Identidade e Autenticação) — utiliza a mesma estrutura de dados de usuário e a mesma lógica de armazenamento de senha (hash + salt). Os critérios de complexidade de senha são os mesmos parametrizados no E1. Desde a definição de RN-CIU-022 (autenticação automática pós-auto-cadastro), esta dependência se estende também ao mecanismo de autenticação e roteamento pós-login descrito no E1 (Seção 4.1) — ao concluir o wizard, o E2 invoca esse mesmo mecanismo para autenticar o profissional automaticamente.

1.3 Paralelização

Pode ser desenvolvido em paralelo com o E1, pois ambos operam sobre a mesma estrutura de dados e a mesma lógica de criptografia de senha.


2. Regras de Negócio

Este épico também aplica as regras transversais RN-CIU-005 (exclusão lógica), RN-CIU-006 (qualidade e histórico de senha), RN-CIU-007 (suporte multilíngue), RN-CIU-008 (comportamento de campos de input) e RN-CIU-022 (autenticação automática pós-auto-cadastro — ver Seção 4.1, “Tela de sucesso”) — redação completa no documento guarda-chuva (Check-In de usuários no sistema), Seção 5.

RN-CIU-002 — 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 por clínicas.

RN-CIU-003 — Campos do auto-cadastro

O auto-cadastro público exige obrigatoriamente: CPF, nome completo, apelido, celular, e-mail e senha. A foto e o tratamento são opcionais. Se o usuário declarar que é profissional de saúde, deve informar obrigatoriamente: tipo de profissional, conselho profissional (tipo, número e UF), especialidades e CBO.

Os dados avançados (demográficos, endereço, documentos, naturalidade) são opcionais e estão disponíveis no auto-cadastro, mas o usuário pode pular essa etapa sem prejuízo — ela pode ser preenchida posteriormente no Meu Perfil (E4).

RN-CIU-004 — Validação de documento no cadastro

O sistema deve validar o formato do documento informado no auto-cadastro. No Brasil, o CPF deve passar por validação de dígitos verificadores. Um documento inválido impede o cadastro. Um documento já cadastrado em registro ativo impede novo auto-cadastro — o sistema orienta o usuário a fazer login ou recuperar senha.

RN-CIU-013 — Auto-cadastro não gera vínculo

O auto-cadastro público cria apenas a conta de usuário com status ativo. Não gera vínculo com nenhuma clínica. O usuário auto-cadastrado pode fazer login, mas será direcionado para o Meu Perfil com banner informativo “Você não está vinculado a nenhuma clínica ativa”. O vínculo é sempre estabelecido via convite do administrador ou via aceite de convite (E3).

RN-CIU-017 — Estrutura genérica de conselho profissional

O sistema utiliza uma estrutura genérica para registro de conselho profissional, composta por três elementos: tipo de conselho (CRM, COREN, CRF, CRFA, CRN, CRO, etc.), número de registro e UF. Isso permite que qualquer profissional regulamentado registre seu conselho, não apenas médicos.

O conselho profissional é obrigatório para todo profissional de saúde que assina prontuário — isso inclui médicos, enfermeiras, farmacêuticas, psicólogos, nutricionistas, fisioterapeutas, fonoaudiólogos e demais profissionais regulamentados que realizam registros clínicos no prontuário. Usuários que não assinam prontuário (recepcionistas, administradores) não precisam informar conselho.

RN-CIU-018 — Dados avançados opcionais (SBIS ECF.02.01)

O sistema deve disponibilizar no auto-cadastro os campos exigidos pelo SBIS ECF.02.01 para identificação de profissionais. Estes campos estão presentes no formulário (atendendo ao requisito) mas não são obrigatórios — o usuário pode pular a etapa de dados avançados e finalizar o cadastro apenas com os dados básicos e profissionais. Os campos avançados podem ser preenchidos posteriormente no Meu Perfil (E4).

RN-CIU-019 — Identificação do tipo de profissional

O auto-cadastro utiliza um checkbox “Sou profissional de saúde” para identificar se o usuário é um profissional de saúde. Se marcado, o sistema exibe um select “Tipo de profissional” com opções carregadas de tabela de terminologias (médico, enfermeira, farmacêutica, psicólogo, nutricionista, fisioterapeuta, fonoaudiólogo, outro profissional de saúde). O tipo de profissional selecionado determina:

  • Quais especialidades são exibidas (médico vê especialidades médicas, enfermeira vê especialidades de enfermagem, etc.)
  • Qual conselho profissional é pré-sugerido (médico → CRM, enfermeira → COREN, farmacêutica → CRF), embora o usuário possa alterar
  • O CBO é obrigatório para todos os profissionais de saúde

Se o usuário não marcar “Sou profissional de saúde”, os campos profissionais não aparecem e o usuário vai direto para a etapa 2 (dados avançados). Na etapa 2, a seção de conselho profissional não aparece.

RN-CIU-020 — 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. A parametrização é carregada conforme o país de operação do sistema.

RN-CIU-021 — Documentos condicionais por nacionalidade

A seção de documentos na etapa de dados avançados é condicional conforme a nacionalidade selecionada:

  • Nacionalidade = Brasileira ou Naturalizado: exibe a seção de documentos nacionais (identidade — número, complemento, UF, órgão emissor, data de emissão — e CNS)
  • Nacionalidade = Estrangeiro: exibe a seção de documentos de estrangeiro (passaporte — número, país emissor, data de emissão, data de validade — e CNS)

Esta estrutura é preparada para internacionalização futura — quando o sistema operar em outros países, a seção de documentos nacionais deve ser adaptada para exibir os documentos específicos daquele país (SSN, DNI, etc.), mantendo a seção de estrangeiro para documentos de visitantes.


3. Histórias de Usuário

US-CIU-001 — Auto-cadastro público

Como profissional não cadastrado, quero me cadastrar no Gemed informando meus dados pessoais e profissionais, para ter uma conta no sistema e poder receber convites de clínicas.

US-CIU-002 — Validação de CPF no cadastro

Como profissional não cadastrado, quero que o sistema valide meu CPF durante o cadastro, para evitar erros de digitação e garantir que meu documento está correto.


4. Descrição Funcional Detalhada

4.1 Tela de Auto-cadastro (Wizard)

Propósito: Permitir que uma pessoa crie sua conta no Gemed sem depender de um administrador.

Estrutura: Wizard de 3 etapas com indicador de progresso no topo (barra progress com 3 segmentos).

Comportamento de campos (aplicável a todos os inputs do sistema):

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). Portanto, as descrições de campos não citam o label separadamente — o label é sempre igual ao placeholder.


Etapa 1 — Dados básicos (com complemento profissional condicional)

Campos principais (sempre exibidos):

  • CPF (input text, com máscara automática 000.000.000-00, validação de dígitos verificadores)
  • Nome completo (input text, obrigatório, mínimo 3 caracteres)
  • Apelido (input text, obrigatório, mínimo 2 caracteres)
  • Tratamento (select: Dr., Dra., Sr., Sra., Srta. — opcional)
  • Data de nascimento (input date, opcional)
  • Celular (input text, com máscara parametrizada por país — RN-CIU-020. No Brasil: formato (00) 00000-0000. Obrigatório)
  • E-mail (input email, obrigatório, validação de formato)
  • Foto (upload de arquivo, opcional, preview circular com avatar)
  • Checkbox/Switch: “Sou profissional de saúde” (MSG-C2-01)

Complemento profissional (exibido apenas se “Sou profissional de saúde” estiver marcado):

Ao marcar o switch, os campos abaixo aparecem dinamicamente abaixo do checkbox, na mesma etapa:

  • Tipo de profissional (select com busca, obrigatório, lista carregada de tabela de terminologias):

    • Médico
    • Enfermeira
    • Farmacêutica
    • Psicólogo
    • Nutricionista
    • Fisioterapeuta
    • Fonoaudiólogo
    • Outro profissional de saúde
  • Conselho profissional (estrutura genérica — RN-CIU-017, obrigatório para todo profissional de saúde que assina prontuário):

    • Tipo de conselho (select: CRM, COREN, CRF, CRFA, CRN, CRO, etc. — lista carregada de tabela de terminologias. Pré-sugerido conforme tipo de profissional: Médico → CRM, Enfermeira → COREN, Farmacêutica → CRF, Psicólogo → CRP, etc. — mas o usuário pode alterar)
    • Número de registro (input text, obrigatório)
    • UF (select com as 27 unidades federativas)
  • Especialidades (multi-select com chips, obrigatório, lista carregada de tabela de terminologias — filtrada conforme tipo de profissional selecionado)

    • Campo de busca para filtrar especialidades
    • Chips removíveis (chip com botão ×)
    • Permite múltiplas seleções
  • CBO — Classificação Brasileira de Ocupações (select com busca, obrigatório, lista carregada de tabela de terminologias)

Comportamento:

  • Máscara de CPF aplicada em tempo real conforme digitação
  • Validação de CPF (dígitos verificadores) ao sair do campo (onBlur) — se inválido, borda error e mensagem MSG-E2-01
  • Validação de e-mail ao sair do campo — se inválido, borda error e mensagem MSG-E2-03
  • Verificação de CPF já cadastrado: ao sair do campo CPF, o sistema consulta a base. Se já existe um registro ativo com aquele CPF, exibe dialog MSG-E2-02 com botões “Fazer login” e “Recuperar senha” — ambos redirecionam para a tela apropriada (E1)
  • Switch “Sou profissional de saúde” expande/recolhe os campos profissionais na mesma tela, sem navegar para outra etapa
  • Tipo de conselho pré-preenchido conforme tipo de profissional selecionado, mas editável
  • Lista de especialidades filtrada conforme tipo de profissional (médico vê especialidades médicas, enfermeira vê especialidades de enfermagem, etc.)
  • Número de registro validado quanto ao formato (números) ao sair do campo
  • Pelo menos 1 especialidade deve ser selecionada
  • CBO deve ser selecionado
  • Botão “Continuar” desabilitado até todos os campos obrigatórios (principais + profissionais se aplicável) estarem preenchidos e válidos
  • Botão “Voltar” não existe na etapa 1 (é a primeira)

Verificação de duplicidade (SBIS ECF.02.02):

  • Ao sair do campo número de registro do conselho, o sistema verifica se já existe um usuário ativo com o mesmo tipo de conselho + número + UF
  • Se já existe, exibe dialog MSG-E2-04 com botões “Fazer login” e “Recuperar senha”

Decisão de design: O complemento profissional foi integrado à etapa 1 para reduzir a fragmentação do fluxo. O usuário não precisa navegar para outra etapa apenas para preencher dados profissionais — o switch expande os campos na mesma tela, mantendo o contexto. Isso reduz o número de etapas do wizard de 4 para 3, tornando o fluxo mais fluido.


Etapa 2 — Dados avançados (opcional)

Propósito: Disponibilizar os campos exigidos pelo SBIS ECF.02.01 sem torná-los obrigatórios.

Aparição: Sempre exibida após a etapa 1. O usuário pode pular esta etapa a qualquer momento.

Estrutura: Organizada em seções colapsáveis (accordions) para não esmagar o usuário com muitos campos de uma vez:

Seção: Dados demográficos

  • Nome da mãe (input text, opcional, com checkbox “Mãe desconhecida” — se marcado, desabilita o campo)
  • Sexo (select: Masculino, Feminino — opcional)
  • Gênero (select: Masculino, Feminino, Transgênero, Não binário, Prefiro não informar — opcional)
  • Raça/cor (select: Branca, Preta, Parda, Amarela, Indígena, Sem informação — opcional)
  • Nacionalidade (select: Brasileira, Naturalizado, Estrangeiro — opcional)

Seção: Naturalidade

  • Município de nascimento (input text com autocomplete, opcional)
  • UF de nascimento (select, opcional)
  • País de nascimento (select, default Brasil, opcional)
  • Data de naturalização (input date, condicional — exibido apenas se nacionalidade = “Naturalizado”)

Seção: Documentos (condicional por nacionalidade — RN-CIU-021)

Subseção: Documentos nacionais (exibida se nacionalidade = “Brasileira” ou “Naturalizado”):

  • Número de identidade (input text, opcional)
  • Complemento de identidade (input text, opcional)
  • UF da identidade (select, opcional)
  • Órgão emissor (input text, opcional)
  • Data de emissão da identidade (input date, opcional)
  • Cartão Nacional de Saúde — CNS (input text, opcional)

Subseção: Documentos de estrangeiro (exibida se nacionalidade = “Estrangeiro”):

  • Número do passaporte (input text, opcional)
  • País emissor (select, opcional)
  • Data de emissão (input date, opcional)
  • Data de validade (input date, opcional)
  • Cartão Nacional de Saúde — CNS (input text, opcional)

Nota: Se a nacionalidade não foi selecionada, nenhuma subseção de documentos é exibida. Quando o sistema for internacionalizado, a subseção “Documentos nacionais” deve ser adaptada para exibir os documentos específicos do país de operação (passaporte, SSN, DNI, etc.), mantendo a subseção de estrangeiro para documentos de visitantes.

Seção: Endereço

  • CEP (input text com máscara 00000-000, opcional — ao preencher, auto-completa logradouro, bairro, município e UF via consulta de CEP)
  • Tipo de logradouro (select: Rua, Avenida, Praça, etc., opcional)
  • Logradouro (input text, opcional)
  • Número (input text, opcional)
  • Complemento (input text, opcional)
  • Bairro/Distrito (input text, opcional)
  • Município (input text com autocomplete, opcional)
  • UF (select, opcional)
  • País (select, default Brasil, opcional)

Seção: Conselho profissional (para não-profissionais de saúde)

  • Tipo de conselho (select: CRM, COREN, CRF, CRFA, CRN, CRO, etc.)
  • Número de registro (input text)
  • UF (select)
  • Nota: Esta seção só aparece se o usuário NÃO marcou “Sou profissional de saúde” na etapa 1. Se marcou, o conselho já foi preenchido na etapa 1.

Comportamento:

  • Texto orientador no topo: MSG-T2-01
  • Botão “Pular esta etapa” (tertiary) visível e acessível — direciona para a etapa 3
  • Botão “Continuar” (primary) — habilitado independentemente de campos preenchidos (todos são opcionais)
  • Botão “Voltar” retorna à etapa 1
  • Campos condicionais (naturalização, documentos por nacionalidade) aparecem/desaparecem conforme seleção
  • Auto-preenchimento de endereço via CEP

Decisão de design: A etapa 2 é sempre exibida mas nunca bloqueia o avanço. O usuário pode pular sem preencher nada. As seções em accordion reduzem a carga visual — o usuário expande apenas o que quer preencher. A seção de documentos é condicional por nacionalidade, evitando exibir campos irrelevantes (estrangeiro não vê campos de RG, brasileiro não vê campos de passaporte). Todos os campos desta etapa podem ser preenchidos posteriormente no Meu Perfil (E4).


Etapa 3 — Definição de senha

Campos:

  • Senha (input password, com toggle de visibilidade, obrigatório)
  • Confirmar senha (input password, com toggle de visibilidade, obrigatório)
  • Indicador de força da senha (barra progress que muda de cor: vermelho → amarelo → verde conforme critérios atendidos)
  • Lista de critérios de complexidade (checkbox visuais que marcam automaticamente conforme a senha atende cada critério)

Comportamento:

  • Indicador de força atualiza em tempo real conforme digitação
  • Confirmar senha valida igualdade ao sair do campo — se diferente, borda error e mensagem MSG-E2-05
  • Botão “Finalizar cadastro” desabilitado até senha atender todos os critérios e confirmação ser igual
  • Botão “Voltar” retorna à etapa 2

Critérios de complexidade da senha — parametrizados via tabela UsuarioSenhaParametros (IpSeguranca), conforme RN-CIU-006:

Parâmetro (campo na tabela)DescriçãoValor atual
TamanhoMinimoQuantidade mínima de caracteres na senha8
MinimoCaracterEspecialQuantidade mínima de caracteres especiais1
MinimoLetraMaiusculaQuantidade mínima de letras maiúsculas1
MinimoLetraMinusculaQuantidade mínima de letras minúsculas1
MinimoNumeroQuantidade mínima de números (dígitos)1
CaracteresEspeciaisCaracteres especiais válidos aceitos!@#$%^&*-_+=?;:|

O sistema consulta estes parâmetros em tempo real ao validar a nova senha. A interface de critérios visuais deve refletir os valores parametrizados.

Mecanismo de armazenamento de senha (detalhe técnico):

Ao finalizar o cadastro, o sistema:

  1. Gera um Salt aleatório único para o usuário
  2. Utiliza o Salt para gerar o Hash da senha digitada
  3. Armazena Hash e Salt na tabela Usuario
  4. Registra a senha em UsuarioSenhaHistorico (se QuantidadeMemoria > 0)
  5. Cria o registro de Usuario com os dados das etapas 1 (incluindo complemento profissional se aplicável) e 2 (se preenchida)

A senha é armazenada exclusivamente como hash + salt — nunca em texto plano.

Nota sobre exclusão lógica: ver RN-CIU-005 (documento guarda-chuva, Seção 5).


Tela de sucesso

Layout:

  • Ícone de check (círculo verde, primary-pure)
  • Título: MSG-S2-01
  • Texto: MSG-S2-02

Comportamento (RN-CIU-022 — decisão confirmada com o solicitante em 27/08/2026): ao concluir o cadastro com sucesso, o sistema autentica o profissional automaticamente, reutilizando o mesmo mecanismo de autenticação e roteamento pós-login descrito no Épico 1 (Seção 4.1) — não é necessário informar CPF e senha novamente. Como o usuário recém-cadastrado ainda não possui vínculo com nenhuma clínica, o resultado desse roteamento (RN-CIU-009) é o redirecionamento à página de Meu Perfil (Épico 4) com o banner informativo MSG-I01.

[Proposta — decisão de UI não confirmada explicitamente pelo solicitante, apenas o comportamento de autenticação automática acima] A tela de sucesso é exibida brevemente, com o ícone de check e a mensagem de boas-vindas, antes do redirecionamento automático a Meu Perfil. O botão “Ir para o login” (MSG-B2-07) foi removido desta tela, já que não há mais uma etapa de login manual neste fluxo.

Decisão de design: Wizard em 3 etapas para reduzir carga cognitiva. A etapa 1 integra os dados básicos e o complemento profissional condicional, evitando navegação desnecessária. A etapa de dados avançados é opcional e fácil de pular — não atrapalha o fluxo básico. A validação de CPF e conselho já cadastrados acontece em tempo real para evitar frustração no final do processo. O indicador de força da senha com critérios visuais orienta o usuário sem exigir que ele memorize regras. A identificação do tipo de profissional permite que o sistema filtre especialidades e sugira o conselho correto, melhorando a experiência para todos os profissionais de saúde, não apenas médicos. A seção de documentos condicional por nacionalidade evita exibir campos irrelevantes e está preparada para internacionalização futura.


5. Critérios de Aceitação

US-CIU-001 — Auto-cadastro público

CA-001.1: Dado que estou na tela de cadastro, quando informo um CPF válido e não cadastrado, então o sistema aceita o CPF e permite continuar.

CA-001.2: Dado que informei um CPF já cadastrado, quando saio do campo, então o sistema exibe o dialog MSG-E2-02 oferecendo opções de login ou recuperação de senha.

CA-001.3: Dado que informei um CPF inválido (dígitos verificadores incorretos), quando saio do campo, então o sistema exibe a mensagem MSG-E2-01 e não permite continuar.

CA-001.4: Dado que preenchi todos os campos obrigatórios da etapa 1, quando clico em “Continuar”, então o sistema avança para a etapa 2.

CA-001.5: Dado que estou na etapa 2 (dados avançados), quando clico em “Pular esta etapa”, então o sistema avança para a etapa 3 sem exigir nenhum preenchimento.

CA-001.6: Dado que estou na etapa 3, quando defino uma senha que atende todos os critérios de complexidade parametrizados em UsuarioSenhaParametros e a confirmação é igual, então o botão “Finalizar cadastro” é habilitado.

CA-001.7: Dado que finalizei o cadastro, quando o sistema cria o registro, então vejo a tela de sucesso e posso ir para o login.

CA-001.8: Dado que cadastrei com sucesso, quando tento fazer login, então o sistema me autentica e direciona para o Meu Perfil com banner “Você não está vinculado a nenhuma clínica ativa”.

CA-001.9: Dado que marquei “Sou profissional de saúde” na etapa 1, quando o switch é ativado, então os campos de tipo de profissional, conselho profissional (tipo, número, UF), especialidades e CBO aparecem na mesma tela como obrigatórios.

CA-001.10: Dado que não marquei “Sou profissional de saúde” na etapa 1, quando chego à etapa 2, então a seção “Conselho profissional” aparece disponível para preenchimento opcional.

CA-001.11: Dado que informei um conselho profissional já cadastrado (mesmo tipo + número + UF) na etapa 1, quando saio do campo, então o sistema exibe o dialog MSG-E2-04 oferecendo opções de login ou recuperação de senha.

CA-001.12: Dado que preenchi o CEP na etapa 2, quando saio do campo, então o sistema auto-completa logradouro, bairro, município e UF.

CA-001.13: Dado que selecionei nacionalidade “Estrangeiro” na etapa 2, quando o campo aparece, então a subseção de documentos de estrangeiro (passaporte, país emissor, datas) é exibida e a subseção de documentos nacionais é ocultada.

CA-001.14: Dado que selecionei nacionalidade “Brasileira” na etapa 2, quando o campo aparece, então a subseção de documentos nacionais (identidade, CNS) é exibida e a subseção de documentos de estrangeiro é ocultada.

CA-001.15: Dado que marquei “Mãe desconhecida” na etapa 2, quando o checkbox é marcado, então o campo “Nome da mãe” é desabilitado e não exige preenchimento.

CA-001.16: Dado que selecionei tipo de profissional “Enfermeira” na etapa 1, quando o campo de conselho é carregado, então o tipo de conselho é pré-sugerido como “COREN” (mas o usuário pode alterar).

CA-001.17: Dado que selecionei tipo de profissional “Médico” na etapa 1, quando as especialidades são carregadas, então apenas especialidades médicas são exibidas.

CA-001.18: Dado que o sistema está operando no Brasil, quando o campo de celular recebe foco, então a máscara aplicada é (00) 00000-0000.

CA-001.19: Dado que não selecionei nenhuma nacionalidade na etapa 2, quando visualizo a seção de documentos, então nenhuma subseção de documentos é exibida.

US-CIU-002 — Validação de CPF no cadastro

CA-002.1: Dado que digitei um CPF com dígitos verificadores incorretos, quando saio do campo, então vejo a mensagem MSG-E2-01 e o botão “Continuar” fica desabilitado.

CA-002.2: Dado que digitei um CPF válido e não cadastrado, quando saio do campo, então não vejo mensagem de erro e o botão “Continuar” é habilitado (se demais campos válidos).

CA-002.3: Dado que digitei um CPF já cadastrado, quando saio do campo, então o sistema exibe o dialog MSG-E2-02 com opções de login ou recuperação de senha.


6. Fluxos de Exceção

EX-E2-01 — CPF inválido no cadastro

  • Gatilho: Usuário digita CPF com dígitos verificadores incorretos na etapa 1
  • Comportamento: Campo exibe borda error, mensagem inline MSG-E2-01, botão “Continuar” permanece desabilitado
  • Recuperação: Usuário corrige o CPF; validação roda novamente ao sair do campo

EX-E2-02 — CPF já cadastrado no cadastro

  • Gatilho: Usuário digita CPF que já existe na base como registro ativo
  • Comportamento: Dialog MSG-E2-02 exibido com botões “Fazer login” e “Recuperar senha”
  • Recuperação: Usuário é redirecionado para login ou recuperação; o cadastro é interrompido

EX-E2-03 — Conselho profissional já cadastrado

  • Gatilho: Usuário informa conselho (tipo + número + UF) que já existe na base para outro usuário ativo
  • Comportamento: Dialog MSG-E2-04 exibido com botões “Fazer login” e “Recuperar senha”
  • Recuperação: Usuário é redirecionado para login ou recuperação; o cadastro é interrompido

EX-E2-04 — Caractere especial não permitido na senha

  • Gatilho: Usuário utiliza um caractere especial que não está na lista parametrizada em CaracteresEspeciais
  • Comportamento: O critério “Caracteres especiais” na lista visual não é marcado como atendido, e o botão “Finalizar cadastro” permanece desabilitado
  • Recuperação: Usuário utiliza apenas caracteres da lista parametrizada (atualmente: !@#$%

EX-E2-05 — Senhas não coincidem

  • Gatilho: Usuário informa senhas diferentes nos campos “senha” e “confirmar senha”
  • Comportamento: Campo de confirmação exibe borda error e mensagem MSG-E2-05
  • Recuperação: Usuário corrige a confirmação

EX-E2-06 — Erro ao criar cadastro

  • Gatilho: Back-end retorna erro ao tentar criar o registro do usuário
  • Comportamento: Toast error MSG-E2-06 exibido abaixo do botão “Finalizar cadastro”. Botão volta ao estado default
  • Recuperação: Usuário tenta novamente

7. Validações de Campos

CampoTelaTipoObrigatórioFormato/RegraMensagem de erro
CPFEtapa 1Texto com máscaraSim11 dígitos + validação de dígitos verificadoresMSG-E2-01
Nome completoEtapa 1TextoSimMínimo 3 caracteres, máximo 100MSG-E2-07
ApelidoEtapa 1TextoSimMínimo 2 caracteres, máximo 50MSG-E2-08
TratamentoEtapa 1SelectNãoDr., Dra., Sr., Sra., Srta.N/A
Data de nascimentoEtapa 1DateNãoData válida, não futuraMSG-E2-09
CelularEtapa 1Texto com máscaraSimMáscara parametrizada por país (Brasil: (00) 00000-0000)MSG-E2-10
E-mailEtapa 1E-mailSimFormato user@domain.comMSG-E2-03
FotoEtapa 1UploadNãoImagem (jpg, png), max 5MBMSG-E2-11
”Sou profissional de saúde”Etapa 1CheckboxNãoBooleanN/A
Tipo de profissionalEtapa 1 (complemento)Select com buscaSim (se profissional de saúde)Lista de terminologiasN/A
Tipo de conselhoEtapa 1 (complemento)SelectSim (se profissional de saúde)Lista de conselhosN/A
Número de registroEtapa 1 (complemento)TextoSim (se profissional de saúde)NuméricoMSG-E2-12
UF do conselhoEtapa 1 (complemento)SelectSim (se profissional de saúde)27 unidades federativasN/A
EspecialidadesEtapa 1 (complemento)Multi-selectSim (se profissional de saúde)Mínimo 1 seleçãoMSG-E2-13
CBOEtapa 1 (complemento)Select com buscaSim (se profissional de saúde)Lista de ocupaçõesN/A
Nome da mãeEtapa 2TextoNãoDesabilitado se “Mãe desconhecida” marcadoN/A
SexoEtapa 2SelectNãoMasculino, FemininoN/A
GêneroEtapa 2SelectNãoMasculino, Feminino, Transgênero, Não binário, Prefiro não informarN/A
Raça/corEtapa 2SelectNãoBranca, Preta, Parda, Amarela, Indígena, Sem informaçãoN/A
NacionalidadeEtapa 2SelectNãoBrasileira, Naturalizado, EstrangeiroN/A
Número de identidadeEtapa 2 (se nacional)TextoNãoN/A
Número do passaporteEtapa 2 (se estrangeiro)TextoNãoN/A
CEPEtapa 2Texto com máscaraNãoFormato 00000-000MSG-E2-14
CNSEtapa 2TextoNãoFormato numéricoMSG-E2-15
SenhaEtapa 3PasswordSimTamanhoMinimo (8) + MinimoCaracterEspecial (1) + MinimoLetraMaiuscula (1) + MinimoLetraMinuscula (1) + MinimoNumero (1) + CaracteresEspeciais (!@#$%^&*-_+=?;:|) — parametrizados em UsuarioSenhaParametrosIndicador visual de critérios não atendidos
Confirmar senhaEtapa 3PasswordSimDeve ser igual ao campo SenhaMSG-E2-05

8. Mapeamento de Componentes de Interface

ComponenteVarianteEstado(s)Tokens aplicadosOnde aparece
Input (text)Bordereddefault, focus, error, disabledinput-height: 56px, radius-m (8px), neutral-light border (#BECADC), neutral-darker focus border (#01013B), texto em edição neutral-dark (#012856)CPF, Nome, Apelido, Celular, Número de registro, Nome da mãe, CEP, CNS, Passaporte, etc.
Input (email)Bordereddefault, focus, errorMesmos tokens do input textE-mail
Input (date)Bordereddefault, focusMesmos tokens do input textData de nascimento, Data de naturalização, Data de emissão, Data de validade
Input (password)Bordered com toggledefault, focus, errorMesmos tokens + ícone olho clicávelSenha, Confirmar senha
ButtonPrimarydefault, hover, loading, disabledbtn-height: 40px, primary-pure bg (#00E676), base-pure text (#FFFFFF), radius-m (8px)Continuar, Finalizar cadastro, Ir para o login
ButtonTertiarydefault, hoverTransparent bg, primary-pure text (#00E676)Voltar, Pular esta etapa
SelectDefaultdefault, open, selectedinput-height: 56px, radius-m (8px), neutral-light borderTratamento, Tipo de profissional, Tipo de conselho, UF, Sexo, Gênero, Raça/cor, Nacionalidade, País
CheckboxDefaultdefault, checked, disabled20px box, primary-pure (#00E676) quando checked”Sou profissional de saúde”, “Mãe desconhecida”
ChipDefault, Activedefault, active, hoverradius-pill, neutral-lighter bg / primary-light bgEspecialidades selecionadas
Avatarmd, lgdefaultradius-full, primary-light bgPreview de foto
ProgressLineardefaultradius-pill, neutral-lighter track (#E5EAF0), primary-pure bar (#00E676)Indicador de etapas do wizard, força de senha
AccordionDefaultcollapsed, expandedradius-m, neutral-lighter bg, neutral-dark textSeções da etapa 2 (dados avançados)
DialogDefaultopen, closedradius-l, base-pure bg, shadow-heavyCPF já cadastrado, conselho já cadastrado
ToastSuccess, Erroranimation: toast-in (300ms)secondary-dark bg (#0091EA) / error-pure bg (#F44336)Cadastro realizado, erro ao criar cadastro

9. Integração com Backend

9.1 Auto-cadastro

FunçãoMétodoPathRequest BodyResponse BodyCódigos HTTP
Verificar CPFGET/api/usuarios/verificar-cpf?cpf={cpf}{ existe: boolean, nome?: string }200
Verificar conselhoGET/api/usuarios/verificar-conselho?tipo={tipo}&numero={numero}&uf={uf}{ existe: boolean, nome?: string }200
Criar cadastroPOST/api/usuarios{ cpf, nome, apelido, tratamento, dataNascimento, telefone, email, caminhoFoto, tipoProfissional?, conselho?: { tipo, numero, uf }, especialidades?: [], cbo?: string, dadosAvancados?: { … }, senha }{ id, nome }201, 400 (dados inválidos), 409 (CPF ou conselho já existe)
Upload de fotoPOST/api/usuarios/fotomultipart/form-data{ caminhoFoto: string }201, 400

9.2 Mapeamento de Tabelas

TabelaBancoCampos utilizados neste épico
UsuarioIpSegurancaId, Usuario (login=CPF), CPF, Nome, Apelido, Tratamento, DataNascimento, Telefone, eMail, CaminhoFoto, Hash, Salt, DataSenha, RemovidoEm, UsuarioIdRemovido
UsuarioSenhaHistoricoIpSegurancaUsuarioId, DataSenha, Hash, Salt
UsuarioSenhaParametrosIpSegurancaTamanhoMinimo, MinimoCaracterEspecial, MinimoLetraMaiuscula, MinimoLetraMinuscula, MinimoNumero, CaracteresEspeciais, QuantidadeMemoria
UsuarioClienteIpSegurancaUsuarioId, ClienteBDId, Situacao, RemovidoEm (consultado apenas para verificar duplicidade de CPF ativo)

Nota sobre campos novos (SBIS ECF.02.01): Os campos de dados avançados (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. A Seção 4 (Mapeamento de BD) do documento guarda-chuva deverá propor a criação de campos ou tabela complementar para armazenar estes dados. A estrutura genérica de conselho (tipo, número, UF) e o tipo de profissional também podem exigir novos campos ou tabela separada — hoje existe apenas o campo CRM específico para médicos.

Nota sobre tabelas de terminologia: As listas de tipos de conselho (CRM, COREN, CRF, etc.), tipos de profissional, especialidades e CBO devem ser carregadas de tabelas no banco IpTerminologia. A existência e estrutura destas tabelas deverá ser verificada na Seção 4.


10. Catálogo de Mensagens do Sistema (Multilíngue)

Todas as mensagens exibidas ao usuário neste épico, com suas traduções para os três idiomas suportados.

10.1 Mensagens de erro

IDContextopt-BRen-USes-419
MSG-E2-01CPF inválido (dígitos verificadores)“CPF inválido. Verifique o número.""Invalid CPF. Please check the number.""CPF inválido. Verifique el número.”
MSG-E2-02CPF já cadastrado (dialog)“Este CPF já está cadastrado no Gemed. Deseja fazer login ou recuperar sua senha?""This CPF is already registered in Gemed. Would you like to log in or recover your password?""Este CPF ya está registrado en Gemed. ¿Desea iniciar sesión o recuperar su contraseña?”
MSG-E2-03E-mail inválido”E-mail inválido.""Invalid email.""Correo electrónico inválido.”
MSG-E2-04Conselho já cadastrado (dialog)“Este conselho profissional já está cadastrado no Gemed. Deseja fazer login ou recuperar sua senha?""This professional council is already registered in Gemed. Would you like to log in or recover your password?""Este consejo profesional ya está registrado en Gemed. ¿Desea iniciar sesión o recuperar su contraseña?”
MSG-E2-05Senhas não coincidem”As senhas não coincidem.""Passwords do not match.""Las contraseñas no coinciden.”
MSG-E2-06Erro ao criar cadastro”Não foi possível concluir o cadastro. Tente novamente.""Could not complete the registration. Please try again.""No fue posible completar el registro. Inténtelo de nuevo.”
MSG-E2-07Nome muito curto”Nome deve ter no mínimo 3 caracteres.""Name must be at least 3 characters long.""El nombre debe tener al menos 3 caracteres.”
MSG-E2-08Apelido muito curto”Apelido deve ter no mínimo 2 caracteres.""Nickname must be at least 2 characters long.""El apodo debe tener al menos 2 caracteres.”
MSG-E2-09Data de nascimento inválida”Data inválida.""Invalid date.""Fecha inválida.”
MSG-E2-10Celular inválido”Celular inválido.""Invalid phone number.""Número de celular inválido.”
MSG-E2-11Arquivo de foto muito grande”Arquivo muito grande. Máximo 5MB.""File too large. Maximum 5MB.""Archivo demasiado grande. Máximo 5MB.”
MSG-E2-12Número de registro inválido”Número de registro inválido. Use apenas números.""Invalid registration number. Use numbers only.""Número de registro inválido. Use solo números.”
MSG-E2-13Especialidade não selecionada”Selecione pelo menos uma especialidade.""Select at least one specialty.""Seleccione al menos una especialidad.”
MSG-E2-14CEP inválido”CEP inválido.""Invalid ZIP code.""Código postal inválido.”
MSG-E2-15CNS inválido”CNS inválido.""Invalid CNS number.""Número de CNS inválido.”

10.2 Mensagens de sucesso

IDContextopt-BRen-USes-419
MSG-S2-01Cadastro realizado (título)“Cadastro realizado!""Registration complete!""¡Registro completado!”
MSG-S2-02Cadastro realizado (texto)“Sua conta foi criada no Gemed. Você pode ser convidado por clínicas para se vincular e começar a usar o sistema.""Your account has been created in Gemed. You can be invited by clinics to link and start using the system.""Su cuenta ha sido creada en Gemed. Puede ser invitado por clínicas para vincularse y comenzar a usar el sistema.”

10.3 Placeholders

IDCampopt-BRen-USes-419
MSG-P2-01CPF”CPF""CPF""CPF”
MSG-P2-02Nome completo”Nome completo""Full name""Nombre completo”
MSG-P2-03Apelido”Apelido""Nickname""Apodo”
MSG-P2-04Celular”Celular""Phone number""Número de celular”
MSG-P2-05E-mail”E-mail""Email""Correo electrónico”
MSG-P2-06Número de registro”Número de registro""Registration number""Número de registro”
MSG-P2-07Nome da mãe”Nome da mãe""Mother’s name""Nombre de la madre”
MSG-P2-08CEP”CEP""ZIP code""Código postal”
MSG-P2-09CNS”CNS""CNS number""Número de CNS”
MSG-P2-10Número de identidade”Número de identidade""ID number""Número de identificación”
MSG-P2-11Passaporte”Passaporte""Passport""Pasaporte”
MSG-P2-12Tipo de profissional”Tipo de profissional""Professional type""Tipo de profesional”

10.4 Textos orientadores

IDContextopt-BRen-USes-419
MSG-T2-01Etapa 2 — texto orientador”Estes dados são opcionais e podem ser preenchidos depois no seu perfil. Preencha agora se quiser agilizar seu cadastro nas clínicas.""This data is optional and can be filled in later in your profile. Fill it in now to speed up your clinic registration.""Estos datos son opcionales y pueden completarse más tarde en su perfil. Complételos ahora si desea agilizar su registro en las clínicas.”
IDElementopt-BRen-USes-419
MSG-B2-01Botão (etapa 1, 2)“Continuar""Continue""Continuar”
MSG-B2-02Botão (etapa 2, 3)“Voltar""Back""Volver”
MSG-B2-03Botão (etapa 2)“Pular esta etapa""Skip this step""Omitir este paso”
MSG-B2-04Botão (etapa 3)“Finalizar cadastro""Complete registration""Finalizar registro”
MSG-B2-05Botão (dialog CPF/conselho)“Fazer login""Log in""Iniciar sesión”
MSG-B2-06Botão (dialog CPF/conselho)“Recuperar senha""Recover password""Recuperar contraseña”

10.6 Rótulos de checkbox

IDElementopt-BRen-USes-419
MSG-C2-01Checkbox (etapa 1)“Sou profissional de saúde""I am a healthcare professional""Soy profesional de la salud”
MSG-C2-02Checkbox (etapa 2)“Mãe desconhecida""Mother unknown""Madre desconocida”

11. Conformidade SBIS

ECF.02.01 — Identificação dos profissionais da organização

Estágio: 1 (Clínica/ambulatório) — obrigatório

Descrição: “O S-RES deve permitir o cadastro de profissionais da organização permitindo registrar minimamente os seguintes campos: nome; nome social/apelido; nome da mãe; sexo; gênero; data de nascimento; raça/cor; nacionalidade; município de nascimento e UF; data de naturalização; país de nascimento; passaporte; e-mail; telefone; endereço completo; CPF; identidade; CNS; conselho profissional; CBO. Os campos devem estar presentes no formulário, mas não necessariamente de preenchimento obrigatório.”

Como é atendido: Todos os campos exigidos pelo SBIS estão presentes no wizard de auto-cadastro:

  • Campos obrigatórios (etapa 1): nome, apelido, data de nascimento, e-mail, telefone, CPF
  • Campos obrigatórios para profissionais de saúde (etapa 1, complemento): tipo de profissional, conselho profissional (tipo, número, UF), especialidades, CBO
  • Campos opcionais (etapa 2): nome da mãe (com opção “mãe desconhecida”), sexo, gênero, raça/cor, nacionalidade, naturalidade (município, UF, país), data de naturalização, documentos (condicional por nacionalidade: nacional → identidade + CNS; estrangeiro → passaporte + CNS), endereço completo (tipo de logradouro, logradouro, número, complemento, bairro, município, UF, país, CEP)
  • Foto (etapa 1, opcional): CaminhoFoto

A etapa 2 é opcional e pode ser pulada, mas todos os campos estão presentes no formulário conforme exige o SBIS. A seção de documentos é condicional por nacionalidade, exibindo os campos apropriados conforme o país de origem do usuário.

ECF.02.02 — Duplicidade de cadastros de profissionais

Estágio: 1 (Clínica/ambulatório) — obrigatório

Descrição: “O S-RES deve possuir um mecanismo de validação que emita uma mensagem de aviso ao usuário e impeça a continuidade do registro em caso de duplicidade de cadastro de profissional. A validação deve ser realizada pelo menos para o número do CPF e conselho profissional.”

Como é atendido:

  • Validação de CPF: ao sair do campo CPF (etapa 1), o sistema consulta a base. Se já existe, exibe dialog MSG-E2-02 impedindo a continuidade.
  • Validação de conselho: ao sair do campo número de registro (etapa 1, complemento profissional), o sistema verifica se já existe um usuário ativo com o mesmo tipo + número + UF. Se já existe, exibe dialog MSG-E2-04 impedindo a continuidade.

NGS1.02.03 — Qualidade da senha

Estágio: 1 (Clínica/ambulatório) — obrigatório

Como é atendido: A senha do auto-cadastro é validada contra os critérios parametrizados em UsuarioSenhaParametros, que atendem e superam o mínimo exigido (8 caracteres, 1 alfabético, 1 numérico — o sistema também exige maiúscula, minúscula e caractere especial).

NGS1.02.17 — Revelação de credenciais na interface de autenticação

Estágio: 1 (Clínica/ambulatório) — obrigatório

Como é atendido: Os campos de senha e confirmação utilizam máscara de caracteres (toggle de visibilidade com ícone olho). O formulário não memoriza nem exibe credenciais digitadas anteriormente.

ECF.17.19 — Mensagens do sistema

Estágio: 1 (Clínica/ambulatório) — obrigatório

Como é atendido: Todas as mensagens exibidas ao usuário estão catalogadas na Seção 10 em linguagem não técnica, em português do Brasil (com suporte multilíngue para en-US e es-419). Mensagens técnicas de banco de dados ou infraestrutura são capturadas pelo back-end e nunca exibidas ao usuário.


12. Metadados do Épico

AtributoValor
PrioridadeMust Have
ComplexidadeAlta — wizard de 3 etapas, complemento profissional condicional na etapa 1, campos condicionais por nacionalidade, validações em tempo real, estrutura genérica de conselho, identificação de tipo de profissional, dados avançados do SBIS
DependênciasE1 (mesma estrutura de dados, mesma lógica hash/salt, mesmos parâmetros de senha)
Regras transversais aplicadas5 (RN-CIU-005, 006, 007, 008, 022)
Paraleliza comE1 (Núcleo de Identidade e Autenticação)
Histórias de usuário2 (US-CIU-001, US-CIU-002)
Critérios de aceitação22
Fluxos de exceção6 (EX-E2-01 a EX-E2-06)
Endpoints4
Telas1 (Wizard de 3 etapas + tela de sucesso)
Tabelas utilizadas4 (Usuario, UsuarioSenhaHistorico, UsuarioSenhaParametros, UsuarioCliente — consulta de duplicidade)
Mensagens catalogadas34 (15 erros, 2 sucessos, 12 placeholders, 1 texto orientador, 6 rótulos de botão/link, 2 rótulos de checkbox — MSG-B2-07 removida na v1.4, ver Seção 4.1 “Tela de sucesso”)
Requisitos SBIS atendidos5 (ECF.02.01, ECF.02.02, NGS1.02.03, NGS1.02.17, ECF.17.19)

E2 v1.2 completo. As três correções integradas:

  1. RN-CIU-021 — Seção de documentos condicional por nacionalidade (nacional → documentos do país; estrangeiro → passaporte), com nota de preparação para internacionalização futura
  2. Etapa 2 integrada à etapa 1 — Wizard reduzido de 4 para 3 etapas; o complemento profissional aparece dinamicamente na mesma tela ao marcar “Sou profissional de saúde”
  3. Placeholders simplificados — Apenas o nome do campo, sem verbos de comando (“CPF” em vez de “Digite seu CPF”)

E2 v1.4 (27/08/2026): incorporada RN-CIU-022 (autenticação automática pós-auto-cadastro, decisão confirmada com o solicitante) — a Tela de sucesso (Seção 4.1) não exige mais login manual; o sistema autentica o profissional automaticamente e o redireciona a Meu Perfil (E4). Botão “Ir para o login” (MSG-B2-07) removido do catálogo de mensagens.