SPADT61200.xjs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /**
  4. * 초기화
  5. */
  6. function fInit() {
  7. var opener_ID = opener.frmf_getParameter("opener_ID");
  8. var sParam = opener.frmf_getParameter("params");
  9. dsf_setCSVToDs("ds_send_prcpinfo",sParam);
  10. sysf_trace(ds_send_prcpinfo.saveXML());
  11. // alert(opener.frmf_getParameter("pid")) ;
  12. // dsf_makeValue(ds_send_prcpinfo,"drugdd" ,"string", opener.frmf_getParameter("drugdd"));
  13. // dsf_makeValue(ds_send_prcpinfo,"drugno" ,"string", opener.frmf_getParameter("drugno"));
  14. //dsf_makeValue(ds_send_prcpinfo,"pid" ,"string", opener.frmf_getParameter("pid"));
  15. // dsf_makeValue(ds_send_prcpinfo,"orddd" ,"string", opener.frmf_getParameter("orddd"));
  16. //dsf_makeValue(ds_send_prcpinfo,"cretno" ,"string", opener.frmf_getParameter("cretno"));
  17. //dsf_makeValue(ds_send_prcpinfo,"orddeptcd" ,"string", opener.frmf_getParameter("orddeptcd"));
  18. //dsf_makeValue(ds_send_prcpinfo,"prcpgenrflag" ,"string", opener.frmf_getParameter("prcpgenrflag"));
  19. //dsf_makeValue(ds_send_prcpinfo,"autoinprntyn" ,"string", opener.frmf_getParameter("reprintyn"));
  20. //dsf_makeValue(ds_send_prcpinfo,"reprintyn" ,"string", opener.frmf_getParameter("reprintyn"));
  21. //dsf_makeValue(ds_send_prcpinfo,"stocdeptcd" ,"string", opener.frmf_getParameter("stocdeptcd"));
  22. dsf_makeValue(ds_send_prcpinfo,"ioflag" ,"string","O");
  23. dsf_makeValue(ds_send_prcpinfo,"prntflag" ,"string","O");
  24. // alert(ds_send_prcpinfo.getColumn(0,"pid"));
  25. //alert(ds_send_prcpinfo);
  26. //var sParam = model.getAttribute("params");
  27. //model.makeValue("/root/send/prcpinfo/drugdd", astfMatrixData(sParam, 1, 0));
  28. //model.makeValue("/root/send/prcpinfo/drugno", astfMatrixData(sParam, 1, 1));
  29. //model.makeValue("/root/send/prcpinfo/ioflag", "O");
  30. //model.makeValue("/root/send/prcpinfo/pid", astfMatrixData(sParam, 1, 2));
  31. //model.makeValue("/root/send/prcpinfo/orddd", astfMatrixData(sParam, 1, 3));
  32. //model.makeValue("/root/send/prcpinfo/cretno", astfMatrixData(sParam, 1, 4));
  33. //model.makeValue("/root/send/prcpinfo/orddeptcd", astfMatrixData(sParam, 1, 5));
  34. //model.makeValue("/root/send/prcpinfo/prcpgenrflag", astfMatrixData(sParam, 1, 6));
  35. //model.makeValue("/root/send/prcpinfo/autoinprntyn", astfMatrixData(sParam, 1, 7));
  36. //model.makeValue("/root/send/prcpinfo/reprintyn", astfMatrixData(sParam, 1, 8));
  37. //model.makeValue("/root/send/prcpinfo/stocdeptcd", astfMatrixData(sParam, 1, 9)); // 2009.09.08 pymi
  38. //model.makeValue("/root/send/prcpinfo/prntflag", "O");
  39. //model.refresh();
  40. //submit("TRADT61201");
  41. var oParam = {};
  42. oParam.id = "TRADT61201";
  43. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  44. oParam.method = "reqGetOutPrintData";
  45. oParam.inds = "req=ds_send_prcpinfo";
  46. oParam.outds = "ds_main_prcpdata_patinfo=patinfo ds_main_prcpdata_diaginfo=diaginfo ds_main_prcpdata_sumlist=sumlist ds_main_prcpdata_resn=resn";
  47. oParam.async = false;
  48. // oParam.callback = "cf_TRADT61201";
  49. tranf_submit(oParam);
  50. //20101102 이선경 수정 : 일일기준과 1회 기준의 용량과 수량을 보여주는 것을 결정하여 결과를 리턴
  51. var colHidnValue = lf_grdBaseColHidn("D");
  52. //var colHidnValue = grdBaseColHidn("D");
  53. //1회 기준
  54. if( colHidnValue == "C") {
  55. dsf_makeValue(ds_main_prcpdata_patinfo,"prcpqty2chk" ,"string","Y");
  56. //model.makeValue("/root/main/prcpdata/patinfo/prcpqty2chk", "Y");
  57. }
  58. //if(model.getValue("/root/main/prcpdata/patinfo/pid") != ""){
  59. if (!utlf_isNull(ds_main_prcpdata_patinfo.getColumn(0,"pid"))) {
  60. // 20100202_laboru_RFADT61200 리포트에서 memo 의 가로 크기를 늘이려면 아래 수치 변경 필요.
  61. //var memo = model.getValue("/root/main/prcpdata/patinfo/memo");
  62. var memo = utlf_transNullToEmpty(ds_main_prcpdata_patinfo.getColumn(0,"memo"));
  63. var memoCnt = 0;
  64. var lineCnt = 0;
  65. var pageCnt = 0;
  66. var strMemo = "";
  67. var tempStr = "";
  68. var tempStr2 = "";
  69. var nextMemo = "";
  70. var strFlag = "N";
  71. if ( memo.indexOf("\n", lineCnt ) >=0){
  72. while ( (memoCnt = memo.indexOf("\n", lineCnt ))>=0){
  73. if( pageCnt < 3) {
  74. if (lineCnt == 0) {
  75. strMemo = strMemo + memo.substring( lineCnt, memoCnt );
  76. if(getByteLength(strMemo) > 78 && getByteLength(strMemo) <= 157) {
  77. pageCnt++;
  78. } else if(getByteLength(strMemo) > 157 && getByteLength(strMemo) <= 239) {
  79. pageCnt = pageCnt + 2;
  80. } else if(getByteLength(strMemo) > 239 ) {
  81. pageCnt = 100;
  82. strFlag = "1";
  83. }
  84. } else {
  85. tempStr = memo.substring( lineCnt, memoCnt ) ;
  86. if(pageCnt > 1) {
  87. if(getByteLength(tempStr) > 74 ) {
  88. if(memo.indexOf("\n", memoCnt + 1 ) < 0 ) {
  89. pageCnt = 100;
  90. strFlag = "2";
  91. } else {
  92. strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 74);
  93. nextMemo = fnGetByte(tempStr, 74, getByteLength(tempStr)) + "\n";
  94. }
  95. } else if(getByteLength(tempStr) <= 74) {
  96. strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
  97. }
  98. } else {
  99. if(getByteLength(tempStr) <= 78) {
  100. strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
  101. } else if(getByteLength(tempStr) > 78 && getByteLength(tempStr) <= 155) {
  102. strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
  103. pageCnt++;
  104. } else if(getByteLength(tempStr) > 155) {
  105. strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 155);
  106. nextMemo = fnGetByte(tempStr, 155, getByteLength(tempStr)) ;
  107. pageCnt = pageCnt +2;
  108. }
  109. }
  110. }
  111. } else {
  112. if (pageCnt == 3) {
  113. nextMemo = nextMemo + memo.substring( lineCnt, memoCnt );
  114. } else if(pageCnt > 3 && pageCnt < 10) {
  115. nextMemo = nextMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
  116. }
  117. }
  118. lineCnt = memoCnt + 1;
  119. pageCnt++;
  120. }
  121. if(strFlag == "1") {
  122. strMemo = fnGetByte(memo,0, 239);
  123. nextMemo = fnGetByte(memo, 239, getByteLength(memo));
  124. } else if(strFlag == "2") {
  125. var line2temp = memo.substring( lineCnt, memo.length );
  126. strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 78);
  127. nextMemo = fnGetByte(tempStr, 78, getByteLength(tempStr));
  128. nextMemo = nextMemo + "\n" + line2temp;
  129. } else if(strFlag == "3") {
  130. strMemo = strMemo + "\n" + tempStr.substring(0, 40);
  131. nextMemo = tempStr.substring(40, 500);
  132. nextMemo = nextMemo + "\n" + memo.substring(lineCnt,500);
  133. } else if(strFlag == "N") {
  134. if ( (lineCnt < memo.length) ) {
  135. nextMemo = nextMemo + "\n" + memo.substring( lineCnt, memo.length );
  136. }
  137. }
  138. } else {
  139. strMemo = memo;
  140. }
  141. //model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
  142. ds_main_prcpdata_patinfo.setColumn(0, "memo", strMemo);
  143. //model.makeValue("/root/main/prcpdata/patinfo/memo1", nextMemo);
  144. dsf_makeValue(ds_main_prcpdata_patinfo,"memo1","string",nextMemo);
  145. //처방전에 DUR이 존재하면 RFADT61203 존재하지 않으면 RFADT61200 출력
  146. //var resn = model.getValue("/root/main/prcpdata/resn/resnnm");
  147. var resn = ds_main_prcpdata_resn.getColumn(0,"resnnm")
  148. //alert("resn : " +resn);
  149. // 20101106_wify_경북대병원_주민번호 뒷자리 별표 처리
  150. //var rrgstno = model.getValue("/root/main/prcpdata/patinfo/rrgstno").split("-");
  151. var rrgstno = utlf_transNullToEmpty(ds_main_prcpdata_patinfo.getColumn(0,"rrgstno")).split("-");
  152. //model.setValue("/root/main/prcpdata/patinfo/rrgstno", rrgstno[0] + "-" + rrgstno[1].substring(0, 1) + "******");
  153. ds_main_prcpdata_patinfo.setColumn(0, "rrgstno", rrgstno[0] + "-" + rrgstno[1].substring(0, 1) + "******");
  154. // 20101117_wify_경북대병원_보고서폼 변경 처리
  155. // RFADT61200 ==> RFADT61204
  156. // RFADT61201 ==> RFADT61207
  157. // RFADT61203 ==> RFADT61206
  158. // sysf_trace("===================================");
  159. // sysf_trace(resn);
  160. // sysf_trace(nextMemo);
  161. // sysf_trace(pageCnt);
  162. // sysf_trace("===================================");
  163. if( utlf_isNull(resn) ){
  164. if ( !utlf_isNull(nextMemo)) {
  165. if(pageCnt >= 3) {
  166. //makeReportPreview(0,0,10, 10, "grp_report1");
  167. //exeReportPreview("RFADT61204", "XMLSTR","","","true","","","","","","","grp_report1");
  168. //makeReportPreview(0,0,10, 10, "grp_report2");
  169. //exeReportPreview("RFADT61207", "XMLSTR","","","true","","","","","","","grp_report2");
  170. var objDOM = rptf_createDOM(); // DOM 객체 설정
  171. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  172. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  173. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  174. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  175. var objParam = new Object();
  176. objParam.xml_data_XML1 = objDOM.documentElement.source;
  177. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  178. //rptf_exeReportPreview30(["RFADT61204"],[objParam], option, "", "grp_report1");
  179. // rptf_exeReportPreview30(["RFADT61204"],[objParam], option);
  180. //rptf_exeReportPreview30(["RFADT61207"],[objParam], option, "", "grp_report2");
  181. // rptf_exeReportPreview30(["RFADT61207"],[objParam], option);
  182. rptf_exeReportPreview30(["RFADT61204","RFADT61207"],[objParam], option);
  183. } else {
  184. strMemo = strMemo + nextMemo;
  185. sysf_trace(strMemo);
  186. //model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
  187. ds_main_prcpdata_patinfo.setColumn(0, "rrgstno", strMemo);
  188. //makeReportPreview(0,0,10, 10, "grp_report1");
  189. //exeReportPreview("RFADT61204", "XMLSTR","","","true","","","","","","","grp_report1");
  190. var objDOM = rptf_createDOM(); // DOM 객체 설정
  191. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  192. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  193. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  194. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  195. var objParam = new Object();
  196. objParam.xml_data_XML1 = objDOM.documentElement.source;
  197. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  198. //rptf_exeReportPreview30(["RFADT61204"],[objParam], option, "", "grp_report1");
  199. rptf_exeReportPreview30(["RFADT61204"],[objParam], option);
  200. }
  201. } else {
  202. //makeReportPreview(0,0,10, 10);
  203. //exeReportPreview("RFADT61204", "XMLSTR", "", "", "true","","","","","true");
  204. //sysf_trace("asdf");
  205. var objDOM = rptf_createDOM(); // DOM 객체 설정
  206. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  207. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  208. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  209. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  210. var objParam = new Object();
  211. objParam.xml_data_XML1 = objDOM.documentElement.source;
  212. //var option = "open=1;save=1;directprint=0;print=1;zoom=0;show=0;";sysf_trace("absdf");
  213. //var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  214. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  215. //rptf_exeReportPreview30([rexid],[objParam], option);
  216. //rptf_exeReportPreview30(["RFADT61204"],[objParam], option, "", "grp_report1");
  217. rptf_exeReportPreview30(["RFADT61204"],[objParam], option);
  218. }
  219. }else{
  220. if ( !utlf_isNull(nextMemo) ) {
  221. if(pageCnt >= 3) {
  222. //makeReportPreview(0,0,10, 10, "grp_report1");
  223. //exeReportPreview("RFADT61206", "XMLSTR","","","true","","","","","","","grp_report1");
  224. //makeReportPreview(0,0,10, 10, "grp_report2");
  225. //exeReportPreview("RFADT61207", "XMLSTR","","","true","","","","","","","grp_report2");
  226. var objDOM = rptf_createDOM(); // DOM 객체 설정
  227. var objDOM2 = rptf_createDOM(); // DOM 객체 설정
  228. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  229. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  230. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  231. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  232. rptf_setNodeListToDOM(objDOM2, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  233. var objParam = new Object();
  234. objParam.xml_data_XML1 = objDOM.documentElement.source;
  235. objParam.xml_data_XML2 = objDOM2.documentElement.source;
  236. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  237. //rptf_exeReportPreview30(["RFADT61206"],[objParam], option, "", "grp_report1");
  238. // rptf_exeReportPreview30(["RFADT61206"],[objParam], option);
  239. //rptf_exeReportPreview30(["RFADT61207"],[objParam], option, "", "grp_report2");
  240. // rptf_exeReportPreview30(["RFADT61207"],[objParam], option);
  241. rptf_exeReportPreview30(["RFADT61206","RFADT61207"],[objParam], option);
  242. } else {
  243. strMemo = strMemo + nextMemo;
  244. //model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
  245. ds_main_prcpdata_patinfo.setColumn(0, "rrgstno", strMemo);
  246. //makeReportPreview(0,0,10, 10, "grp_report1");
  247. //exeReportPreview("RFADT61206", "XMLSTR","","","true","","","","","","","grp_report1");
  248. var objDOM = rptf_createDOM(); // DOM 객체 설정
  249. var objDOM2 = rptf_createDOM(); // DOM 객체 설정
  250. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  251. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  252. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  253. rptf_setNodeListToDOM(objDOM2, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  254. var objParam = new Object();
  255. objParam.xml_data_XML1 = objDOM.documentElement.source;
  256. objParam.xml_data_XML2 = objDOM2.documentElement.source;
  257. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  258. //rptf_exeReportPreview30(["RFADT61206"],[objParam], option, "", "grp_report1");
  259. rptf_exeReportPreview30(["RFADT61206"],[objParam], option);
  260. }
  261. } else {
  262. //makeReportPreview(0,0,10, 10);
  263. //exeReportPreview("RFADT61206", "XMLSTR", "", "", "true","","","","","true");
  264. var objDOM = rptf_createDOM(); // DOM 객체 설정
  265. var objDOM2 = rptf_createDOM(); // DOM 객체 설정
  266. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/sumlist" , ds_main_prcpdata_sumlist);
  267. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/patinfo" , ds_main_prcpdata_patinfo);
  268. rptf_setNodeListToDOM(objDOM, "/root/main/prcpdata/diaginfo", ds_main_prcpdata_diaginfo);
  269. rptf_setNodeListToDOM(objDOM2, "/root/main/prcpdata/resn", ds_main_prcpdata_resn);
  270. var objParam = new Object();
  271. objParam.xml_data_XML1 = objDOM.documentElement.source;
  272. objParam.xml_data_XML2 = objDOM2.documentElement.source;
  273. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=fPrintAfterClose";
  274. //rptf_exeReportPreview30(["RFADT61206"],[objParam], option, "", "");
  275. rptf_exeReportPreview30(["RFADT61206"],[objParam], option);
  276. }
  277. }
  278. } else {
  279. this.close();
  280. }
  281. //model.refresh();
  282. //this.close();
  283. }
  284. function fPrintAfterClose() {
  285. this.close();
  286. }
  287. /*
  288. // 20100202_laboru_약사메모 byte
  289. */
  290. function getByteLength(str) {
  291. var byteLength = 0;
  292. for (inx = 0; inx < str.length; inx++) {
  293. var oneChar = escape(str.charAt(inx));
  294. if ( oneChar.length == 1 ) {
  295. byteLength ++;
  296. } else if (oneChar.indexOf("%u") != -1) {
  297. byteLength += 2;
  298. } else if (oneChar.indexOf("%") != -1) {
  299. byteLength += oneChar.length/3;
  300. }
  301. }
  302. return byteLength;
  303. }
  304. /*
  305. // 20100202_laboru_문자열 byte 단위로 잘라오기
  306. */
  307. function fnGetByte(strInput, slimit, ilimit){
  308. var i;
  309. var j;
  310. var strLen;
  311. var strByte = 0;
  312. var strRes = "";
  313. var com = Number(ilimit) - Number(slimit);
  314. strLen = strInput.length;
  315. var tmp = strInput.charAt(i);
  316. var index = 0;
  317. for(var p = 0; p < strLen ; p++) {
  318. var tmp = strInput.charAt(p);
  319. if(tmp >= ' ' && tmp <= '~' ){
  320. strByte++;
  321. }else{
  322. strByte += 2;
  323. }
  324. if(strByte > Number(slimit)){
  325. index = p;
  326. break;
  327. }
  328. }
  329. for(i=index, j=0, strByte=0; j< strLen; j++, i++) {
  330. var tmp = strInput.charAt(i);
  331. if(tmp >= ' ' && tmp <= '~' ){
  332. strByte++;
  333. }else{
  334. strByte += 2;
  335. }
  336. if(strByte > Number(com)){
  337. break;
  338. }
  339. strRes += tmp;
  340. }
  341. return strRes;
  342. }
  343. ]]></Script>