Não é uma dúvida, mas uma sugestão. Seria interessante mencionar o loop forEach, como no trecho abaixo:
var pacientes = document.querySelectorAll(".paciente");
pacientes.forEach(function(paciente) {
var tdPeso = paciente.querySelector(".info-peso");
var tdAltura = paciente.querySelector(".info-altura");
var peso = tdPeso.textContent;
var altura = tdAltura.textContent;
var alturaEhValida = true;
var pesoEhValido = true;
if (peso <= 0 || peso > 1000) {
console.log("Peso inválido!");
tdPeso.textContent = "Peso inválido!";
pesoEhValido = false;
}
if (altura <= 0 || altura >= 3) {
console.log("Altura inválida!");
tdAltura.textContent = "Altura inválida!";
alturaEhValida = false;
}
var tdImc = paciente.querySelector(".info-imc");
if (alturaEhValida && pesoEhValido) {
var imc = peso / (altura * altura);
tdImc.textContent = imc.toFixed(2);
} else {
tdImc.textContent = "Altura e/ou peso inválidos!"
}
});
Abraços!