Pensando um pouco mais no retorno e num futuro associar uma estrutura no response da chamada da API DetalharMedico, pensei em uma abordagem um pouco diferente na controller. Em vez de utilizar o getReferenceById, substituir por findById. Por que usar? Uma vez que a associamos o getRerence, ele não vai no DTO consultar. Lendo a documentação do spring, ele apenas rejeita a requisição e devolve um Exception.
"Returns a reference to the entity with the given identifier. Depending on how the JPA persistence provider is implemented this is very likely to always return an instance and throw an EntityNotFoundException on first access. Some of them will reject invalid identifiers immediately."
Como falei acima, o metodo abaixo, junto com uma classe DTO e uma nova função para mapear o erro, alinhada para retorno e estruturada para mostrar o body no response, achei interessante utilizar o findById que vai na tabela e busca o dado, caso nao encontre, posso tratar com erro e uma mensagem, por exemplo, "Medico nao encontrado"
public ResponseEntity detalhar(@PathVariable Long id) {
return repository.findById(id)
.map(medico -> ResponseEntity.ok(new DadosDetalhamentoMedico(medico)))
.orElse(ResponseEntity.notFound().build());
}