Cenários de Teste — Mensageria
Funcionalidade: Mensageria (Comunicação entre Profissionais)
Versão de referência da especificação: 01-Definição v1.28 / 02-Especificação v1.28 / 03-Protótipo v1.28 / 04-Mapeamento de BD v1.28 / 05-Registro de Decisões v1.28
Autor: Marcos Arao, para uso da equipe de QA do Gemed 2.1
Massa de dados de referência: CargaCMZero.xlsx (pasta Central do Médico (Cockpit)/) traz usuários e as equipes Enfermagem, Farmácia e Onco com seus membros, mas nenhuma conversa. As conversas M1 a M10 abaixo são uma [PROPOSTA] de massa a ser criada por script (datas relativas à execução) antes dos testes. Tabelas do IpSeguranca (clínica, perfis, direitos) em Infra-estrutura/CargaSegGlobal.xlsx; os direitos Visualizar e Enviar ainda não existem na carga (04-Mapeamento, 4.6).
Data-base dos testes: quinta, 22/10/2026, às 12:00 no fuso da clínica (America/Sao_Paulo, GMT−03:00). Os prazos da massa são relativos a esse momento.
1. Escopo
Cobre a homologação funcional da Mensageria: painel de Mensagens da Central, tela de Mensagens (abas Abertas e Finalizadas), cartão de conversa, nova mensagem, conversa (modal), responder, resolver e descartar, envio a equipe e a si mesmo, alertas do sistema, ordem, “vencida”, “não lida”, fuso e idioma, permissões, auditoria, acessibilidade e os contratos dos endpoints.
Fora de escopo:
- Cadastro de equipes e de seus membros (outro módulo); aqui são pré-condição.
- Geração dos alertas pelos módulos de origem (Assistencial, Estoque, Agendamento): aqui o alerta é criado pela interface de publicação (CT-MSG-191 a 198 API). A regra que dispara cada alerta é testada em cada módulo.
- Conteúdo das telas de destino do atalho (prontuário, prescrição, consulta): aqui só se confere que o atalho leva ao módulo certo.
- Alterações da Central do Médico (próxima versão): ver 05, P-MSG-09. Os casos CT-MSG-01 a 21 do Cenários da Central continuam valendo para o painel atual da Central até essa versão.
- Componente de data e hora (P-MSG-04): resolvida (D-MSG-061 e 064): data nativa e horário em 24 h, em componente próprio; prazo só com a data em P-MSG-44. O padrão de botões está decidido (Design System, seção 12; CT-MSG-266).
- Textos en-US e es-419: o catálogo existe (02, 2.9); a troca de idioma da interface é testada em CT-MSG-205 e 206.
Casos marcados (API) são executados direto no endpoint. Casos (BD) exigem alterar ou conferir o banco; restaurar o valor ao final.
Ordem de execução e massa: vários casos alteram as conversas (resolver, descartar, responder, ler). Recriar a massa M1 a M10 antes de cada seção, e antes de qualquer caso cujo “Estado de CT-MSG-nnn” dependa de uma conversa ainda aberta.
Usuários de teste
| Usuário | IdUsuario | Papel no teste | Equipes |
|---|---|---|---|
| Craig Evans | 1 | Médico logado na maior parte dos casos | Onco |
| Gilliard Onório Santos | 4 | Segundo médico | Onco |
| Claire Vance | 5 | Enfermagem | Enfermagem |
| Ingrid Jorgensen | 6 | Farmácia | Farmácia |
| Mateo Perez | 7 | Enfermagem | Enfermagem |
| Li Wei | 8 | Farmácia | Farmácia |
Massa proposta de conversas [PROPOSTA]
| ID | Remetente → Destino | Assunto | Paciente / processo | Estado e momento |
|---|---|---|---|---|
| M1 | Ingrid → Craig | Receita de antiemético para viagem | Roberto N. Alves (19) / Prontuário | Enviada há 40 min; não lida por Craig; prazo hoje 18:00 |
| M2 | Claire → equipe Farmácia | Carboplatina em falta | Beatriz A. Lima (20) | Lida por Li Wei há 2 h; Ingrid não leu; sem prazo |
| M3 | Sistema (Assistencial) → Craig | Peso divergente na prescrição | Marcelo T. Pinto (22) / Prescrição “FOLFOX - C1D15” | Não lida; prazo venceu há 2 h (10:00) |
| M4 | Craig → Craig | Revisar protocolo de neutropenia | sem | Lida; prazo amanhã 09:00 |
| M5 | Mateo → Craig | Paciente da sala 2 pronto para infusão | Maria Silva (4) / Consulta | Craig respondeu há 1 h (Respondida); sem prazo |
| M6 | Ingrid → Craig | Atraso na manipulação | sem | Resolvida por Craig ontem 16:10 |
| M7 | Claire → Craig | Recado de paciente | sem | Descartada por Claire (remetente) ontem 09:00 |
| M8 | Craig → equipe Onco | Reunião de quinta | sem | Enviada há 3 h; Gilliard não leu; Craig é membro |
| M9 | Sistema (Estoque) → Claire | Medicamento no limite mínimo | sem | Não lida; sem prazo |
| M10 | 25 conversas abertas de Craig (geradas) | Mensagem de teste n | sem | Para paginação (CT-MSG-115) |
| M12 | Claire → Gilliard | Sangramento na sala 3 | sem | Imediato (stat); lida por Gilliard; enviada hoje às 07:00 |
| M13 | Ingrid → Gilliard | Dúvida de diluição | sem | Rotina (routine); lida por Gilliard; enviada hoje às 11:50 |
| M14 | Mateo → Gilliard | Ajustar agenda de sexta | sem | Sem grau; lida por Gilliard; enviada hoje às 11:55 |
| M15 | Sistema (Assistencial) → Gilliard | Resultado de exame crítico sem análise | Roberto N. Alves (19) / Prontuário | Quanto antes (asap), definido pelo módulo de origem; não lida; publicada hoje às 08:00 |
| M16 | Ingrid → Craig | Conferir laudo | Roberto N. Alves (19) / Documento “Laudo de hemograma” | Usar só em CT-MSG-327 a 330; fora das contagens dos demais casos |
| M17 | Mateo → Craig | Rever sinais vitais | Maria Silva (4) / Registro clínico “21/10/2026 · Sinais vitais · Dr. Carlos” | Usar só em CT-MSG-327 a 330; fora das contagens dos demais casos |
| M18 | Claire → equipe Farmácia | Carboplatina: lote chegou | Beatriz A. Lima (20) | Li Wei (membro) respondeu há 20 min; usar só em CT-MSG-329; fora das contagens dos demais casos |
M3: mensagem publicada às 09:30 (a chave de ordem é o prazo, 10:00). M10 é criada só para o caso de paginação (CT-MSG-115) e não faz parte da massa dos demais casos. M12 a M15 (v1.3; graus renomeados na v1.6) são de Gilliard (usuário 4) e cobrem o grau de urgência sem alterar o painel de Craig em CT-MSG-101: M1 a M10 não têm grau. Para Gilliard, abertas: M15 e M8 (não lidas) e M12, M13 e M14 (lidas). M8 não tem grau.
2. Painel de Mensagens (Central do Médico)
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-101 | Craig logado, Central aberta, desktop, 12:00 | Observar o painel de Mensagens | Título “Mensagens” com contagem 5 (M1, M3, M4, M5, M8). Os 5 cartões, na ordem M1, M3, M4, M5, M8 (ver detalhamento), sem link “Ver todas as mensagens”; se não cabem na altura do painel, ele rola | M1, M3, M4, M5, M8 | RN-MSG-001, 002; CA-MSG-001.1, 001.3 |
| CT-MSG-102 | Estado de CT-MSG-101 | Conferir que M6 e M7 não aparecem | Resolvida e descartada não aparecem no painel | M6, M7 | RN-MSG-001; CA-MSG-001.5 |
| CT-MSG-103 | Craig sem conversas abertas (resolver todas via BD) | Abrir a Central | ”Nenhuma conversa em aberto.” (MSG-TMSG-02), sem link “Ver todas” | — | CA-MSG-001.4 |
| CT-MSG-104 | Estado de CT-MSG-101 | Clicar no cartão de M1 | Abre o modal da conversa; M1 passa a lida (some a borda) e o painel passa a M3, M4, M1, M5 (M1 sai do grupo de não lidas); a contagem não muda | M1 | RN-MSG-017; CA-MSG-003.1 |
| CT-MSG-105 | Estado de CT-MSG-101 | Abrir M4 (modal) e clicar em “Resolver” (no cabeçalho) | Confirmação com título “Resolver conversa?”, foco em “Cancelar”. Cancelar mantém. Confirmar: toast “Conversa resolvida.”; o cartão sai; contagem passa a 4 | M4 | RN-MSG-008; CA-MSG-005.1 |
| CT-MSG-106 | Estado de CT-MSG-101 | Criar por BD uma conversa nova de Ingrid para Craig (fora da massa M1 a M10) e aguardar 1 minuto | O novo cartão aparece no painel sem recarregar a tela | — | 02 2.3.2 |
| CT-MSG-107 | GET /conversations simulando falha (500) | Abrir a Central | Estado de erro com “Não foi possível carregar as mensagens. Tente novamente.” e botão “Tentar novamente”; depois do botão com a API restabelecida, o painel carrega | — | EX-MSG-01 |
| CT-MSG-108 | Painel carregado; derrubar a conexão | Esperar a próxima atualização | Dados permanecem; faixa de sem conexão; some quando a conexão volta | — | EX-MSG-02 |
Detalhamento — CT-MSG-101 (ordem)
Grupo 1, não lidas (da mais nova para a mais antiga pela chave “maior entre última mensagem e prazo”): M1 (mensagem às 11:20, prazo 18:00: chave 18:00) e M3 (mensagem às 09:30, prazo 10:00: chave 10:00). M1 vem antes de M3. Grupo 2, lidas pendentes: M4 (chave = prazo amanhã 09:00), M5 (chave = resposta há 1 h, 11:00), M8 (chave = 09:00 de hoje). Ordem: M4, M5, M8. Painel (5 cartões): M1, M3, M4, M5, M8. M1 a M10 não têm grau de urgência, então a ordem de RN-MSG-002 v1.3 coincide com a da v1.2 (o grau é coberto em CT-MSG-278 e 279). Conferir a ordem real contra a chave; se divergir, o defeito é da implementação, não da massa.
3. Tela de Mensagens, abas e ordem
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-111 | Craig logado | Abrir “Mensagens” pelo menu | Linha de fuso “Fuso horário: Horário Padrão de Brasília (GMT−03:00)”; botão “Nova mensagem”; abas “Abertas (5)” e “Finalizadas (2)“ | — | RN-MSG-011; CA-MSG-002.4 |
| CT-MSG-112 | Estado de CT-MSG-111 | Observar “Abertas” | Ordem completa: M1, M3 (não lidas); M4, M5, M8 (lidas pendentes). Cartões com a mesma estrutura do painel | M1, M3, M4, M5, M8 | RN-MSG-002, 011; CA-MSG-001.1 |
| CT-MSG-113 | Estado de CT-MSG-111 | Abrir “Finalizadas” | M6 (Resolvida) e M7 (Descartada), com chip de estado; sem botão “Resolver”; ordem pela data de finalização, a mais nova primeiro [PROPOSTA, P-MSG-11] | M6, M7 | RN-MSG-011; CA-MSG-001.5 |
| CT-MSG-114 | Estado de CT-MSG-111 | Clicar em um cartão | Abre o modal da conversa sobre a lista (não há página); o endereço passa a ser /mensagens/{id} [PROPOSTA, E-MSG-024] | M5 | 02 2.3.3 |
| CT-MSG-115 | Craig com M10 (25 abertas) | Rolar até o fim da aba “Abertas” | Carrega 20; ao rolar, carrega as 5 seguintes [PROPOSTA]; sem duplicados | M10 | 02 2.3.3 |
| CT-MSG-116 | Usuário sem conversas finalizadas | Abrir “Finalizadas" | "Nenhuma conversa finalizada.” (MSG-TMSG-03) | — | — |
| CT-MSG-117 | Estado de CT-MSG-111 | Comparar M4 (lida, prazo amanhã 09:00) com M8 (lida, última mensagem hoje 09:00, sem prazo) | M4 vem antes de M8: a chave de M4 é o prazo (amanhã), mais recente que a mensagem de M8 | M4, M8 | RN-MSG-002; CA-MSG-001.2 |
| CT-MSG-118 | Estado de CT-MSG-111, desktop e celular | Comparar as colunas | Coluna única nos dois; nenhum cartão com rolagem horizontal | — | 02 2.1 |
4. Cartão de conversa
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-121 | Estado de CT-MSG-112 | Conferir M1 | Sem ícone à esquerda; borda lateral de 3 px em secondary-dark; linha 1: “Ingrid Jorgensen:” em peso médio e a mensagem em peso normal (última mensagem, até 2 linhas; o não lido não muda o peso) e o horário relativo: “Há 40 min” (enviada às 11:20, data-base 12:00); linha 2: “Receita de antiemético para viagem” (assunto, menor); linha 3: nome do paciente (nome social, se houver; senão o nome legal) da massa: Roberto, e o prazo “22/10, 18:00” com o ícone de relógio (sem “Resolver até” visível; a dica traz “Resolver até 22/10/2026, 18:00”), ambos em texto cinza, sem chip; sem botão “Resolvido” (D-MSG-047, 053) | M1 | RN-MSG-017; CA-MSG-003.1, 004.2 |
| CT-MSG-122 | Estado de CT-MSG-112 | Conferir M3 | Sem ícone de tipo; a linha 1 começa com “Sistema:” em peso médio; horário “Há 2 h” (mensagem das 09:30); relógio e “Vencida” em vermelho (sem data, sem chip; a dica traz “Resolver até 22/10/2026, 10:00”); paciente em texto cinza | M3 | RN-MSG-003, 014; CA-MSG-002.2, 004.1 |
| CT-MSG-123 | Estado de CT-MSG-112 | Conferir M5 | Linha 2 “Você: …” (última mensagem é de Craig); sem borda de não lida | M5 | CA-MSG-004.2 |
| CT-MSG-124 | Estado de CT-MSG-112 | Conferir M4 | Sem paciente; prazo “23/10, 09:00” com relógio, em texto cinza; linha 1 “Você: …” | M4 | RN-MSG-007 |
| CT-MSG-125 | Estado de CT-MSG-112 | Conferir M2 como Ingrid | Linha 2 “Claire Vance: …”; não lida para Ingrid, lida para Li Wei | M2 | RN-MSG-017; CA-MSG-003.2 |
| CT-MSG-126 (BD) | M3 aberta | Alterar PrazoEmUtc de M3 para daqui a 1 hora; recarregar | O aviso deixa de ser “Vencida” em vermelho e passa a mostrar o relógio com a data e hora em cinza; a dica traz “Resolver até {dt}”; restaurar | M3 | RN-MSG-003 |
| CT-MSG-127 | M3 vencida | Resolver M3; abrir “Finalizadas” | O chip de vencida some; aparece “Resolvida” | M3 | RN-MSG-003; CA-MSG-002.1 |
| CT-MSG-128 | Texto de assunto com 200 caracteres | Ver o cartão no celular (360 px) | Assunto truncado com reticências em uma linha; a segunda linha também; nenhum corte de layout | — | 02 2.3.1 |
| CT-MSG-129 | Tema escuro | Conferir todos os cartões acima | Só tokens do Design System; contraste de texto ≥ 4,5:1; borda de não lida visível mas discreta | — | CA-MSG-015.1 |
| CT-MSG-130 | Teclado | Percorrer com Tab a lista | Foco no cartão (anel de foco) e depois no cartão seguinte, sem outro ponto de foco dentro do cartão; Enter abre | — | 02 2.10 |
5. Nova mensagem
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-131 | Craig logado | Abrir “Nova mensagem” e a lista de destinatários | Grupo “Pessoas” com Craig marcado “(você)” e a linha “Equipes: Onco”, Gilliard (Onco), Claire (Enfermagem), Ingrid (Farmácia), Mateo (Enfermagem), Li Wei (Farmácia), cada um com a linha “Equipes: …”; grupo “Equipes” com Enfermagem · 2 membros, Farmácia · 2 membros, Onco · 2 membros | — | RN-MSG-007; CA-MSG-007.1 |
| CT-MSG-132 | Formulário vazio | Tocar em “Enviar” | Erros “Informe o destinatário.”, “Informe o assunto.” e “Escreva a mensagem.”; nada é enviado | — | CA-MSG-008.1 |
| CT-MSG-133 | Formulário preenchido | Enviar a Ingrid, assunto “Teste”, mensagem “Olá”, sem paciente e sem prazo | Toast “Mensagem enviada.”; volta à lista; a conversa aparece para Craig em “Abertas” lida e para Ingrid não lida | — | CA-MSG-003.3 |
| CT-MSG-134 | Formulário aberto | Enviar a si mesmo (Craig) | Conversa criada com Craig como remetente e destinatário; aparece em “Abertas” e lida | — | RN-MSG-007; CA-MSG-007.1 |
| CT-MSG-135 | Formulário aberto | Informar data 22/10/2026 e horário 10:00 (passado) | Erro “O prazo não pode ser anterior ao momento do envio.”; não envia | — | RN-MSG-004; CA-MSG-002.3 |
| CT-MSG-136 | Formulário aberto | Informar só a data do prazo (22/10/2026), sem horário | Erro “Informe a data e o horário do prazo.” | — | RN-MSG-012; CA-MSG-008.2 |
| CT-MSG-137 | Navegador em pt-BR e, depois, em en-US | Digitar “1430” no campo “Horário (opcional)” do prazo | O campo mostra “14:30” nos dois navegadores (24 h, sem AM/PM); o prazo gravado é o mesmo (22/10/2026 14:30 da clínica, em UTC); a data segue o formato do navegador | — | RN-MSG-012; D-MSG-064 |
| CT-MSG-138 | Formulário aberto, sem paciente | Observar o campo de tipo de processo; escolher um paciente | Desabilitado sem paciente; depois do paciente, habilita com Paciente, Prescrição, Documento e Registro clínico (D-MSG-036) | — | CA-MSG-008.3, 019.1 |
| CT-MSG-139 | Formulário com paciente e tipo Paciente | Enviar; abrir a conversa | Chip do paciente e atalho “Abrir prontuário”; o clique leva ao prontuário | — | RN-MSG-020, 021; CA-MSG-009.1, 019.3 |
| CT-MSG-140 | Assunto com 201 caracteres | Digitar | O campo limita a 200; contador visível | — | 02 2.6 |
| CT-MSG-141 | Mensagem com 2001 caracteres | Colar | Limita a 2000; contador “2000/2000” (D-MSG-030) | — | CA-MSG-018.4; 02 2.6 |
| CT-MSG-142 | Falha de rede durante o envio | Enviar e restabelecer a rede; repetir “Enviar” | Mensagem de erro “Não foi possível enviar. Tente novamente.”; o formulário continua preenchido; no segundo envio, uma só conversa é criada | — | EX-MSG-03 |
| CT-MSG-143 | Formulário aberto | Cancelar com campos preenchidos | Volta à lista sem enviar | — | — |
| CT-MSG-144 | Formulário no celular | Observar rótulos | Rótulo fixo acima de cada campo (sem rótulo flutuante); botão Voltar à esquerda da barra | — | 02 2.3.4 |
6. Conversa (modal), resposta
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-151 | Craig abre M1 | Observar o cabeçalho | Assunto; “De: Ingrid Jorgensen”; “Para: Craig Evans (você)”; chips de paciente e prazo; atalho “Abrir prontuário” | M1 | RN-MSG-006; CA-MSG-009.1 |
| CT-MSG-152 | Craig abre M8 | Observar “Para" | "Equipe Onco · 2 membros” | M8 | RN-MSG-006, 015 |
| CT-MSG-153 | Craig abre M5 | Observar as mensagens | Ordem cronológica; mensagem de Craig à direita; autor, data e hora em cada uma | M5 | RN-MSG-019 |
| CT-MSG-154 | Craig abre M1 | Responder “Receita emitida” | Toast “Resposta enviada.”; a mensagem aparece à direita; status passa a Respondida; remetente (Ingrid) recebe a conversa como não lida | M1 | RN-MSG-019; CA-MSG-003.3 |
| CT-MSG-155 | Ingrid abre M1 após CT-MSG-154 | Responder de volta | Permitido (quem enviou também responde); a conversa continua na mesma thread, sem tipo “réplica” | M1 | RN-MSG-019 |
| CT-MSG-156 | Craig abre M3 (alerta) | Observar o rodapé | Sem campo de resposta; aviso “Alertas do sistema não recebem resposta.”; botões “Resolver” e “Descartar” presentes, no cabeçalho | M3 | RN-MSG-010; CA-MSG-006.1 |
| CT-MSG-157 (API) | Token de Craig | POST /conversations/{M3}/reply | 409 | M3 | CA-MSG-006.1 |
| CT-MSG-158 | Craig abre M6 (finalizada) | Observar | Linha “Resolvida por Você em 21/10 16:10”; sem campo de resposta e sem botões; aviso “Esta conversa foi finalizada. Não é possível responder.” | M6 | RN-MSG-009; CA-MSG-005.4 |
| CT-MSG-159 | Craig abre M1 não lida | Observar após abrir | M1 deixa de ser não lida (a borda some) em painel e lista; para Ingrid o estado de leitura é independente | M1 | RN-MSG-017 |
| CT-MSG-160 | Craig no modal do painel | Fechar com Esc, com “Fechar” e tocando fora | Fecha nos três modos; foco volta ao cartão de origem | — | 02 2.10 |
| CT-MSG-161 | Craig digita resposta em M8; Gilliard resolve M8 | Craig toca “Responder” | 409; a tela recarrega mostrando “Resolvida por Gilliard…”; o texto digitado permanece visível | M8 | EX-MSG-04 |
| CT-MSG-162 | Craig abre conversa de outro usuário (id de M-qualquer de Ingrid→Claire) pelo link | Abrir | Tela “Conversa não encontrada.” e volta à lista | — | EX-MSG-05 |
| CT-MSG-163 | Craig na conversa M2 (não participante) via API | GET /conversations/{M2} | 404 | M2 | EX-MSG-05; NGS1.03.01 |
| CT-MSG-164 | Craig tenta editar texto enviado | Procurar ação de editar ou excluir | Não existe; PUT/DELETE em qualquer rota de mensagem retornam 404 (a rota não existe) e PUT/DELETE em /conversations/{id} retornam 405 | M5 | RN-MSG-022; CA-MSG-012.1; EX-MSG-09 |
| CT-MSG-165 | Conversa M8 como Gilliard, que responde | Ver a autoria | ”Gilliard Onório Santos (Onco)” em cada resposta | M8 | RN-MSG-030; CA-MSG-014.1 |
| CT-MSG-166 | Claire (fora da Onco) responde M8 (adicionada como destinatária por BD) | Ver a autoria | Só “Claire Vance”, sem equipe | — | RN-MSG-030 |
7. Resolver e descartar
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-171 | Craig abre M5 | Tocar “Resolver”; ler a confirmação; confirmar | Diálogo “Resolver conversa?” com corpo “A conversa será marcada como resolvida para todos os destinatários.”; botões “Cancelar” (foco inicial) e “Resolver”. Confirmar: toast “Conversa resolvida.”; M5 vai para “Finalizadas” | M5 | RN-MSG-008; CA-MSG-005.1 |
| CT-MSG-172 | Craig abre M1 | Tocar “Descartar”; confirmar | Diálogo “Descartar conversa?”; confirmar: “Conversa descartada.”; M1 em “Finalizadas” como Descartada | M1 | RN-MSG-008 |
| CT-MSG-173 | Ingrid (remetente) abre M1 | Resolver | Permitido; Craig vê M1 finalizada, “Resolvida por Ingrid Jorgensen em …” | M1 | CA-MSG-005.2 |
| CT-MSG-174 | M8 (equipe Onco): Gilliard resolve | Craig abre “Abertas” e “Finalizadas” | M8 sai de “Abertas” de Craig e aparece em “Finalizadas” com “Resolvida por Gilliard Onório Santos” | M8 | CA-MSG-005.3 |
| CT-MSG-175 | M8 finalizada | Tentar resolver de novo, via API | 409 com quem finalizou e quando | M8 | CA-MSG-005.4 |
| CT-MSG-176 | M1 sem respostas | Resolver sem responder | Nenhuma mensagem nova criada (a thread continua com 1 mensagem); cabeçalho mostra a linha de finalização | M1 | RN-MSG-009; CA-MSG-005.5 |
| CT-MSG-177 | Dois usuários resolvem M2 no mesmo segundo | Ingrid e Li Wei | Um recebe sucesso, o outro 409; a conversa tem uma só ação Resolve | M2 | EX-MSG-04 |
| CT-MSG-178 | Alerta M9 como Claire | Resolver M9 | Permitido; registra ciência; “Finalizadas” mostra “Resolvida” | M9 | RN-MSG-028 |
| CT-MSG-179 | Confirmação aberta | Esc | Cancela sem alterar | — | 02 2.10 |
| CT-MSG-180 | Usuário com Visualizar e sem Enviar | Resolver uma conversa | Permitido | — | CA-MSG-010.2; D-MSG-070 |
8. Equipe e envio a si mesmo
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-181 | Craig (Onco) envia à equipe Onco | Enviar; conferir como Gilliard e como Craig | Ambos recebem; Craig também (remetente é membro); a conversa de Craig aparece lida | M8 | RN-MSG-015; CA-MSG-007.2 |
| CT-MSG-182 | Claire (Enfermagem) envia à equipe Onco | Enviar | Craig e Gilliard recebem; Claire não é destinatária, mas é remetente e acompanha a conversa | — | RN-MSG-015, 018 |
| CT-MSG-183 (BD) | Equipe Onco com os membros 1 e 4 | Adicionar o usuário 5 à Onco depois de M8; abrir como Claire | Claire não vê M8 | M8 | CA-MSG-007.3 |
| CT-MSG-184 (BD) | Equipe Farmácia | Remover (RemovidoEmUtc) o usuário 8; enviar nova mensagem à Farmácia | Li Wei não recebe a nova; M2 continua listada para ele | M2 | RN-MSG-015 |
| CT-MSG-185 (BD) | Equipe inativa (Ativa = 0) | Tentar enviar à equipe | 422; “Este destinatário não pode receber mensagens agora.” | — | EX-MSG-07 |
| CT-MSG-186 | Craig lê M8; Gilliard não | Conferir a leitura de cada um | M8 é lida para Craig e não lida para Gilliard | M8 | CA-MSG-003.2 |
| CT-MSG-187 | Craig envia a si mesmo (CT-MSG-134) | Resolver o lembrete | Sai de “Abertas” e vai para “Finalizadas” | — | RN-MSG-007 |
| CT-MSG-188 | Lista de equipes | Conferir o “(n membros)“ | Conta só membros ativos | — | RN-MSG-006 |
9. Alertas do sistema
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-191 (API) | Interface de publicação disponível | PublishAlert para Craig, módulo Assistencial, chave “RX-001”, paciente 22, processo Prescrição, prazo hoje 15:00 | Conversa criada com OrigemTipo = System, mensagem inicial sem autor; aparece para Craig como não lida com sino e “Sistema:“ | — | RN-MSG-028; CA-MSG-004.1 |
| CT-MSG-192 (API) | Após CT-MSG-191 | Repetir PublishAlert com a mesma chave | Nenhuma nova conversa; devolve a existente | — | RN-MSG-029; CA-MSG-012.2 |
| CT-MSG-193 (API) | Alerta anterior resolvido | PublishAlert com previousConversationId | Nova conversa ligada à anterior; a anterior continua finalizada | — | RN-MSG-016; CA-MSG-013.1 |
| CT-MSG-194 (API) | Alerta aberto | Acrescentar atualização do sistema (AppendAlertUpdate) | A mensagem (tipo gravado Response, autor nulo, sequência maior que 1) aparece rotulada “Atualização do sistema” [PROPOSTA]; a conversa volta a não lida para o destinatário | — | RN-MSG-019 |
| CT-MSG-195 | Alerta sem paciente (M9) | Ver o cartão | Sem paciente na linha de contexto | M9 | RN-MSG-020 |
| CT-MSG-196 | Alerta com paciente e processo (M3) | Abrir; clicar “Abrir prescrição” | Leva à prescrição; se Craig não tiver acesso, o módulo de destino recusa | M3 | RN-MSG-021; CA-MSG-009.1 |
| CT-MSG-197 | Alerta vencido (M3) | Conferir | ”Vencida”; some ao resolver | M3 | CA-MSG-002.2 |
| CT-MSG-198 (API) | Chamada ao endpoint de criação como usuário comum com OrigemTipo=System | Enviar POST /conversations com campo de origem do sistema | Campo ignorado ou 400; o usuário comum nunca cria conversa de sistema | — | NGS1.03.09 |
10. Fuso, idioma e textos
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-201 | Aparelho no fuso de São Paulo | Abrir a lista | Linha do fuso discreta | — | RN-MSG-005 |
| CT-MSG-202 | Aparelho em Londres | Abrir a lista | Linha do fuso destacada com ”— diferente do fuso deste aparelho”; horários continuam os da clínica | M1 | CA-MSG-002.4 |
| CT-MSG-203 | Aparelho em Londres, 12:00 de São Paulo | Conferir “vencida” | Calculada no horário do servidor da clínica, não do aparelho | M3 | RN-MSG-003, 005 |
| CT-MSG-204 (API) | Token de Craig | GET /conversations?tab=open | timeZone = "America/Sao_Paulo"; datas em UTC; serverNow presente | — | DT-001 |
| CT-MSG-205 | Idioma da clínica es-419 | Percorrer painel, lista, formulário, conversa e confirmações | Todos os textos do catálogo em espanhol; nenhum texto em português ou inglês | — | RN-MSG-013; CA-MSG-011.1 |
| CT-MSG-206 | Idioma en-US | Idem | Todos em inglês; data do prazo “mm/dd/yyyy hh:mm” | — | RN-MSG-013 |
| CT-MSG-207 | Interface em pt-BR | Provocar cada mensagem do catálogo (02, 2.9) | O texto bate exatamente com o catálogo; nenhum termo técnico ou código HTTP visível | — | SBIS ECF.17.19 |
| CT-MSG-265 | Clínica com idioma pt-BR | Percorrer painel, lista, formulário, conversa, confirmações, erros e a linha do fuso, nos dois temas | Todos os textos em português do Brasil; nenhum código (MSG-TMSG-nn, nome de processo) nem texto em outro idioma | — | ECF.17.18, 17.19; D-MSG-019 |
11. Permissões e auditoria
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-211 | Usuário sem o direito Visualizar | Abrir a Central e o menu | Sem painel de Mensagens e sem item “Mensagens” | — | RN-MSG-024; CA-MSG-010.1 |
| CT-MSG-212 (API) | Mesmo usuário | Chamar os endpoints de conversa | 403 em todos | — | CA-MSG-010.1 |
| CT-MSG-213 | Usuário com Visualizar e sem Enviar | Abrir a lista e uma conversa | Sem botão “Nova mensagem” e sem campo de resposta | — | CA-MSG-010.2 |
| CT-MSG-214 (API) | Mesmo usuário | POST /conversations e /reply | 403 | — | CA-MSG-010.2 |
| CT-MSG-215 | Destinatários possíveis | Conferir a lista | Só usuários com direito Visualizar; usuário sem o direito não aparece | — | RN-MSG-024 |
| CT-MSG-216 (BD) | Auditoria implantada | Enviar, ler, responder, resolver e descartar uma conversa | Um evento de auditoria por ação, com usuário, data e hora, identificador da conversa e tipo da ação; sem conteúdo da mensagem e sem nome ou identificação do paciente | — | RN-MSG-023; CA-MSG-010.3; NGS1.07.03, 07.06 |
| CT-MSG-217 (BD) | Alerta publicado | Conferir o evento de auditoria | Origem “sistema” e o módulo gerador | — | RN-MSG-023; NGS1.07.03 |
| CT-MSG-218 (BD) | Auditoria implantada | Conferir o endereço de origem | Não executável enquanto a lacuna L-01 estiver aberta (04, 4.5) | — | NGS1.07.05 |
| CT-MSG-219 (BD) | Banco de teste | Tentar excluir fisicamente uma Conversa com mensagens | Não executável com a decisão L-02 em aberto; depois dela, a exclusão deve ser impedida ou não apagar a trilha | — | NGS1.07.02 |
| CT-MSG-220 | Cliente de uma clínica | Tentar enviar a usuário sem acesso à clínica da conversa (API) [PROPOSTA, P-MSG-29] | 422; nenhuma conversa criada | — | RN-MSG-025 |
| CT-MSG-262 | Cliente de três clínicas A, B e C; o Dr. 9 atende A e B e tem uma conversa aberta em cada uma (massa de CT-CONS-19 e CT-MSG-22 da Central) [PROPOSTA] | Dr. 9 logado na clínica A; abrir o painel e a lista; responder a conversa de B | As conversas de A e de B aparecem; a de C não; cada cartão mostra a clínica (ícone building-2, nome curto, 12 px); a resposta fica gravada na clínica B | — | RN-MSG-025; DT-013; D-CM-064 |
| CT-MSG-263 | Cliente de uma só clínica; Dr. 11 com uma conversa aberta | Abrir o painel | O cartão não mostra a linha da clínica | — | RN-MSG-025; D-CM-066 |
| CT-MSG-264 (API) | Enfermeira com acesso às clínicas A e B, logada em A; conversa aberta endereçada a ela em B | Abrir a lista; depois GET /conversations/{id} da conversa de B | A conversa de B não aparece na lista; a chamada devolve 404 | — | RN-MSG-025; DT-013 |
12. Contrato dos endpoints
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-231 (API) | Token de Craig | GET /conversations?tab=open | 200; counts = {open: 5, closed: 2}; items na ordem de CT-MSG-112; unread verdadeiro só em M1 e M3; overdue verdadeiro só em M3 | M1–M8 | 02 2.8.1 |
| CT-MSG-232 (API) | Token de Craig | GET /conversations?tab=closed | M6, M7 com closedBy e closedAt | M6, M7 | 02 2.8.1 |
| CT-MSG-233 (API) | Token de Craig | GET /conversations?tab=invalid; limit=0 | 400 | — | 02 2.8.1 |
| CT-MSG-234 (API) | Token de Craig | GET /conversations/{M5} | 200 com messages em ordem de sequence; canReply = true; canClose = true | M5 | 02 2.8.2 |
| CT-MSG-235 (API) | Token de Craig | GET /conversations/{M6} | canReply = false; canClose = false | M6 | 02 2.8.2 |
| CT-MSG-236 (API) | Token de Craig | POST /conversations com deadline no passado | 400 | — | CA-MSG-002.3 |
| CT-MSG-237 (API) | Token de Craig | POST /conversations com destinatário inexistente | 422 | — | EX-MSG-07 |
| CT-MSG-238 (API) | Token de Craig | POST /conversations com Idempotency-Key repetida e corpo igual; depois com a mesma chave e corpo diferente | Nas duas repetições: 200 com o id da conversa já criada; no segundo caso o texto novo é ignorado (opção B, sem comparar o conteúdo); uma só conversa existe | — | D-MSG-020; E-MSG-005 |
| CT-MSG-239 (API) | Token de Craig | POST /conversations/{M1}/read duas vezes | 204 nas duas; a leitura não retrocede | M1 | 02 2.8.4 |
| CT-MSG-240 (API) | Token de Craig | PATCH /conversations/{M5}/resolve e /discard em M5 já resolvida | 204 na 1ª; 409 na 2ª | M5 | 02 2.8.6 |
| CT-MSG-241 (API) | Token de Craig | GET /conversations/recipients | people com Craig isSelf = true; teams com memberCount | — | 02 2.8.7 |
| CT-MSG-242 (API) | Sem token | Todos os endpoints | 401 | — | NGS1.03.01 |
| CT-MSG-243 (API) | Token de Craig | POST /conversations com content de 4001 caracteres | 400 [PROPOSTA] | — | 02 2.6 |
| CT-MSG-244 (API) | Token de Craig | GET /conversations/{id} de conversa de outra clínica | 404 | — | RN-MSG-025 |
| CT-MSG-267 (API) | Banco com o CHECK de Mensagem.Tipo já alterado para só Response [a aplicar] | Enviar uma conversa; responder; acrescentar atualização de alerta; consultar mensageria.Mensagem | Todas as linhas têm Tipo = 'Response'; a mensagem inicial tem Sequencia = 1; nenhuma gravação falha | — | 04, 4.1 e L-08 |
| CT-MSG-245 | Usuário sem o direito Visualizar | Abrir o endereço da tela de Mensagens | Tela de acesso negado padrão do sistema | — | EX-MSG-06 |
| CT-MSG-246 (API) | Token de Craig | POST /conversations com paciente 99999 inexistente; com processo Prescricao sem paciente | 422 nos dois; formulário correspondente mostra “Paciente ou processo inválido.” | — | EX-MSG-08 |
| CT-MSG-247 (BD) | Usuário 8 inativado | Enviar a Li Wei | 422; “Este destinatário não pode receber mensagens agora.” | — | EX-MSG-07 |
| CT-MSG-248 (BD) | Equipe sem nenhum membro ativo | Enviar à equipe | 422 com a mesma mensagem | — | EX-MSG-07 |
| CT-MSG-249 | Craig envia a Ingrid; Ingrid ainda não abriu | Conferir o cartão como Craig; Ingrid abre; conferir de novo; Ingrid responde; conferir | Primeiro check antes da data e hora; depois check-check; depois o cartão mostra a resposta de Ingrid como última mensagem (autor, data e hora) com a borda e a carta de não lida, sem ícone de lida e sem chip “Respondida” | M1 | CA-MSG-016.1, 016.2 |
| CT-MSG-250 | Craig envia a si mesmo | Conferir o cartão | Nasce com check-check | — | CA-MSG-016.1 |
| CT-MSG-268 | Estado de CT-MSG-249, depois que Craig responde de novo | Conferir o cartão como Craig | A última mensagem é a de Craig e o check volta (Ingrid ainda não leu a nova); o sinal de não lida some para Craig | M1 | CA-MSG-016.1 |
| CT-MSG-269 | Craig envia à equipe Onco (M8); Gilliard ainda não leu | Conferir o cartão como Craig; Gilliard abre; conferir de novo | check; depois check-check (pelo menos um membro leu) | M8 | CA-MSG-016.1; RN-MSG-018 |
| CT-MSG-270 | Claire logada, com o alerta aberto M9 | Conferir o cartão | Sem check nem check-check | M9 | CA-MSG-016.1 |
| CT-MSG-258 (API) | Token de Claire Vance sem participação | GET /conversations/{M1} | 404 | M1 | CA-MSG-031.1; RN-MSG-031 |
| CT-MSG-259 (API) | Token de usuário com Enviar e sem Visualizar | GET /conversations e POST /conversations | 403 nos dois | — | CA-MSG-010.1; RN-MSG-024 |
| CT-MSG-260 | Craig com M8 aberta | Em outra sessão, ler e responder M8 enquanto Craig resolve | A resolução termina com sucesso (não 409) e a conversa fica Resolvida | M8 | 02 2.8.6 |
| CT-MSG-261 | Craig preenche só o horário (10:00) do prazo | Enviar | “Informe a data do prazo.”; nada é enviado | — | CA-MSG-008.2 |
13. Layout, tema e acessibilidade
| ID | Pré-condição | Passos | Resultado Esperado | RN/CA |
|---|---|---|---|---|
| CT-MSG-251 | Celular 360 px | Percorrer painel, lista, formulário e conversa | Sem rolagem horizontal; alvos de toque ≥ 44 px; botão Voltar à esquerda; modal como folha inferior | 02 2.1 |
| CT-MSG-252 | Desktop ≥ 640 px | Abrir o modal pelo painel | Caixa centralizada; mesmo conteúdo no painel e na lista | 02 2.3.5 |
| CT-MSG-253 | Leitor de tela | Navegar até o cartão de M1 | Anuncia assunto, autor, última mensagem, data, “não lida” e prazo; nenhum botão separado no cartão | 02 2.10 |
| CT-MSG-254 | Leitor de tela | Atualização automática do painel | Não anuncia a lista inteira; só a mudança de contagem de não lidas | 02 2.10 |
| CT-MSG-255 | ”Reduzir movimento” ativo | Abrir/fechar modal e confirmar | Sem animações de deslocamento | 02 2.10 |
| CT-MSG-256 | Campos do prazo | Inspecionar | Legenda “Prazo para resolução (opcional)”; rótulos “Data” e “Horário (opcional)”; a ajuda “Sem horário, o prazo vai até 23:59.” ligada ao horário; cada erro ligado ao seu campo | 02 2.10 |
| CT-MSG-257 | Tema escuro e claro | Medir contraste de chips, borda de não lida, vencida e linha do fuso | Texto ≥ 4,5:1; elementos não textuais ≥ 3:1 | CA-MSG-015.1 |
| CT-MSG-266 | Painel, formulário, conversa e confirmação, nos dois temas | Contar os botões preenchidos de cada região e conferir as cores | Um só preenchido por região (verde escuro, texto branco, 5,5:1); “Cancelar”, “Voltar”, “Resolver” e “Descartar” têm contorno; no tema escuro o limite do botão preenchido tem pelo menos 3:1 sobre a superfície | Design System, seção 12; D-MSG-022 |
13A. Grau de urgência (v1.3)
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-271 | Craig logado, pt-BR | Abrir “Nova mensagem” | Grupo “Grau de urgência (opcional)” com quatro opções do tamanho do chip (24 px), “Rotina”, “Urgente”, “Quanto antes”, “Imediato”, com contorno neutro, sem ícone e nenhuma marcada, e o texto MSG-TMSG-37 | — | CA-MSG-017.1; RN-MSG-034; D-MSG-065 |
| CT-MSG-272 | Estado de CT-MSG-271 | Marcar “Quanto antes”; tocar de novo em “Quanto antes” | Marca e depois desmarca; o texto de ajuda volta a MSG-TMSG-37 (com a opção marcada, mostra MSG-TMSG-38) | — | CA-MSG-017.1 |
| CT-MSG-273 | Craig envia a Ingrid, assunto “Teste”, sem marcar o grau | Conferir o cartão e a conversa de Craig e de Ingrid; consultar GET /conversations/{id} e a coluna GrauUrgencia | Nenhum chip de urgência em nenhuma tela; urgencyLevel nulo; GrauUrgencia nulo | — | CA-MSG-017.2 |
| CT-MSG-274 | Craig envia a Ingrid marcando “Imediato” | Conferir como Craig (Abertas) e como Ingrid (painel e conversa); consultar a coluna | Chip “Imediato” como primeiro item da linha de contexto, antes do paciente (se houver) e do prazo, nas duas contas, no cartão e no cabeçalho da conversa; GrauUrgencia = stat; urgencyLevel = { key: "STAT", name: "Imediato" } | — | CA-MSG-017.3 |
| CT-MSG-275 | Quatro conversas de Craig a Ingrid, com os graus routine, urgent, asap e stat | Conferir os quatro chips | Rotina: contorno neutro; Urgente: neutro cheio; Quanto antes: só contorno de 1 px em error-dark, bandeira vazia; Imediato: só contorno de 2 px em error-dark, bandeira cheia (D-MSG-057). Textos “Rotina”, “Urgente”, “Quanto antes” e “Imediato” (sem a palavra “Urgência”); título e nome acessível “Grau de urgência: {nome}“ | — | 02 2.3.8; D-MSG-027, 039 |
| CT-MSG-276 | Conversa de CT-MSG-274 | Ingrid responde; conferir como Craig e como Ingrid | O chip continua “Imediato”; nenhuma tela tem controle para alterar o grau | — | CA-MSG-017.4 |
| CT-MSG-277 (API) | Conversa de CT-MSG-274 | Tentar alterar o grau (PATCH na conversa com urgencyLevel) e enviar urgencyLevel no corpo de uma resposta | Não existe endpoint de alteração (404 ou 405); o grau da conversa não muda depois da resposta. Se a API recusa o campo na resposta (400) ou o ignora está em aberto (E-MSG-018) | — | CA-MSG-017.4 |
| CT-MSG-278 | Gilliard logado, 12:00 | Abrir “Mensagens”, aba “Abertas” | Ordem: M15 (Quanto antes, não lida), M8 (sem grau, não lida), M12 (Imediato, lida), M13 (Rotina, lida), M14 (sem grau, lida). Contagem 5. Sem o grau, a ordem seria M8, M15 e M14, M13, M12 | M8, M12 a M15 | CA-MSG-017.5; RN-MSG-002 |
| CT-MSG-279 | Estado de CT-MSG-278 | Abrir a Central de Gilliard | Painel com os 5 cartões: M15, M8, M12, M13, M14, sem link “Ver todas as mensagens” | M8, M12 a M15 | CA-MSG-017.5; RN-MSG-001 |
| CT-MSG-280 | Estado de CT-MSG-278 | Resolver M12; abrir “Finalizadas” | M12 aparece com o chip “Imediato” e o chip “Resolvida”; o chip também aparece dentro da conversa | M12 | E-MSG-017 |
| CT-MSG-281 | Gilliard com M15 | Conferir o cartão e a conversa | Sem ícone de tipo no cartão (o sino continua nas mensagens da conversa); autor “Sistema:”; chip “Quanto antes”; sem campo de resposta (MSG-TMSG-20) | M15 | CA-MSG-017.6; RN-MSG-028 |
| CT-MSG-282 (serviço) | M15 aberta | Chamar AppendAlertUpdate em M15 | A mensagem “Atualização do sistema” é acrescentada; o grau continua “Quanto antes” (a interface não aceita urgencyLevel nessa chamada) | M15 | RN-MSG-034; D-MSG-033 |
| CT-MSG-283 (serviço) | — | Chamar PublishAlert sem urgencyLevel e, em outra execução, com urgencyLevel = asap | Sem urgencyLevel: alerta sem chip. Com asap: chip “Quanto antes” | — | CA-MSG-017.6 |
| CT-MSG-284 (API) | Token de Craig | POST /conversations com urgencyLevel = 0, 3, “alta”, “stat” (minúsculas) e “Urgente”; depois com urgencyLevel nulo e ausente | Os cinco primeiros: 400 com MSG-EMSG-13; os dois últimos: 201 | — | CA-MSG-017.7 |
| CT-MSG-285 (BD) | Coluna GrauUrgencia criada (L-09) | Gravar na Conversa os valores ‘Alta’, ‘stat’, ‘asap’ e NULL | ’Alta’ recusado pelo CHECK; ‘stat’, ‘asap’ e NULL aceitos. Se a collation do banco não diferenciar maiúsculas de minúsculas, ‘STAT’ também passa no CHECK; a API recusa essa grafia com 400 (CA-MSG-017.7) | — | 04 L-09; D-MSG-046 |
| CT-MSG-286 | Clínicas pt-BR, en-US e es-419 | Conferir o chip da conversa asap em cada idioma | ”Quanto antes”, “ASAP”, “Cuanto antes”; o título é “Grau de urgência: …”, “Urgency level: …”, “Grado de urgencia: …”. Termo sem tradução: a própria chave aparece e o back-end registra anomalia (DT-011, D-CM-044) | — | RN-MSG-013; ECF.17.18, 17.19 |
| CT-MSG-287 | Temas claro e escuro | Medir o contraste do texto dos quatro chips e olhar em escala de cinza | Texto ≥ 4,5:1 nos quatro níveis e nos dois temas (Imediato 5,0:1 e 4,6:1; Quanto antes 5,5:1 e 6,3:1; Urgente 12,1:1 e 8,8:1); os níveis se distinguem pelo texto e pelo ícone, sem a cor | — | CA-MSG-017.8; CA-MSG-015.1 |
| CT-MSG-288 | Leitor de tela | Navegar até o cartão de M12 e até o seletor de grau | O cartão anuncia “grau de urgência: imediato” junto do assunto, do autor e das demais informações; o seletor anuncia a legenda “Grau de urgência (opcional)” e cada opção com nome | M12 | 02 2.10 |
| CT-MSG-289 | Teclado | No formulário, ir ao seletor de grau com Tab; usar as setas e a barra de espaço | As setas mudam a opção; a barra de espaço na opção marcada a desmarca; o foco é visível | — | 02 2.10 |
| CT-MSG-290 | Celular de 360 px | Abrir o formulário e os cartões com chips de paciente, urgência e prazo | As quatro opções do grau ficam lado a lado (quebrando de linha se faltar espaço), com área de toque de 44 px e sem rolagem horizontal; os itens da linha de contexto quebram de linha sem cortar o texto | — | 02 2.1 |
13B. Horário relativo, limite de texto, processo e agravamento (v1.4)
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-291 | Craig logado, 12:00 | Conferir M1 (mensagem às 11:20), M3 (09:30), M5 (resposta às 11:00) e M8 (09:00) no painel | ”Há 40 min”, “Há 2 h”, “Há 1 h” e “Há 3 h” | M1, M3, M5, M8 | CA-MSG-018.1, 018.2; RN-MSG-035 |
| CT-MSG-292 | Mensagens às 11:01 e às 11:00, com data-base 12:00 | Conferir os cartões | 11:01: “Há 59 min”; 11:00: “Há 1 h” (a fronteira é 60 min) | — | CA-MSG-018.1, 018.2 |
| CT-MSG-293 | Mensagem às 00:10, data-base 23:50 do mesmo dia | Conferir o cartão | ”Há 23 h” | — | CA-MSG-018.2 |
| CT-MSG-294 | Mensagem ontem às 23:50, data-base hoje 00:10 | Conferir o cartão | Data e hora (“21/10 23:50”), não “Há 20 min”: o dia de calendário mudou | — | CA-MSG-018.3 |
| CT-MSG-295 | Conversa M1 | Abrir a conversa | Cada mensagem mostra data e hora, não o horário relativo | M1 | CA-MSG-018.3 |
| CT-MSG-296 | Clínicas en-US e es-419 | Conferir M1 e M3 | ”40 min ago” e “2 h ago”; “Hace 40 min” e “Hace 2 h” | M1, M3 | RN-MSG-013, 035 |
| CT-MSG-297 | Aparelho em fuso diferente do da clínica, perto da meia-noite | Conferir uma mensagem enviada 30 min antes da meia-noite da clínica | O “mesmo dia” é o da clínica, não o do aparelho | — | RN-MSG-005, 035 |
| CT-MSG-298 | Painel aberto às 12:00 | Esperar a atualização automática de 1 minuto | M1 passa de “Há 40 min” a “Há 41 min” sem recarregar | M1 | 02 2.3.7 (E-MSG-019) |
| CT-MSG-299 | Craig respondendo uma conversa | Colar 2001 caracteres no campo de resposta | O campo limita a 2000, com contador “2000/2000”; a API recusa 2001 com 400 | — | CA-MSG-018.4 |
| CT-MSG-300 | Formulário com paciente | Escolher o tipo “Documento”, o item e enviar | A conversa é criada com o processo; o atalho “Abrir documento” aparece na conversa | — | CA-MSG-008.3, 009.1, 019.2 |
| CT-MSG-301 (API) | Token de Craig | POST /conversations com dois processos | 400; só um processo por conversa | — | RN-MSG-021 |
| CT-MSG-302 (serviço) | M15 aberta (Quanto antes) | O módulo de origem publica novo alerta com grau stat (Imediato) e previousConversationId = M15, e descarta M15 | M15 fica Descartada, com ação sem usuário exibida como “Descartada por Sistema”; a nova conversa tem o chip “Imediato” e aparece como não lida | M15 | CA-MSG-018.5; RN-MSG-016, 034 |
| CT-MSG-303 | Paciente e tipo Prescrição escolhidos | Abrir o campo do item | Lista só as prescrições do paciente | — | CA-MSG-019.2 |
| CT-MSG-304 | Tipo Prescrição, sem item | Enviar | Erro MSG-EMSG-14 “Escolha o item do processo.” e foco no campo do item | — | CA-MSG-019.2 |
| CT-MSG-305 | Tipo Paciente | Observar o formulário | Não há campo de item | — | CA-MSG-019.3 |
| CT-MSG-306 | Tipo e item escolhidos | Trocar o paciente | Tipo e item são limpos | — | CA-MSG-019.4 |
| CT-MSG-307 | Tipo Registro clínico e item escolhidos | Enviar; abrir a conversa | Atalho “Abrir registro clínico” | — | CA-MSG-009.1 |
| CT-MSG-308 (API) | Token de Craig | POST /conversations com processo do tipo Agenda, ou com tipo Prescricao sem item | 400 MSG-EMSG-11 (tipo inválido) / 400 MSG-EMSG-14 (sem item) | — | RN-MSG-021 |
13C. Busca com autocomplete e ordem do formulário (v1.6)
Massa fictícia para as buscas: equipes “Enfermagem” (5 membros) e “Farmácia Oncológica” (4); pessoas “Ana Ribeiro”, “Mariana Costa”, “Carlos Lima”, “Craig Evans (você)”; pacientes “Maria Souza”, “Mariana Alves”, “João Alves”; para o paciente Maria Souza: prescrições com identificação “FOLFOX - C1D1”, “FOLFOX - C1D15” e “Carboplatina AUC5 - C2D1” (data de cada uma); documentos “Laudo de hemograma” (20/10/2026) e “Termo de consentimento” (02/09/2026); registros clínicos com data do evento 20/10/2026 (modelo “Evolução de enfermagem”, profissional “Enf. Ana”) e 21/10/2026 (modelo “Sinais vitais”, profissional “Dr. Carlos”). Todos fictícios.
| ID | Pré-condição | Passos | Resultado Esperado | Dados de Teste | RN/CA |
|---|---|---|---|---|---|
| CT-MSG-309 | Craig logado | Abrir “Nova mensagem” | Ordem dos campos: Destinatário, Assunto, Mensagem; subtítulo “Opcionais”; Grau de urgência, Prazo para resolução, Paciente, Processo relacionado | — | CA-MSG-020.1; D-MSG-040 |
| CT-MSG-310 | Campo Destinatário vazio | Tocar no campo | Lista com as primeiras opções: cabeçalho “Equipes” (Enfermagem, 5; Farmácia Oncológica, 4) e depois “Pessoas” | — | CA-MSG-020.2 |
| CT-MSG-311 | Idem | Digitar “ANA” | Resultados sem distinguir maiúsculas: “Ana Ribeiro”; sem grupo “Equipes” se nenhuma equipe contém o texto | — | CA-MSG-020.2 |
| CT-MSG-312 | Idem | Digitar “mari”; escolher “Mariana Costa” | Aparece “Mariana Costa”; depois da escolha o campo mostra o nome; digitar de novo limpa a escolha | — | CA-MSG-020.2 |
| CT-MSG-313 | Idem | Digitar “enf” | Aparece a equipe “Enfermagem (5 membros)” no grupo “Equipes” | — | CA-MSG-020.2 |
| CT-MSG-314 | Campo Paciente | Digitar “mari” | Os pacientes cujo nome ou nome da mãe contém o texto, cada um com “Prontuário: … - Sexo: … - Nasc: … - Mãe: … - CPF: …”; rodapé de orientação (MSG-TMSG-49) | — | CA-MSG-020.3; D-MSG-071 |
| CT-MSG-315 | Paciente Maria Souza e tipo Prescrição | Digitar “c1d15”; depois “folfox”; depois “02/09” | Só “FOLFOX - C1D15”; depois as duas de FOLFOX (termo no início da identificação); depois nada (a data não é chave de busca da prescrição) | — | CA-MSG-020.4; D-MSG-050 |
| CT-MSG-316 | Tipo Documento | Digitar “laudo”; depois “02/09" | "Laudo de hemograma” mostrado com a data “20/10/2026”; depois nenhum resultado (a data não é chave de busca do documento) | — | CA-MSG-020.4; D-MSG-050 |
| CT-MSG-317 | Tipo Registro clínico | Digitar “20/10”; depois “21/10/2026”; depois “carlos” | Registro de 20/10 mostrado como data, modelo e profissional (“20/10/2026 · Evolução de enfermagem · Enf. Ana”); depois o de 21/10; “carlos” não encontra nada (o profissional é só exibição) | — | CA-MSG-020.4; D-MSG-050 |
| CT-MSG-318 | Qualquer campo de busca | Digitar texto sem correspondência (“zzz”) | MSG-TMSG-41 “Nenhum resultado para “zzz”.” | — | CA-MSG-020.5 |
| CT-MSG-319 | Busca com mais de 8 resultados | Digitar um termo comum | 8 resultados e o aviso MSG-TMSG-42 | — | CA-MSG-020.5 |
| CT-MSG-320 | Campo Destinatário | Teclado: setas, Enter e Esc; leitor de tela | As setas movem o destaque; Enter escolhe; Esc fecha a lista; o leitor anuncia caixa de combinação e o número de resultados | — | CA-MSG-020.6 |
| CT-MSG-321 (API) | Token de Craig | GET /conversations/recipients?q=ana&limit=8; GET /conversations/process-options?patientId=…&type=Prescricao&q=c1d15 (a identificação contém o termo em qualquer posição) | Equipes antes das pessoas; só itens do paciente; hasMore verdadeiro quando há mais que o limite | — | RN-MSG-036; 2.8.7, 2.8.9 |
| CT-MSG-322 | Celular de 360 px | Abrir o formulário e a lista de resultados | A lista cabe na largura, sem rolagem horizontal; resultados com alvo de toque ≥ 44 px | — | 02 2.1 |
| CT-MSG-323 | Conversa com grau routine | Conferir o cartão e a conversa | Chip “Rotina” (contorno neutro) aparece | — | CA-MSG-021.1; D-MSG-043 |
| CT-MSG-324 | Painel e lista, tema claro e escuro | Conferir os cartões | Cartões separados, cantos arredondados (8 px), borda de 1 px e espaço entre eles; o não lido muda só a borda esquerda | — | CA-MSG-021.2; D-MSG-045 |
| CT-MSG-325 | Paciente com vários documentos e registros | Abrir a lista de itens sem digitar | Do mais recente ao mais antigo pela data do evento | — | CA-MSG-021.3; D-MSG-044 |
| CT-MSG-326 | Painel e lista, com M1, M3 (alerta) e uma conversa aberta qualquer | Procurar botões dentro dos cartões; tocar no cartão | Nenhum botão no cartão; o toque abre o modal (painel e lista), onde “Resolver” e “Descartar” aparecem, no cabeçalho | — | CA-MSG-021.4; D-MSG-047 |
| CT-MSG-327 | Painel e lista, com uma conversa com paciente e sem processo (M2) e M1 (processo do tipo Paciente) | Ver o cartão; tocar no link; depois tocar no resto do cartão | Um só link, o nome do paciente (sublinhado, secondary-dark), que leva ao prontuário; a conversa não abre ao tocar no link; tocar no resto do cartão abre a conversa | M1, M2 | CA-MSG-021.5; D-MSG-054, 055 |
| CT-MSG-328 | Conversa com processo Prescrição (M3); repetir com Documento (M16) e Registro clínico (M17) | Observar a linha de contexto do cartão e o cabeçalho da conversa; tocar no link | Um só link, com ícone do tipo e o texto “{item} de {paciente}”: “FOLFOX - C1D15 de Marcelo T. Pinto”; “Laudo de hemograma de Roberto N. Alves”; “21/10/2026 - Sinais vitais de Maria Silva” (sem o profissional); sem link separado do paciente; leva ao item; no cabeçalho não há botão “Abrir …” | M3, M16, M17 | CA-MSG-009.1, 021.5; RN-MSG-021; D-MSG-055 |
| CT-MSG-329 | M18: conversa endereçada à equipe Farmácia, respondida por Li Wei (membro) | Ver o cartão e a conversa como Ingrid (membro); depois, como Li Wei, ver a própria resposta; por fim, como Claire (remetente, fora da equipe), ver o que ela mesma escreveu | Autor “Li Wei (Farmácia)” no cartão e nas mensagens dela; para Li Wei, “Você (Farmácia)” (D-MSG-055); Claire, que não é da equipe, aparece só com o próprio nome | M18 | CA-MSG-021.6; RN-MSG-030 |
| CT-MSG-330 | Celular de 360 px e teclado | Medir a área de toque do link; navegar com Tab; ativar com Enter | Área de toque de pelo menos 44 x 44 px; a ordem do foco é o botão do cartão e depois o link; anel de foco visível em ambos; o leitor de tela lê “Abrir prontuário: {paciente}” ou “Abrir prescrição: {item} de {paciente}“ | M2, M3 | CA-MSG-021.5; D-MSG-054, 055 |
| CT-MSG-331 | Painel e lista, M1 (não lida) e M5 (lida), temas claro e escuro | Conferir o início do cartão e os pesos do texto | Sem círculo nem ícone à esquerda; o autor em peso médio e a mensagem em peso normal nos dois; M1 só se distingue pela borda lateral | M1, M5 | CA-MSG-004.1, 022.4; D-MSG-056 |
| CT-MSG-332 | M1 (prazo 22/10 18:00, a vencer), computador | Conferir a linha de contexto; passar o mouse sobre o prazo e sair | Relógio e “22/10, 18:00” em cinza, sem contorno e sem “Resolver até” visível; a dica “Resolver até 22/10/2026, 18:00” abre ao passar, fica aberta enquanto o ponteiro estiver sobre o prazo ou sobre ela e fecha cerca de 150 ms depois de sair; o leitor de tela lê “Resolver até” antes da data | M1 | CA-MSG-022.1, 022.3; D-MSG-058, 059 |
| CT-MSG-333 | M3 (vencida), computador | Conferir; passar o mouse; apertar Esc; abrir de novo e rolar o painel | Relógio e “Vencida” em vermelho (error-dark), sem data e sem o tempo de atraso; a dica mostra “Resolver até 22/10/2026, 10:00”; Esc fecha só a dica (a conversa não abre; um modal aberto por cima só fecharia no Esc seguinte); rolar fecha; clicar em “Vencida” com o mouse abre a dica e não abre a conversa; o nome acessível do cartão termina com “Vencida. Resolver até 22/10/2026, 10:00” | M3 | CA-MSG-002.1, 022.2, 022.3; D-MSG-058, 059 |
| CT-MSG-334 | M3 (vencida), celular de 360 px com toque | Tocar em “Vencida”; tocar de novo; abrir de novo e tocar fora, sobre outro cartão; tocar nesse cartão outra vez | O primeiro toque abre a dica sem abrir a conversa; o segundo fecha; tocar fora só fecha a dica e não abre o cartão tocado; o toque seguinte no cartão o abre; área de toque de pelo menos 44 x 44 px; girar a tela fecha a dica | M3 | CA-MSG-022.3; D-MSG-059 |
| CT-MSG-335 | M13 (Imediato) e M12 (Quanto antes), temas claro e escuro, com e sem o mouse sobre o cartão | Conferir os chips e medir o contraste do texto | Imediato: contorno de 2 px, bandeira cheia; Quanto antes: contorno de 1 px, bandeira vazia; sem preenchimento; contraste do texto de pelo menos 4,5:1 em todos os casos | M12, M13 | CA-MSG-022.5; D-MSG-057 |
| CT-MSG-336 | Massa: Gilliard também na equipe “Plantão” (criar), Claire só em Enfermagem, um usuário sem equipe (criar) | Digitar o nome de cada um no destinatário | Gilliard: “Equipes: Onco, Plantão”; com 3 ou mais, só duas e “+n”; Claire: “Equipes: Enfermagem”; o usuário sem equipe: “Sem equipe”; cada equipe: “n membros” | — | CA-MSG-020.7; D-MSG-060 |
| CT-MSG-337 | Mesma massa | Digitar “Gilliard”; escolher a equipe “Plantão” e enviar | No grupo “Equipes” aparecem Onco e Plantão, cada uma com “n membros · Inclui Gilliard”; no grupo “Pessoas”, Gilliard; enviada a Plantão, a mensagem chega a todos os membros ativos da equipe (RN-MSG-015) | — | CA-MSG-020.7; RN-MSG-015; E-MSG-023 |
| CT-MSG-338 | Formulário aberto | Conferir o prazo; preencher só o horário; preencher a data sem horário; digitar horário 25:75 | Legenda “Prazo para resolução (opcional)”, “Data” e “Horário (opcional)” lado a lado; só o horário: “Informe a data do prazo.”; só a data: envia (CT-MSG-344); horário 25:75: “Informe o horário de 00:00 a 23:59.” ligada ao horário | — | CA-MSG-008.2; D-MSG-064 |
| CT-MSG-339 | Painel da Central e lista da Mensageria, com M3 | Com a dica aberta, abrir o modal por teclado (Enter no cartão); com a dica aberta, redimensionar a janela | A dica fecha ao abrir o modal e ao redimensionar; não há dica aberta atrás do modal | M3 | CA-MSG-022.3; D-MSG-059 |
| CT-MSG-340 (API) | Token de Craig, massa de CT-MSG-336 | GET /conversations/recipients?q=gilliard&limit=8 | teams com Onco e Plantão, cada uma com matchedMembers contendo Gilliard; people com Gilliard e teams com Onco e Plantão; pessoa sem equipe com teams vazio | — | CA-MSG-020.7; 02 2.8.7 |
| CT-MSG-341 | Formulário aberto, Craig logado | Marcar “Imediato”; marcar “Rotina”; tocar em “Rotina” de novo | ”Imediato” assume o visual do chip dos cartões (contorno de 2 px em error-dark e flag cheia); ao marcar “Rotina”, só ela fica no visual do chip (contorno cinza, flag) e “Imediato” volta ao neutro; tocar de novo desmarca (sem grau); só uma opção marcada por vez; ao enviar, o chip do cartão é igual ao da opção | — | CA-MSG-017.1; D-MSG-065 |
| CT-MSG-342 | Formulário aberto, navegador em inglês e em pt-BR | Digitar no horário “2575”, “1430”, “9” e letras | Só números; aparece “25:75” e, ao enviar, MSG-EMSG-15; “14:30” é aceito; letras são ignoradas; no celular abre o teclado numérico | — | CA-MSG-008.2; D-MSG-064 |
| CT-MSG-343 | M1 (a vencer) e M3 (vencida) | Conferir a dica e o nome acessível | ”Resolver até 22/10/2026, 18:00” na dica; o nome acessível de M3 termina com “Vencida. Resolver até 22/10/2026, 10:00”; em en-US, “Resolve by”; em es-419, “Resolver hasta” | M1, M3 | CA-MSG-022.1 a 022.3; MSG-TMSG-05 |
| CT-MSG-344 | Craig envia uma conversa com prazo só com a data (25/12/2026) e outra com 23:30 | Conferir os cartões, a dica e o banco | A 1ª: cartão “25/12” e dica “Resolver até 25/12/2026”, sem “23:59”; PrazoEmUtc = 26/12/2026 02:59 UTC (23:59 da clínica); passa a “Vencida” só depois das 23:59 de 25/12. A 2ª: cartão “25/12, 23:30” e dica com a hora | — | CA-MSG-008.2, 022.1; D-MSG-066 |
| CT-MSG-345 | Campo Paciente | Digitar “15/08”, “1508”, “000.000.00” e “00000003” | Entrada que começa com dígito busca por CPF ou data de nascimento (com ou sem pontuação): “15/08” e “1508” acham quem nasceu em 15/08; “00000003” acha só o paciente de CPF 000.000.003-53 | — | CA-MSG-020.3; D-MSG-071 |
| CT-MSG-346 | Campo Paciente e a busca do cabeçalho da Central, mesma massa | Digitar o mesmo texto nos dois: nome, nome da mãe, CPF, nascimento; 1 caractere; texto sem resultado | Os resultados e a ordem são iguais; 1 caractere mostra MSG-TMSG-48; sem resultado, MSG-TMSG-50; o rodapé é o MSG-TMSG-49; a única diferença é que escolher preenche o campo, em vez de abrir o prontuário | — | D-MSG-071; Central 2.1 |
| CT-MSG-347 (API) | Alerta publicado por módulo (PublishAlert) para usuário inativo; para usuário de licença; para usuário sem Visualizar; para equipe sem membros ativos | Publicar cada alerta | Nenhuma conversa é criada e o módulo recebe “não entregue”; cada caso grava uma anomalia no log de sistema, com o módulo de origem, a chave de idempotência e o motivo, para o suporte avisar o cliente | — | EX-MSG-07; D-MSG-069 |
| CT-MSG-348 | Processo Registro clínico e Documento, paciente com vários itens | Abrir a lista de itens | Registro clínico: cada item mostra data, modelo de formulário e profissional; Documento: nome e data (o modelo de documento ainda não é critério, D-MSG-067); a lista aparece inteira, sem paginação | — | CA-MSG-020.4; D-MSG-067 |
| CT-MSG-349 | Craig enviou a conversa X com o paciente errado | Responder em X “Paciente errado, ignore”; descartar X; enviar nova conversa com o paciente certo | O paciente de X não pode ser alterado (sem opção na conversa); a resposta aparece para o destinatário; X vai para “Finalizadas” como “Descartada por Craig”; a nova conversa aparece com o paciente certo | — | CA-MSG-020.8; D-MSG-072 |
| CT-MSG-350 | Craig logado; M1 aberta | Abrir /mensagens/{id de M1}; depois um id de outra pessoa | O 1º: a lista com o modal de M1 por cima; o 2º: o modal não abre, a lista mostra “Conversa não encontrada.” (MSG-EMSG-09) [PROPOSTA, E-MSG-024] | M1 | EX-MSG-05; D-MSG-075 |
| CT-MSG-351 | Lista com M1; modal de M1 aberto a partir do cartão | Fechar pelo “x”, por Esc e pelo Voltar do navegador (um de cada vez) | O modal fecha nos três casos; a lista mantém o filtro e a rolagem; o foco volta ao cartão de M1 [PROPOSTA, E-MSG-024] | M1 | 02 2.3.5; D-MSG-075 |
| CT-MSG-352 | Conversa com muitas mensagens (criar 15), celular de 360 px e desktop | Abrir o modal e rolar a trilha | Título, De e Para, tags de urgência, link e prazo ficam fixos; só a trilha rola; o campo de resposta e “Responder” ficam no fim; em 360 px o modal ocupa quase toda a altura | — | 02 2.3.5; D-MSG-075 |
| CT-MSG-353 | Modal de uma conversa aberta de pessoa (M4), de um alerta (M3) e de uma finalizada (M6), celular de 360 px | Conferir o cabeçalho e o rodapé | M4 e M3: “Resolver” e “Descartar”, com contorno e 44 px, à direita das linhas De e Para, longe do “x”; o rodapé de M4 tem só o campo e “Responder” (único preenchido), com topo e altura iguais aos da caixa do campo; o de M3 tem só o aviso; M6: nenhum dos dois botões | M3, M4, M6 | CA-MSG-005.1; D-MSG-076 |
14. Matriz de rastreabilidade
| Área | Casos | RN cobertas | CA / EX cobertos | SBIS | Cobertura |
|---|---|---|---|---|---|
| Painel | CT-MSG-101 a 108 | RN-MSG-001, 002, 008, 017 | CA-MSG-001.1 a 001.5, 003.1, 005.1; EX-MSG-01, 02 | — | Completo |
| Lista e ordem | CT-MSG-111 a 118 | RN-MSG-001, 002, 011 | CA-MSG-001.1, 001.2, 001.5, 002.4 | ECF.17.04 | Ordem de Finalizadas é [PROPOSTA] |
| Cartão | CT-MSG-121 a 130 | RN-MSG-003, 014, 017 | CA-MSG-002.1, 002.2, 003.1, 003.2, 004.1, 004.2, 015.1, 022.1 a 022.5 (CT-MSG-331 a 335) | — | Completo |
| Nova mensagem | CT-MSG-131 a 144 | RN-MSG-004, 007, 012, 015, 020, 021 | CA-MSG-002.3, 003.3, 007.1, 008.1 a 008.3, 009.1; EX-MSG-03 | NGS1.05.02 | Limites de caracteres e processo são [PROPOSTA] |
| Conversa | CT-MSG-151 a 166 | RN-MSG-006, 009, 010, 017, 019, 022, 030 | CA-MSG-003.1, 005.4, 006.1, 012.1, 014.1; EX-MSG-04, 05, 09 | NGS1.03.01 | Completo |
| Resolver/descartar | CT-MSG-171 a 180 | RN-MSG-008, 009, 018, 028 | CA-MSG-005.1 a 005.5, 010.2 | — | Direito sem Enviar é [PROPOSTA] |
| Equipe e si mesmo | CT-MSG-181 a 188 | RN-MSG-006, 007, 015, 018 | CA-MSG-007.1 a 007.3; EX-MSG-07 | — | Completo |
| Alertas | CT-MSG-191 a 198 | RN-MSG-016, 019, 020, 021, 028, 029 | CA-MSG-004.1, 009.1, 012.2, 013.1 | NGS1.03.09 | Interface de publicação é [PROPOSTA] |
| Fuso e idioma | CT-MSG-201 a 207 | RN-MSG-003, 005, 013 | CA-MSG-002.4, 011.1 | ECF.17.18, 17.19 | Completo |
| Permissões e auditoria | CT-MSG-211 a 220 | RN-MSG-023, 024, 025 | CA-MSG-010.1 a 010.3 | NGS1.03.03, 03.04, 07.01 a 07.03, 07.05, 07.06 | 218 e 219 não executáveis até L-01 e L-02 |
| Endpoints | CT-MSG-231 a 244 | RN-MSG-004, 009, 025 | — | NGS1.05.01, 05.02 | Completo |
| Clínica, idioma, botões e tipo de mensagem | CT-MSG-262 a 267 | RN-MSG-013, 025 | — | ECF.17.18, 17.19 | Massa de três clínicas é [PROPOSTA]; 267 só executa depois da alteração do CHECK no banco |
| Aviso de lida no cartão | CT-MSG-249, 250, 268 a 270 | RN-MSG-016, 018 | CA-MSG-016.1, 016.2 | — | Completo |
| Busca e ordem do formulário | CT-MSG-309 a 326, 336, 337, 340 | RN-MSG-036, 020, 021, 034 | CA-MSG-020.1 a 021.4 | — | Comportamento da busca é [PROPOSTA] (E-MSG-021); as massas são fictícias |
| Grau de urgência | CT-MSG-271 a 290 | RN-MSG-002, 028, 032, 034 | CA-MSG-017.1 a 017.8 | ECF.17.18, 17.19 | A coluna GrauUrgencia e os seeds de Indicadores são [PROPOSTA] (L-09, L-10); 277 e 282 dependem de decisões abertas (E-MSG-018, P-MSG-30) |
| Horário, limite, processo e agravamento | CT-MSG-291 a 308; 138, 141 | RN-MSG-016, 021, 035 | CA-MSG-018.1 a 018.5, 008.3 | — | Contador no campo de resposta e o mecanismo DismissAlert são [PROPOSTA]; as categorias e a ordem dos itens do processo estão em aberto (P-MSG-34) |
| Acessibilidade | CT-MSG-251 a 257 | RN-MSG-027 | CA-MSG-015.1 | — | Completo |
Cobertura dos critérios de aceitação: todos os CA-MSG da Especificação (001.1 a 022.5) têm ao menos um caso. Fluxos de exceção: 9/9 (EX-MSG-01 a 09; 06 em CT-MSG-245, 07 em CT-MSG-185, 247 e 248, 08 em CT-MSG-246). Total: 222 casos.
Não coberto, por decisão de escopo: volume e desempenho (a Especificação não define meta); concorrência além de CT-MSG-177; estados pressionado e desabilitado e botão de ação destrutiva, ainda não definidos no Design System.
15. Histórico de Versões
- v1.0 (22/10/2026) — Versão inicial, construída a partir da Definição, Especificação, Mapeamento e Registro de Decisões v1.0, a pedido do solicitante. O que a QA precisa saber, sem abrir outros documentos:
- A carga atual não tem conversas.
CargaCMZero.xlsxtem apenas as equipes Enfermagem, Farmácia e Onco e os membros (usuários 1, 4, 5, 6, 7, 8). As conversas M1 a M10 são uma proposta de massa que precisa ser criada antes dos testes. - Lacunas de especificação que mudam resultados: ordem da aba “Finalizadas” (CT-MSG-113), limite de 2000 caracteres (CT-MSG-141), paginação de 20 (CT-MSG-115), processo condicionado a paciente (CT-MSG-138), rótulo “Atualização do sistema” (CT-MSG-194) e resolver sem o direito Enviar (CT-MSG-180) são [PROPOSTA]; se o solicitante decidir diferente, o resultado esperado muda.
- CT-MSG-218 e 219 não são executáveis até o solicitante decidir as lacunas L-01 (endereço de origem na auditoria) e L-02 (exclusão em cascata).
- O padrão de cor dos botões e o componente de data e hora estão em aberto; os casos não conferem a cor final do botão.
- Ordem do painel (CT-MSG-101): com a massa proposta, os não lidos M1 e M3 vêm antes dos lidos, e dentro de cada grupo vale o maior entre a última mensagem e o prazo.
- Total: 130 casos.
- Revisão por Dois Críticos (22/10/2026): corrigidos IDs inexistentes, massa M11, cobertura de EX-MSG-06 a 08 (CT-MSG-245 a 248), estado visível ao remetente (CT-MSG-249, 250), participação (CT-MSG-258), Enviar sem Visualizar (CT-MSG-259), concorrência (CT-MSG-260), data inexistente (CT-MSG-261); 405 trocado por 404 em rota inexistente; ordem do painel depois de abrir M1 (CT-MSG-104); instrução de recriar a massa.
- A carga atual não tem conversas.
- v1.1 (27/10/2026) — Acompanha os documentos 01 a 05 v1.1. Seis casos novos (CT-MSG-262 a 267): clínicas do médico e linha da clínica (RN-MSG-025, DT-013), pt-BR completo (ECF.17.18 e 17.19), um botão preenchido por região (Design System, seção 12) e tipo de mensagem só
Response. Alterados: CT-MSG-121 (borda de 3 px emsecondary-dark), 194 (atualização do sistema com tipoResponse), 220 (envio entre clínicas, [PROPOSTA]) e 238 (idempotência pela opção B: a mesma chave devolve sempre a conversa antiga, sem comparar o conteúdo). Total: 136 casos. O que a QA precisa saber: 267 só roda depois que oCHECKdeMensagem.Tipofor alterado no banco; 262 e 264 precisam do cliente de três clínicas da massa da Central; o selo de estado do cartão está em aberto (CT-MSG-249 e 250 podem mudar). - v1.2 (27/10/2026) — Estado no cartão (D-MSG-023): CT-MSG-249 e 250 reescritos (ícones
checkecheck-check, sem chip “Respondida”); novos CT-MSG-268 a 270 (nova resposta do usuário, equipe e alerta). Total: 139 casos. O que a QA precisa saber: o cartão não tem chip de estado; o estado “respondida” continua no banco, mas não aparece. CT-MSG-270 depende de uma conversa de alerta (M9) da massa proposta. - v1.3 (28/10/2026) — Grau de urgência (D-MSG-025 a 027): massa nova M12 a M15 (de Gilliard, para não mudar o painel de Craig); nova seção 13A com 20 casos (CT-MSG-271 a 290): formulário, chip nos quatro níveis, imutabilidade, ordem (CT-MSG-278 e 279), alertas, validação na API e no banco, idiomas, contraste, leitor de tela, teclado e celular; CT-MSG-101 com a observação de que M1 a M10 não têm grau; matriz atualizada. Total: 159 casos. O que a QA precisa saber: (1) a coluna
GrauUrgenciae os seeds deIndicadoressão proposta; CT-MSG-273, 274, 285 e 286 só executam depois deles; (2) em CT-MSG-278, M8 não tem grau e fica abaixo de M15 porque Alta vem antes; (3) a regra do horário relativo (D-MSG-028) é da Central e não é testada aqui. - v1.4 (28/10/2026) — Respostas do solicitante: horário relativo no cartão (CT-MSG-291 a 298; CT-MSG-121 e 122 reescritos), limite de 2000 caracteres (CT-MSG-141, 299), processo de um só tipo sem depender do paciente (CT-MSG-138, 300, 301) e alerta que se agrava (CT-MSG-302). Total: 171 casos. O que a QA precisa saber: a regra de “mesmo dia” é o dia de calendário no fuso da clínica; a lista de itens por tipo (categorias de documento e de registro clínico) está em aberto (P-MSG-34); os casos 303 a 307 usam itens fictícios.
- v1.5 (28/10/2026) — Processo em três etapas (D-MSG-035 a 037): CT-MSG-138, 139 e 300 reescritos; novos CT-MSG-303 a 308. Total: 177 casos. Agenda não é mais tipo de processo.
- v1.6 (28/10/2026) — Grau de urgência no domínio HL7: massa (M12, M13, M15) e os casos CT-MSG-271 a 290, 302 reescritos com Rotina, Urgente, Quanto antes e Imediato e com a chave
STAT/ASAPna API e no banco; nova seção 13C (CT-MSG-309 a 322): ordem do formulário e buscas com autocomplete. Total: 191 casos. - v1.7 (29/10/2026) — CT-MSG-323 a 325 (chip Rotina, aparência do cartão, ordem dos itens). Total: 194 casos.
- v1.9 (29/10/2026) — CT-MSG-283:
urgencyLevelnoPublishAlert(D-MSG-048). Nenhum caso novo. Total: 195 casos. - v1.8 (29/10/2026) — Chaves do grau em minúsculas (CT-MSG-275, 283, 285, 302, 323, M12, M13); botão fora do cartão (CT-MSG-105, 130, 253, 266); CT-MSG-326. Total: 195 casos.
- v1.10 (29/10/2026) — CT-MSG-101 e 279: painel sem limite de 4 cartões e sem o link “Ver todas as mensagens” (D-MSG-049). Total: 195 casos.
- v1.11 (29/10/2026) — CT-MSG-315 a 317 e massa fictícia: busca por
Prescricao.Identificacao(qualquer parte), nome do documento e data do registro clínico (D-MSG-050). Total: 195 casos. - v1.12 (30/10/2026) — CT-MSG-317 e massa fictícia: profissional exibido como tratamento e apelido (D-MSG-051). Total: 195 casos.
- v1.13 (30/10/2026) — Sem mudança de casos (D-MSG-052 confirma a busca por data em dd/mm e dd/mm/aaaa). Total: 195 casos.
- v1.14 (30/10/2026) — Sem mudança de conteúdo; acompanha a correção do Mapeamento (nome da coluna
SegurancaUsuarioId). - v1.15 (05/11/2026) — Sem mudança de casos; CT-MSG-324 e 326 continuam válidos com o novo visual (D-MSG-053). Total: 195 casos.
- v1.16 (05/11/2026) — Novos CT-MSG-327 a 330 (links de paciente e processo; equipe junto ao autor; área de toque). Total: 199 casos (CT-MSG-101 a 330).
- v1.17 (05/11/2026) — CT-MSG-327, 328 e 330: um só link por cartão (D-MSG-055). Total: 199 casos.
- v1.18 (10/11/2026) — Cartão mais leve (D-MSG-056 a 058): CT-MSG-104, 121, 122, 124, 126, 159, 275 e 281 reescritos; novos CT-MSG-331 a 335 (sem ícone e pesos, prazo a vencer, Vencida com dica, balão no toque, chips em contorno). Total: 204 casos (CT-MSG-101 a 335).
- v1.19 (11/11/2026) — Dica do prazo como a de 1ª Consulta (CT-MSG-332 a 334 reescritos; novo CT-MSG-339); destinatário com equipes (CT-MSG-131; novos CT-MSG-336, 337 e 340); prazo em dois campos (CT-MSG-135 a 137, 256, 261 e 309 reescritos; novo CT-MSG-338). Total: 209 casos.
- v1.20 (11/11/2026) — “Inclui {nome}” adotado (CT-MSG-337 sem [PROPOSTA]); prazo com data obrigatória e horário opcional em 24 h (CT-MSG-137, 256, 261 e 338 reescritos; novo CT-MSG-342); “Resolver até” (CT-MSG-332, 333 e 334; novo CT-MSG-343); grau de urgência do tamanho do chip (CT-MSG-271 e 290 reescritos; novo CT-MSG-341). Total: 212 casos.
- v1.21 (11/11/2026) — Prazo sem horário mostra só a data (CT-MSG-338 ajustado; novo CT-MSG-344). Total: 213 casos. O que a QA precisa saber: o prazo gravado às 23:59:00 da clínica é exibido sem horário (sem coluna nova, [PROPOSTA]).
- v1.22 (11/11/2026) — Busca de paciente como a do cabeçalho (CT-MSG-314 reescrito; novos CT-MSG-345 e 346); alerta para destinatário que não pode receber (CT-MSG-347); itens do processo sem paginação (CT-MSG-348); CT-MSG-180 sem [PROPOSTA]. Total: 217 casos. O que a QA precisa saber: os CPFs da massa são fictícios; o modelo de documento ainda não é critério.
- v1.23 (11/11/2026) — Busca de paciente completa, como a do cabeçalho (CT-MSG-314, 345 e 346 reescritos); CT-MSG-347 sem [PROPOSTA] (D-MSG-069 confirmada); novo CT-MSG-349 (paciente errado). Total: 218 casos.
- v1.24 (11/11/2026) — Sem caso novo. Total: 218 casos.
- v1.25 (11/11/2026) — Sem caso novo. Total: 218 casos.
- v1.26 (11/11/2026) — Tela Conversa eliminada (CT-MSG-114, 252 e 326 reescritos; novos CT-MSG-350 a 352: endereço da conversa, fechar e cabeçalho fixo). Total: 221 casos.
- v1.27 (11/11/2026) — “Resolver” e “Descartar” no cabeçalho do modal (CT-MSG-105, 113, 156, 171, 172, 266 e 326 reescritos; novo CT-MSG-353). Total: 222 casos.
- v1.28 (11/11/2026) — CT-MSG-353 ajustado (posição dos botões e alinhamento de Responder; D-MSG-077). Total: 222 casos.