Agendar examen con confirmación de preparación
- Cumple
- 4
- Parcial
- 1
- No cumple
- 2
- No concluyente
- 2
C1Endpoint POST /agendamentos/exames · Controllers/AgendamentoController.cs:69Cumple
Ruta declarada en el controlador y cubierta por una prueba de integración que agenda y vuelve a leer el horario creado.
EvidenciaControllers/AgendamentoController.cs:69commit c7d2a10
C2Instrucciones de preparación devueltas según el tipo de examen · Servicos/PreparoExameService.cs:24Cumple
Ayuno, medicación suspendida y el texto de orientación vienen del registro de preparación por tipo de examen, no de una constante en el código; un tipo sin regla falla explícito en vez de devolver una preparación vacía.
EvidenciaServicos/PreparoExameService.cs:24commit c7d2a10
C3Horarios guardados en el huso de la sede · Servicos/AgendamentoService.cs:63Parcial
Tres de los cuatro campos de fecha pasan por el conversor de la sede, que cae en America/Sao_Paulo cuando la sede no tiene zona registrada. DataSolicitacao guarda UTC crudo y aparece tres horas adelantado en la historia clínica.
EvidenciaServicos/AgendamentoService.cs:63commit c7d2a10
C4Confirmación de preparación obligatoria en la solicitud · Validadores/AgendarExameValidator.cs:14Cumple
La solicitud sin la aceptación del paciente se rechaza en el validador, antes de llegar al servicio, con un mensaje en el idioma del usuario.
EvidenciaValidadores/AgendarExameValidator.cs:14commit c7d2a10
C5El protocolo del agendamiento contiene la fecha del examen · Controllers/AgendamentoController.cs:85Cumple
Patrón AGD-yyyyMMdd-0000, armado en el controlador con la fecha del examen y el secuencial del día, no con la fecha en que se hizo el pedido.
EvidenciaControllers/AgendamentoController.cs:85commit c7d2a10
C6El horario ya ocupado del profesional se bloquea en la reserva · Servicos/DisponibilidadeProfissionalService.cs:45No cumple
La grilla de horarios libres sale solo de la agenda del profesional, y el único filtro aplicado es el intervalo de almuerzo. Un examen ya reservado no se descuenta, así que dos pacientes se quedan con las 8 h del mismo profesional; ese descuento se esperaba aquí, en el armador de las franjas.
EvidenciaServicos/DisponibilidadeProfissionalService.cs:45commit c7d2a10
C7Reserva limitada a los perfiles Recepción y Cuerpo Clínico · Controllers/AgendamentoController.cs:76No cumple
El endpoint exige autenticación y nada más: sin Roles, sin policy. Cualquier usuario autenticado —incluido el propio paciente conectado al portal— agenda un examen en cualquier historia clínica.
EvidenciaControllers/AgendamentoController.cs:76commit c7d2a10
C8Tope de 40 exámenes por turno en la sala de tomaNo concluyente
El servicio cuenta los agendamientos del turno, pero nada en el commit fija 40 como tope. El número puede estar en la parametrización de la sede, que no vive en este repositorio.
Sin evidencia en el código
C9El acceso al dato de salud queda en la traza de auditoríaNo concluyente
El agente respondió Cumple, citando Infra/Auditoria/AuditoriaService.cs:214. El archivo tiene 190 líneas en el commit c7d2a10: la línea citada no existe, y el veredicto bajó a no concluyente. En datos de salud, registrar quién leyó qué es una exigencia de la LGPD, así que el ítem vuelve a revisión humana.
Evidencia no confirmadaInfra/Auditoria/AuditoriaService.cs:214Cumple → No concluyente