From 61b17b34bce848b1c3bbfa2dd863701741d36299 Mon Sep 17 00:00:00 2001 From: lethanhdat <91755733+ldss13@users.noreply.github.com> Date: Sat, 11 Jan 2025 00:51:43 -0600 Subject: [PATCH] [add] Nothing, its Friday --- medical_invoice.pdf | Bin 27912 -> 29627 bytes .../PrintDialog/MedicalInvoiceWithGUI.java | 62 +++++++++++------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/medical_invoice.pdf b/medical_invoice.pdf index 74b800865847da7fd7c0b621b47d29df27e63147..fe5a60fc1e529f5043374760a1c9eab656476442 100644 GIT binary patch delta 13690 zcma*N1ymeco3;%hI01r$;1Jv!hv4q+*0@`6rxM()v7jNi2X_eW?jGEo;PR0(Gi%N{ z^S^8Ty}F;h>w4}jUA1agSM?pT0Nu0$9m582b93?YJ2^X=8rmYcr%h|fL{EWGTCX)O zaZEOv$w*N{g1KH@z~>zeL01TSt)CcE$wORuY+=_wtMho=p3OVhT<2cYCfx-4=jzW# zk1kK{nD4GWAGSI(EjP(rU%vHJeB4^WH4ltxL6d&Hl-$Uvye}nfos06e7y3Ce-mVK^ zKIQ-AKJ2y6NI@h+xB_m)tircEU#rX=Kqy9!#i9K{J4Hf;K~=>yY&9G?``S>qLy=RP zxOh^YYt`#b$3cQ=m1N+$_dDczG-|xD4@-%^GzmLYMDrccO4SiWNJ~4Ml2HwJp*p@z zPauZC!s%f4S=Ajay`mHPdcGtiGU*-wknnKO?0a%oD>V0$*N7K*nj(7QdDnv- zFk8~^?w3rFqB8@U@b$K_KlzDd9ZsG@RE7VfceKYwZ;`IiuE+P z+x@a4$9!u11Cflk=-<75!;-$K1DZ3gQyi?z3F~&FZlX<|XpV^N(}~-#oXanTlaL&H zB8G22`GU)iVxI0&o)nxPQg3l*@k-Q%>dN#&@4cMl+keOxG-#(he6}f!fB3d*SdwYi zAIplh6kc)uaahf5Xf$o&>3cVBQ5iHBcKm>JO|Hcw>?>>3TUAQ+) zyK?ybk{15py2Q0@xVBhyHqcRY48yXy#UI{|0IlcY-ZCo6ss0`Tn~6vndHUPHpbzW} zT;pePDedxP4kH-+SIg>VzDrZcV_SySaf~+Ol94;->T%I+D@T{NI$BgNjw+KoPHBl? zTq9e}nHFGgcm1?cr$p5l}bbl#}V~F!t&J z*jbx_IsM^5&j?l&X>U7t_u%b+#lxAK#S@)&Ds7T4Eo;X65Mex5I@bA96TNdE;&jmu z!{TR~VGlmZL$nWYNuXeIn_NyKzL+3^CopOH8aUg;tJ*o~G2#MWEoVnpXqROCb>6H= zCu6n8YQr4K)Xv1o8Bz*k3n6>`_7yV-!v2~WqQi|Gi-!lWv9bJZRj5%Nl|yPcA_H|@P4|G;lOT81gvA^f z5R5(KE+mwQXmaw3ErGV|pqz+*Fe?wl3%Y4;LHMTd__pWGO7^8yJwlfQ^y>QKJDuo^ zE2#I&`tNHg)Zq(dXFzu0ebcldW$zCwa~X9h=Hx%W|Ii@GvJtr}ZvQReBYlgZW8iiX zq0^Dx;hWv*wurou7Ca4`fx@GV4<6H90O!zbYFVWWkan(hh&}sTSNzDUY%X3x3Czy! z(=;y4&e&4Y5X}6%c&mRwSlxs=XOCTaP-iC57B6$MvavZE+r!A0buN(Z6V(!t>)BtB zC+A}C+FVDSPS?n}w#{%B#??4RzBE<;8N=sgrXwLP1?0OiTfn`L(Edeo1 z6J7~^(<#7R1oVn0^}T6=XaDOc|Fycm9B+FgDwqB3Fl-R+*PaN>%peduGl&(^^cwenHp2~}W@x9$NTlPn%0iOa$JnCFJSQ~L8aoQo33tns}&Kbo$y(2 z8QCs>$&U9eH^{CXcuQn(uC^?-G%prx9giG4bV?-9_%wIpWG4YT@JpuToc6p=N2xnB z)=4J?+=S_wtFIoZwFIPBM$f%36-llYe|ibRlP=|0O)cx?onDU|Kr}e&va?I{dcA{t zH;z?ZOWeTo6;Y@PzWm3^vk_QFhi4ofLwFHd%ji@}%1jL&rbh&(4Pn(^r0|HBm&D-VAB^<0ruGghabq`=vjYUcT(@P-AVcK#B!%n#yCW+V|9|e`AREW{7tgMM`E60m}B;0x?_IF^pXaX zP?6dT^M83j2qjzsi>Y!kiv&msp@=Iyz!^IgK1WDN$%-A3A#_hvt>ouI9{Ly|$U>Nmi98&Jlw-nMAhsMMi zS7?{O0n(T$E;912^6GhC^~Tt;XyC%9X_DovBDJ!z%^=-)t8mvhDh2f>qx46U+a-(0 z$0-ZI>BJX!WDc|xJLG+d9R}N}x^K5z=14uG1OQL5!9(SmwLTr^l83kH#6nc3QNYah z)t*;))bjG;TpOSp{Z?U$DcJ<&F%9d4PILC8FJV_?U-faK-Cx?9ROT>`hU^#>U0S+} zzXLRFtw<*z=?p6P5VM| z8@sChj0y`O6cUo;H{ms*G{H3?GeO$~ZBq1k^qI$Gl2-VyeK6!Bs{&W^_P8@KFU76* z#v&dh{}#3&l9Q3KN(UTAo3mj&n?GD-;q1Xnpq1!2|nOD)B~}IsXRI6V~p>b zLIT`0^RGlnc@1%w? z+5@%n{wF?+yD^kK%CAW1zeACLKl#sV-z0$Tw?&`*Lc1JszMEW`S?os6f5nxz3h!P4EU1 zSEe@DcMB+yDTlF&1{d3AuCoBRJX-S_8VA1lt*xw*aP__ew%tjoJlHSEiB6rKE!fp# za`+W~@6^XSkhC?0km)Q8VHrxk1!7nK_&c;N`DNxV)fx5cWd!r98z&I|v1+qa8t@hO zT@~U+&vSfAF}L3|P`9yG?q;9H4q);TJWn>v`W`kO+*}EbOiWyriW4# zJ|$daCT$<_H9GB`=DCYMpHfL9UrLjmybeu$Pj)eZpcnC0FJi3wrTmX!sm*Gvu>qKt zys;R|r<}-#^RXHO{)+#fA!uU*UId@jJ3a@xH=nymdP!A~>RYYWC~ zR{KTIp3I^<`$^?o6_0B$EeqNK_Sd14@Sy@3JT+HP#fh&cVD7%Q&x?{%=KC!@N{O6_ zeaLv1A%i@c8@K~ZbU0bAHB_JKYP&Ns@Fx8a|AWagWCpPfGs1^O&9Qrj;g`JME_wg_ zQ~t+5z{%%n-StVPBf`wz<(FYeBt@aOugaTs?7q;3A!i4Mn?#JAdGK6k=Rgu6xkI<491zQpT_*2x8Sk8fg8w+xS4 z_F=You&pu4HJ`$H^r9(R-^cBA( z-hVC{3CCc{|M5#Pt6wo@{Y&{D1LQuLt$KW^H%E$}@{LcP*qy9MrsXc{OEqhh?ec37 z|KylC-anvSaXsy}?=Z0B@`;1OU#{Okg=H=tvD^~@b+1ePB}zQcac??U#%ze7t#onP6Wk}+Px1?ZtYuwFEsQKu~8fpIjlM*Pv9@P-4+rsec$h8d0B!r5qV z9F%oAm$GBI>VS-cLfBxkHvK93-jk2t?P+D%(Jt<%v609*Tosg2iwP`F$*(ZYc38T4 zgFjV2Y~3Gz$m*Zkkr@90>sH|Y zVHS1Mr7Y8bx-{QXWqB35E}~Jmy_r&O_Hw6v<%1J287-IYV4%={Xv+p@0HXnmJI#C* z8KnSer02a)5uo{izPFRV-cFUNvUJ{;g_){;&P@aLP8f&okt8Z8M{iJEYe-RDTC1=z z?gxQ*zl67Ko>>ZZOy|o_YPHQwJ};Nq`Knzef)AnzIA=lIoG*&>Qa33$#X3M?kZmjLjUL8IU)%2(;Y`JruM0ZpNRO8d>aLr>w(`N9zv);0DZinNmbDn)n^11vi|w%L|K^4Q;>E@ z4dqn$O{A01M}4Lnx6BL{v%~M~ZX-Uvx$XkCeC6}D%RHm2A6iAigKz8!$G)HV({(GW zfu2uyNu$m42-1133JvA3-QLq1dpb823;kA?YcUHcU1F8XNrM~q9>U5R zUvdchtaOPtkD{1JY|qeodZw|i6MdLpM^yejQky@?#7!gO~X-DLaU)IWF5OdeaUhSJj z(=R6UYt&Isl(lAQ79b^t*Z#q@3HETyREwhO6|j=6Nz(LRz2b;T%H~?-Uc6Q zJ3rVdR8gpEdYy3E2GrhL?5=Op1n&l<^s4j5@H^N=^CNpP_*@3uOfIc)PyGa# z=Mi5nIA_PO86xItg6mDHqa=v1{I5pTh9*^|Y_a%@wfyubywK$Yi}ci>w?(o|Q-9K; zGd(SP=+-+vxJ#BI1rg!E>F&`Jp!|-pd8MD#=r7R5d>=eT-YT4{i$(_%Yc6>lJ#axk zDabcICBh!`yEm||kg{4SnV2$*xUC%!!9%bQ%xG>Dy4iG6(z+lp6~VrM%!J@j#LcSo z?OvRvjL#OITCOIobK)Z?^%iOhYf+1(y${La;P93cq$R0YG6uDkl*c7^&VERSQ>uiE z0GALc^=s>1RF~K_|<_CS7(Z7&x@imz-_tg#^v*smhH1{L0#ep+t*T6WL`z zR{BkN=PC&U?qm-7 z^mzCX^Seq!famf*2dBrwAv859fZ#%szYm6Z^9$PfPk4`C{=BC`M4-igfg2KqE_e@+ zF50NTBNSN%D?8C6hlyr|DBIV2rJw{AZPU*?LO;v5!W2Ug>Qij%#ZE6gUn43;35eZx z#`O=^*{qyhtE`VdnpRKBpgT0jm~5MIL}gqY8!BG2wFToEyQhC!4YNq zGp6Nd`;CT2>$z)t18N4RlnW0~(<@A^6zgVZ#54?;QBqgWYmY>YyYUHFJ$&_O z#4g@>bC~c|D|z93Z*LO(l?C|C8f5)(+dO6mV7x*LEeWl-W&E^5cWR1gS@T6ql@u(i z%7{Z)G&eCpw_3%I9;lXn>nYyhLUf#B-dP^Y?Z}iU75H-Nrk`7tS|5iunLs7dyT-DT z!sF0`V(L$q{_?CGt?SJFCr+CtmD;a8#w{X;hlktx#PTJX(ZZ;~Yii&I3GqXoMy%9m z>Eor2xAn&Dx$T&H>aE@unlJtn5DWHFlLnXfc83(0_0VVUwKnm*bP%z+6{-;()##kCNxyXpY{@?)= zedj3ftMB$b>_Y?z_xz#YFe#G~Vj6Rzs8ywAi?8b1M2OzKMWUTu=Qzmv5Ni%{5jU%w&_u zD;fCe6@SJ*q0M}l3VDPqgs$>ARV&u#t}g7|6Qy$a5Mu-r&s=I>oMW9?pA8Q?KRP`E z>S=s>9_REM-Y2IN-5S3V(zj;KEEyslI#A@3+Ywp04B@DTeg)vBf&4MeKK&iOl~2BH zzpzeC)9*cP%-outNEv0Yv0PH#cv%O-)De^cinIQ9@6D>SA?@IE* zO8~DxO64Pd+M&g^VL(aqvcuY*D0B2^2Gykpr6v$mPa&&EFIW$jGsG zk(AD#%LW}-1(b>J{^tUjDoE(ox^mv$J`MCYh73 z6+ELWy-Cbgg7Wi73;WA&;>(sm*H-Ncg9flpj zc4Y}0DVqeGahY^h=T0&?M&kq4L;$Uwv8xP$(zNP3Z<&FJhtxNE!BrGn*F>pLCfDbd zfh`&}ewjCR%fHf7g+&5wWz4q9G6+9*9Mxm_cP4q4Qf_h1TIH}m9n4sscI9quZ4EGi zJ#rUHE;aOHE=7T`On2M(Tl|`Fri1SbZ<947zm6A>u0mqxUjq>8?oJYx-SwF|x8M2M?EB|sZON?!qB!$PT)iGn5957rw zIukL5%sd9yT||Cs2<-b(%p1Gl+s0*7Gf8s_An)smt=8>1C2PCS~ZGid_?TX;z2d4UGMQX7*UAF3Oe;yGuM0m5I-N(~~v0H>- z{x7KSCPWsbBHv7{^cu^?I{!G0?cJYWK(B0;w)AQs%8ah0{LK{|5lcIf#?ZaDAOf!R zS!n94{XJtni2u$ty;5cmumJKy`B=PD7(OdFu@-?6o6a<-3qA7YE_-& zSIX>)bY&?}g)|r%av{Z(U22%?MTid50rghGy6mK7Dd_*eT^mKA9zG4e6Kcz8*DyI2 zYX+^IKZ_aPK}yg0?W3yqI`u4Vd&eAhD%;vb7^+$|&suM$*I;Dc5p&gB^h1+ohJIiS>n$Y#MSG#O1+vxVg^SdBSGuft7enq%7_f6 zxB2g}YE;3MRo#saGIYp!Er5Xa&lJj_-uzK_quD7Mh0qPPQTmffb5r+D)C$k;BL?B= zuyk{UG~bQOLHjfAMudUPfEBn7VsWc&-0&%OKXSVRD zmXlc`gQS%C6K%H2v+tUe8>3S z4wekk@k^ZiUF?30y!kui>G+c`Gt}#pJj#uClhMp+t92cn+>NJ1P@3m%qirdf;Njsl ztKmbhvr+GlpkIBY;=Hn2Em>Pwnjb|0#ZRZQwC4OYLgaeKf35g@MrGdSm{D7%&*kCV zI|G1InX(s~GxW^z8Ydb@@T{AR#|XJs?n2KNHixb#{NZ>#cld)W9dCHDvcg)t$N3P} zrRRgi!R(;(VXF_Ns9IK)->H2eTR6z_v4N<3-Z`VRTT*aLMs}#HxZ7TQek;CS#c#zT z-!byuTuz=@7LM3P?=MEIFh=M~v5T!2B>-9XUTl>zzQnby1(#&-M^wWf-YID12|<60 zw*;+7Jb=j+A`%}-@gw9%@NWl@!;2H4vh)42namw&p6CP6Aqn=`imqiAI_Etxge{lM zTg*X-K6fQ{TCIi6)(+(*G#!m&?P_vOm;HKGsuod-lJidu>li&Z@W0J?i#az~X#gK( zde1Ae%)!K~Ekg&t31V%otFqR~z}#jgG{@4x-NC35acP1GUSCQ{U8&g0uLSD#;&&qH zutr17H8xX4#nZnuxQVP4dqx zXOhSI^gz?*rAAMu+0=Evjd9ifFd|FS(!Tdo*ID#?7>rW)mx6UcRR@wHE_5}55L#4G zZ1{g-cU8cl&-&*BpK5i6G>x%L>!eznMe*`O!cX>3Q#8d2BL|h@-eDa2b*wEaqeK+=9O34>Fh;Sb zeZp&Roz{=Yx-{fiYS;fUaN6w#K-Zu+Wy}CYF+HwwYi3`T%n_U zJu|eZWo%f;(Mm0h9uMd}do;AP{({{s?P2L>i&GgwI0}JlVEJ9;DX7i+Yv8OdV`>Jn zWyEhg&f6wuC{xZO#j3BgRChF|qbFsCY#LZ`9_V1ZV8YW@B@4234OaXPh_t6`{9Ytob(VW!UX{SuRrc$k49EtJ`71Q zM`H)}V`86aDxLoSc(d08)F@lwa^m-$vKczXwk>tIDPwYH@N>_fPjkVT(0Yrpb`VD{ z^sb1{6tGiPfjd{T6IR~)vs#O&2;cf>lno67#A9x^MN8gd!8?y~I{>Rsw?uei#e{XY zyH{_bYRI$KcrtT0lYj=7ne({F4iVknSX(ipylz9mV+yOOx6CxwB8*rO z3W%LhYh|zE%xOE=iAdXfW~zjwaq~ACV3HqeTh7yUPn`&||zvTW2ac>zD+KE?5^1kD=>-tvrSpCsUvd`lwx6#|@on*db z>k3bkC?TYGRD6N;w}+W7Xc|lv*I_0AP#U#0cV%Gz<#%&d+wpDEt@VsG&gFubuXg!? zk6Y^M>9Vb6Tv%oe^21_lYH3s@cS_taom_a&;qYA*|HCxBG$uZ(b4{cau0XLlAcUJX z_n_c)4lUlMX0H|%`kgJ;@EXIq2ZdcWJKiSWl6>~9PyaP`&gz@e*%QEmqCEqcuTowo zz?XSmsBL+3+Zk!QSQv!yY?-56-q| zc8rXZUU(Kta4Z#;GTnV#ObFA6)!MP@ZoZndKTxa~Tk~Gkn2~x+FHu3IDXWr~yCJTE zjpbo$`C^Bi^R^hRCT$`|;toppP~W+$DPU501?B>d2%o|+doue`DbS=A3MIr?#(MBbbePgWDw za)J<}kTC}ip!%_4UL^|Z zN}7NrnvLiLR`j$%v;Xb^tD%x;8YSRii>(U9qW;lKM-XtZ~A7NtJAUM+y*+ylfcu9l*H04DaNv5(yW@*~q2 zTP^r+++sP+nSPlashk3b6=7|GR^>I>=<|j*E$Og91Ceex@|lm3kAeHNsENwj@L!@$ zG#jK?)TA!D$g7@!C$MY`L+SvoyH7-|ub?NYlW`f;pi8d({Gfi0dfst)i`T{)9hA#_ zcj(ZpY~XcI%w*yO`O)oBzBK^jZHSkd)gfCO-*Ypt|M7-SeHO@t>_6+%HIZ0GIP^M| zz?^?oJ?g*54s|4u-YJdN5XBhI5pcPIOcOOSGGDAVanmaFYo9YhxI7wy>7Cp_dGYp?>wu(^!xvNv0=khktd zO=cGLTY1^arqR0E!SIxu_ShRul~=kd_hf5FMw!$Y-QX&Xi~C$RB*`i63V3e(EhKw1 z;;0YotD<%x-*KS5WVY?jM36~~I3>-egLA6x?E1jo!2madbAW6opT_5>PK&`lLSZLm z%4V@3>U?z8oK(u#rP6(c^IZ%U!8sY}WNHj4o-KYB-0S1+ohu7}biez1p_Sljzsumc zEo(lKPSS=$)?>aQ-*A4)N?&)LK$H;2*e2D-PEua`mVGQ-n0dd8qXD#jI~OPAh*6%i zrk!sps6Z2Zn--cL$FDm|Zvl+i+Hb?1JGNZJ0js%#JL4&8vg*~>Tu1?c9INom4% zq-q_dZ(w%gqWSIp>3di`vyV{rqP*6}T|d)j<@YIj(l!&WW>X-aK2RKf%*kGI6%z4DSY{{71r&JBS3jkDAN&Cj%4g6NysMZv9`mRF0t2 zCy&$w9?)16Y%1=ZyDqDMmeWF$Xw1Y>$q5m zi`wTrZT?~+wAm`Dqp^0?o$NcmA_>}#{khbA6I2_pH`GIDX;03+@!-$#T_e)B5)4c^ zmH@cmw)v-tsM$r94{g=CT|4^EiKBL(V4a?<4L~@`uUj{T8$Wjv3%!3r-8u?DGM8fJ z*Ea>jt`?8`e(NK5O31#k+aZ2-Q~GFu`7w!@XOEPC2{}7px&yo0u3KWDb)cBGZ6S}p zuvPbdtezd``@%2kjx%Ft4gsX^IO1*jF6)3M;UskLmZvAdu&>LKy1k@L%iLB)k~3^0 zlAf6ENxhr{)hFHYgWr(fqj;Y9BkxDvhdPv>_1=`7Vct~SYxIr_@PZ?NWvjvw2|hqx>!70JO?su zS@sz0rii(z&2nKepx(1K1I`b*Y^0|;F((T*JR+zMAKpGTeaeTIs=}H7g61KO#F7A) zLz*#;u&0Mf?z)#l(@*j>Thw-i~3bIsw~6SSisl%m=!(v#H4 zNvexI-gKRSkv$Rfgz#^o#>w2p`Sux~kb6k-!N+_tLC2L1ipes0k1H=86KjHn8%f|s zj~iTF{TXX!$lubDCwhqDuw@nYVe&&|jCqI5Jih%y+m@uU#y34Fb%>fHx!D2m*|0j^ zpY02l3U)*Ivw(@@sbB!Q&PKvHrn0KIs@3k8wwn0IdCt>JU z<_YC>jFyFYoY&cj%}Qz<^`5||ICxRDA947rMzD z3_p1$q`VJpQ{UY)gw}$deGCq8=3N#a44~aX-I3a%8>vedXp%dA?e?9g|H$p+f;_M@ z4WDS`!tPSH$BSP&Di)_7_nda($!*PrF_x*{ZTHsvl77rnRY7Hst1;nNVpJ!cCp|wc zVdUc2y>3{q&2@CG++fxe~^sS>#y>&f(Gt+~pyM{ZJV{Yl1+?oW?ffo3C4Zh=` z<2rQhbm@~)edrD3CNTM~U5%@+oFs|S*XPVX{A9!Zw^8P`!0X}*6ReYhs`Rqw=tq}> zANaaVuQ0><>rCjJm&IGD7W)C{B;r2#bA@jgq_ic`eT?VKpYC3(&&gzv+)L7c78Uqm z?UD=2+9Whwlrp|dYSPwR z!Yk89C?WbOmns%cS=3=XX+*O>yPO=j`or2O#OZRTWy6Q+vQzhhaA5J{p5YxWh>jr< zT$FJC?R2c?B7^3BF-NkzVgW(WxoJ>Ym}D$XoOIa!_##QTAVS=DkWg3@h#9vgG;>uO zw>k_oYb-iB>PS5%sQ;BtRycVJr;Hy7EVqQ$c~@{ zBS?pXgF}y6Fqv2mhz5-1iDyBu5P&EubrL^z)5%~=;>D#p z|D!M8*3RTT@3T}A+wx!$I!!R!c3^AmMcq~00AU^FH^95Y{Ve|AIaFBf&cQaR zAMBjE$j@+enHVOL@bcs?4p7dqygB*Zx?W;8wbm0d;rRti)bcw1JGHGy;oICJnwsy` zFuCA(z%_?0WI`=IjygSyEo?$dvKAxPDSj8<+1b97TJPJY=-vkkCTR^7qxNsc^NFzj zQKpO9@nyNMS99{cc)}(oTZ%>Z_Exl%JhffG@foeU=(+jjHVS(@(vj4Bi)-3Sp0%AW z-!DTk@S)*qJ1gEA7zkywwhLabgs_0TPDF9v1Jx&Dxb9Hi7^X{!=E?>p;4BQ&&8YSe z7RTPtr+s}0{y3&40nlr)v2TN@2l{5S!o5QgPb7TL ztjW3y3ad1mkA?MTAB+-@e+lY;f_yxCRdfkziI(x9n5CsrbW2~g)Lgji;TVxuED)-G zt(h$QpfN{A?}OP&$en-rv!qroWyud(Vy z(MveCna;4=;s+VQ`MRnWYYL zu&rsL`{u{Ak_0UyF2WMmA0I#UDiiTs%{lz)f^LPok=FJ7X>MhjD87V1ocZ+IQL`M> z;(m8++V6&X%&p6D!0wb02M)Y&0h=e>mfs-bSJ##OUlTS9Geno0u_{@NnF5*xGGIj@ zz{U0AeE#zyu_HnHtHR8|!trkgV&-OjFqlPFD8+ z%Q#+6`+w>{>}>4J|A%pK|NF}^b8`QE5B(V*1Y+g_vHg3uF>`S;|9jTV+-w}I|2v4Y zqoJjZspB78yp$-34ljq1AuGt(&=_Q9YHY-2%E`%U0^(%l=3q1CdT9w_=KsG6w0}t; a?KZ?OM|aJJ0GS)a!iGdaA*LXX^#1_MdPPM5 delta 12147 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 O9|sB*m4uQc%Krzj)XZA| diff --git a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/MedicalInvoiceWithGUI.java b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/MedicalInvoiceWithGUI.java index 7e6cdb0..ebf3ea7 100644 --- a/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/MedicalInvoiceWithGUI.java +++ b/src/main/java/BsK/client/ui/component/CheckUpPage/PrintDialog/MedicalInvoiceWithGUI.java @@ -35,12 +35,10 @@ public class MedicalInvoiceWithGUI { frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); - JPanel buttonPanel = new JPanel(new GridLayout(1, 3)); - JButton previewButton = new JButton("Preview PDF"); + JPanel buttonPanel = new JPanel(new GridLayout(1, 2)); JButton saveButton = new JButton("Save PDF"); JButton printButton = new JButton("Print PDF"); - buttonPanel.add(previewButton); buttonPanel.add(saveButton); buttonPanel.add(printButton); @@ -50,22 +48,17 @@ public class MedicalInvoiceWithGUI { frame.add(buttonPanel, BorderLayout.SOUTH); String pdfPath = "medical_invoice.pdf"; - - // Preview PDF Action - previewButton.addActionListener(e -> { - try { - generatePdf(pdfPath); - displayPdfInLabel(pdfPath, pdfViewer); - } catch (Exception ex) { - ex.printStackTrace(); - JOptionPane.showMessageDialog(frame, "Error displaying PDF: " + ex.getMessage()); - } - }); + try { + generatePdf(pdfPath); + displayPdfInLabel(pdfPath, pdfViewer); + } catch (Exception e) { + e.printStackTrace(); + JOptionPane.showMessageDialog(frame, "Error generating PDF: " + e.getMessage()); + } // Save PDF Action saveButton.addActionListener(e -> { try { - generatePdf(pdfPath); JFileChooser fileChooser = new JFileChooser(); fileChooser.setDialogTitle("Save PDF As"); fileChooser.setSelectedFile(new File("medical_invoice.pdf")); @@ -93,7 +86,6 @@ public class MedicalInvoiceWithGUI { // Print PDF Action printButton.addActionListener(e -> { try { - generatePdf(pdfPath); File pdfFile = new File(pdfPath); printPdf(pdfFile); JOptionPane.showMessageDialog(frame, "Printing triggered."); @@ -126,14 +118,14 @@ public class MedicalInvoiceWithGUI { document.add(logo); // Add clinic information - String clinicInfo = "Phòng khám BSK\nĐức Hòa Long An\nPhone: (123) 456-7890\nNgày khám: 30 tháng 2 năm 2025\n\n"; + String clinicInfo = "Phòng khám BSK\nĐức Hòa Long An\nPhone: (123) 456-7890\nNgày khám: 30 tháng 2 năm 2025\n"; Paragraph clinicInfoParagraph = new Paragraph(clinicInfo) .setTextAlignment(com.itextpdf.layout.property.TextAlignment.RIGHT) .setFont(font); document.add(clinicInfoParagraph); // Add title - String title = "Toa thuốc\n\n"; + String title = "Toa thuốc\n"; Paragraph titleParagraph = new Paragraph(title) .setFontSize(24).setFont(boldFont) .setTextAlignment(com.itextpdf.layout.property.TextAlignment.CENTER); @@ -143,7 +135,7 @@ public class MedicalInvoiceWithGUI { Table patientDoctorTable = new Table(UnitValue.createPercentArray(new float[]{50, 50})) .setWidth(UnitValue.createPercentValue(100)); -// Add patient and doctor information in the first column (left-aligned) + // Add patient and doctor information in the first column (left-aligned) Cell patientDoctorCell = new Cell() .add(new Paragraph("Họ tên bệnh nhân: Lê Nguyễn A\nSố điện thoại: 0123456789\n" + "Địa chỉ: 123 Patient Street")) @@ -152,36 +144,56 @@ public class MedicalInvoiceWithGUI { .setFont(font); patientDoctorTable.addCell(patientDoctorCell); -// Add date and invoice information in the second column (right-aligned) + // Add date and invoice information in the second column (right-aligned) Cell moreInfoCell = new Cell() - .add(new Paragraph("Phái: Nam\nTuổi: 25\nNgày sinh: 01/01/2000\n" + + .add(new Paragraph("Phái: Nam\nNăm sinh: 2500\n" + "Bác sĩ: Nguyễn Văn B")) .setTextAlignment(com.itextpdf.layout.property.TextAlignment.LEFT) .setBorder(Border.NO_BORDER) .setFont(font); patientDoctorTable.addCell(moreInfoCell); -// Add the table to the document + // Add the table to the document document.add(patientDoctorTable); // Diagnosis and notes - String diagnosisNotes = "Chẩn đoán: Cảm cúm\nGhi chú: Nghỉ ngơi và uống nhiều nước"; + String diagnosisNotes = "Chẩn đoán: Cảm cúmm m mm m m m mm mm mm m mm m " + + "m m m mm m m m m m m mm mm m mm m mm mm mm nm nm nm nmn m nm nm" + + " mmn mm nm nm nmn mn mn mn mn mn mn mn mn mn mnm nm nm nmn mn mn \nGhi chú: " + + "Nghỉ ngơi và uống nhiều nước\n\n\n\n\n\n\n\n\n\n"; Paragraph diagnosisNotesParagraph = new Paragraph(diagnosisNotes).setFont(font); document.add(diagnosisNotesParagraph); // Add services and medicine table Table table = new Table(UnitValue.createPercentArray(new float[]{4, 2, 2})) + .setFont(font) .setWidth(UnitValue.createPercentValue(100)); table.addHeaderCell("Service/Medicine"); table.addHeaderCell("Quantity"); table.addHeaderCell("Price"); - table.addCell("Consultation"); + table.addCell("Consultation\n Ngày uống 100 viên, sáng trưa chiều"); table.addCell("1"); table.addCell("$50"); - table.addCell("Aspirin"); + table.addCell("Aspirin\n Ngày uống 100 viên, sáng trưa chiều"); table.addCell("2"); table.addCell("$10"); + table.addCell("Paracetamol") ; + table.addCell("1"); + table.addCell("$5"); + table.addCell("Vitamin C"); + table.addCell("1"); + table.addCell("$7"); + table.addCell("Antibiotics"); + table.addCell("1"); + table.addCell("$20"); + table.addCell("Echinacea"); + table.addCell("1"); + table.addCell("$15"); + table.addCell("Total"); + table.addCell(""); + table.addCell("$107"); + document.add(table);