Fala Renato! Tudo bem?
Meu amigo, faz toda diferença. Fui dar uma olhada no vídeo (faz alguns meses que fiz essa aula). Mas vamos tentar pensa juntos aqui na lógica do código. Principalmente, nessa pequena parte aqui:
var pacientes = document.querySelectorAll(".paciente");
for (var i = 0; i < pacientes.length; i++) {
var paciente = pacientes[i];
var tdNome = paciente.querySelector(".info-nome");
var nome = tdNome.textContent;
var expressao = new RegExp(this.value, "i");
Vamos lá, primeiro, note que o código está dentro de um 'for', que é um laço de repetição. Portanto, as variáveis mudam a cada repetição.
Agora, pense nas variáveis criadas e nos tipos dela.
var paciente => essa variável está te retornando um objeto que está dentro de uma lista. O paciente da posição [i].
var tdNome => está selecionando a tag, cujo a classe seja '.info-nome' do paciente. Paciente este da posição [i]. Essa variável armazena a tag inteira (
<td class="info-nome">Fulano</td>.
A var nome é criada para extrair apenas o conteúdo de texto de dentro dessa tag. E essa é a diferença. Você quer o nome do paciente para comparar com o campo de busca. Por isso precisa dele.
Espero que tenha ficado claro. Conta comigo e bons estudos!