diff --git a/dbs/clinica.mv.db b/dbs/clinica.mv.db index 14673cc..e274dfa 100644 Binary files a/dbs/clinica.mv.db and b/dbs/clinica.mv.db differ diff --git a/dbs/clinica.trace.db b/dbs/clinica.trace.db index e4f83cb..0b56855 100644 --- a/dbs/clinica.trace.db +++ b/dbs/clinica.trace.db @@ -1206,3 +1206,9 @@ LIMIT 1 [42122-240] at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194) at java.base/java.lang.Thread.run(Thread.java:1474) +2026-03-24 18:22:04.945282-03:00 jdbc[100]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "[*]iselect * from paciente_convenio;"; expected "INSERT"; SQL statement: +iselect * from paciente_convenio; [42001-240] +2026-03-24 18:22:15.588159-03:00 jdbc[100]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "convenio_paciente" not found; SQL statement: +select * from convenio_paciente; [42102-240] diff --git a/server/services/pacientes/get.js b/server/services/pacientes/get.js index 217f319..b109cc8 100644 --- a/server/services/pacientes/get.js +++ b/server/services/pacientes/get.js @@ -1,9 +1,10 @@ const nome = _req.getString("nome") ?? ""; const rg = _req.getString("rg") ?? ""; const cpf = _req.getString("cpf") ?? ""; +const campos = _req.getString("campos").split(",") ?? ""; const dbRegistros = _db.query(` - SELECT uid, nome, r_g, c_p_f, data_de_nascimento, endereco, telefone + SELECT uid, nome, r_g, c_p_f, data_de_nascimento, endereco, telefone, id FROM paciente WHERE nome LIKE ? AND r_g LIKE ? AND c_p_f LIKE ? `, @@ -15,16 +16,39 @@ const dbRegistros = _db.query(` const lista = _val.list(); for (const dbRegistro of dbRegistros) { - lista.add( - _val.map() + const paciente = _val.map() .set("uid", dbRegistro.getUID("uid")) .set("nome", dbRegistro.getString("nome")) .set("RG", dbRegistro.getString("r_g")) .set("CPF", dbRegistro.getString("c_p_f")) .set("data de nascimento", dbRegistro.getSQLDate("data_de_nascimento")) .set("endereço", dbRegistro.getString("endereco")) - .set("telefone", dbRegistro.getString("telefone")) - ); + .set("telefone", dbRegistro.getString("telefone")); + + const paciente_id = dbRegistro.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);