A busca na tabela consulta esta errada. De acordo com o card a validação é para médicos que não tenham consulta "naquela data/hora" e não "naquela data". O professor adicionou a especialidade (aumentou a dificuldade mesmo não sendo solicitado no card) e a parte de data/hora simplificou para apenas data. Especialidade não deve ser importante, depende do negócio solicitar. Todos médicos sabem o básico pois todos podem atender Clínica Geral. E se for esse o caso? Se a resposta for sim, o programador inferiu errado. Mas voltando, está faltando validar a hora.