Boa Noite!
Terminei o curso, gostei muito. Pude perceber que vc pode adicionar quantas vezes quiser os pacientes do ajax, como poderia impedir que isso acontecesse?
var botaoBuscar = document.querySelector("#buscar-pacientes");
botaoBuscar.addEventListener("click", function(){
    console.log("buscando pacientes...");
    var xhr = new XMLHttpRequest(); //O XMLHttpRequest diz que queremos abrir uma requisição http;
    xhr.open("GET", "https://api-pacientes.herokuapp.com/pacientes"); //abre a conexão com o servidor que deseja importar os arquivos;
    xhr.send(); // O open abre a conexão, porém, não a envia, por isso é necessário usar a função send();
    xhr.addEventListener("load", function(){ //É adicionado um escutador de eventos para receber o "load", que é a resposta do servidor.
        var errosAjax = document.querySelector("#erros-ajax");
        if(xhr.status == 200){
            errosAjax.classList.add("invisivel");
            var resposta = xhr.responseText;
            var pacientes = JSON.parse(resposta);
            pacientes.forEach(function(paciente){
                adicionaPacienteNaTabela(paciente);
            });
        }else{
            errosAjax.classList.remove("invisivel");
        }
    });
});
function pacientesAdiconados(){
    var pacientes = document.querySelectorAll(".pacientes");
    var pacientesBuscados = [];
    pacientes.forEach(function(paciente){
        pacientesBuscados.push(paciente);
    })
    return pacientesBuscados;
}
console.log(pacientesAdiconados());eu pensei em criar essa função pacientesAdicionados(), que conteria todos os pacientes que possuem a classe .paciente, já que em todos os pacientes que são incrementados a tabela esta classe é adicionada, após isso comparar se o xhr.responseText é diferente do pacientesAdicionados, para aí sim adicionar os itens do ajax na tabela.
Porém dando um console.log o array já volta vazio, o que fiz de errado? Deveria usar outra Lógica?