You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

55 lines
1.6 KiB

const nome = _req.getString("nome") ?? "";
const rg = _req.getString("rg") ?? "";
const cpf = _req.getString("cpf") ?? "";
const campos = _req.getString("campos").split(",") ?? "";
const dbPacientes = _db.query(`
SELECT id, uid, nome, r_g, c_p_f, data_de_nascimento, endereco, telefone
FROM paciente
WHERE nome LIKE ? AND r_g LIKE ? AND c_p_f LIKE ?
`,
`%${nome}%`,
`%${rg}%`,
`%${cpf}%`
);
const lista = _val.list();
for (const dbPaciente of dbPacientes) {
const paciente = _val.map()
.set("uid", dbPaciente.getUID("uid"))
.set("nome", dbPaciente.getString("nome"))
.set("RG", dbPaciente.getString("r_g"))
.set("CPF", dbPaciente.getString("c_p_f"))
.set("data de nascimento", dbPaciente.getSQLDate("data_de_nascimento"))
.set("endereço", dbPaciente.getString("endereco"))
.set("telefone", dbPaciente.getString("telefone"));
const paciente_id = dbPaciente.getInt("id");
if (campos.includes("convenios")) {
const convenios = [];
const dbPacienteConvenios = _db.form("paciente_convenio")
.where(_db.where("paciente_id").equal(paciente_id))
.all();
for (dbPacienteConvenio of dbPacienteConvenios) {
const convenio_id = dbPacienteConvenio.getInt("convenio_id");
const convenio_uid = _db.form("convenio")
.where(_db.where("id").equal(convenio_id))
.first()
.getUID("uid");
convenios.push(convenio_uid);
}
paciente.set("convenios", convenios);
}
lista.add(paciente);
}
_out.json(lista);