Agendar exame com confirmação de preparo
- Atende
- 4
- Parcial
- 1
- Não atende
- 2
- Inconclusivo
- 2
C1Endpoint POST /agendamentos/exames · Controllers/AgendamentoController.cs:69Atende
Rota declarada no controller e coberta por teste de integração que agenda e relê o horário criado.
EvidênciaControllers/AgendamentoController.cs:69commit c7d2a10
C2Orientação de preparo devolvida conforme o tipo de exame · Servicos/PreparoExameService.cs:24Atende
Jejum, suspensão de medicação e texto de orientação vêm do cadastro de preparo por tipo de exame, e não de constante no código; tipo sem regra cadastrada falha explícito, em vez de devolver preparo vazio.
EvidênciaServicos/PreparoExameService.cs:24commit c7d2a10
C3Horários gravados no fuso da unidade · Servicos/AgendamentoService.cs:63Parcial
Três dos quatro campos de data passam pelo conversor da unidade, que cai em America/Sao_Paulo quando a unidade não tem zona cadastrada. DataSolicitacao grava UTC cru e aparece três horas adiantado no prontuário.
EvidênciaServicos/AgendamentoService.cs:63commit c7d2a10
C4Confirmação de preparo obrigatória na requisição · Validadores/AgendarExameValidator.cs:14Atende
A requisição sem o aceite do paciente é recusada no validador, antes de chegar ao serviço, com mensagem no idioma do usuário.
EvidênciaValidadores/AgendarExameValidator.cs:14commit c7d2a10
C5Protocolo do agendamento contém a data do exame · Controllers/AgendamentoController.cs:85Atende
Padrão AGD-yyyyMMdd-0000, montado no controller com a data do exame e o sequencial do dia — não com a data em que o pedido foi feito.
EvidênciaControllers/AgendamentoController.cs:85commit c7d2a10
C6Horário já ocupado do profissional bloqueado na marcação · Servicos/DisponibilidadeProfissionalService.cs:45Não atende
A grade de horários livres sai só da escala do profissional, e o único filtro aplicado é o intervalo de almoço. Exame já marcado não é descontado, então dois pacientes ficam com as 8h do mesmo profissional; o desconto era esperado aqui, no montador das janelas.
EvidênciaServicos/DisponibilidadeProfissionalService.cs:45commit c7d2a10
C7Marcação restrita aos perfis Recepção e Corpo Clínico · Controllers/AgendamentoController.cs:76Não atende
O endpoint exige autenticação e nada mais: sem Roles, sem policy. Qualquer usuário autenticado — inclusive o próprio paciente logado no portal — agenda exame em qualquer prontuário.
EvidênciaControllers/AgendamentoController.cs:76commit c7d2a10
C8Teto de 40 exames por turno na sala de coletaInconclusivo
O serviço conta os agendamentos do turno, mas nada no commit fixa 40 como teto. O número pode estar na parametrização da unidade, que não vive neste repositório.
Sem evidência no código
C9Acesso ao dado de saúde registrado na trilha de auditoriaInconclusivo
O agente respondeu Atende citando Infra/Auditoria/AuditoriaService.cs:214. O arquivo tem 190 linhas no commit c7d2a10 — a linha citada não existe, e o veredito caiu para inconclusivo. Em dado de saúde, registrar quem leu o quê é exigência da LGPD, então o item volta para revisão humana.
Evidência não confirmadaInfra/Auditoria/AuditoriaService.cs:214Atende → Inconclusivo