PageRenderTime 120ms CodeModel.GetById 21ms RepoModel.GetById 2ms app.codeStats 0ms

/include/imgcreator/inc_etik.php

https://github.com/timschofield/2.8
PHP | 366 lines | 256 code | 49 blank | 61 comment | 23 complexity | 121826af65a60b1c5ed71b7a0291900f MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, GPL-2.0
  1. <?php
  2. /**
  3. * This script is included by the barcode-etik.php for non arabic languages
  4. */
  5. # Location info, admission class, blood group
  6. $locstr=strtoupper($location['dept_id']).' '.strtoupper($location['ward_id']).' '.$location['roomprefix'];
  7. if($location['room_nr']) $locstr.='-'.$location['room_nr'];
  8. if($location['bed_nr']) $locstr.=' '.strtoupper(chr($location['bed_nr']+96));
  9. $locstr.=' '.$admit_type.' ';
  10. $locstr.=$LDInsShortID[$result['insurance_class_nr']];
  11. $bc = ImageCreateFrompng(CARE_BASE .'cache/barcodes/en_'.$full_en.'.png');
  12. $w=745; // The width of the image = equal to the width of DIN-A4 paper
  13. $h=1080; // The height of the image = egual to the height of DIN-A4 paper
  14. $im=ImageCreate($w,$h);
  15. $white = ImageColorAllocate ($im, 255,255,255); //white bkgrnd
  16. $background= ImageColorAllocate ($im, 205, 225, 236);
  17. $blue=ImageColorAllocate($im, 0, 127, 255);
  18. $black = ImageColorAllocate ($im, 0, 0, 0);
  19. // draw black lines
  20. ImageLine($im,0,25,569,25,$black);
  21. ImageLine($im,0,220,569,220,$black);
  22. ImageLine($im,0,334,569,334,$black);
  23. for($n=0,$j=95;$n<3;$n++,$j+=95) ImageLine($im,$j,0,$j,25,$black);
  24. for($n=0,$j=114;$n<4;$n++,$j+=114) ImageLine($im,$j,334,$j,359,$black);
  25. ImageLine($im,285,26,285,220,$black);
  26. ImageLine($im,285,50,569,50,$black);
  27. ImageLine($im,285,75,569,75,$black);
  28. for($n=0,$j=380;$n<2;$n++,$j+=95) ImageLine($im,$j,0,$j,50,$black);
  29. # Draw the main information - the largest label
  30. // write item labels
  31. if($ttf_render){
  32. ImageTTFText($im,9,0,5,11,$black,$arial,"$LDCaseNr:");
  33. ImageTTFText($im,10,0,5,24,$black,$arial,$full_en);
  34. ImageTTFText($im,9,0,100,11,$black,$arial,':'."$LDAdmitDate:");
  35. ImageTTFText($im,10,0,105,24,$black,$arial,formatDate2Local($result['encounter_date'],$date_format));
  36. ImageTTFText($im,9,0,195,11,$black,$arial,"$LDAdmitTime:");
  37. ImageTTFText($im,10,0,205,24,$black,$arial,formatDate2Local($result['encounter_date'],$date_format,1,1));
  38. ImageTTFText($im,9,0,290,11,$black,$arial,"$LDDept:");
  39. ImageTTFText($im,10,0,295,24,$black,$arial,$result['current_dept']);
  40. ImageTTFText($im,9,0,385,11,$black,$arial,"$LDRoomNr:");
  41. ImageTTFText($im,10,0,390,24,$black,$arial,$result['current_room']);
  42. ImageTTFText($im,9,0,480,11,$black,$arial,"$LDAdmitType:");
  43. ImageTTFText($im,10,0,485,24,$black,$arial,$result['encounter_type']);
  44. ImageTTFText($im,9,0,290,36,$black,$arial,"$LDBday:");
  45. ImageTTFText($im,10,0,290,49,$black,$arial,formatDate2Local($result['date_birth'],$date_format));
  46. ImageTTFText($im,9,0,385,36,$black,$arial,"$LDSex:");
  47. ImageTTFText($im,10,0,425,49,$black,$arial,strtoupper($result['sex']));
  48. ImageTTFText($im,9,0,480,36,$black,$arial,"$LDCivilStat:");
  49. ImageTTFText($im,10,0,485,49,$black,$arial,$result['civil_status']);
  50. ImageTTFText($im,9,0,290,61,$black,$arial,"$LDPhone:");
  51. ImageTTFText($im,10,0,350,75,$black,$arial,$result['phone_1_nr']);
  52. ImageTTFText($im,9,0,290,88,$black,$arial,"$LDInsurance:");
  53. ImageTTFText($im,10,0,300,110,$black,$arial,$result['insurance_co_id']);
  54. ImageTTFText($im,9,0,290,205,$black,$arial,"$LDInsuranceNr:");
  55. ImageTTFText($im,10,0,360,205,$black,$arial,$result['insurance_nr']);
  56. // name & address
  57. ImageTTFText($im,9,0,5,50,$black,$arial,"$LDNameAddr:");
  58. ImageTTFText($im,12,0,10,80,$black,$arial,$result['name_last'].', '.$result['name_first']);
  59. ImageTTFText($im,12,0,10,100,$black,$arial,ucfirst($result['addr_str']).' '.$result['addr_str_nr']);
  60. ImageTTFText($im,12,0,10,115,$black,$arial,ucfirst($result['addr_zip']).' '.$result['name']);
  61. // diagnosis, therapie,
  62. ImageTTFText($im,12,0,10,235,$black,$arial,"$LDDiagnosis: ".$result['referrer_diagnosis']);
  63. ImageTTFText($im,12,0,10,250,$black,$arial,"$LDRecBy: ".$result['referrer']);
  64. ImageTTFText($im,12,0,10,265,$black,$arial,"$LDTherapy: ".$result['referrer_recom_therapy']);
  65. ImageTTFText($im,12,0,10,280,$black,$arial,"$LDSpecials: ".$result['referrer_notes']);
  66. ImageTTFText($im,12,0,10,295,$black,$arial,"$LDAdmitDiagnosis :".$result['referrer_diagnosis']);
  67. ImageTTFText($im,12,0,10,310,$black,$arial,"$LDInfo2: ".$result['info2']);
  68. // -- print date, religion,
  69. ImageTTFText($im,9,0,5,345,$black,$arial,"$LDPrintDate: ");
  70. ImageTTFText($im,10,0,5,358,$black,$arial,formatDate2Local(date('Y-m-d'),$date_format));
  71. ImageTTFText($im,9,119,345,$black,$arial,"$LDReligion: ");
  72. ImageTTFText($im,10,0,119,358,$black,$arial,$result['religion']);
  73. ImageTTFText($im,9,0,238,345,$black,$arial,"$LDTherapyType: ");
  74. ImageTTFText($im,10,0,238,358,$black,$arial,$result['therapy_type']);
  75. ImageTTFText($im,9,0,352,345,$black,$arial,"$LDTherapyOpt: ");
  76. ImageTTFText($im,10,0,352,358,$black,$arial,$result['therapy_option']);
  77. ImageTTFText($im,9,0,466,345,$black,$arial,"$LDServiceType: ");
  78. ImageTTFText($im,10,0,466,358,$black,$arial,$result['service_type']);
  79. # Bill payer information
  80. # Note: the address format is german
  81. #
  82. ImageTTFText($im,9,0,5,155,$black,$arial,"$LDBillInfo: ");
  83. }else{
  84. ImageString($im,1,5,1,"$LDCaseNr:",$black);
  85. ImageString($im,4,5,9,$full_en,$black);
  86. ImageString($im,1,100,1,"$LDAdmitDate:",$black);
  87. ImageString($im,4,105,9,formatDate2Local($result['encounter_date'],$date_format),$black);
  88. ImageString($im,1,195,1,"$LDAdmitTime:",$black);
  89. ImageString($im,4,205,9,formatDate2Local($result['encounter_date'],$date_format,1,1),$black);
  90. ImageString($im,1,290,1,"$LDDept:",$black);
  91. ImageString($im,4,295,9,$result['current_dept'],$black);
  92. ImageString($im,1,385,1,"$LDRoomNr:",$black);
  93. ImageString($im,4,390,9,$result['current_room'],$black);
  94. ImageString($im,1,480,1,"$LDAdmitType:",$black);
  95. ImageString($im,4,485,9,$result['encounter_type'],$black);
  96. ImageString($im,1,290,26,"$LDBday:",$black);
  97. ImageString($im,4,290,34,formatDate2Local($result['date_birth'],$date_format),$black);
  98. ImageString($im,1,385,26,"$LDSex:",$black);
  99. ImageString($im,4,425,34,strtoupper($result['sex']),$black);
  100. ImageString($im,1,480,26,"$LDCivilStat:",$black);
  101. ImageString($im,4,485,34,$result['civil_status'],$black);
  102. ImageString($im,1,290,51,"$LDPhone:",$black);
  103. ImageString($im,4,350,60,$result['phone_1_nr'],$black);
  104. ImageString($im,1,290,78,"$LDInsurance:",$black);
  105. ImageString($im,4,300,95,$result['insurance_co_id'],$black);
  106. ImageString($im,1,290,195,"$LDInsuranceNr:",$black);
  107. ImageString($im,4,360,195,$result['insurance_nr'],$black);
  108. // name & address
  109. ImageString($im,1,5,40,"$LDNameAddr:",$black);
  110. ImageString($im,3,10,70,$result['name_last'].', '.$result['name_first'],$black);
  111. //for($a=0,$l=90;$a<sizeof($addr);$a++,$l+=15) ImageString($im,3,10,$l,$addr[$a],$black);
  112. ImageString($im,3,10,90,$result['addr_str'].' '.$result['addr_str_nr'],$black);
  113. ImageString($im,3,10,105,$result['addr_zip'].' '.$result['name'],$black);
  114. // diagnosis, therapie,
  115. ImageString($im,3,10,225,$LDDiagnosis.': '.$result['referrer_diagnosis'],$black);
  116. ImageString($im,3,10,240,$LDRecBy.': '.$result['referrer'],$black);
  117. ImageString($im,3,10,255,$LDTherapy.': '.$result['referrer_recom_therapy'],$black);
  118. ImageString($im,3,10,270,$LDSpecials.': '.$result['referrer_notes'],$black);
  119. ImageString($im,3,10,285,$LDAdmitDiagnosis.': '.$result['referrer_diagnosis'],$black);
  120. ImageString($im,3,10,300,$LDInfo2.': '.$result[info2],$black);
  121. // -- print date, religion,
  122. ImageString($im,1,5,336,"$LDPrintDate:",$black);
  123. ImageString($im,4,5,343,formatDate2Local(date('Y-m-d'),$date_format),$black);
  124. ImageString($im,1,119,336,"$LDReligion:",$black);
  125. ImageString($im,4,119,343,$result['religion'],$black);
  126. ImageString($im,1,238,336,"$LDTherapyType:",$black);
  127. ImageString($im,4,238,343,$result[therapy_type],$black);
  128. ImageString($im,1,352,336,"$LDTherapyOpt:",$black);
  129. ImageString($im,4,352,343,$result[therapy_option],$black);
  130. ImageString($im,1,466,336,"$LDServiceType:",$black);
  131. ImageString($im,4,466,343,$result['service_type'],$black);
  132. # Bill payer information
  133. # Note: the address format is german
  134. #
  135. ImageString($im,1,5,145,"$LDBillInfo:",$black);
  136. }
  137. // place the barcode
  138. ImageCopy($im,$bc,110,28,9,9,170,37);
  139. if ($result['payer_other']=='')
  140. {
  141. if($ttf_render){
  142. ImageTTFText($im,12,0,10,170,$black,$arial,$result['name_last'].', '.$result['name_first']);
  143. ImageTTFText($im,12,0,10,185,$black,$arial,ucfirst($result['addr_str']).' '.$result['addr_str_nr']);
  144. ImageTTFText($im,12,0,10,200,$black,$arial,ucfirst($result['addr_zip']).' '.$result['name']);
  145. }else{
  146. ImageString($im,3,10,160,$result['name_last'].', '.$result['name_first'],$black);
  147. ImageString($im,3,10,175,$result['addr_str'].' '.$result['addr_str_nr'],$black);
  148. ImageString($im,3,10,190,$result['addr_zip'].' '.$result['name'],$black);
  149. }
  150. }
  151. else
  152. {
  153. $addr_buffer=nl2br($result['payer_other']);
  154. $addr_buffer=explode('<br>',$addr_buffer);
  155. for($i=0,$n=160;$i<sizeof($addr_buffer);$i++,$n+=15)
  156. {
  157. if($ttf_render){
  158. }else{
  159. ImageString($im,3,10,$n,trim($addr_buffer[$i]),$black);
  160. }
  161. }
  162. }
  163. // Contact person
  164. if($result['contact_person']!='')
  165. {
  166. //$addr_buffer=nl2br($result['contact_person']);
  167. $addr_buffer=str_replace("\r",', ',$result['contact_person']);
  168. $addr_buffer=str_replace("\n",'',$addr_buffer);
  169. ImageString($im,4,90,305,$addr_buffer,$black);
  170. }
  171. # Create the medium large labels
  172. // -- create label
  173. $label=ImageCreate(282,178);
  174. $ewhite = ImageColorAllocate ($label, 255,255,255); //white bkgrnd
  175. $elightgreen= ImageColorAllocate ($im, 205, 225, 236);
  176. $eblue=ImageColorAllocate($im, 0, 127, 255);
  177. $eblack = ImageColorAllocate ($label, 0, 0, 0);
  178. // place the barcode
  179. ImageCopy($label,$bc,101,4,9,9,170,37);
  180. if($ttf_ok){
  181. $tmargin=2;
  182. $lmargin=6;
  183. # Full encounter nr
  184. ImageTTFText($label,12,0,$lmargin,$tmargin+14,$eblack,$arial,$full_en);
  185. # Encounter admission date
  186. ImageTTFText($label,11,0,$lmargin,$tmargin+30,$eblack,$arial,formatDate2Local($result['encounter_date'],$date_format));
  187. # Family name, first name
  188. ImageTTFText($label,16,0,$lmargin,$tmargin+56,$eblack,$arial,$result['name_last'].', '.$result['name_first']);
  189. # Date of birth
  190. ImageTTFText($label,11,0,$lmargin,$tmargin+74,$eblack,$arial,formatDate2Local($result['date_birth'],$date_format));
  191. # Address street nr, street name
  192. ImageTTFText($label,11,0,$lmargin,$tmargin+93,$eblack,$arial,ucfirst($result['addr_str'].' '.$result['addr_str_nr']));
  193. # Address, zip, city/town name
  194. ImageTTFText($label,11,0,$lmargin,$tmargin+108,$eblack,$arial,ucfirst($result['addr_zip']).' '.$result['name']);
  195. # Sex
  196. ImageTTFText($label,14,0,$lmargin,$tmargin+130,$eblack,$arial,strtoupper($result['sex']));
  197. # Family name, repeat print
  198. ImageTTFText($label,14,0,$lmargin+30,$tmargin+130,$eblack,$arial,$result['name_last']);
  199. # Insurance co name
  200. ImageTTFText($label,14,0,$lmargin,$tmargin+150,$eblack,$arial,$ins_obj->getFirmName($result['insurance_firm_id']));
  201. # Location
  202. ImageTTFText($label,9,0,$lmargin,$tmargin+170,$eblack,$arial,$locstr);
  203. #Blood group
  204. if(stristr('AB',$result['blood_group'])){
  205. ImageTTFText($label,24,0,$lmargin+240,$tmargin+127,$eblack,$arial,$result['blood_group']);
  206. }else{
  207. ImageTTFText($label,24,0,$lmargin+245,$tmargin+127,$eblack,$arial,$result['blood_group']);
  208. }
  209. }else{ # Use system fonts
  210. # encounter number
  211. ImageString($label,4,2,2,$full_en,$black);
  212. # encounter date
  213. ImageString($label,2,2,18,formatDate2Local($result['encounter_date'],$date_format),$black);
  214. ImageString($label,5,10,40,$result['name_last'].', '.$result['name_first'],$black);
  215. ImageString($label,3,10,55,formatDate2Local($result['date_birth'],$date_format),$black);
  216. ImageString($label,4,10,75,$result['addr_str'].' '.$result['addr_str_nr'],$black);
  217. ImageString($label,4,10,90,$result['addr_zip'].' '.$result['name'],$black);
  218. ImageString($label,5,10,125,strtoupper($result['sex']),$black);
  219. ImageString($label,5,30,125,$result['name_last'],$black);
  220. ImageString($label,4,10,140,$ins_obj->getFirmName($result['insurance_firm_id']),$black);
  221. ImageString($label,3,10,160,$locstr,$black);
  222. #Blood group
  223. if(stristr('AB',$result['blood_group'])){
  224. ImageString($label,5,257,125,$result['blood_group'],$black);
  225. }else{
  226. ImageString($label,5,265,125,$result['blood_group'],$black);
  227. }
  228. }
  229. # -- create smaller label
  230. $label2=ImageCreate(173,133);
  231. $e2white = ImageColorAllocate ($label2, 255,255,255); //white bkgrnd
  232. $black = ImageColorAllocate ($label2, 0, 0, 0);
  233. # -- place barcode
  234. ImageCopy($label2,$bc,2,0,9,7,170,37);
  235. if($ttf_ok){
  236. ImageTTFText($label2,9,0,10,45,$black,$arial,$full_en);
  237. ImageTTFText($label2,9,0,105,45,$black,$arial,formatDate2Local($result['encounter_date'],$date_format));
  238. ImageTTFText($label2,11,0,10,60,$black,$arial,$result['name_last'].',');
  239. ImageTTFText($label2,11,0,10,75,$black,$arial,$result['name_first']);
  240. ImageTTFText($label2,11,0,10,95,$black,$arial,strtoupper($result['sex']));
  241. ImageTTFText($label2,10,0,50,95,$black,$arial,formatDate2Local($result['date_birth'],$date_format));
  242. ImageTTFText($label2,10,0,10,109,$black,$arial,$ins_obj->getFirmName($result['insurance_firm_id']));
  243. ImageTTFText($label2,9,0,10,124,$black,$arial,$locstr);
  244. }else{
  245. ImageString($label2,2,10,34,$full_en,$black);
  246. ImageString($label2,2,110,34,formatDate2Local($result['encounter_date'],$date_format),$black);
  247. ImageString($label2,4,10,50,$result['name_last'].',',$black);
  248. ImageString($label2,4,10,65,$result['name_first'],$black);
  249. ImageString($label2,4,10,85,strtoupper($result['sex']),$black);
  250. ImageString($label2,3,50,85,formatDate2Local($result['date_birth'],$date_format),$black);
  251. ImageString($label2,3,10,100,$result['insurance_co_id'],$black);
  252. ImageString($label2,2,10,115,$locstr,$black);
  253. }
  254. # ----- create smaller label without barcode
  255. $label3=ImageCreate(173,133);
  256. $e3white = ImageColorAllocate ($label3, 255,255,255); # white bkgrnd
  257. $black = ImageColorAllocate ($label3, 0, 0, 0);
  258. $addr1=$result['addr_str'].' '.$result['addr_str_nr'];
  259. $addr2= $result['addr_zip'].' - '.$result['name'];
  260. if($ttf_ok){
  261. ImageTTFText($label3,12,0,10,11,$black,$arial,$full_en);
  262. ImageTTFText($label3,9,0,110,11,$black,$arial,formatDate2Local($result['encounter_date'],$date_format));
  263. ImageTTFText($label3,12,0,10,34,$black,$arial,$result['name_last'].',');
  264. ImageTTFText($label3,12,0,10,49,$black,$arial,$result['name_first']);
  265. ImageTTFText($label3,10,0,10,64,$black,$arial,formatDate2Local($result['date_birth'],$date_format));
  266. ImageTTFText($label3,10,0,10,84,$black,$arial,$addr1);
  267. ImageTTFText($label3,10,0,10,99,$black,$arial,$addr2);
  268. }else{
  269. ImageString($label3,4,10,2,$full_en,$black);
  270. ImageString($label3,2,110,2,formatDate2Local($result['encounter_date'],$date_format),$black);
  271. ImageString($label3,4,10,25,$result['name_last'].',',$black);
  272. ImageString($label3,4,10,40,$result['name_first'],$black);
  273. ImageString($label3,2,10,55,formatDate2Local($result['date_birth'],$date_format),$black);
  274. ImageString($label3,2,10,75,$addr1,$black);
  275. ImageString($label3,2,10,90,$addr2,$black);
  276. }
  277. //-------------- place 6 labels
  278. for($i=0,$wi=359;$i<4;$i++,$wi+=179)
  279. {
  280. ImageCopy($im,$label,1,$wi,0,0,282,178);
  281. ImageCopy($im,$label,285,$wi,0,0,282,178);
  282. if(defined('DRAW_BORDER')&&DRAW_BORDER) ImageLine($im,0,$wi,569,$wi,$blue);
  283. }
  284. // --- place the smaller labels
  285. for($i=0,$j=1;$i<1080;$i+=135,$j++)
  286. {
  287. if($j>4) ImageCopy($im,$label2,570,$i+5,0,0,173,133);
  288. else ImageCopy($im,$label3,570,$i+5,0,0,173,133);
  289. if(defined('DRAW_BORDER')&&DRAW_BORDER) ImageLine($im,569,$i,$w-1,$i,$blue);
  290. }
  291. if(defined('DRAW_BORDER')&&DRAW_BORDER){
  292. ImageLine($im,0,0,$w-1,0,$blue);
  293. ImageLine($im,0,0,0,$h-1,$blue);
  294. ImageLine($im,0,$h-1,$w-1,$h-1,$blue);
  295. ImageLine($im,$w-1,0,$w-1,$h-1,$blue);
  296. ImageLine($im,569,0,569,$h-1,$blue);
  297. ImageLine($im,284,359,284,$h-1,$blue);
  298. }
  299. Imagepng ($im);
  300. // *******************************************************************
  301. // * comment the following one line if you want to deactivate caching of
  302. // * the barcode label image
  303. // *******************************************************************
  304. /*
  305. // START
  306. Imagepng ($im,"../cache/barcodes/pn_".$pn."_bclabel_".$lang.".png");
  307. // END
  308. */
  309. // Do not edit the following lines
  310. /* ImageDestroy ($label);
  311. ImageDestroy ($label2);
  312. ImageDestroy ($label3);*/
  313. /*
  314. }
  315. */
  316. ImageDestroy ($im);
  317. ?>