Cenários de Teste — Central do Médico (Cockpit)

Funcionalidade: [DOC-004] Central do Médico (Cockpit) Versão de referência da especificação: 01-Definição v4.26 / 02-Especificação v4.25 / 04-Mapeamento de BD v4.28 Autor: Gerado por IA (Claude), a pedido do usuário, para uso da equipe de QA do Gemed 2.1 Data: 14/09/2026 Massa de dados de referência: CargaPrescricaoZero_massa_teste.xlsx (entregue junto com este documento)

Nota de proveniência: este documento não foi lido a partir de um template de “cenários de teste” já existente no projeto — não foi localizado nenhum no Índice estruturado de documentos. A estrutura de casos (ID / Pré-condição / Passos / Resultado Esperado / Prioridade / Dados de Teste) segue convenção usual de QA, não um padrão já definido pela Skill Designer (que cobre Definição/Especificação/Protótipo/Mapeamento de BD, não casos de teste). Ajustes de formato são bem-vindos.


1. Escopo

Este documento cobre a homologação funcional da Central do Médico (Cockpit), conforme [DOC-004]: KPI Bar (4 indicadores clicáveis) e os 4 painéis do grid — Consultas, Prescrições Pendentes, Comunicação e Procedimentos na Clínica — além da Busca Inteligente de pacientes.

Fora de escopo deste documento: Agenda do Médico (DOC-006, tela dedicada, especificação própria ainda sem Protótipo/Mapeamento de BD) e o fluxo de Agendamento da Recepção (não mapeado no projeto). Cenários aqui tratam apenas do que a Central do Médico exibe/consome desses dados.

Endpoints envolvidos (referência)

EndpointPainel/KPI
GET /api/v1/patients/searchBusca Inteligente
GET /api/v1/cockpit/doctor/kpis/appointments-todayKPI Consultas Hoje
GET /api/v1/cockpit/doctor/kpis/in-treatmentKPI Em Tratamento
GET /api/v1/cockpit/doctor/kpis/procedures-todayKPI Procedimentos Hoje
GET /api/v1/cockpit/doctor/kpis/prescription-alertsKPI Alertas de Prescrição
GET /api/v1/cockpit/doctor/appointmentsPainel Consultas
GET /api/v1/cockpit/doctor/prescriptionsPainel Prescrições Pendentes
GET /api/v1/cockpit/doctor/conversationsPainel Comunicação
GET /api/v1/cockpit/doctor/proceduresPainel Procedimentos

Massa de dados criada para estes testes

  • Médicos: IdChProfissional 11 (Craige Evans) e 9 (Gilliard Onório Santos), especialidade Oncologista.
  • Pacientes novos: IdPaciente 19-24 (3 vinculados ao Dr. 11, 3 ao Dr. 9), com convênio próprio cadastrado.
  • Agenda de hoje (14/09/2026): 10+ registros cobrindo todos os 9 estados do domínio Agenda.Situacao (A=Aberta, V=Confirmada, C=Cancelada pelo usuário, D=Cancelada pelo paciente, M=Cancelada pelo médico, F=Falta, I=Cancelado por internação, O=Cancelada por óbito, T=Transferido), distribuídos entre os dois médicos.
  • Agenda passada: confirmadas/realizadas (V) e canceladas (C/D/M/F/I/O/T variados), de 5 a 60 dias atrás.
  • Agenda futura: todas em estado Agendado (A), de 7 a 45 dias à frente.
  • **Plano terapêutico completo 1 — Paciente 19 (Roberto Nascimento Alves), Dr. 11, protocolo NIVOLUMAB + IPILIMUMAB, C1D1 em 13/07/2026 (~2 meses atrás) até C5D1 em 05/10/2026 (próximo mês): todas as 5 prescrições do ciclo geradas (C1-C3 finalizadas, C4 é hoje, C5 futura), cada uma com sua Agenda de quimioterapia correspondente.
  • **Plano terapêutico completo 2 — Paciente 21 (Helena Duarte Costa), Dr. 9, protocolo DOCETAXEL + CARBOPLATINA, C1D1 em 14/08/2026 (~1 mês atrás), programação de 6 ciclos: apenas as prescrições até o próximo ciclo foram geradas (C1-C2 finalizadas, C3 é o próximo ciclo em 25/09/2026) — as demais (C4-C6) existem só na programação (PEPProjetoTerapeuticoProtocoloP), sem prescrição ainda gerada.
  • Prescrições avulsas baseadas em protocolo (sem plano terapêutico formal) para os pacientes 20, 22, 23 e 24 — protocolos Ácido Zoledrônico e Prescrição Livre, em estados variados (finalizada, cancelada, futura).

2. KPI Bar

CT-KPI-01 — KPI “Consultas Hoje” reflete a contagem correta

Pré-condição: Logado como Dr. Craige Evans (IdChProfissional 11). Passos: Abrir o Cockpit na data de hoje (14/09/2026). Resultado esperado: O card “Consultas Hoje” mostra a contagem de agendas do Dr. 11 com Data = hoje, incluindo todos os estados (não apenas as confirmadas) — conferir contra a massa de teste (5 consultas do Dr. 11 hoje: pacientes 19/A, 20/C, 23/M, 7/I, 13/T). Prioridade: Alta Dados de teste: Agenda IdAgenda 101, 103, 105, 107, 109.

CT-KPI-02 — KPI “Em Tratamento” (aderência ao protocolo)

Pré-condição: Logado como Dr. Gilliard Onório Santos (IdChProfissional 9). Passos: Abrir o Cockpit; observar o KPI “Em Tratamento”. Resultado esperado: A paciente 21 (Helena Duarte Costa) deve aparecer como “em tratamento” (tem PEPProjetoTerapeuticoProtocolo ativo, C1/C2 finalizados dentro do intervalo de 21 dias esperado). Validar também o critério de desvio: se o QA alterar manualmente a DataEstimada do próximo ciclo para simular atraso, o indicador de aderência deve refletir a mudança (regra “OU” entre desvio de C1D1 e desvio de intervalo entre sessões). Prioridade: Alta Dados de teste: PEPProjetoTerapeuticoProtocolo (paciente 21), PEPProjetoTerapeuticoProtocoloP linhas C1-C3. Observação: este KPI depende da coluna Protocolo.ToleranciaDiasAdesao, listada em DOC-004 como [PROPOSTA] — confirmar com o time se já foi criada antes de rodar este caso; se não, o caso deve ficar bloqueado/pendente.

CT-KPI-03 — KPI “Procedimentos Hoje”

Pré-condição: Logado como Dr. 11. Passos: Abrir o Cockpit hoje. Resultado esperado: Deve contar a sessão de quimioterapia do paciente 19 agendada para hoje (Agenda tipo ‘Q’, ciclo C4D1 do protocolo NIVOLUMAB+IPILIMUMAB). Prioridade: Média Dados de teste: Prescrição IdPrescricao 61 / Agenda vinculada (tipo Q, hoje).

CT-KPI-04 — KPI “Alertas de Prescrição”

Pré-condição: Logado como Dr. 9. Passos: Abrir o Cockpit; verificar o KPI de alertas. Resultado esperado: Prescrições com aplicação agendada dentro de 24h e ainda sem assinatura de revisão por outro médico (RN-CM-020) devem gerar alerta — chip vermelho se <12h, laranja se 12-24h. A prescrição C3D1 da paciente 21 (25/09/2026, sem assinatura ainda — situação ‘G’) não deve alertar ainda (está a mais de 24h); usar para caso negativo. Para caso positivo, o QA deve criar (ou o Dev de apoio deve disponibilizar) uma prescrição G com aplicação em menos de 24h. Prioridade: Alta Dados de teste: Prescrição IdPrescricao 65 (caso negativo).

CT-KPI-05 — Clique no KPI navega para o painel/filtro correspondente

Pré-condição: Qualquer médico logado. Passos: Clicar em cada um dos 4 KPIs. Resultado esperado: Navega para o painel relacionado já filtrado pelo critério do KPI (ex.: clicar em “Consultas Hoje” abre o painel Consultas filtrado no dia de hoje). Prioridade: Média


3. Painel Consultas

CT-CONS-01 — Exibição de todos os estados de agenda do dia

Pré-condição: Logado como Dr. 11 ou Dr. 9, data de hoje. Passos: Abrir o painel Consultas. Resultado esperado: As 10 consultas de hoje aparecem, cada uma com o chip de status correspondente ao código em Agenda.Situacao (Aberta, Confirmada, Cancelada pelo usuário, Cancelada pelo paciente, Cancelada pelo médico, Falta, Cancelado por internação, Cancelada por óbito, Transferido). Validar que os 9 rótulos existem e correspondem ao código certo — este é o teste mais importante da massa gerada, pois cobre o domínio completo de uma só vez. Prioridade: Alta Dados de teste: Agenda IdAgenda 101-110 (ver tabela no §1).

CT-CONS-02 — Toque na consulta abre o PEP

Pré-condição: Painel Consultas aberto. Passos: Tocar em uma consulta com paciente (ex.: paciente 19, estado Aberta). Resultado esperado: Abre o prontuário (PEP) do paciente em no máximo 2 toques (herdado da Agenda do Médico). Prioridade: Média

CT-CONS-03 — Paciente “1ª consulta”

Pré-condição: — Resultado esperado: Nenhum registro da massa gerada tem PrimeiraConsulta='S'; este caso deve ser testado com dado adicional (fora desta massa) ou o QA pode alterar manualmente um registro de teste para S e validar a tag correspondente no card. Prioridade: Baixa Observação: gap conhecido da massa gerada — sinalizado explicitamente aqui.

CT-CONS-04 — Bloco recolhido de consultas já realizadas/canceladas

Pré-condição: Dia de hoje com mistura de estados. Passos: Abrir o painel; verificar que consultas com estado final (V já atendida, C/D/M/F/I/O/T) aparecem agrupadas em bloco recolhido, com linha “AGORA” ancorando a posição atual do dia. Resultado esperado: Conforme RN-AGM-010 (herdada visualmente pela Central do Médico via painel “Consultas”). Prioridade: Média


4. Painel Prescrições Pendentes

CT-PRES-01 — Prescrição finalizada não aparece como pendente

Pré-condição: Dr. 11 logado. Passos: Abrir painel Prescrições Pendentes. Resultado esperado: As prescrições C1-C3 do paciente 19 (situação ‘F’, já finalizadas e assinadas) não devem aparecer na lista de pendentes. Prioridade: Alta Dados de teste: Prescrição IdPrescricao 58-60.

CT-PRES-02 — Prescrição futura (G) aparece como pendente de assinatura

Pré-condição: Dr. 11 logado. Passos: Abrir painel Prescrições Pendentes. Resultado esperado: As prescrições C4D1 (hoje) e C5D1 (futura) do paciente 19 — situação ‘G’, sem IdChProfissionalAssinou — aparecem na lista, com indicação de urgência conforme proximidade da aplicação (RN-CM-020). Prioridade: Alta Dados de teste: Prescrição IdPrescricao 61 (hoje) e 62 (futura).

CT-PRES-03 — Prescrição cancelada não aparece como pendente

Pré-condição: Dr. 11 logado. Passos: Abrir painel Prescrições Pendentes. Resultado esperado: A prescrição de “Prescrição Livre” cancelada da paciente 23 (situação ‘C’) não deve aparecer na lista. Prioridade: Média Dados de teste: Prescrição avulsa da paciente 23 (protocolo 187).

CT-PRES-04 — Assinatura com/sem certificado digital

Pré-condição: Prescrição pendente aberta. Passos: Assinar com certificado digital e, em outro caso, sem certificado. Resultado esperado: Ambos os fluxos concluem e o registro correspondente é criado em PrescricaoAssinatura (TipoAssinatura=‘A’ para médico — corrigido na v4.28, não mais ‘M’). Prioridade: Alta Observação: validar especificamente que a assinatura do médico grava 'A', não 'M' — bug já documentado e corrigido na especificação (Log de Mudanças, v4.28); é um bom caso de regressão.


5. Painel Procedimentos na Clínica

CT-PROC-01 — Barra de progresso de infusão em andamento

Pré-condição: Existir uma sessão de quimioterapia com DtHrIniAtend/DtHrInicioInfusao preenchidos e DtHrFimAtend vazio (infusão em curso). Passos: Abrir o painel Procedimentos. Resultado esperado: Barra de progresso inline (3px) calculada a partir do tempo decorrido vs. Prescrição/ProtocoloDetalhe.TempoAplicacao; fica vermelha se ultrapassar 100%. Prioridade: Alta Dados de teste: A massa gerada não deixou nenhuma sessão “em andamento” no momento exato da execução do teste — como os horários são fixos, este caso deve ser testado ajustando o relógio do ambiente de teste (ou gerando uma sessão com início “agora”) para o horário coincidir com uma sessão de quimio de hoje. Sinalizado como gap.

CT-PROC-02 — Procedimento do dia listado por médico

Pré-condição: Dr. 11 logado. Passos: Abrir painel Procedimentos. Resultado esperado: Mostra a sessão de quimioterapia de hoje do paciente 19 (C4D1, NIVOLUMAB+IPILIMUMAB). Prioridade: Alta


6. Painel Comunicação

A massa gerada não inclui dados de mensageria (Conversa/Mensagem, schema mensageria) — fora do escopo explícito do pedido original. Os casos abaixo ficam registrados como pendentes de massa de dados adicional.

CT-COM-01 — Conversas lidas e não lidas juntas, não lidas com prioridade

Status: Bloqueado — requer massa de Conversa/Mensagem (schema mensageria), não gerada nesta rodada.

CT-COM-02 — Conversa endereçada a uma equipe (recepção/farmácia/enfermagem)

Status: Bloqueado — mesma razão acima.

Recomendação: se a equipe de QA precisar homologar este painel, peça uma nova rodada de massa de dados específica para Conversa/Mensagem/Equipe/EquipeMembro.


7. Busca Inteligente

CT-BUSCA-01 — Busca por nome (mínimo 2 caracteres, debounce 1s)

Passos: Digitar “Rob” na busca. Resultado esperado: Após 1s sem digitação, retorna o paciente 19 (Roberto Nascimento Alves) entre os resultados. Prioridade: Média

CT-BUSCA-02 — Detecção de CPF

Passos: Digitar o CPF do paciente 21 (58273049166). Resultado esperado: Sistema reconhece o padrão como CPF (não nome) e busca por igualdade. Prioridade: Média Dados de teste: Paciente 21.

CT-BUSCA-03 — Detecção de data de nascimento

Passos: Digitar “14/03/1958” (nascimento do paciente 19). Resultado esperado: Sistema reconhece como data de nascimento e retorna o paciente correspondente. Prioridade: Baixa


8. Cenários de KPI/painel com volume (regressão de performance/paginação)

CT-VOL-01 — Painel Consultas com muitos registros no dia

Pré-condição: Dia de hoje com 11 agendas (10 consultas + 1 sessão de quimio simultânea do paciente 19). Resultado esperado: Painel carrega, ordena por horário e não trava/pagina incorretamente com esse volume (ainda modesto — recomenda-se replicar a massa por 5-10x para um teste de carga real antes de produção). Prioridade: Baixa


9. Matriz de rastreabilidade (resumo)

Painel/KPICasosCobertura de dados
KPI BarCT-KPI-01 a 05Completa, exceto CT-KPI-02 (depende de coluna proposta)
ConsultasCT-CONS-01 a 04Completa para estados de agenda; gap em “1ª consulta”
Prescrições PendentesCT-PRES-01 a 04Completa
ProcedimentosCT-PROC-01 a 02Gap em “infusão em andamento” (depende de horário real)
ComunicaçãoCT-COM-01 a 02Bloqueado — sem massa de mensageria
Busca InteligenteCT-BUSCA-01 a 03Completa

10. Premissas e observações desta rodada de geração de dados

Estas são decisões tomadas pela IA ao gerar a massa, sem confirmação prévia do solicitante — sinalizadas explicitamente conforme as Regras de Conduta do projeto:

  1. [PROPOSTA] Estado “V” (Confirmada) foi usado, com DtHrChegada/DtHrIniAtend/DtHrFimAtend todos preenchidos, para representar visualmente uma consulta “Finalizada” no passado — o domínio oficial de Agenda.Situacao (Log de Mudanças Estruturais, 10/09/2026) não tem um código literal “Finalizada”; V=Confirmada foi o mais próximo semanticamente e é o mesmo padrão observado nos dados reais já existentes na planilha.
  2. [PROPOSTA] Campos de auditoria/UTC (DhAgendaIniUTC, DhChegadaUTC, DhAtendimentoIniUTC etc.) foram deixados em branco nas linhas novas — são campos de reconciliação legada cuja regra de preenchimento não está documentada nas especificações consultadas; preencher exigiria inventar uma lógica não confirmada.
  3. [PROPOSTA] Agenda.IdChRecurso para consultas foi definido como igual ao IdChProfissional do médico (padrão consistente com a tabela Recurso, IDs 7-21); para quimioterapia, foi usado um dos recursos 22-29 (poltronas/leitos dos Setores Verde/Rosa) — a planilha original também tem alguns registros legados que usam o ID do médico como recurso mesmo em sessões de quimio, mas a Biblioteca de Schema (DDL) modela os recursos 22-29 como a estrutura correta.
  4. A coluna final “INSERT INTO … VALUES (…)” de cada aba (fórmula do Excel) não foi replicada nas linhas novas — é uma conveniência de geração de SQL específica da planilha original, cuja fórmula usa referências de tabela ([#This Row]) que a IA optou por não recriar manualmente para não arriscar corromper a fórmula original. As colunas de dados estruturados (que são o que importa para os testes) estão todas preenchidas.
  5. Os nomes de pacientes e médicos são fictícios, como já era o padrão dos dados existentes na planilha.

Arquivo de dados: CargaPrescricaoZero_massa_teste.xlsx