SPADT61400.xjs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name :
  4. * Job Name :
  5. * Creator :
  6. * Make Date : 2016-08-04
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2016-08-04 Live Converter TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. var sSndMsg = ""; //라벨출력내용
  16. var iPoint = 0; //라벨출력row
  17. var iCnt = 0; //라벨출력매수
  18. var iPageCnt = 1; //페이지번호 조회
  19. var PrnKind = "";
  20. var PrnMarginLeft = "";
  21. var PrnMarginTop = "";
  22. /**
  23. * 초기화
  24. */
  25. function fInit() {
  26. var sParam = opener.frmf_getParameter("params");
  27. dsf_setCSVToDs("ds_send_prcpinfo",sParam);
  28. dsf_makeValue(ds_send_prcpinfo,"prntflag","string","O");
  29. var oParam = {};
  30. oParam.id = "TRADT61301";
  31. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  32. oParam.method = "reqGetOutPrintLBLData";
  33. oParam.inds = "req=ds_send_prcpinfo";
  34. oParam.outds = "ds_main_lbllist=lbllist";
  35. oParam.async = false;
  36. oParam.callback = "cf_TRADT61301";
  37. tranf_submit(oParam);
  38. //fLBLPrint_knu("B");
  39. fLBLPrint();
  40. }
  41. function cf_TRADT61301(sSvcId, nErrorCode, sErrorMsg) {
  42. if(nErrorCode < 0) return;
  43. ds_main_prnt_lbllist.clear();
  44. dsf_copyColInfo(ds_main_prnt_lbllist,ds_main_lbllist);
  45. }
  46. /**
  47. *
  48. */
  49. function fStopTimer() {
  50. gTimer = 0;
  51. this.killTimer(0);
  52. }
  53. function fSleep(numberMillis) {
  54. var now = new Date();
  55. var exitTime = now.getTime() + numberMillis;
  56. while (true) {
  57. now = new Date();
  58. if (now.getTime() > exitTime) return;
  59. }
  60. }
  61. /**
  62. * 라벨출력
  63. */
  64. function fLBLPrint() {
  65. /*
  66. 라벨 Sorting 로직
  67. //mgt에서 vo로 리턴
  68. 대분류
  69. - 내복약, 외용약, 주사, 항암제, TPN, 마약,
  70. 중분류
  71. - 방법코드
  72. 소분류
  73. - 내복약,외용약(방법코드), 주사,마약,항암제(mix)
  74. web js 출력로직
  75. 1 약종류(내복약/주사약/외용약)
  76. 1.1 방법코드
  77. 1.2 처방수량
  78. */
  79. PrnKind = ds_data_setupinfo.getColumn(0,"prntkind");
  80. PrnMarginLeft = ds_data_blank.getColumn(0,"left");
  81. PrnMarginTop = ds_data_blank.getColumn(0,"top");
  82. var commkind = ds_data_setupinfo.getColumn(0,"commkind");
  83. for(iPoint = 0; iPoint < ds_main_lbllist.rowcount ; iPoint++){
  84. // 20110519_laboru_라벨출력여부에 따라
  85. var lblprntyn = ds_main_lbllist.getColumn(iPoint,"lblprntyn");
  86. if(lblprntyn == "N") {
  87. ds_main_lbllist.deleteRow(iPoint);
  88. } else {
  89. var sumcls = ds_main_lbllist.getColumn(iPoint,"sumcls");
  90. var mthdcd = ds_main_lbllist.getColumn(iPoint,"mthdcd");
  91. var prcpmixno = ds_main_lbllist.getColumn(iPoint,"prcpmixno"); // 20110414_laboru_경북대병원_분리번호가 단독 여부보다 먼저 체크 되어야 함.
  92. var atc_kind = ds_main_lbllist.getColumn(iPoint,"atc_drugkind");
  93. if (mthdcd == "ZZZ" || mthdcd == "A10PQ") { //기타용법이거나 '필요시 복용하십시오' 용법인 경우도 단독라벨출력
  94. sumcls = mthdcd;
  95. }
  96. if( fChkSumcls(iPoint) ){
  97. //단독라벨출력
  98. fIndependPrint();
  99. } else {
  100. //일반라벨출력
  101. fGnrlPrint();
  102. }
  103. }
  104. }
  105. iPageCnt = 0;
  106. rptf_printRexbar("RFADT61400", "", "/root/main/lbllist/lbllist", ds_main_lbllist, "", "lf_complete");
  107. }
  108. /**
  109. *
  110. */
  111. function fIndependPrint() {
  112. iPageCnt = ds_main_prnt_lbllist.addRow();
  113. ds_main_prnt_lbllist.copyRow(iPageCnt,ds_main_lbllist,iPoint);
  114. var drugkindnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugkindnm"));
  115. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpqty"));
  116. var dayqty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"dayprcpqty"));
  117. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpqtyunit"));
  118. var tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcptims"));
  119. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpdayno")); //처방일수
  120. var mthddayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"dayno")); //용법일수
  121. var packunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"packunit")); //약품마스터의 수량단위
  122. var modprcpqty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"modprcpqty")); // 20110425_laboru_수정된 1일 수량
  123. if(mthddayno == "" || mthddayno == 0) mthddayno = 1;
  124. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",tims+"회 "+(dayno*mthddayno)+"일분",iPageCnt);
  125. if (drugkindnm == "[주사약]"){
  126. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "주사");
  127. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  128. } else if (drugkindnm == "[외용약]"){
  129. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "외용");
  130. var val = ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts2")
  131. + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts3") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts4");
  132. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",val,iPageCnt);
  133. } else if (drugkindnm == "[내복약]"){
  134. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "내복");
  135. var val = ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts2") + " "
  136. + ds_main_lbllist.getColumn(iPoint,"mthdcnts3") ;
  137. var strchk = val.substring(val.length - 1, val.length);
  138. if(strchk == "후" || strchk == "시" || strchk == "간" || strchk == "중" || strchk == "분") {
  139. val += "에 ";
  140. } else {
  141. val += " ";
  142. }
  143. var sumcls = ds_main_lbllist.getColumn(iPoint,"sumcls");
  144. if(modprcpqty != qty) {
  145. qty = modprcpqty; // 20110425_laboru_경북대병원_원처방 수량과 수정된 처방 수량이 다르면 수정된 것으로 출력함
  146. }
  147. if( sumcls == "DM" || sumcls == "DS" || sumcls == "DT" || sumcls == "DX" || sumcls == "DG" ){ //20091110 이선경 수정 : 라벨그룹이 마약(경구), 수제, ptp, 기타약일경우 약품마스터의 수량단위를 출력 20110512_laboru_pack 추가
  148. var tmpqty = Math.round(qty * 10) / 10;
  149. if(packunit == "T" || packunit == "C") {
  150. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",val + " " +fChkFloat(qty)+"정씩 " + ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  151. } else {
  152. if(packunit == "cap" || packunit == "tab") {
  153. packunit = "알"; // 20110413_laboru_경북대병원_단위가 cap, tab 일때 알로 바꾸기
  154. }
  155. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",val + " " +fChkFloat(tmpqty)+ packunit +"씩 " + ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  156. }
  157. } else {
  158. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",val + " " +fChkFloat(qty)+"포[정]씩 " + ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  159. }
  160. }
  161. var lblcnts1 = ds_main_lbllist.getColumn(iPoint,"lblcnts1");
  162. dsf_makeValue(ds_main_prnt_lbllist,"lblcnts1","string",lblcnts1,iPageCnt);
  163. var prcpqty = ds_main_lbllist.getColumn(iPoint,"totdrugqty")/ds_main_lbllist.getColumn(iPoint,"prcptims");
  164. prcpqty = Math.ceil( prcpqty * tims*1000)/1000 ;
  165. var val = ds_main_lbllist.getColumn(iPoint,"prcpnm") + " "
  166. + qty + " " +
  167. + tims + " " +
  168. + dayno + " " +
  169. + Math.round(qty*tims*dayno*1000)/1000 ;
  170. dsf_makeValue(ds_main_prnt_lbllist,"drug1","string",val,iPageCnt);
  171. // iPageCnt++;
  172. }
  173. /**
  174. *
  175. */
  176. function fGnrlPrint() {
  177. iPageCnt = ds_main_prnt_lbllist.addRow();
  178. ds_main_prnt_lbllist.copyRow(iPageCnt,ds_main_lbllist,iPoint);
  179. var drugkindnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugkindnm"));
  180. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpqty")); //회수량
  181. var dayqty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"dayprcpqty")); //일수량
  182. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpqtyunit")); //수량단위
  183. var tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcptims")); //횟수
  184. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpdayno")); //처방일수
  185. var mthddayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"dayno")); //용법일수
  186. var packunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"packunit")); //약품마스터의 수량단위
  187. var drugkind1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugkindnm"));
  188. var dayno1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpdayno"));
  189. var mthd1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthd1"));
  190. var mthd2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthd2"));
  191. var mthd3 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthd3"));
  192. var mthdcd1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthdcd"));
  193. var mthdcdfive1 = mthdcd1.substring(4,5);
  194. var mthdcdthree1 = 0;
  195. var cntpatt1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"cntpatt"));
  196. var mthdcntsno = iPageCnt;
  197. var mthdcnts_end = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthdcnts3"));
  198. var mthdcd5nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"mthdcd5nm")); //약품코드5번째자리명칭 (용법세분류)
  199. var prcpmixno1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpmixno"));
  200. if (drugkindnm == "[주사약]"){
  201. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "주사");
  202. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  203. if(mthddayno == "" || mthddayno == 0) mthddayno = 1;
  204. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",tims+"회 "+(dayno*mthddayno)+"일분",iPageCnt);
  205. } else if (drugkindnm == "[외용약]"){
  206. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "외용");
  207. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + ds_main_lbllist.getColumn(iPoint,"mthdcnts2")
  208. + ds_main_lbllist.getColumn(iPoint,"mthdcnts3") + ds_main_lbllist.getColumn(iPoint,"mthdcnts4"),iPageCnt);
  209. if(mthddayno == "" || mthddayno == 0) mthddayno = 1;
  210. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",tims+"회 "+(dayno*mthddayno)+"일분",iPageCnt);
  211. } else if (drugkindnm == "[내복약]"){
  212. ds_main_prnt_lbllist.setColumn(iPageCnt,"drugkindnm", "내복");
  213. var lbltims = 0;
  214. var mthdcnts = "";
  215. var mthdcnts1 = 0; //아침
  216. var mthdcnts2 = 0; //점심
  217. var mthdcnts3 = 0; //저녁
  218. var mthdcnts4 = 0; //취침전
  219. var mthdcnts5 = 0; //특수용법
  220. var mthdtims = 0; //용법횟수
  221. lbl_tims = mthd2.split(",");
  222. if ( mthdcd1 == "ZZZ" ){
  223. lbltims = tims;
  224. } else if ( mthd3.indexOf("취침") > -1 ) {
  225. lbltims = lbl_tims.length +1;
  226. } else if(mthd2.indexOf("마다") > -1){
  227. lbltims = ds_main_lbllist.getColumn(iPoint,"prcptims");
  228. } else {
  229. lbltims = lbl_tims.length;
  230. }
  231. tims = lbltims;
  232. if(mthddayno == "" || mthddayno == 0) { mthddayno = 1;};
  233. if(lbltims == 1) {
  234. if(mthd2.indexOf("마다") == -1) {
  235. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",lbltims+ "회 " +(dayno * mthddayno)+"일분",iPageCnt);
  236. } else {
  237. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",tims+ "회 " +(dayno*mthddayno)+"일분",iPageCnt);
  238. }
  239. } else {
  240. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",lbltims+ "회 " +(dayno*mthddayno)+"일분",iPageCnt);
  241. }
  242. mthdcnts_end = ds_main_lbllist.getColumn(iPoint,"mthdcnts3");
  243. if(cntpatt1.substring(0,1) == "1" && mthdcnts1 == 0) {//아침
  244. mthdcnts1++;
  245. mthdtims++;
  246. }
  247. if(cntpatt1.substring(1,2) == "1" && mthdcnts2 == 0) {//점심
  248. mthdcnts2++;
  249. mthdtims++;
  250. }
  251. if(cntpatt1.substring(2,3) == "1" && mthdcnts3 == 0) {//저녁
  252. mthdcnts3++;
  253. mthdtims++;
  254. }
  255. if(cntpatt1.substring(3,4) == "1" && mthdcnts4 == 0) {//취침전
  256. mthdcnts4++;
  257. mthdtims++;
  258. }
  259. if(cntpatt1.substring(4,5) == "1") {//특수용법
  260. mthdcnts5++;
  261. }
  262. if(mthdtims == 0) {
  263. mthdtims = tims;
  264. }
  265. var drugcnt = 1;
  266. for(var j = iPoint; j < ds_main_lbllist.rowcount; j++){
  267. var drugkind2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"drugkindnm"));
  268. var dayno2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpdayno"));
  269. var mthd4 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"mthd1"));
  270. var mthd5 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"mthd2"));
  271. var mthd6 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"mthd3"));
  272. var mthdcd2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"mthdcd"));
  273. var atc_drugkind = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"atc_drugkind"));
  274. var mthdcdfive2 = mthdcd2.substring(4,5);
  275. var prcptims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcptims"));
  276. var cntpatt2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"cntpatt"));
  277. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpqty")); // 20110413_laboru_경북대병원 1 회수량
  278. var prcpmixno2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpmixno"));
  279. if( atc_drugkind == "p") {
  280. if(dayno1 == dayno2 && (mthdcd1 == mthdcd2 || (mthdcdfive1 == "P" && (mthdcd2 == "A11D" || mthdcd2 == "A11DI") ) ) && prcpmixno1 == prcpmixno2) {
  281. //20110102 이선경 수정 : 라벨출력시 묶어주는 기준은 용법코드 5번째자리(식후30분후..)와 일수
  282. //예외적으로 일수가 같고 식후30분과 취침전용법은 같이 묶어줌
  283. var prcpqty = ds_main_lbllist.getColumn(j,"totdrugqty")/ds_main_lbllist.getColumn(j,"prcptims");
  284. prcpqty = Math.ceil( prcpqty * tims*1000)/1000 ;
  285. //용법코드의 아침, 점심, 저녁, 취침전 출력
  286. if(cntpatt2.substring(0,1) == "1" && mthdcnts1 == 0) {
  287. mthdcnts1++;
  288. mthdtims++;
  289. }
  290. if(cntpatt2.substring(1,2) == "1" && mthdcnts2 == 0) {
  291. mthdcnts2++;
  292. mthdtims++;
  293. }
  294. if(cntpatt2.substring(2,3) == "1" && mthdcnts3 == 0) {
  295. mthdcnts3++;
  296. mthdtims++;
  297. }
  298. if(cntpatt2.substring(3,4) == "1" && mthdcnts4 == 0) {
  299. mthdcnts4++;
  300. mthdtims++;
  301. }
  302. //용법코드의 최대횟수 출력함
  303. if(mthdtims == 0) mthdtims = 1;
  304. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",mthdtims+ "회 " +(dayno*mthddayno)+"일분",iPageCnt);
  305. var val = ds_main_lbllist.getColumn(j,"prcpnm") + " "
  306. + qty + " " +
  307. + prcptims + " " +
  308. + dayno2 + " " +
  309. + Math.round(qty*prcptims*dayno2*1000)/1000 ;
  310. dsf_makeValue(ds_main_prnt_lbllist,"drug" + drugcnt,"string",val,iPageCnt);
  311. drugcnt++;
  312. iPoint = j;
  313. } else {
  314. // iPageCnt++;
  315. iPoint = j - 1;
  316. break;
  317. }
  318. } else if((mthdcdfive1 == mthdcdfive2 && dayno1 == dayno2 && !( fChkSumcls(j) && atc_drugkind != "p") && prcpmixno1 == prcpmixno2) // fChkSumcls(j) &&
  319. || (dayno1 == dayno2 && mthdcdfive1 == "P" && (mthdcd2 == "A11D" || mthdcd2 == "A11DI") && prcpmixno1 == prcpmixno2) ) { // 20110412_laboru_경북대병원_아침 식후 30분 + 취침전
  320. // || (dayno1 == dayno2 && mthdcdfive2 == "P" && mthdcd1 == "A11D" && prcpmixno1 == prcpmixno2) ) { // 20110412_laboru_경북대병원_취침전 + 아침 식후 30분
  321. //20110102 이선경 수정 : 라벨출력시 묶어주는 기준은 용법코드 5번째자리(식후30분후..)와 일수
  322. //예외적으로 일수가 같고 식후30분과 취침전용법은 같이 묶어줌
  323. var prcpqty = ds_main_lbllist.getColumn(j,"totdrugqty")/ds_main_lbllist.getColumn(j,"prcptims");
  324. prcpqty = Math.ceil( prcpqty * tims*1000)/1000 ;
  325. //용법코드의 아침, 점심, 저녁, 취침전 출력
  326. if(cntpatt2.substring(0,1) == "1" && mthdcnts1 == 0) {
  327. mthdcnts1++;
  328. mthdtims++;
  329. }
  330. if(cntpatt2.substring(1,2) == "1" && mthdcnts2 == 0) {
  331. mthdcnts2++;
  332. mthdtims++;
  333. }
  334. if(cntpatt2.substring(2,3) == "1" && mthdcnts3 == 0) {
  335. mthdcnts3++;
  336. mthdtims++;
  337. }
  338. if(cntpatt2.substring(3,4) == "1" && mthdcnts4 == 0) {
  339. mthdcnts4++;
  340. mthdtims++;
  341. }
  342. //용법코드의 최대횟수 출력함
  343. if(mthdtims == 0) mthdtims = 1;
  344. dsf_makeValue(ds_main_prnt_lbllist,"drugmthd","string",mthdtims+ "회 " +(dayno*mthddayno)+"일분",iPageCnt);
  345. var val = ds_main_lbllist.getColumn(j,"prcpnm") + " "
  346. + qty + " " +
  347. + prcptims + " " +
  348. + dayno2 + " " +
  349. + Math.round(qty*prcptims*dayno2*1000)/1000 ;
  350. dsf_makeValue(ds_main_prnt_lbllist,"drug" + drugcnt,"string",val,iPageCnt);
  351. drugcnt++;
  352. iPoint = j;
  353. } else {
  354. // iPageCnt++;
  355. iPoint = j - 1;
  356. break;
  357. }
  358. if(drugcnt == 17){
  359. // iPageCnt++;
  360. iPoint = j - 1;
  361. break;
  362. }
  363. }
  364. /*
  365. 아침, 점심, 저녁, 취침전 찍지 않는 예외 용법
  366. 1. 횟수 패턴 5번째 자리값이 1인 경우
  367. 2. 용법코드 4번째 자리값이 E (시간마다) 인 경우
  368. 3. 용법코드 4번째 자리값이 D (의사지시대로) 인 경우
  369. 4. 용법코드 5번째 자리값이 Q (의사지시대로) 인 경우
  370. */
  371. if(mthdcnts5 > 0 || mthdcd1.substring(3,4) == "E" || (mthdcd1.substring(3,4) == "D" && mthdcnts4 < 1) || mthdcd1.substring(4,5) == "Q") {
  372. mthdcnts = ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts2") + " "
  373. + ds_main_lbllist.getColumn(iPoint,"mthdcnts3");
  374. } else {
  375. if(mthdcnts1 > 0) {
  376. mthdcnts = "아침 ";
  377. }
  378. if(mthdcnts2 > 0) {
  379. mthdcnts += "점심 ";
  380. }
  381. if(mthdcnts3 > 0) {
  382. mthdcnts += "저녁 ";
  383. }
  384. if(mthdcdfive1 == "P" ) {
  385. mthdcnts += "식후30분"; // 20110412_laboru_
  386. }
  387. if(mthdcdfive1 == "I" ) {
  388. mthdcnts += "식후즉시"; // 20110412_laboru_
  389. }
  390. if(mthdcdfive1 == "B" ) {
  391. mthdcnts += "식전10분"; // 20110412_laboru_
  392. }
  393. if(mthdcdfive1 == "A" ) {
  394. mthdcnts += "식전30분"; // 20110412_laboru_
  395. }
  396. if(mthdcdfive1 == "C" ) {
  397. mthdcnts += "식전1시간"; // 20110412_laboru_
  398. }
  399. if(mthdcdfive1 == "D" ) {
  400. mthdcnts += "식전2시간"; // 20110412_laboru_
  401. }
  402. if(mthdcdfive1 == "E" ) {
  403. mthdcnts += "공복"; // 20110412_laboru_
  404. }
  405. if(mthdcdfive1 == "M" ) {
  406. mthdcnts += "식사도중"; // 20110412_laboru_
  407. }
  408. if(mthdcdfive1 == "W" ) {
  409. mthdcnts += "식사와 함께"; // 20110412_laboru_
  410. }
  411. if(mthdcdfive1 == "T" ) {
  412. mthdcnts += "식후2시간"; // 20110412_laboru_
  413. }
  414. if(mthdcnts_end == "취침전에") {
  415. //mthdcnts += mthdcd5nm;
  416. } else {
  417. //mthdcnts += mthdcnts_end;
  418. }
  419. if(mthdcnts4 > 0) {
  420. if(!utlf_isNull(mthdcnts)) {
  421. mthdcnts += "과 취침전에 ";
  422. } else {
  423. mthdcnts = ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts2") + " "
  424. + ds_main_lbllist.getColumn(iPoint,"mthdcnts3");
  425. }
  426. } else {
  427. mthdcnts += "에 ";
  428. }
  429. }
  430. for(var p = mthdcntsno ; p < ds_main_prnt_lbllist.rowcount ; p++){
  431. if(utlf_isNull(mthdcnts)) {
  432. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",ds_main_lbllist.getColumn(iPoint,"mthdcnts1") + " " + ds_main_lbllist.getColumn(iPoint,"mthdcnts2") + " "
  433. +ds_main_lbllist.getColumn(p,"mthdcnts3") + ds_main_lbllist.getColumn(p,"mthdcnts4"),p);
  434. } else {
  435. dsf_makeValue(ds_main_prnt_lbllist,"drugmthddesc","string",mthdcnts + " 1포씩 " + ds_main_lbllist.getColumn(p,"mthdcnts4"),p);
  436. }
  437. }
  438. mthdcnts = "";
  439. }
  440. }
  441. /**
  442. *
  443. */
  444. function fGetImage() {
  445. var pImage = "";
  446. iImageCnt++;
  447. if(iImageCnt > 99){
  448. pImage = "GRAPH"+iImageCnt;
  449. } else if(iImageCnt > 9){
  450. pImage = "GRAPH0"+iImageCnt;
  451. } else {
  452. pImage = "GRAPH00"+iImageCnt;
  453. }
  454. return pImage
  455. }
  456. /**
  457. *
  458. */
  459. function fDateFormat(sDD) {
  460. return sDD.substr(0,4)+"/"+sDD.substr(4,2)+"/"+sDD.substr(6,2);
  461. }
  462. /**
  463. *
  464. */
  465. function fChkFloat(qty) {
  466. var fQty = parseFloat(qty);
  467. var fRst = "";
  468. if(fQty%1 == 0){
  469. fRst = parseInt(qty);
  470. } else {
  471. fRst = qty;
  472. }
  473. return fRst;
  474. }
  475. /**
  476. *
  477. */
  478. function fChkSumcls(cnt) {
  479. var chk = false;
  480. var sSumcls = ds_main_lbllist.getColumn(cnt,"sumcls");
  481. var sSnglyn = ds_main_lbllist.getColumn(cnt,"atcifsnglyn");
  482. var sDrugindependpackflag = ds_main_lbllist.getColumn(cnt,"drugindependpackflag");
  483. if(sSumcls == "DI" || sSumcls == "DS"|| sSumcls == "DX"|| sSumcls == "DT" || sSumcls == "DM" || sSumcls == "IH"|| sSumcls == "IO" || sSumcls == "DG" //20110512_laboru_pack 추가
  484. || sSumcls == "IS"|| sSumcls == "IX"|| sSumcls == "X" || sSumcls == "ZZZ" || sSumcls == "A10PQ" || sSumcls == "I"){
  485. chk = true;
  486. }
  487. if ( sSumcls == "D" && sSnglyn =="Y" ) {
  488. chk = true;
  489. }
  490. if ( sDrugindependpackflag =="Y"){
  491. chk = true;
  492. }
  493. return chk;
  494. }
  495. function fPrntTime(sDD, sTM) {
  496. if(PrnKind == "2") {
  497. return sDD.substr(4,2)+"/"+sDD.substr(6,2)+" "+sTM.substr(0,2)+":"+sTM.substr(2,2)+":"+sTM.substr(4,2);
  498. } else {
  499. return sDD.substr(4,2)+" / "+sDD.substr(6,2)+" "+sTM.substr(0,2)+":"+sTM.substr(2,2)+":"+sTM.substr(4,2);
  500. }
  501. }
  502. function lf_complete() {
  503. this.close();
  504. }]]></Script>