Agenda do Médico — Definição (v1.0)

Documentos desta funcionalidade: 01 - Definição (v1.0) · Especificação (Seção 2): pendente — aguardando decisão sobre o formato de visualização (lista ou grade), ver Seção “Próximos passos” · Protótipo (Seção 3): pendente · Mapeamento de Banco de Dados (Seção 4): pendente.


SEÇÃO 1 — DEFINIÇÃO

Objetivo

Dar ao médico uma visão ampla e navegável da própria agenda do dia — todas as suas consultas agendadas, com os mesmos elementos de identificação de paciente já usados no Cockpit — permitindo também bloquear horários vagos (ex.: para reuniões, ausências, atividades não assistenciais). É a tela dedicada aberta ao clicar no cabeçalho do painel “Consultas” do Cockpit (Central do Médico) — RN-CM-003 já especifica esse ponto de entrada (Central do Médico, Seção 2, “Navegação”); não repetido aqui (Lição #10).

Escopo

Dentro do escopo:

  • Visualização das consultas do médico logado para um dia específico (o dia atual, por padrão).
  • Navegação entre dias (avançar, retroceder, voltar para hoje).
  • Bloqueio de horários vagos da própria agenda.
  • Acesso à consulta a partir de um item da agenda (abre o PEP — mesmo comportamento já especificado em Central do Médico, Seção 2, “Navegação”: “Ao clicar em qualquer card de consulta, o sistema abre o Prontuário Eletrônico do Paciente”).
  • Exibição, por consulta: dos elementos já definidos em Central do Médico (Seção 4.1) — paciente (nome, foto, diagnóstico oncológico), horário, status, modo de atendimento, indicador de primeira consulta, tags do paciente — mais três elementos novos desta funcionalidade: tags do paciente restritas às habilitadas para exibição em agenda (RN-AGM-006), campo de complemento (RN-AGM-007) e tipo de consulta, quando configurado pelo cliente (RN-AGM-008).

Fora do escopo (confirmado pelo solicitante — “só visualização + bloqueio”):

  • Criar, editar, cancelar ou reagendar consultas. Essas ações continuam exclusivas do fluxo de Agendamento da Recepção (contexto Agendamento, que por sua vez toca os contextos Assistencial e Financeiro — distinto desta tela, que é só Assistencial).
  • Parametrização de agendas (dias/horários por especialidade e profissional — SBIS ECF.05.01) e de tipos de consulta (SBIS ECF.05.04, a parte de cadastro do domínio) — fora de escopo desta tela; ela apenas exibe o tipo de consulta já configurado (RN-AGM-008).
  • Check-in/chegada do paciente na clínica — fluxo de Recepção.
  • Execução do atendimento — fluxo do PEP.
  • Duração da consulta — já definida pela Recepção no momento do agendamento (RN-AGM-005); esta tela não a edita.

Personas envolvidas

  • Médico — único usuário desta tela, não necessariamente oncologista (confirmado pelo solicitante). Mesma persona de Central do Médico, ver Central do Médico, Seção 1, “Personas” (não repetido aqui — Lição #10).

Nenhuma outra persona usa esta tela. Telas equivalentes para outros profissionais (agenda da enfermagem, agenda da farmácia, agenda da recepção) são funcionalidades futuras e independentes — motivo pelo qual o solicitante optou pelo prefixo de RN RN-AGM (Agenda do Médico) em vez de um prefixo genérico de agenda, reservando espaço para prefixos próprios dessas outras agendas quando forem especificadas.

Workflows do Profissional

Esta funcionalidade não introduz um workflow novo — ela é o destino de um touchpoint já documentado em Central do Médico (Workflow 1 — Atendimento de Consulta, RN-CM-003) e o ponto de partida para o touchpoint “abrir o PEP a partir de uma consulta”, também já especificado lá. Resumo do encaixe, sem repetir o fluxo completo (documentado em Central do Médico, Seção 1):

  1. O médico está no Cockpit e quer ver o dia inteiro (não só os próximos atendimentos do painel compacto) ou bloquear um horário — clica no título “Consultas”.
  2. A Agenda do Médico abre no dia atual, com a lista/grade completa (formato a decidir, ver “Próximos passos”).
  3. O médico pode navegar para outro dia (ex.: para checar a agenda de amanhã antes de sair) ou bloquear um horário vago (ex.: reunião administrativa, ausência programada).
  4. Ao tocar em uma consulta, o sistema abre o PEP do paciente — mesmo destino já usado a partir do card de consulta no Cockpit.
  5. Não há retorno automático ao Cockpit; o médico navega de volta pela navegação padrão do sistema.

Regras de Negócio

IDRegra
RN-AGM-001Somente leitura de consultas. O médico pode visualizar e navegar pela agenda e bloquear horários vagos, mas não pode criar, editar, cancelar ou reagendar consultas nesta tela.
RN-AGM-002Escopo do médico logado. A tela mostra exclusivamente a agenda do médico autenticado — mesmo filtro já usado em Central do Médico (Agenda.IdChRecurso = {IdChProfissional do médico logado}, ver Central do Médico Seção 4.1, “Filtros do endpoint”). Não há alternância para ver a agenda de outro médico.
RN-AGM-003Navegação por dia. Visualização diária (não semanal nem mensal, por decisão do solicitante). O médico pode avançar/retroceder dia a dia e retornar diretamente para o dia atual. Sem limite de navegação para o passado ou o futuro definido nesta versão — [A DEFINIR] se deve haver um horizonte máximo (ex.: não navegar além do fim do período de agendamento parametrizado pela clínica).
RN-AGM-004Bloqueio de horários. O médico pode bloquear um horário vago da própria agenda (ex.: reunião, atividade não assistencial, ausência). O mecanismo de persistência desta ação — se reaproveita a estrutura existente de Agenda.TipoAgenda = 'S' (“Reserva de sala para assuntos não assistenciais”, já documentado em Central do Médico Seção 4.1, domínio TipoAgenda) combinada com o parâmetro AgendaSalaPacienteEspecial (paciente-placeholder usado hoje para reservas de sala/auditório, já que Agenda.IdPaciente é NOT NULL) — é uma leitura da estrutura existente, não uma decisão confirmada; será resolvido na Seção 4 (Mapeamento de Banco de Dados) desta funcionalidade.
RN-AGM-005Duração não editável aqui. A duração de cada consulta já é definida pela Recepção no momento do agendamento; esta tela apenas exibe o intervalo resultante (startTime/endTime, mesma origem de Central do Médico Seção 4.1).
RN-AGM-006Tags do paciente restritas às habilitadas para agenda. Diferente do Cockpit (que exibe todas as tags do paciente — PacienteVip + ProgramaApoioPaciente/ProgramaApoio, Central do Médico Seção 4.1), esta tela exibe apenas o subconjunto de tags marcado como “habilitada para exibição em agendas”. Existe um campo real candidato para esse controle — ProgramaApoio.MostrarEm (int, default 1) — mas sua decodificação (bitmask? enumeração? qual valor corresponde a “agenda”?) não está documentada em nenhuma fonte consultada (Biblioteca de Schema (DDL), EsquemaGemed21.csv); [A DEFINIR] — precisa ser levantada com o time técnico/DBA antes de especificar a Seção 4.
RN-AGM-007Campo de complemento. Cada consulta pode ter um complemento textual livre, associado ao agendamento. Campo real já existente: Agenda.Complemento (varchar(128), nullable) — confirmado na Biblioteca de Schema (DDL).
RN-AGM-008Tipo de consulta (opcional por cliente). Quando a clínica configurou classificações de agenda, a consulta exibe seu tipo. Estrutura real correspondente: AgendaClassificacao/AgendaSubClassificacao — tabelas de domínio já configuráveis por clínica (AgendaClassificacao.IdChClinica), referenciadas por Agenda.IdAgendaClassificacao/Agenda.IdAgendaSubClassificacao (ambos nullable — condizente com “opcional por cliente”: uma clínica que não cadastrou classificações simplesmente não preenche esses campos). Existe também Agenda.TipoConsulta (char(1), NOT NULL DEFAULT 'N'), campo diferente e já obrigatório — não é o campo referenciado por esta regra; mantido de lado, sem uso nesta funcionalidade, para não confundir os dois.
RN-AGM-009Elementos herdados do Cockpit. Paciente (nome preferido/legal, foto, diagnóstico oncológico), horário, status calculado (AppointmentStatus()), modo de atendimento, indicador de primeira consulta — todos com a mesma origem e lógica já mapeadas em Central do Médico, Seção 4.1; não redefinidos aqui (Lição #10), apenas reutilizados nesta tela.

Premissas

  • O médico só usa esta tela para a própria agenda — não há necessidade de seletor de profissional.
  • A visualização diária é o formato de período (dia, não semana/mês) — decisão já confirmada pelo solicitante. O formato visual dentro do dia (lista ou grade) ainda está em aberto — ver “Próximos passos”.
  • O bloqueio de horário reaproveita estrutura de agenda existente (não propõe, a priori, uma tabela nova) — a confirmar na Seção 4.

Dependências

  • Central do Médico (Cockpit) — ponto de entrada (RN-CM-003) e origem dos elementos de card reutilizados (Seção 4.1). Mudanças na estrutura desses elementos em Central do Médico devem se refletir aqui.
  • Agendamento (Recepção) — cria, edita, cancela e reagenda as consultas que esta tela exibe; também é responsável pela parametrização de agendas por especialidade/profissional (SBIS ECF.05.01) e pelo cadastro de tipos de consulta (SBIS ECF.05.04, parte de cadastro). Ainda não especificada como funcionalidade própria neste projeto.
  • PEP (Prontuário Eletrônico do Paciente) — destino ao tocar em uma consulta.

Requisitos SBIS Aplicáveis

Consultados em RequisitosSBIS-v5.2-(ambulatorial).xlsx, grupo “ECF.05 - Agendamento” e, transversalmente, “Auditoria” (NGS1):

RequisitoTítuloEstágio (clínica/ambulatório)Aplicação nesta funcionalidade
ECF.05.02Bloqueios na agenda2 (recomendado)Atendido pela funcionalidade de bloqueio de horários (RN-AGM-004) — mecanismo de persistência ainda [A DEFINIR], ver Seção 4.
ECF.05.04Especificação do tipo de consulta2 (recomendado)Atendido pela exibição do tipo de consulta (RN-AGM-008), quando configurado pelo cliente. A parte de cadastro/parametrização do tipo de consulta é responsabilidade de outra funcionalidade (fora de escopo aqui).
ECF.05.01Parametrização de agendas de consultas2 (recomendado)Fora de escopo desta tela — dependência (ver “Dependências”), não pendência.
ECF.05.03Agendamento de consultas por profissionais1 (obrigatório)Fora de escopo desta tela por decisão do solicitante (só visualização + bloqueio) — atendido pelo fluxo de Agendamento da Recepção, ainda não especificado neste projeto. Registrado aqui para não passar despercebido: é estágio 1, então precisa ser coberto por alguma funcionalidade do projeto, mesmo que não seja esta.
NGS1.07.03 / NGS1.07.04Eventos (e eventos avançados) registrados na trilha de auditoria1 / 2Transversal ao contexto Segurança — acesso a dados de paciente e a ação de bloqueio de horário (RN-AGM-004) devem gerar evento de auditoria, mesmo padrão já usado em outras funcionalidades assistenciais deste projeto. Não redefinido aqui.

Próximos passos

  1. Decisão de formato de visualização — o solicitante pediu protótipos comparando lista vs. grade para o dia. Comparação exploratória entregue separadamente (fora da numeração de Seção 3 — ainda não há Seção 2 concluída para basear um protótipo formal); após a decisão, a Seção 2 (Especificação) e a Seção 3 (Protótipo) seguem com o formato escolhido.
  2. RN-AGM-004 (mecanismo de bloqueio) — confirmar com o solicitante se a leitura proposta (TipoAgenda='S' + paciente-placeholder de AgendaSalaPacienteEspecial) é aceitável, ou se deve ser tratada de outra forma.
  3. RN-AGM-006 (ProgramaApoio.MostrarEm) — levantar a decodificação real do campo com o time técnico/DBA antes de escrever a Seção 4.
  4. RN-AGM-003 (horizonte de navegação) — confirmar se há limite de dias para navegação passada/futura.

Prioridade sugerida

Should Have — não é bloqueante para o fluxo assistencial do Cockpit (que já cobre “próximos atendimentos do dia”), mas cobre um requisito SBIS estágio 1 relacionado (ECF.05.03, ainda que não implementado nesta tela) e dois recomendados (ECF.05.02, ECF.05.04) diretamente.

Complexidade estimada

Média — poucas regras de negócio, mas duas pendências reais de estrutura de dados (bloqueio de horário, decodificação de MostrarEm) que podem se revelar mais complexas na Seção 4, e uma decisão de formato de UI ainda em aberto.

Dependências (funcionalidades mapeadas)

Central do Médico (Cockpit) — DOC-004. Agendamento (Recepção) — ainda não mapeada neste projeto.


Histórico de Versões

  • v1.0 (31/08/2026) — Documento criado. Seção 1 (Definição) completa, a partir das respostas do solicitante sobre contexto (Assistencial), objetivo/escopo (visualização + navegação + bloqueio, sem CRUD de consulta), persona (médico, não necessariamente oncologista), visualização (diária; formato lista vs. grade em aberto) e regras de negócio (duração fixada pela Recepção; tags restritas às habilitadas para agenda; campo de complemento; tipo de consulta opcional por cliente). Estrutura real de banco consultada na Biblioteca de Schema (DDL) para Agenda.Complemento, Agenda.TipoConsulta, AgendaClassificacao/AgendaSubClassificacao, ProgramaApoio.MostrarEm e o padrão de filtro por médico logado (Agenda.IdChRecurso) já usado em Central do Médico — nenhuma estrutura inventada; itens sem decodificação disponível marcados [A DEFINIR]. Seções 2, 3 e 4 pendentes.