From 1010ef7150dbfd661ec5d084fafcc513d9baafe6 Mon Sep 17 00:00:00 2001 From: Henrique-Sousa <29417378+Henrique-Sousa@users.noreply.github.com> Date: Sun, 22 Mar 2026 20:07:28 -0300 Subject: [PATCH] retorna especialidades e/ou campos dos medicos se o usuario quiser --- dbs/clinica.mv.db | Bin 180224 -> 180224 bytes server/services/medicos/get.js | 56 ++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 5 deletions(-) diff --git a/dbs/clinica.mv.db b/dbs/clinica.mv.db index 4f85ca03d7b0b90fcc120fe81ac5463e8f21c346..65352790f71bac0f96771a965fd8b18a99044e88 100644 GIT binary patch delta 768 zcmaKqUr19?9LLY^?mBC3wzdfiiLGcV?UMKIZgV@!H2;Jpn)r}U3(vi~%hlYSbCc=Q z3L>e8nD^m?AVl*_5miDj!Bl(MhQsR+rmmRBdV9FB+yB1YA~+W5*b`0tMOar^RiToKY* zhMk!uH?(OS7A8p%OCch%MHUAnMab!T9*2o4vXBz0*dgRolNy$TvKCcBqA;W7rc-(b zOGFVeS}~8MsF2rHECnL6LA--}3_1~AEOI{o&36c4x6Nj?IvSf>WrWQ0^&22MkQ@w! zJ0ejWJKuSstNUV4Z{Iph&DYWUEpWAs?{#f{C2^bO@}JueXP%Eyt~{8~lBAH%H~d=e zT73QL)bc{ic7~Q`xh6W%%-PPyZ2r@HpX-x%yI33@hP&yvg-xI5&f&JDYTIWYO|^hm z@FIjRnU^?Z0)*Hr;pd~8npQ@bmXP_0y;k$h3l{ofjXPOy{*AUw$YOL|_s}6bNYpvr)IPvR?saMM2;R1q*D%X0-^0q;DsdJxdyBK ztDsI4GR$K__T3KtW0cfUJ8q=rnk3gQ2?UuP`gc4C#clTQqBR6R&vNIvgeT& z4GX%e7P2Ix&f==YA=MC{CQOa*`Sou-Z=jBAa(=8c#JLTQsK(BmyD}LEKb*5NV*Y-F zs*2q#Ap~FQ_p}O+MGYQP2CZT~4p;aJ``UvezWs?iJU9pAtB`O&js%m&TKlk(_44<2 LJy6;8aPasqf*I!A delta 1270 zcmaJ>U1%It6uxI>cXlSTKl#}vu{O!h?xfjvH=CK+-Pzft$d)FXv`Le?`9Y9iCX?AD zHp#AOj4=pVEvO)fbssLq7X=0JuafIf(&4YDb zzVq>&@7#0mxpRv}zF6d)Ln$RZyOcN1r{vfrXFKSZx`TN88Q@vfP-RIo;#X!q@xUXr z@=W7Le+kL(lDR_a6!dxXLQ0N@m-UU5A}bOJ3M81t|FnT{WZhi7u$W&-$$B!pVs5OZ z{0T3yX7DcgJJSz5xLGhTF701O%aY}6LZmL?)F}{_J zP^9;2&-bi06#8pxFPC?ZwEJ5FQZ;jiU*{rz{L?T9_={EW!bIuXEwO2u|D)l1;1E!> z&CWPjt}-$Lr(upbI$byUABe>G96r{^`9PoqTCfTB>ZuU5*ZJfBs2qsOG`r_9C@PSqkx zED@9IM2%|?i54{;5n*;>^ zzFx!Hv`JK(GC_vw&*HZ{uvhu~CAdT3Vi&OD{-bm7Rmm-xYsP}Pn#v_q$y8${y)axV Q_}JGTbV21o7X|PA3w?|e4gdfE diff --git a/server/services/medicos/get.js b/server/services/medicos/get.js index 4b8eced..6fb4080 100644 --- a/server/services/medicos/get.js +++ b/server/services/medicos/get.js @@ -1,8 +1,9 @@ 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 + SELECT nome, c_r_m, id FROM medico WHERE nome LIKE ? AND c_r_m LIKE ? `, @@ -10,14 +11,59 @@ const dbRegistros = _db.query(` `%${crm}%` ); + const lista = _val.list(); for (const dbRegistro of dbRegistros) { - lista.add( - _val.map() + const medico = _val.map() .set("nome", dbRegistro.getString("nome")) - .set("CRM", dbRegistro.getString("c_r_m")) - ); + .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);