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 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")); const medico_id = dbRegistro.getInt("id"); if (campos.includes("especialidades")) { const especialidades = []; const dbMedicoEspecialidades = _db.form("medico_especialidade") .where(_db.where("medico_id").equal(medico_id)) .all(); for (dbMedicoEspecialidade of dbMedicoEspecialidades) { const especialidade_id = dbMedicoEspecialidade.getInt("especialidade_id"); const especialidade_uid = _db.form("especialidade") .where(_db.where("id").equal(especialidade_id)) .first() .getUID("uid"); especialidades.push(especialidade_uid); } medico.set("especialidades", especialidades); } if (campos.includes("convenios")) { const convenios = []; const dbMedicoConvenios = _db.form("medico_convenio") .where(_db.where("medico_id").equal(medico_id)) .all(); for (dbMedicoConvenio of dbMedicoConvenios) { const convenio_id = dbMedicoConvenio.getInt("convenio_id"); const convenio_uid = _db.form("convenio") .where(_db.where("id").equal(convenio_id)) .first() .getUID("uid"); convenios.push(convenio_uid); } medico.set("convenios", convenios) } lista.add(medico); } _out.json(lista);