const nome = _req.getString("nome"); const crm = _req.getString("crm"); const campos = _req.getString("campos").split(","); const dbMedicos = _db.query(` SELECT id, uid, nome, c_r_m FROM medico WHERE nome LIKE ? AND c_r_m LIKE ? `, `%${nome}%`, `%${crm}%` ); const lista = _val.list(); for (const dbMedico of dbMedicos) { const medico = _val.map() .set("nome", dbMedico.getString("nome")) .set("crm", dbMedico.getString("c_r_m")) .set("uid", dbMedico.getUID("uid")); const medico_id = dbMedico.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 dbMedicoCampoValores = _db.form("medico_" + campo) .where(_db.where("medico_id").equal(medico_id)) .link(campo) .get(campo + ".uid", campo + "_uid") .all(); const campo_valores = []; for (dbMedicoCampoValor of dbMedicoCampoValores) { campo_valores.push(dbMedicoCampoValor.getUID(campo + "_uid")); } medico.set(campo + "s", campo_valores); }