From 77a6468a06f6188aa3b13a9fa1faf437cc8d75ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=AA=20Th=C3=A0nh=20=C4=90=E1=BA=A1t?= <91755733+lds217@users.noreply.github.com> Date: Tue, 8 Jul 2025 01:38:27 +0700 Subject: [PATCH] [update] Revise medical invoice format to enhance clarity and detail, including updated patient information and service costs. Integrate keyboard shortcuts for improved user interaction in CheckUpPage, and implement font family and size selection features in TemplateDialog for better customization options. --- medical_invoice.pdf | Bin 96392 -> 96153 bytes .../java/BsK/client/ui/assets/icon/loupe.png | Bin 0 -> 25107 bytes .../ui/component/CheckUpPage/CheckUpPage.java | 314 +++++++++++++++--- .../PrintDialog/UltrasoundResult.java | 70 ++-- .../print_forms/medserinvoice.jrxml | 305 +++++++---------- .../PrintDialog/print_forms/test_print.java | 5 + .../print_forms/ultrasoundresult.jrxml | 64 ++-- .../TemplateDialog/TemplateDialog.java | 45 ++- src/main/resources/database/BSK.db | Bin 1179648 -> 1179648 bytes 9 files changed, 498 insertions(+), 305 deletions(-) create mode 100644 src/main/java/BsK/client/ui/assets/icon/loupe.png diff --git a/medical_invoice.pdf b/medical_invoice.pdf index 198f989ff373b5722f5251bb956d217064fbc623..acaf2f414f19009b6bb1c8ae4ac7470d95bc0ec0 100644 GIT binary patch delta 2500 zcmaizS5y;-5{3y8VZi_qkfrzDQb~eH6Ho&|5eS#6lthRtK{kYLC=!~0NC^f)QB)vO zMXHnlE4nB|5vhU{MNnzd>$>;8?LORjn)ClNbIyEoCUJ%D?h;>g9l-7i4T^!7nEXx& zB6wXB49#!N!=;Z|AEz(vNCdm0qdVu%QwLBH`Rj@bX_*=PfN5EAoGxi-dh4`wkJ*iH znoXc;22aGu03KE5)qA3asU#N)8K@hMbUBZjtW^GEC^O+n(ko7_ERm6EK+IfH=WU}L z_Qp(^ZjNaKo~+N#7Ru7laU&@&TlNNfMW?stu7;Ugi>A3dsQ7QMyj?eYdMpF5rbKqi)-n`9asuQT48-!h0A@SuM9&_%@ zUG22I`Ft5G?P1C3(w2t5H< z-I=dw)O)NC_}s#4l1Um5rsNhk2){=!DNII@AW<>+|+?Er$D22 zZq$UwKkTOKyJ+6rPMr8UJR_v?YSN=qcEY2rt9*aYB+#~NZ^>bg6)MQ0%kPBQG(3r; z$zZa-OM*T#-|V;Y3{>!>gxrpaHNJh;me=xg_;uEbaCukaOVPXM%-_p_i#Zgwxjj6F zK99rsXG>fsDfgzt%-Y)6J;?ZaE17$_c~J31nc3-ejYrvgYqO4KeNBqE%9Gj_ar5{% zMdy=OE2hSJUdWNHiOQp18FBjKtHZ%;8kwG5=EikjFs>tU-!=o@#V2k>?T9|iw#54y zCAiOwXM`{p;uQM}K&_XQsv+XM6#0R3?JFV1mwbz!aB|P-8jqHcQq|AuSkb;j+Ha>}wT^ zett@5;+S|+ql&m+1vB)%l^DvZ=#yc%Xw@$7ToNJUI>BCcyOEG_ZC)o2Yie=x{p#AL zt7;ShsMnrh*FGgz2N@wQn+^0(1QZ#`2D=Quha@ zPcmGDu|oIIVQw6D&?#*2bf0h)d44Fc!5pvAIN%X{FAG;;=eXZ^4}6cDtDq@|&EU!` zl!;t>Y?D3n?o24nPi(rr?0?`JacTjl^~TaeKcM!DQ%f?^-B?G~oM8I`U|04Hvn=eT zc-L};{fFe$(=uPn#X1SrKbwz5_odVU63vUBGWjj7MtMG_Rpd;fjd^;KI)m}hkVidH_kGOs{J z6zF~4;CzZV7~CUSQ~mB>;8OB-{Gsz=PaHl9DEEG~NY zR40K+xjFe*l_4pKVh#`#n=goPqy;Ui3%rLwgSG{bw$Xhq%BhtnbuHrfrH?d^5>vkQ z(Sjm8*7o;1X}ueP9gC&Y(nw6Ur5&Gi zxoOjLg3oO78~6GIAT>c^sPxUCw0JXZ)WwbQJ)+_sfEmCz#cFqdTz_?wP!deim&*Ke zpp^=(y5S*ba}~v&qK@@~K6E^#vIoB5`FWWe4^PGelRT+;wCR$1h6I&v>G#Dfu9FA^ zjmeBn1gH#mpQVoV2)5i;Mo@~(Z#%@$7tRNe8^A%<>Anq7kE?%DIQ^3Xt$EZN*m8UmYDc#>f}a?{USAw zVo*SM27keq@A1KwW3b+#bL^w-@KogTYZ3_3nc{$r_N=eUJBKo}Y_BtiffNhA{S zPZJ44!x)4RfZ7!}1ocl7fq+B*sUhJ=^uII&6#j1w@vnJEBofA02?3~Ec)_4Pz67Wb u1OfL(5TL%kP$HCw_C*?c!@M9UA8!-m|5w3q2?eML{@h(qP0i}OwcuYrOp43^ delta 2765 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

kB-TyGQ}p*eEWGDAQ0hZx)Ba$K3)KrZ zAZFlf=h#)HM`mf=SAKpw#+|U2j2HA@x(6T}WV|`lqo2-@jolw*VXOfoIlC@*=j8*} z_c^_h;img-P><*<%qh1p!I8%yXSbwfG_KyZP#}d#l8ztz7>yEtBEEc7Iw=R{cyEZ6 zqJ}CdvbpKXLAW1sQvgO5*@d~q`$fW~W9WYD#e90ej$)b4)}(ykGaTR2rB*kfCCBt* z-{bs8xFd$w!MxtZxQG#nW-xWo()D%qORx># zWRr#yo;BLci`-YPB7i9k0z2utakOUD``7}8*Sdg|n2qk=Ka|LGqmprK_fBCBZQJar z#%-&oJabcq&edlOfm+5ls@ay=;i(2tB9&6{jD2&=wt6}5V^zK}df;0b@qt^d ze1}1Uxh?pfBO_uJ*+VexS*(rRG#}N9e4;zcDovIhbUN3Fx6}T18k{AmA@?vPPta&J zr4z~#Os_I?^%HZN)K~iE3Sj=>4qum84<`-%&V=OBnP+8hEB^9>8O1&A2bEraaC z7X&pz87@SxlyY|((nQ#0Xi;fuyK_7`=#65J-QowzM%(8E`GTAaUlxJ=ZB1ibfwvk4GE7~d{kadnnc93>xUGp=H_=%`UXp?d=pY| zp+8Xe!lsB!=IDbeCgyj8tf34cidYQX?e)49rfI*bORn5J71Qc=~ z7p}q1@;ml*b7ErcM<@caDz0?PFr=bnSB+KI+>0Qm1BB0`pMb_qrTK7RJMt z))@xAu&2OsZc&C0KIAxWm-z*2%DS%3Z?m%TL^N4WS`g($*xfxHo4X%Ks=zG;lMje- zZ*)dzd{shy6j!?3Vo?R~Bn@f>ew>@{5chtkv*y{(mx}(Njr0P>gr~JN3XBymQ+f7R ziCHf=t*;LBzsc-k^bIa=of6#pR4A)Vj`ya}L|hgPKeZbYCS0NoyNk3*-$%@w5E@Q_*(mJbkP&adHf3Xzza zP9H70T5HIW@3TS@zPxX;y@w5zkh`yNHVUX0+(z-#hyaMf5mf+)zk$>?!RXY zbjF1}UgANW()Mc@S_zw zAOLDqj;bhW?f#i48uRt>4wFGK?mg0AyR^Q;Y z)*ivVci(BV$j z9#mm#CQAyI0fZ_=qv<&R`E;sxJmz%eFycpcSf20UFq zE79!@9&5Zm`mo~pi|)&KyYe|lHr=IjHQL~)`%&06g9+~Yg$Z7Z5mt8)W@4jMTjHja z)kV0O$GoNpb)A;&p^07m58FWQsKuOVc1-S8*4d_S_Sq8oKx5Kmf1K=btXT<;1G1W; zaFAY`ad`dN@$bFzW1q&ZyLb5LHtUk^akU0M#d2GHTN4FrZ#MlPzx?k1xB%$Cmk!0l zHl`?pxJb|7f|pW~3o49o3wA$@5Z^-K$|-y0Ar{f{ok3e%Y-*bZ)C`KfRbc#dAyBNX zE@|L!`3gyKSV_dmow}F)Yio44l^T1+C|87oE#U?sJ~}&$1H6q)vof*#raXFYa-^uM zv)1P(iS4%2W9PkY097x>Npp2ETt@|%0SEY{oi}s5kKxL=xtqs!+^J}19h@@bILlFR zf#?z>LK;T;GpZS3ruJe@lgr*ZiQ=!E!a>)jAHuo$wAGF*)@IF#>hv=g0g1 zso-64C(pFjn7OnN?YAe^H+^fL)@T8*uk>f%{s})^-k59H7wH=CT)M*6Jc8D|T zMDC6UJ@dCl-RB$8ip?rw2Uu<~oIWhdgP7Gwm0pGUrqHrq_qd`M%3~pv^k0-A3>FG- z{N1IkR-tG#MrPQz9&_&6A6ciK!Aggcme=DyMjh+oPo$zpko(kgnFW7NK7rR6GR!pZ z$gLzY|uB+#9NCTi3_sBbM^mi z1iLfw77j`PupJ7*ow^ z2x(vDB{CxN`jhYV z!L`)>fuMXgc8%(+^JCT_X7Iy`o!Ybb?nn46#sZyJhBTJ>?kAGoB~SE+6JOp7{wYJ< z|MM3+M%rHESc7iLgNM!7PEC}=a+J=-SWxs~1S1Tjzv9Rw(XA4KeOC z?LLhBoYbE{MQNFQMJ9M;i*200hHTsxiT1j3A7MtBSD&D#9P+Uir*6-qD1YA$)cG$F zI~`qfw<+7_nAr%0U^vfg3|kDRI+L1=tk+-Pp_S5@6bt^=`AGkV{gPVeqiFfDSjM4W z*uKm4q3LUQV^k`F6u$1H10_#ck zd)Gji`x$??)58d;lux25U8{;UG2K@y85gW)K!!i_JL_MViU?@IN;>n(Ys{5cboHxt z7E9>amlmb%Wb#i~dzk~O3Nce}amBN&7i-LT$$^l<2H~irbiYJD??vGv04Ef&Z zge+E^JMp~-<+n!(%Fms04UjVcp0=&!@=hFBv`k#tQWEvEYQKClYACepmFNEM(`sz_ z6L8X1zMfv|`XP(#F5*z9V+gH)G=*jU2tS#my^W3?0t}~AI~K#Ed3DI`fJ3#ofb|M^0YX%NCNUVU2&nm`Zwa z#G`Q%tWOl|%MN?926Txku%!%IQuPmh(rFm{99(`QwaYk}i=NLO?flY;Mzd_qI-EOy z=dGY0J+h5;R!!bE6fz*32pO~bi(pRy>f5e}0?^nQa0@mFL+}~+ObyECSi?ptvU5Q^kUoK&WiX9uF)q)2(E2;y;P#%*oex*?* zM{3@yUgav?HF5k8GbZ~DMG`5}KPCOPOs?=vS-j|y4g^U;&c_6cyP8Pc$bFI6W0Ri_AcmpNyJCRRhn3xQi0`>iG7iPJ`4j%nFP6-< zYBWL^cFy}ZB!QyUV%9ygYfMbi9^|Gx%<%-B4jr({*`)YQiLdaB#+Z)3?N_l?rh@mS zD-!soH(!{@54^FVLI-;B=KtMTl?}*M<%m*{f6tCdjD&Qq2MYsy_gpe`e$O(8fo6&K zF#OY>3SK|0J$X6uYkETxcr~->;M~~{ps2RJ_xN?tnjBs%=J1yuKcFI(cz)v>E`#0hNBHb6e zDytBb@Mz3_oh#Uo+QTtK0?2`mIk_6l9>;+NoL%&S`pKQsXq z+nj;w_|)#n*DGncS;aj3hIyiIj}=%I$=Ad4cFHOWs{Km`$uAE&WwoeB0-;;!T2tp0 zW#bDqpF?<7jktOxr*CulUjOcfQ82v*2^#+c=iQ~##4eDSU;NlCHwvUaX9-Ip4@qDt zwzuSS<8MsR69zn%wZH_nq=B-LThH8i$3E3l9`7`tKISidxi5@--fHnaw$$cO&-nmco2`0h% zbw6qCTHsGWD#RhCpi@>&9m{v<63ZO2#8FuDWkQViaYzFDnEk~4HB#su=#XP^8sP3Y z)fs*)Dsyj)|63d<$5mRvJzFW3wFe%XY>cvAUG3PE<;?W1sZ&Y&#~O-JKZ@^y*(o7B zZKp@j>$7@8fbafjQ=)wg^U0!QZ04c_5L_OFS1Rvna$Btlj8@f&Quxo80`*dhdu)@G zL1tE)5I1;Q%M9oLu%d-;>wKg}%Mf{9MfcDZ~Bdq3rn7O%$Gv|_0tJXb>+V}WPhG$(t{Fc&NW z96s)7LA5av)Yi}>3y8DOj0BL()kPLNU5iux4BFV@itN45I`WRXJvMyp2)CVp_a72k{U$fhmV{|Z@s?#ri%MpCd+D#eU@sc?3kNK#HtZMu>NMHX&9axnOiWs(Lnb15W z$Ine0j<8`ABV!Xlu{oyVY>n9lyCGV`^wz`A z2q<@3eb_CSdnGb0fg=qi^N9F`Fs5QEus46N;QD* ziVY|`mdJpdR&Rg2YUC^&_=($v0i9 z_i9*V!gTKm1LM+hiBx(2b5i<)_GmfOh+QyfJd{=LTc$G#`E^HC1* zha4+LVJHodbmD1RrqKkQA+x0aM5dFPQxxqM9DU>)D&8(cWpE;Z_e_&b5mm>sm_BqFBC)!(~yVW1_ zY>FVmzk)VU@O(jbL1eCa%szjA++8g&>WkGQ3KV26XnS2Fitstay@v1fF@=DB5gQvu z_Cnr}wXSqs;8~fOE>NB<-tNI89mR}~xM&80P@A|!s{sas&$Or^%3f>nYQXhMb~7NG z$Q;EC^_v;zkN~cG0w|mQ(hPMkV3cx9eC5Om-amcGGJW378q=Bhv zV(y50E7`>&X*A<^Eg=8uV+Eq_-?u%`h){s@pGPy(_HcvA z+3=ivq%RrAfv5V8EaiuuJ*Oc!1BKG}>MD5~<&7Bo04pQp2=GjUw8%I8xc zs0Lpyx}OY8{BP6)t(cm($M*UDP?-TGTk&#sR*VINTF|fNO}#w@>fjqKI5L&K3^-UU zKE%m`y5Nn*qf~O$*Y=jKCza>Az!y_cKLl(cQOrQM`N;-DLVlvmTx1(>C6(vNh3GQx zN(cknv;t8wmhHobDs?P>RSbVY6~jT<2whOsfZ;amXccz^PFhjTXt_blhF>=AgoZhJs80jSo7We0|J*wku(-&7DX3 z(im+hU@Mo@^cpMazypS}&pVm5uYD|5YrHJyf=Kd79JCjD;e^ral(lCUh(h&*=w~6g zP9;H!6#q>DBp+YVN6wPvH6+l`gN@<;+{f&H)CI4BEIYc#c11Tq&0I@J@YJ;Eu%=3bizo0ETg+bysp#ci? z559QMd7t|8vwe%lYGc=F`X2H8&(AVxB4+_x#iZ#ya+E&{%Uq^l6yvL|m!pYat&;u6 z%4#-oxP3K>f@d2#f4JIMm`}}tc*ygMz^mLVuvP_WOPT+ zKkQPn1@YaxP^e6w(!m#4ZIn-+PU4)0B<%bGAt`I}sVFEgx+!;p)Zg){POIdv1+O+} z@ZPaUWBi{4JGU=?Q&(XW^o#MY?s)twB;i!vBzgBTsQCtdB$TSwt`|jpgc67fqL>{M zL0GKTY1u(SYa{LCldfFLdINmGLD7myUTsV$a+!$>3;>#=Z#~uCp z5|C=5z<{3HTKaUqAQ;}xgFv9m4RDZ|)g|b;1MVs!tU&cF)fVjmNR$RIMi)1M`V`eW zYbc%rFAz7^iyUwRBv&43(}Myg-O3#Yn}jd+sk#2|Zb(gqHQlY1g_Q9N>{X4fG9nA{)p z>@p5d|4vt6Nm;m1!U;`2?((i0y~3Kl;cWaX5U-nEg+Cd&2Y6EbY`#7+hryjt9^5mA zuDM)z4!#57M3!{EKKm?@)dlpHr4K_Icq;-;t!8$6xrT|*#3(y=6LgPOs-2X{vV9@P zXvrLa&|Z!mwoX(ptCyeFz6SDG_zGpo&MYA zB0P@GY*n6m%n5hC9V|IMDp=n&&b~>~sxnXnm)L}fO_-vU%bz!A(;kN%rxSgpQQl^p;gmI8GW0(#iNE$$5|SEf_p=%W|q50#{LajeM16m zdH^4um^u9zuh1zAk$Q^#DC1pyF|04Ie#k*ZR`LVbjtlCg&p4V*449bFX9JMo{LRA! z9?1#&ch?lJLwN*YV}Y1hW-f7!RUM_MJk8aFBJ(nwzhLu_Oq(SH$oCqXjO&J_Ly)6o z&7FVo5HRyc-R}!5XEhzfs@}kR2+P$VC5<{r@@TKwtmFqCfY;K^0o9a@879< zQ?FmwnA5oxeaM;92u+tsI);^A3Ul^tvjNA>E#tch@f2KtSbgvSWe4Unq87(9_R1fI z3M3nh9r$2_({K@Bl1o0}gX<>ob_#oBiEh)0oHVF?uLs z=jjO>{srToCiBtRhm@C6qV;CSmKqc2=*>n$LBpY3*{21cB0X)=;y-wbJ*GlsYE7|6 zPV@YYVP2VJxF{W|ho%N}M(m&=r+>W)3Ql%tfiMNK4G~yz8Etm@%?Q^kbvbj0Z!Ls7 z)CKR(^!b-A5lbc}i^kf0Zs{%j{57N*ZU973B`9uurN!Urloj0fFVvcf#0y>sY@Y`n z(pZrwoTy!la1cRN`&$#9#%6+(yatts`{>id!*Ti}i1#!9skJU26BPBjphhp4XGT98 ziBV4OM}zrMEpQmEeSZod%$6+75>Y<;1Y!*hvUaQy@Wx%7cW}w8JQuh3y7n)xvSd-^ z-+S?Q4IP`6Mot*S_jaCJP{;OTf}4nXV?K4$+75DH@-GUyBe(WImx>@(Cik5$k`f3Nmw$F51Q!ZBc^0xjAPCyIHx6r1;f!R|Dm(b>R**T75Kf2 zP1e9?O>)~{I)A`B`>g3(#17SwzdkY71*|=!iy{+irC#iQz-6PmwH*Y9ui@cf0ZaPB zih*H`7B$G);U**-{+SgBKSh64uEw5GjDJyDqr(5dos|1b4M81)DKwFG9l7AAs7ooK3 zqY#K0w0-@ON)&2tve0SttL|C51JC-U!zDwoQkS`44#*sH_M6~q9o4cQ(;?eNl|NwJ zA!pyg%|R@TkZMveTERX_7Ry{e(Q-zwklTLsBI!|3=akt8RC&9KE|K z#=T!uvKd6)&-B6kbNok)gtkLO$&p}`<;(mYiS3-Ts;$hkI-#2Uv(JY}U9cbmBB<2a zQZ>4upPhjpGpxY38~?v*8uJNQjfEU|(~>TO>=~VhRF_k}>*ZuD$ujclkiNKYLNt+G zbLJegPoy;??sqJ)s7z`h4gwSS;s1)xBtr~{z%0mAtP`rvKNCzMQqY?L__m>e3ET2fCk;?a z00dj-E;nhsFad=+kbCQr6I;)ZFB{jTenh!b7bp^u+5x2s)hGTo0`~{b7u_ce=_Yan zjmX$$@M_PqG5YkJ(nZX%sBlxiS>@D-k_lgWm3LdZV|)BPxd3eSZ{WR0rcw-;N6@!8 z`|XeS;ag>NfH(bCw*6Tf!a<`8lp^1boKwX2AjPVbPDbgHlumUwEu=qIYij73{sExR zC|b+uB8~s#c$yiRjvXG! zR|95T_5(n2#`jE70DwK^@@{q+a^Q5S>qo5OVKBTJ-l^O^aF+>XgXCQrzeCMyfLNs9 zBe%BYc07b|*V22xF6d*PjxJScavi( zge>!1Y-2AW*pQftd45rZT|G*>MyxcM8hY2qh6&>vbF-gj@@3)o#hr+Iw}6%G1C|u8 zTTLu*ogaf^>R{U#?WRL@zhykht zf0_-yWlAvhLv_Y(@l7Z~fo1#w(#zXjC@Se?6;lUezBG@GEtPr&?!78lOS*=i#oXfg zVpoAvx%G|V`hXn7f+C0~Kb%r1@;2@yPs<(Q5IT(cyKFO@7%L^l4gW_DJ`nS!i})VV zvi27DE0lsGWfil|3r7Rxd}1%Z)CcJgfWBIn5NP!?8*4MqzV3lc5d6IIRPvu)+l>pVipcfd2uy3_zUtq=UFqS9 zSgCvQg7xpuaGv5@|6`_%3T%gLYDl{zSpOD0LlD?-Cxu#TLzGiy0I;L2WUd^YPj&Rs z#C?aXgKl|3--w^Wb3pqwc*#o1Ps`cPKkI_F1{n~4(;Vp&0gldje#dWM#1P=0G4ew0ZLHr(!7T_ri|A3|Q{#jP*dB~qK z+wIWtG(Utl5xyQhq9_7i{$&Qho-l*UbQ6f$G>j9zC`cO5hF->DG@PX$JKV#T`zB_}4pS{3%>8MXEsCoe+XWWU5ccnesL&$7E zLNYFiqLK3M^?qsS6bv@W?kXMiZl@xmi4e->6!;!fv0Jxx2hj*^UmX8tfD37`KN~83 z(E-hzs_y<$NE>-i`KBz(xIS_-;02R@`@XmMeb>4f1PYC8s|KH6G_$3IW9jru!?70hXJ_+Kq_*ojajW03XcPTk4NJLsfFg>$xr#<(C7=$x|H{T7Cb#q_>RVSAn z0q=I~H^=;;%R5fTVLuFrn}D6T%<&+Db>i$iQz^BTJ`tplK7?dWK~hvOiM%<@G~;8Z z&ib~Cr(`m*PAY2Fy2=M~m8cxS%x;lSgOG!(<7=mQG;XE;f?IQpZ%;B%rJ*+-r2+ZD z3T7S@Z*!jOF%@NaY}vQ~0!-qk5D__CIEHGsa+%rc4zW*N_jiw7{J%~s zedQ(}pyJe-A=?{QnJVK z-5Z5V73ts;wD7SH7vbSD72o$m-U)7eCr-JqCb0)G?@cg0lY(TWh=Jtp7iX1%U?5rn zsnEt5$9^S+4Cs;!XGv1!A#^w0`Tv#mDHWQ+hh-Ax>Eo3ROjhK`qL`3!(ZN9QATb6n5==Z!{&+GO4cbRkF_ndRjx%YnV zeBNjLnZyCkK!zRUyn6T~DfR05?-%H0DXx{~bila6jd7K??^<f_t~$tC25|Pd{v4=2&(;{Bi5ecl}chkWiXWHK+Sw?4Q%AJcOtsS-l4Q z)n9G{Z&uR-wSWoDp*YPW{M6u_^DJwPzO)7k_l;z172QZo#vL>D(!1M6sg2vu8q6&i=lu z0AAtTNe+rOtw=b8HMhIC0R=s3%cQ{5HcS3$+sLQjq10-&S8O8%=d)FpCCdZ`N5Lk7 zlBg2^?>7tUpMJ;xY(j)EN0>Yx98tz(^xYB_Wvav%4sVaI+fM%BIseSbaAz{Xdx`5E;aP)|gO`bf!Vq@Ba_gKGh_D(?{@{jQl_KMg| z4l7KCF^m}69F*-J_ShQ#(sgv^q3)w-hEmwf(_h)30Kq&c*-+Gb#TZHiWkxK#;l__# z;yxUXTFURaGl8dm(=EIF7^pUE24NQrnHFKE(^exh>$okCB7vqNCSOqMKLFnIqC!jW zr@wpwp4a1q2*jo&{z&gm&O&MVmxot1EcT+A(&hRmbO?P9YQLOxyj$QL~ z%X~D0C-;-+2fqYblEeo>N4N&(1;<}Ir>ZPC}is;1^f(IVZ z){Y7G8Sg6O_gtlg66I}z{|oxdZK{j^vI;T_uofL86>Uaqe4gho0`~mCQghV3^=+R+ zmu#rqHkH>m^g6rpQngKaXfpJw5F4rKI~5UU15)x-r2{`kb1xsZ+1)k&`{(+=${Q2- z%|uXF1$^VKOP#oRCYN0}T~S^}rj2`38n4mc7PMWfYf36pgjdM~|8_6sN?{~CHc8!+ ztUL87YoA(qEPcl<;5ucA*KZZF*|qWCdkqjv>rLs1+hk6Z+V#UVc9o%1;x8nnXSe=Q zJ_iPVdXoQN%4gd7N`GeDRJq8n>}^8K`L$1i_hz`id7rDVr-jDBJvN;j{o?`m>nqqD9)``HNAk-_@wB? zE7yW!=~1PgCuV)T?ev!|OI=T=vAR~iNkc{}{g8zDqIQ@xPJyyML${q4mM`PxZuYtu zjeS$qh{A1oL744Q#O!m=wUz=#@)->Ra%wAOM!|$(=S_< z(;wIcF)4etQ!>0JTGdIS5|8tnO1-2EJ-7x^hS*VR;aW8>JAT==a{kyb=h;KSgciu}%0fDZ334lYJSk_I}ET+ih;VN)HIQ;wwDh5Pc!1u4rfFX0L69 z;0Pd78~E)o)~IG~_mp>aXysb# z_D1GtV942z*D1`BGtVfbskM{cc51=!IOu@Q3X~Q1B$ZubVtK|Oxa z?d{|VF=_~PsF+`8?XC3eHJ^C^^&(*JnhYo80{fpUFM%C-+;D8c9}& z>rM%=H~LR=r6WsFJ#*AH_G5;>9RBY(%YB%7NME!h3a0YxIV)7NGD}E&zny^VQ$&uV zT+dM_tnVZiyO`OxXe1>vdV0wcEx6S}9bB6;qOSce{C(uN>Mjp;S<-f!(@aeFR*LUN zOL^n=5+R1A*E1ko5TBVDiB*d%yGg1J-B2ZJBNxskuB#-MJDF{&KQATaU6`gu3ls=> z-+oOCXb;@$V2&mdzC1R`G^<>@MYcN1gB=u@gP@KO z#9S!zbUJwh^*H*}HHQ@eeQcOHnCJ_fTue!WzF|qxGS>)NF#&V7Cpm@f0+~<8L7816 z%!FLHBXVOLiok4o{AjbxHOY{_uI*+mIGZGkBz=pVoLrK2?l~{h_$&T`->l;ueS*0$ zEZ-s`;=jN&N1PUXLg#drR@}bIKxq*BB^z!n-u7nbByEcnvzm(4Ut8crG^zVuPShHSAiLT$<{tXG@PvoZ z06Ah5O1%HFISsoU-1@u>`vcMRDn@Pfy`?WwSX~)uA?@?Z|Dn%+V86%-E3W3m!3Y&pLCfS!+l1;5nA31UQ-HtA3Uu zPsrPHA_E0FIlZW(;B0PsZ5XFc?TU@!7>D1V3)dOU3ttkOxZ0!>m9rUDqC*pHEbg}Z z9ivqH80m;SXf)dS*UMLa*($WHC`hc<%_|%R-eWl5oPH7oi<5@#zV8XaK4T5LHtQhS zn4l!lKkCR}rK1{-!k<_^i>qk=aku;-(CR1L&T{6fLmc5I2I5X=K%6wRPqXW;3+(fZ zJwP-w;}`!XvBP4aAYkpCgry(<(!t)*YzU@YfhVHjY%Ug`B1Wb&Z-leux)d?w3ESqGGS4@j+|zs zx5ge6v&e?_EUREJf0cy9vO?l$J_fF04fzl<4=hJfzkLqp4bpZyH*7Z%X)xyvjni}WQLE$%%Yi2I{jD^K{16bgKKPha;G3Sw8O<>$`j9%%}aA8cgYRBvCe z@ipU@SW~U7L~g88&V&uP=h*PVzjkzHlIK_-si5Kr<`_uO%WE9X$K0CQ+|aqpfah2~ zOhtXsVap`<QXGw*R(cFA%Fq+moRC&yMi-@my8w`~yid8(+AG>vFy?a=w12efXU?B4gB% zFc_Gp&Jagnl7=wo>hiOQsna5rvCJ!IJXoTffGB^JF}G^%40qL^`z1;2)l9)$_#6`D z#EK#+mcWb@!;YscPJEYGrM}IPM0RW<$#h!95saHV^zoF@s2o`S%+IeQp+|} zv&Fr_fsXg{9lez<1_GOT&W$;4yWC-58&aR-57tDym8H=R^-*cER4CMycRXLwNGyK{ z1ECU~5ft-`)@NlF8~IgIJ*bF|Nm_M~vP!K6RsnL+9|>q0Hnu5!A-XBIthg9O!&3S? z(8*i5G-tAF|))K>8lqaoEH~E`KpW|)p5QI3xPlU z5Gk$F=a3ylqb}-*tP7F2;a>}*@+2vjY1_oD#a8zR4j8zDIV@krD+F>oU43QnIgch@ z9(ajKE_5TjJN>BWSLnIATa6A|7%W)l=J5nA_3?y8-QR4h+A}otvfbdq z;V0;R7Zk*MN9TJdOseLR*;xHJjlTAKecdi zZyUobhk^4YHH+E#Eo}#{25*i-Ed!H%d9$p%@G(wb}A+xP8Cu|L9%w`$U&+Lce`sKl7vz|n{rO3dP(R#@zE zY!`Ad>SC(YWiyrp$G=h8Eu_D%zD!z(u4iN5V@9xiqaMFdDg)V`C?)3~rS587`*3kwou-$=9uUJZd#tPf4^BUrc>LjH~fC#x5_3KT4h0-L2jA ziX*IBLOx=u;}2`Fzs`^^-r=+UC_$EyL^3b#RXm70^R7qKVgv*3J1nHG(~gd{S^C$v zGDf_ejCT6^{pBq%*@-p9OJ^^Xqgttp{-SGG6l@_M>UY0(j~q_8_XRyr_ zHmUW7qBTuhIA49GWOIjSG$KDbqL9|H5G1|q7E05b)d%_B7P8@K{kc|0OyI{ndw{6h zCyInLM+w?ehmpXMAWNn&wurDFwQ7?kMu%*4gMF$x9gXv1Wr?}=(URue{w>Os|Emn* z^BGva!BO2N#SL#AKZGC)c;l8^nP5~ z5yWQ@BX8WlCAUe)2~0HMHC0@qIC7ZeLN=IB^Q%6Ci{V6SJWB%CCQb|N)XHVqusppF zCkrUm8Z#K9*F&R~7shvt#tPJXX$K2KURCH3(aD3sJgDWex^-Y#)8Tlp&eNng!V+B3|MF`JSge2L zL)cfn@f?R^iI3op4=YV%LRj%?_<9npC`h>}=nx`@S=hNdR|p0BAq~Cv`dT7k%-v3A zot=_2RB0JUlKLZiC!^0dXIMFi!doHX)bcJ185GPD$fo@}_^tf`r+AkNVj!^^ri0&o z0yzl5PyJe;9E~FcU?2}HJ*#c04`bCD2DIBG%z5(IBdY5wIvncc5IvXe+9ojY50+4J z!CPb042-$+%ii6kTZYbfRyVhi>tvNsSJ%c|TOU1^5#5Ycox&io7%P_d7BJmY?p}@z zia2ZR$fK3f^2U2n>~a!*Zv)Fn)iO>NzBa;eQE|C-t+pUBFsbj&V7d=fYOfI6Jgl*s zs&&aVMd5@WeuB%@vQ8GI=LO)4%r3(}Pnn}&TSp+1!X7^@s*xWG5ss06x-E*R!VTK& z-Jgs!0Lw?^6EvQGnLE_=Tw_v-G~#;!guT#lHujYg9<9{iXH;3A-XBO4q)L%#aJ!~$ z1EUH-1KwDID=Z!?mvJBSa`bh7W1ylVs^KaHhgSmso;=AK=G4_J^T)9r8-0e-DOBfE zEy`#>z8CwtEpSc~1J5dkutUnK3?UbRp^5$RIECe+o5eqtv3Mc3WQqorwEgRWQ5Oy* zj2&rv^g!REhx)pKU<4cY()K2D)yhShFaNJx%|_16A3@btLUks`8THA6xB`-5cTnp* zzy}6A=00dP(Yo|<5)(a@)!&BeMpoa>3v9R9%G!KRJGK(&E7?M0&*og*P}`y?tXZ;{ zScqY@86mC|rXz@=QgrfgUYdfgVNv4O{A*}8bl3EA@_>d(h!vYUE7DCWUWC}~o-rp( zm%sH-J_$}pFo^*wgT?j1FAo+=2+eiLo`|kFhJuv^D(F7 zhs3S#x2^WuA^UCX{dO1%5*KIOhgRAjMjrzoux1g+p%0@6oVjB@(|uM9r$m>F<3+*D zz_6E{_lGSb=N+M(U$rv(gB^v-GyrzxESw zQ);CgNBDz*!|7IjkfwVD&9?#8~@ zEDIQ>S$H4%xFLY9y0s6N1bkSX_)k2BF7EJ8{0Lnf^H1EIE*|?&9Jsccbzj_r4Y>Bp z`o2LblAx<^;C|Nw62Q2Z$My}ndjPi%}(U zxg?7Ad;U2-LPA1Xqeu;}15fgpDj~4PFHx`69=N~|iX%v3SYW@2eQc|7&4BGFp8aWo z@CP-)p)ovZk+;Z7_x1Ptz?4Uth!bqWUl+SepBdA8N*1D%U4DYBuBj$b)J9z|gRf>2 z%uoBm2fAA%aaz)m26(AmQw3u&VG+noG+GP2{X#bqYYx1>0e@JFQ&5fSjhLIy z1KFcI^v8umgIh1Um3V5nM+((h^Y?`v3Ni_-lB7qIypgIfPPL#rlf>N{(e$KAxd3KW z@fJZHI&-E^@z<+!`~L$|*EiV*J2~7x&A&e7LpSHHIWR{>mEj}IU0X+R#C)z$9(}**&?0I5|Wv;3r;%B_x=*0}GNeuP{uo%_lF{fVT;b z(KR*&okc>Up-uCzZ>}QeD?q%9cS$1-t=(fv(%ko~U;#S$7ODDB(2Ch5DG<|Kmp~?| zm~kJpP=&%%wZG=sF4};rMtnY+tVv82G6Ne`%w_YjiE2q1KRLnIu<` z3|*O{-w4~>qN`E8z}qIaabED&OJ4Dw$6aOVi-t)E3T9xY?HCXbG9&?0fL2QT48y(L z|DzDCRHJ$Oekol|PiX|3hs)P*v-|N>idHH#0-w;GT^6HH{tnJlxQ(~*Lu>%#vw;}S zO3|O1Q8C0~VrW=i=%q*e|6DQj$(($uGc{zH*?w_xLz=G1!*|-?8DO0pE~xQ`+fqsw zK#w$nGmcMr1cnt-fJ_M-->>^Q@mhRD& zuhTC;bRjQEW3$yM zth~Hpm1N5uPKs^QY%+2v zp;PG2zCd!1pJO`@B9QP{GGhJ}b0dSjh-;|%=B7kwo1*`Z>>V9!;r&^%b-@t$0SCy` M=&WItKJMoK0gvQio&W#< literal 0 HcmV?d00001 diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java index 4b7a24c..221e277 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/CheckUpPage.java @@ -104,6 +104,13 @@ import java.io.ByteArrayInputStream; import java.io.OutputStream; import java.io.InputStream; +// --- JasperReports Imports --- +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.view.JasperViewer; +// --- End JasperReports Imports --- + // Add new imports import BsK.common.entity.PatientHistory; import BsK.common.packet.req.GetPatientHistoryRequest; @@ -155,6 +162,9 @@ public class CheckUpPage extends JPanel { private JLabel callingStatusLabel; private JPanel rightContainer; // Add this field private List