From da74e9d1524f18fa95c2eafea1d2df82aff9da62 Mon Sep 17 00:00:00 2001 From: Henrique-Sousa <29417378+Henrique-Sousa@users.noreply.github.com> Date: Tue, 24 Mar 2026 13:00:11 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20cadastrar=20paciente=20com=20os=20conv?= =?UTF-8?q?=C3=AAnios=20que=20ele=20tem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dbs/clinica.mv.db | Bin 331776 -> 331776 bytes server/services/pacientes/post.in.json | 19 ++++++++++++++-- server/services/pacientes/post.js | 30 +++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/dbs/clinica.mv.db b/dbs/clinica.mv.db index f593b664e21792eb1f098687b4d34b225149388c..5fdf874a20f93e9840572a5d30d46f68b7f42213 100644 GIT binary patch delta 1855 zcmZ`)ZEO=|9Dkm>>&v>ft8F*-R(I_-%vfLUuGd~$Fl;!-0IM*D2ElFJ^^T2pYsbdR zB)Fmx=NE%?B?*bZqR!p7abv3(Iv2r&3dI>K=Q_pVfG zFe1cw2Co1kF@k%rr&o&jRz)fZu_h3qla4gSdV|26L z005YPKLg~rO+Jpk>Vz+7UTy%O4Z&MPjfQ%aS_zMuh$HYBbdaRV(ODD05Pm*)%S60O zT1Y`>B(j7KKtiK6nTvAiD7lhA#R<59_Sp}GuJjgMTO;T0{_vpW;!mH`bm5;Ltp08E zWXbt2jWl{YN~RLwR+jU7_(0Gjgu)(%!_}1Q?~|k0Q$uTM6K$r8Xy_!IIDjLw)Y$(- zu4#_`XXJVPFWUDA0#}G$3K6x#F8i`A-G4>f8oxer18Q2t)o-a~J-}s+Uo55@8+=MG zi@r@afn@|vuB5i;oAf7_aK7Nw5?*6Ct)y`hK6Ssn@O_o%^;`8(;|d)FXet3CTmvA+ z#?5Av$!Id$iySM2r#7|&psO@am{!<9dq-!iON>kMj_#hFiDYkID&3!RB;hBTC#kf( z>gI*n8^5l-^J>z0?bMm}s9OFVTz=-X!|C#wzJdE)Vn@0|c12uE{#*pt5hq|6-G7Io zYx?a?x~l8m@%2YX<&1vv<2@6q(cjo;`kc#I=Q1rv?0UkEdXr>PAmBQHZ>!F7!CX&3 z0QP2p|9BGs_^43w6_tP1Qd;lrpv#o|jah6(_4V1whfYn3PSgF_>koro%PNa|UVM8_ z{ANpD%EzZ2!He~aZBg+6R zgK0E-o~qLBuyxu!Uer8ERgF!;RSo@h$`j(PBgI~F&hh(ZwT##2oLdg5&i6(fr4`PS zYNoc+i#1PMYfHQi^z9_YR`$EdYHf94wY6Gt+i8t1^EyGNH{}(5X_SU=TODXFMx|gb zg{EpeZ>haGn@3&LqTQ@!$TtW#84ASi-F*o!D}_)a4X4njdgv?V z`F#JgfiTColRbN+D4qtA(3NGTn_vhXbi(CDVUG0+vc$+SQI4_k+<^i}61hM2!tD^A zLv2IQT_USfB*rY5u$+w2Mp%Z<55anDb#n+-uZlB_Abtq*mEidia(5+DVj{u@mky;s zzLbsXgi@_}Kl1E@6$Bebb)C?e?V7eOUp$IJ>Ih=|es@X~cc){0;!s46%QA~PTcJc& zY%51qhv78JY=%z^tHX^I_%Lsrn{*t{@yr4ViHnG=M1&BYhpZ$C%t9m(5QC32!LCIH z!MsMz!wLRH5kcTh3l2gTk3KTP&7`BIV#@pD6l|W?$h|$aVHkwNB>*(d05~{`4;|jMrU4_K8Z9#zGk|yw^A?O- zzQ8yGhy>>A03cEdHUMHkK^)(!Adc_HXuy1Ut%_s#FdA?NZGTNgrH2avpoU2mUsU?C z5VzV1yg@;w#ft|^plcCpky4djiXw>Ct33&xi>=PiV(hTPZ~pV%fA;ZSWBy5^i)<>zplg)uo6ac8%g^^B&Hm|RdbULW&?qRUcV<_*0Sac_O3 z&$&-uz?*eLHT`_qQ8b(q2*oIg|AlGp5qV{=a74A`u?r^lXyoUjT+mbis6GI4LjfPT;x(sgX{PCznu->BN6=)7MSpt3i9(4uBw3iW$DJw5(1jcJj3sH3=`OC( z*<|Y_oLP2eYL+AkwMr2~GE`)z1}?YZD&kZa%rYEE_N00e>F)HA^wG3moI#zXAfy1O z^Z{_Xix4h%64JYmvhi%#ESN=2S8V^_D2j-?6Zsu}4Ph4j6z`zARP`cn;Rua>^`Af+ z>hb0q?G^kdyv_G;7{chFms^LsOo-ot^9;;-;s(r7&BjTV@h#rH&+rr5Obx!I=y>vs zTmB9^>&Y#SjRuv4#_AYeP?696(QeBW_*l*A7V2aN3x zeDsd50bsv9B=JL|bA*SJK?f42E=G}PA7eSUYcb@l{GcCjw~bW_Z-_VT8LP~Pp}$(L BxYhsw diff --git a/server/services/pacientes/post.in.json b/server/services/pacientes/post.in.json index 5709e89..f98f4c8 100644 --- a/server/services/pacientes/post.in.json +++ b/server/services/pacientes/post.in.json @@ -23,9 +23,24 @@ }, "telefone": { "type": "string" + }, + "convenios": { + "type": "array", + "items": { + "type": "string" + } } }, "required": [ - "nome", "cpf", "rg", "data_de_nascimento", "endereco", "telefone" - ] + "nome", "cpf", "rg", "data_de_nascimento", "endereco", "telefone", "convenios" + ], + "example": { + "nome": "José da Silva", + "cpf": "123-456-789-01", + "rg": "12.345.678", + "data_de_nascimento": "1970-03-20", + "endereco": "Rua das Flores, 123, Bairro Central, São Paulo, SP, 01000-000", + "telefone": "(31) 91234-5678", + "convenios": ["7ded552a-07cf-4f7b-bee4-6947944ec324"] + } } diff --git a/server/services/pacientes/post.js b/server/services/pacientes/post.js index 2230c9d..8e8c5c1 100644 --- a/server/services/pacientes/post.js +++ b/server/services/pacientes/post.js @@ -4,6 +4,7 @@ const cpf = _req.getString("cpf") const data_de_nascimento = _req.getString("data_de_nascimento") const endereco = _req.getString("endereco") const telefone = _req.getString("telefone") +const convenios = _req.getList("convenios"); const dbPaciente = _db.form('paciente') .where(_db.where('c_p_f').equal(cpf).or('r_g').equal(rg)) @@ -15,6 +16,18 @@ if (dbPaciente) { _exec.stop(); } +for (const convenio_uid of convenios) { + const dbConvenio = _db.form('convenio') + .where(_db.where('uid').equal(convenio_uid)) + .first(); + + if (!dbConvenio) { + _header.status(404); + _out.json({result: false, error: true, reason: 'convenio-não-encontrado'}); + _exec.stop(); + } +} + const insertedData = _db.insertIfNotExists( 'paciente', _val.map() @@ -26,4 +39,21 @@ const insertedData = _db.insertIfNotExists( .set("telefone", telefone) ); +const paciente_id = _db.form('paciente') + .where(_db.where('c_p_f').equal(cpf)) + .first() + .get('id'); + +for (const convenio_uid of convenios) { + const convenio_id = _db.form('convenio') + .where(_db.where('uid').equal(convenio_uid)) + .first() + .get('id'); + + _db.insertIfNotExists( + 'paciente_convenio', + { paciente_id, convenio_id } + ); +} + _out.json({insertedData})