Olá Lucas, tudo bem?
Também sou novato em JS, mas vou tentar te ajudar onde fiquei perdido. Basicamente o que ele fez foi separar o código em uma nova função.
Ele criou uma função chamada percorreArray e indicou 2 parâmetros de entrada para ela que ele chamou de (trsPacientes e comportamento).
Ou traduzindo:
function percorreArray(array, funcao){
}
Na sequência, ele inseriu código nesta função percorrendo cada linha do array e rodando a função
function percorreArray(array, funcao){
//Esta parte percorrerá cada linha do array
for(var indice = 0; indice <array.length; indice++){
funcao()
}
}
Pense que se nada for passado a esta função, ela executará a mesma coisa para todo mundo, pois ela não está recebendo nada. Então, ele começa a passar cada paciente como parâmetro da funçao
function percorreArray(array, funcao){
//Esta parte percorrerá cada linha do array
for(var indice = 0; indice <array.length; indice++){
//Então separa a linha que está sendo processada
linhaDoArray = array[indice];
//Passa essa linha como parâmetro da função.
funcao(linhaDoArray)
}
}
A função que ele gerou (imprimeNome), ela recebe uma linha do array e faz o processamento.
Então dentro daquele loop acima, ele simplesmente chama para cada paciente essa função, passando as informações do paciente.
Se o array dele tiver 2 pacientes, ele chamará a função 2 vezes, passando em cada uma delas um paciente distinto.