From e0f601bb0f038ef65da4d90e283116e61e877bd8 Mon Sep 17 00:00:00 2001 From: Henrique-Sousa <29417378+Henrique-Sousa@users.noreply.github.com> Date: Sun, 22 Mar 2026 20:23:38 -0300 Subject: [PATCH] refatora: extrai funcao de adicionar especialidades e convenios ao json do medico --- dbs/clinica.mv.db | Bin 180224 -> 212992 bytes dbs/clinica.trace.db | 8 +++++ server/services/medicos/get.js | 58 +++++++++++++-------------------- 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/dbs/clinica.mv.db b/dbs/clinica.mv.db index 65352790f71bac0f96771a965fd8b18a99044e88..05d9c3412ec699b3c2d04b5b39bd4f7f3491ed8d 100644 GIT binary patch delta 9565 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 delta 8351 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 Y$XO$nf?Pu`q_6(s?cx`2W1;?k0QGoK>Hq)$ diff --git a/dbs/clinica.trace.db b/dbs/clinica.trace.db index 8bb7cde..3370e09 100644 --- a/dbs/clinica.trace.db +++ b/dbs/clinica.trace.db @@ -920,3 +920,11 @@ FROM especialidade WHERE 1 = 1 AND especialidade.uid = 'Cardiologia' LIMIT 1 [22018-240] +2026-03-22 20:15:20.738433-03:00 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "medico_convenios" not found; SQL statement: +SELECT + medico_convenios.* +FROM medico_convenios +WHERE 1 = 1 + AND medico_convenios.medico_id = 1 +LIMIT 1000 [42102-240] diff --git a/server/services/medicos/get.js b/server/services/medicos/get.js index 6fb4080..63cf4a4 100644 --- a/server/services/medicos/get.js +++ b/server/services/medicos/get.js @@ -11,7 +11,6 @@ const dbRegistros = _db.query(` `%${crm}%` ); - const lista = _val.list(); for (const dbRegistro of dbRegistros) { @@ -22,48 +21,35 @@ for (const dbRegistro of dbRegistros) { 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); + addCampos(medico, medico_id, "especialidade"); } if (campos.includes("convenios")) { - const convenios = []; + addCampos(medico, medico_id, "convenio"); + } + + lista.add(medico); +} + +_out.json(lista); - 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"); +function addCampos(medico, medico_id, campo) { + const campo_valores = []; - const convenio_uid = _db.form("convenio") - .where(_db.where("id").equal(convenio_id)) - .first() - .getUID("uid"); + 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"); - convenios.push(convenio_uid); - } + const campo_uid = _db.form(campo) + .where(_db.where("id").equal(campo_id)) + .first() + .getUID("uid"); - medico.set("convenios", convenios) + campo_valores.push(campo_uid); } - lista.add(medico); + medico.set(campo + "s", campo_valores); } - -_out.json(lista);