const nome = _req.getString("nome") ?? "";
|
|
const crm = _req.getString("crm") ?? "";
|
|
const campos = _req.getString("campos").split(",");
|
|
|
|
const dbRegistros = _db.query(`
|
|
SELECT nome, c_r_m, id, uid
|
|
FROM medico
|
|
WHERE nome LIKE ? AND c_r_m LIKE ?
|
|
`,
|
|
`%${nome}%`,
|
|
`%${crm}%`
|
|
);
|
|
|
|
const lista = _val.list();
|
|
|
|
for (const dbRegistro of dbRegistros) {
|
|
const medico = _val.map()
|
|
.set("nome", dbRegistro.getString("nome"))
|
|
.set("crm", dbRegistro.getString("c_r_m"))
|
|
.set("uid", dbRegistro.getUID("uid"));
|
|
|
|
const medico_id = dbRegistro.getInt("id");
|
|
|
|
if (campos.includes("especialidades")) {
|
|
addCampos(medico, medico_id, "especialidade");
|
|
}
|
|
|
|
if (campos.includes("convenios")) {
|
|
addCampos(medico, medico_id, "convenio");
|
|
}
|
|
|
|
lista.add(medico);
|
|
}
|
|
|
|
_out.json(lista);
|
|
|
|
function addCampos(medico, medico_id, campo) {
|
|
const campo_valores = [];
|
|
|
|
const dbMedicoCampoValores = _db.form("medico_" + campo)
|
|
.where(_db.where("medico_id").equal(medico_id))
|
|
.all();
|
|
|
|
for (dbMedicoCampoValor of dbMedicoCampoValores) {
|
|
const campo_id = dbMedicoCampoValor.getInt(campo + "_id");
|
|
|
|
const campo_uid = _db.form(campo)
|
|
.where(_db.where("id").equal(campo_id))
|
|
.first()
|
|
.getUID("uid");
|
|
|
|
campo_valores.push(campo_uid);
|
|
}
|
|
|
|
medico.set(campo + "s", campo_valores);
|
|
}
|