SMADC02100.xjs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-11-30
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-11-30 TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. /**
  16. * 파 일 명 : SMADC02100.js
  17. * 설 명 : 복약지도환자조회 Javascriot
  18. * 설 계 자 : 공두경
  19. * 작 성 자 : 공두경
  20. * 수정이력 : 2008.01.08 / 최초작성 / 공두경
  21. */
  22. /**
  23. * 초기화
  24. */
  25. var gTimer;
  26. var chk_count=0;
  27. var chk_cnt = 1;
  28. var arErrorCode = new HashArray();
  29. var objCxtCommon = new ExtCommon();
  30. /******************************************************************
  31. * Argument : fInit()
  32. * Description : 초기화
  33. ******************************************************************/
  34. function fInit(){
  35. ds_temp_srchinfo.setColumn(0, "prcpddstart", utlf_getCurrentDate());
  36. ds_temp_srchinfo.setColumn(0, "prcpddend", utlf_getCurrentDate());
  37. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  38. if( utlf_isNull(dutplceinstcd) ){
  39. dutplceinstcd = "012";
  40. }
  41. //진료과 검색
  42. ds_send_deptinfo.setColumn(0, "deptflag", "D");
  43. var oParam = {};
  44. oParam.id = "TRADC02103";
  45. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  46. oParam.method = "reqGetDeptList";
  47. oParam.inds = "req=ds_send_deptinfo";
  48. oParam.outds = "ds_init_orddept=dept";
  49. oParam.async = false;
  50. //oParam.callback = "cf_TRADC02103";
  51. tranf_submit(oParam);
  52. dsf_addDsItem(ds_init_orddept, "deptcd", "deptnm", " ", "", "above");
  53. //병동검색
  54. ds_send_deptinfo.setColumn(0, "deptflag", "W");
  55. var oParam = {};
  56. oParam.id = "TRADC02102";
  57. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  58. oParam.method = "reqGetDeptList";
  59. oParam.inds = "req=ds_send_deptinfo";
  60. oParam.outds = "ds_init_ward=ward";
  61. oParam.async = false;
  62. //oParam.callback = "cf_TRADC02102";
  63. tranf_submit(oParam);
  64. dsf_addDsItem(ds_init_ward, "deptcd", "deptnm", "전체", "T", "above");
  65. // 2011.01.14 pymi 복약분류조회
  66. var oParam = {};
  67. oParam.id = "TRADB00109";
  68. oParam.service = "pharmacybaseapp.DrugCode";
  69. oParam.method = "reqGetTmedCnst";
  70. oParam.inds = "";
  71. oParam.outds = "ds_init_baseinfo=A0036";
  72. oParam.async = false;
  73. //oParam.callback = "cf_TRADB00109";
  74. tranf_submit(oParam);
  75. for( var i = 0; i < ds_init_baseinfo.rowcount; i++ ){
  76. if( utlf_isNull(ds_init_baseinfo.getColumn(i, "cdnm")) ){
  77. ds_init_baseinfo.deleteRow(i);
  78. }
  79. }
  80. //구분 초기화
  81. ds_temp_srchinfo.setColumn(0, "srchflag", "2");
  82. ds_temp_srchinfo.setColumn(0, "prcpclscd", "A2|A4|A6"); //2008-12-11 외용제 포함
  83. }
  84. /**
  85. * 환자리스트 조회
  86. */
  87. function fSrchPatList() {
  88. /* 필수 입력사항 체크 */
  89. if( utlf_isNull(ds_temp_srchinfo.getColumn(0, "srchflag")) ){
  90. sysf_messageBox("구분을 선택","I008");
  91. return;
  92. }
  93. // 병동 조회조건
  94. chk_ward.visible = false;
  95. if( utlf_isNull(ds_temp_srchinfo.getColumnInfo("outfirst")) ){
  96. ds_temp_srchinfo.addColumn("outfirst", "string")
  97. }
  98. //// 2016년 4월20일 김치국
  99. if ( ds_temp_srchinfo.getColumn(0,"outfirst") == "Y" ) {
  100. var selok = "N";
  101. var selstr = ds_temp_srchinfo.getColumn(0,"srchflag") ;
  102. var strno = selstr.length ;
  103. for ( var nn = 0; nn < strno; nn++ ) {
  104. var nstr = selstr.substr(nn, 1);
  105. if ( nstr == "3" ) {
  106. selok = "Y";
  107. }
  108. }
  109. if ( selok == "Y") {
  110. ds_temp_srchinfo.setColumn(0,"outfirst", "Y");
  111. }
  112. }
  113. ds_send_srchinfo.copyData(ds_temp_srchinfo);
  114. ds_grd_patlist.clearData();
  115. var oParam = {};
  116. oParam.id = "TRADC02101";
  117. oParam.service = "pharmacyconsultapp.ReqMngt";
  118. oParam.method = "reqGetTmedPatList";
  119. oParam.inds = "req=ds_send_srchinfo";
  120. oParam.outds = "ds_grd_patlist=patlist";
  121. oParam.async = false;
  122. //oParam.callback = "cf_TRADC02101";
  123. tranf_submit(oParam);
  124. ds_grd_patlist.rowposition = -1;
  125. for( var i=1 ; i<grd_patlist.getCellCount("Body") ; i++ ){
  126. ds_grd_patlist.addColumn("colBack"+i, "string");
  127. grd_patlist.setCellProperty("body", i, "background", "BIND(colBack"+i+")");
  128. grd_patlist.setCellProperty("body", i, "background2", "BIND(colBack"+i+")");
  129. for( var j=0 ; j<ds_grd_patlist.rowcount ; j++ ){
  130. if( ds_grd_patlist.getColumn(j, "exptypeyn") == "Y" ){
  131. ds_grd_patlist.setColumn(j, "colBack"+i, "#fec34d");
  132. }
  133. if (!utlf_isNull(ds_grd_patlist.getColumn(j, "prntdt")) ) {
  134. // 20100309_laboru_동일한 환자의 경우 출력상태 색 입힐때 다효능 제외
  135. if(ds_grd_patlist.getColumn(j, "exptypeyn") != "Y") {
  136. ds_grd_patlist.setColumn(j, "colBack"+i, "#7BE6B7");
  137. }
  138. }
  139. }
  140. }
  141. //2008-11-25 복약설명서 출력여부 색깔표시
  142. // grdf_setRowStyle(grd_patlist, "6", "Y", "exptypeyn", "equal");
  143. // for(var i = 0 ; i < grd_patlist.getCellCount("Head") ; i++){
  144. // var sExpr1 ="background:EXPR(exptypeyn=='Y'?&quot;#fec34d&quot;"
  145. // +":(!utlf_isNull(prntdt) && exptypeyn != 'Y')?&quot;#7BE6B7&quot;"
  146. // +":&quot;&quot;)"
  147. // +";background2:EXPR(exptypeyn=='Y'?&quot;#fec34d&quot;"
  148. // +":(!utlf_isNull(prntdt) && exptypeyn != 'Y')?&quot;#7BE6B7&quot;"
  149. // +":&quot;&quot;)";
  150. // grd_patlist.setCellProperty("body", i, "style", sExpr1);
  151. // }
  152. //2008-11-25 복약설명서 출력여부 색깔표시
  153. // for( var i = 0; i < ds_grd_patlist.rowcount; i++ ){
  154. // if( !utlf_isNull(ds_grd_patlist.getColumn(i, "prntdt")) ){
  155. // // 20100309_laboru_동일한 환자의 경우 출력상태 색 입힐때 다효능 제외
  156. // if( ds_grd_patlist.getColumn(i, "exptypeyn") != "Y" ){
  157. // //grd_patlist.rowstyle(i, "data", "background-color") = "#7BE6B7" ;
  158. // }
  159. // }
  160. // }
  161. if( ds_temp_srchinfo.getColumn(0, "prcpclscd").indexOf("D") >= 0 ) {
  162. grd_patlist.setFormatColProperty(grd_patlist.getBindCellIndex("body", "prtlnm"), "size", 50);
  163. grd_patlist.setFormatColProperty(grd_patlist.getBindCellIndex("body", "anticncrdayno"), "size", 50);
  164. } else {
  165. grd_patlist.setFormatColProperty(grd_patlist.getBindCellIndex("body", "prtlnm"), "size", 0);
  166. grd_patlist.setFormatColProperty(grd_patlist.getBindCellIndex("body", "anticncrdayno"), "size", 0);
  167. }
  168. }
  169. /**
  170. * 복약설명서일괄출력
  171. */
  172. function fGetTmedlist() {
  173. if( ds_grd_patlist.rowcount > 0 ){
  174. var initCnt = 0; // 그리드상 첫 행 초기값
  175. var success = ""; // submit 성공여부
  176. var prePid; // 이전 행의 pid
  177. var curPid; // 현재 행의 pid
  178. var sCurOrddd; // 현재 행의 Orddd
  179. var sPreOrddd; // 이전 행의 Orddd
  180. var sCurOrdDeptcd; // 현재 행의 OrdDeptcd
  181. var sPreOrdDeptcd; // 이전 행의 OrdDeptcd
  182. var sCurCretno; // 현재 행의 Cretno
  183. var sPreCretno; // 이전 행의 Cretno
  184. var AutNuFlag ;
  185. for( var i = 0; i < ds_grd_patlist.rowcount; i++ ){
  186. prePid = "";
  187. curPid = "";
  188. sCurOrddd = "";
  189. sPreOrddd = "";
  190. sCurOrdDeptcd = "";
  191. sPreOrdDeptcd = "";
  192. sCurCretno = "";
  193. sPreCretno = "";
  194. // 1. 일괄출력 가능 항목만 진행
  195. if( ds_grd_patlist.getColumn(i, "exptypeyn") == "N" ){
  196. if( initCnt != i ){ // 첫행은 비교대상에서 제외
  197. prePid = ds_grd_patlist.getColumn((i-1), "pid");
  198. sPreOrddd = ds_grd_patlist.getColumn((i-1), "orddd");
  199. sPreOrdDeptcd = ds_grd_patlist.getColumn((i-1), "orddeptcd");
  200. sPreCretno = ds_grd_patlist.getColumn((i-1), "cretno");
  201. }else{
  202. prePid = "0";
  203. sPreOrddd = "0";
  204. sPreOrdDeptcd = "0";
  205. sPreCretno = "0";
  206. }
  207. curPid = ds_grd_patlist.getColumn(i, "pid");
  208. sCurOrddd = ds_grd_patlist.getColumn(i, "orddd");
  209. sCurOrdDeptcd = ds_grd_patlist.getColumn(i, "orddeptcd");
  210. sCurCretno = ds_grd_patlist.getColumn(i, "cretno");
  211. ds_grd_patlist.setColumn(i, "difflagcd", ds_init_difflag.getColumn(0, "difflagcd")); //복약설명서 출력조건[병원자료:1 , DIF한글:2, DIF영문:3]
  212. ds_grd_patlist.setColumn(i, "pimagepath", sysf_getURLprefix() + "/dif/images/", true); //DIF 이미지 경로
  213. dsf_copyColInfo(ds_send_tmedlisth, ds_grd_patlist); //Column 정보 복사
  214. var addRow = ds_send_tmedlisth.addRow();
  215. ds_send_tmedlisth.copyRow(addRow, ds_grd_patlist, i); // 복약설명서 조회조건 설정
  216. // 2. 복약설명서 조회 submit("TRADC02201",false); //TRADC02105
  217. dsf_setDefaultVal(ds_send_tmedlisth, "difflagcd:1");
  218. //dsf_setTypeFormat(ds_send_tmedlisth, "cretno:INT");
  219. var oParam = {};
  220. oParam.id = "TRADC02105";
  221. oParam.service = "pharmacyconsultapp.ReqMngt";
  222. oParam.method = "reqGetTmedAllPrntData";
  223. oParam.inds = "req=ds_send_tmedlisth";
  224. oParam.outds = "ds_main_tmedlist=tmedlist";
  225. oParam.async = false;
  226. oParam.callback = "cf_TRADC02105";
  227. tranf_submit(oParam);
  228. if( arErrorCode.pop("TRADC02105") > -1 ){
  229. var objImgeData;
  230. for ( var iNo = 0; iNo <= ds_main_tmedlist.rowcount; iNo++ ) {
  231. //DIF의 jpg 이미지를 base64로 인코딩
  232. if( ds_init_difflag.getColumn(0, "difflagcd") != "1" ){
  233. objImgeData = objCxtCommon.encodeBase64(ds_main_tmedlist.getColumn(iNo, "pimagepath"));
  234. ds_main_tmedlist.setColumn(iNo, "medpict", objImgeData);
  235. } else {
  236. if( !utlf_isNull(ds_main_tmedlist.getColumn(iNo, "medpic")) ){
  237. objImgeData = objCxtCommon.encodeBase64(ds_main_tmedlist.getColumn(iNo, "medpic"));
  238. ds_main_tmedlist.addColumn("medpict", "string", 256);
  239. ds_main_tmedlist.setColumn(iNo, "medpict", objImgeData);
  240. }
  241. }
  242. }
  243. //20110929_laboru_전체 출력시 개인 출력 form 과 동일하도록 맞춤
  244. ds_tmedinfo_patinfo.clearData();
  245. dsf_copyColInfo(ds_tmedinfo_patinfo, ds_grd_patlist); //Column 정보 복사
  246. var inRow = ds_tmedinfo_patinfo.addRow();
  247. ds_tmedinfo_patinfo.copyRow(inRow, ds_grd_patlist, i);
  248. // 3.복약설명서 출력
  249. if( (prePid != curPid) || (sPreOrddd != sCurOrddd) || (sPreOrdDeptcd != sCurOrdDeptcd) || (sPreCretno != sCurCretno) ){ // 이전 등록번호와 다를 때만 출력
  250. //exeReportPreview("RPADC02102", "XMLSTR", "", "", "false","","","","","false"); //2008-09-20 미리보기 화면 빼기
  251. /* if(model.getValue("/root/main/patinfo/patlist["+i+"]/roomcd") != "-"){
  252. exeReportPreview("RPADC02102", "XMLSTR", "/root/main/tmedinfo/tmedlist", "","true", "", "", "", "", "","","grp_report");
  253. }else{
  254. exeReportPreview("RPADC02103", "XMLSTR", "/root/main/tmedinfo/tmedlist", "","true", "", "", "", "", "","","grp_report");
  255. }*/
  256. AutNuFlag = ds_temp_srchinfo.getColumn(0, "autoprntnurseflag");
  257. var objDOM = rptf_createDOM();
  258. if( AutNuFlag != "Y" ){
  259. //20110929_laboru_전체 출력시 개인 출력 form 과 동일하도록 맞춤
  260. if( ds_grd_patlist.getColumn(0, "prcpgenrflag") == "O" ) {
  261. // 외래
  262. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1 - 약품정보
  263. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2 - 환자 정보
  264. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  265. var objParam = new Object();
  266. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  267. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  268. rptf_exeReportPreview30(["RPADC02203"],[objParam], option);
  269. ds_grd_patlist.enableevent = true;
  270. } else {
  271. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1 - 약품정보
  272. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2 - 환자 정보
  273. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  274. var objParam = new Object();
  275. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  276. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  277. rptf_exeReportPreview30(["RPADC02201"],[objParam], option);
  278. ds_grd_patlist.enableevent = true;
  279. }
  280. } else {
  281. //2014년 12월 1일 복약상단 출력물 간호 출력 김치국
  282. if( ds_grd_patlist.getColumn(0, "prcpgenrflag") == "O" ){
  283. // 외래
  284. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1
  285. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2
  286. //rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/prcplist", ds_tmedinfo_patinfo); // 데이터셋 3 - 투약정보
  287. rptf_setNodeListToDOM(objDOM, "/root/temp/srchinfo", ds_temp_srchinfo); // 데이터셋 4 - 복약기준자료
  288. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  289. var objParam = new Object();
  290. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  291. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  292. rptf_exeReportPreview30(["RPADC02303"],[objParam], option);
  293. ds_grd_patlist.enableevent = true;
  294. }else{
  295. // 입원
  296. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1
  297. //rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2
  298. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/prcplist", ds_tmedinfo_patinfo); // 데이터셋 3 - 투약정보
  299. rptf_setNodeListToDOM(objDOM, "/root/temp/srchinfo", ds_temp_srchinfo); // 데이터셋 4 - 복약기준자료
  300. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  301. var objParam = new Object();
  302. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  303. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  304. rptf_exeReportPreview30(["RPADC02301"],[objParam], option);
  305. ds_grd_patlist.enableevent = true;
  306. }
  307. }
  308. }
  309. ds_send_tmedlistd.copyData(ds_main_tmedlist);
  310. for(var j = 0; j <= ds_main_tmedlist.rowcount; j++){
  311. ds_send_tmedlistd.setColumn(j, "orddeptcd", ds_send_tmedlisth.getColumn(0, "orddeptcd")); //과코드
  312. ds_send_tmedlistd.setColumn(j, "orddrid", ds_send_tmedlisth.getColumn(0, "orddrid")); //의사코드
  313. ds_send_tmedlistd.setColumn(j, "cretno", ds_send_tmedlisth.getColumn(0, "cretno")); //생성번호
  314. ds_send_tmedlistd.setColumn(j, "drugno", ds_send_tmedlisth.getColumn(0, "drugno")); //생성번호
  315. }
  316. //개별상세내역출려과같이 사용함
  317. dsf_setDefaultVal(ds_send_tmedlisth, "descformflag:A");
  318. //dsf_setTypeFormat(ds_send_tmedlisth, "cretno:INT");
  319. var oParam = {};
  320. oParam.id = "TXADC02101";
  321. oParam.service = "pharmacyconsultapp.TmedMngt";
  322. oParam.method = "reqExeTmedAllPrntData";
  323. oParam.inds = "req=ds_send_tmedlisth tmedlist=ds_send_tmedlistd";
  324. oParam.outds = "ds_send_tmedlistd=ret";
  325. oParam.async = false;
  326. //oParam.callback = "cf_TXADC02101";
  327. tranf_submit(oParam);
  328. ds_grd_patlist.setColumn(i, "prntdt", utlf_getCurrentDate() + utlf_getCurrentTime().substr(0,4) );
  329. for( var j=1 ; j<grd_patlist.getCellCount("Body") ; j++ ){
  330. ds_grd_patlist.setColumn(i, "colBack"+j, "#7BE6B7");
  331. }
  332. // var sExpr1 ="background:EXPR( !utlf_isNull(prntdt)?&quot;#7BE6B7&quot:&quot;&quot;)";
  333. // grd_patlist.setCellProperty("body", i, "background", sExpr1);
  334. }
  335. }
  336. }
  337. }
  338. }
  339. /**
  340. * 20100223_laboru_자동출력 체크시
  341. * 2015/12/07 : TF 간호출력 연동 안되어 있음
  342. */
  343. function fChkAutoDescPrnt() {
  344. var autoflag = chk_autoprnt.value=="Y"?"Y":"";
  345. var prntnurseflag = checkbox6.value=="Y"?"Y":"";
  346. if( autoflag == "Y" || prntnurseflag == "Y" ){
  347. ds_temp_srchinfo.setColumn(0, "autoprntflag", autoflag);
  348. ds_temp_srchinfo.setColumn(0, "autoprntnurseflag", prntnurseflag);
  349. if( utlf_isNull(gTimer) ) {
  350. group4.visible = true;
  351. //model.setValue("/root/hidden/prcpsrch/drugno", "");
  352. this.setTimer(1, 13000);
  353. gTimer = 1;
  354. //fDescPrint();
  355. }
  356. } else {
  357. if( !utlf_isNull(gTimer) ){
  358. //window.clearinterval(gTimer);
  359. this.killTimer(gTimer);
  360. gTimer = null;
  361. group4.visible = false;
  362. }
  363. }
  364. }
  365. /**
  366. * 20100223_laboru_복약설명서 자동출력
  367. */
  368. function fDescPrint() {
  369. var strBase64 = "";
  370. //// 2016년 4월20일 김치국
  371. if (ds_temp_srchinfo.getColumn(0,"outfirst") == "Y" ) {
  372. var selok = "N";
  373. var selstr = ds_temp_srchinfo.getColumn(0,"srchflag") ;
  374. var strno = selstr.length ;
  375. for ( var nn = 0; nn < strno; nn++ ) {
  376. var nstr = selstr.substr(nn, 1);
  377. if ( nstr == "3" ) {
  378. selok = "Y";
  379. }
  380. }
  381. if ( selok == "Y") {
  382. ds_temp_srchinfo.setColumn(0,"outfirst", "Y");
  383. }
  384. }
  385. ////
  386. // 미출력 상태만 조회
  387. ds_temp_srchinfo.setColumn(0, "prtflag", "2");
  388. fSrchPatList();
  389. chk_count++;
  390. if ( ( chk_count % 4 ) == "0" ){
  391. group4.caption16.text="자동 출력중[/]";
  392. }
  393. if ( ( chk_count % 4 ) == "1" ){
  394. group4.caption16.text="자동 출력중[―]";
  395. }
  396. if ( ( chk_count % 4 ) == "2" ){
  397. group4.caption16.text="자동 출력중[\]";
  398. }
  399. if ( ( chk_count % 4 ) == "3" ){
  400. group4.caption16.text="자동 출력중[|]";
  401. }
  402. if( ds_grd_patlist.rowcount > 0){
  403. var success = ""; // submit 성공여부
  404. var prePid; // 이전 행의 pid
  405. var curPid; // 현재 행의 pid
  406. var sCurOrddd; // 현재 행의 Orddd
  407. var sPreOrddd; // 이전 행의 Orddd
  408. var sCurOrdDeptcd; // 현재 행의 OrdDeptcd
  409. var sPreOrdDeptcd; // 이전 행의 OrdDeptcd
  410. var sCurCretno; // 현재 행의 Cretno
  411. var sPreCretno; // 이전 행의 Cretno
  412. chk_cnt = 0;
  413. prePid = "";
  414. curPid = "";
  415. sCurOrddd = "";
  416. sPreOrddd = "";
  417. sCurOrdDeptcd = "";
  418. sPreOrdDeptcd = "";
  419. sCurCretno = "";
  420. sPreCretno = "";
  421. // 1. 일괄출력 가능 항목만 진행
  422. if( ds_grd_patlist.getColumn(chk_cnt, "exptypeyn") == "N" ){
  423. prePid = "0";
  424. sPreOrddd = "0";
  425. sPreOrdDeptcd = "0";
  426. sPreCretno = "0";
  427. curPid = ds_grd_patlist.getColumn(chk_cnt, "pid");
  428. sCurOrddd = ds_grd_patlist.getColumn(chk_cnt, "orddd");
  429. sCurOrdDeptcd = ds_grd_patlist.getColumn(chk_cnt, "orddeptcd");
  430. sCurCretno = ds_grd_patlist.getColumn(chk_cnt, "cretno");
  431. ds_grd_patlist.setColumn(chk_cnt, "difflagcd", ds_init_difflag.getColumn(0, "difflagcd")); //복약설명서 출력조건[병원자료:1 , DIF한글:2, DIF영문:3]
  432. ds_grd_patlist.setColumn(chk_cnt, "pimagepath", sysf_getURLprefix() + "/dif/images/", true); //DIF 이미지 경로
  433. dsf_copyColInfo(ds_send_tmedlisth, ds_grd_patlist); //Column 정보 복사
  434. var iRow = ds_send_tmedlisth.addRow();
  435. ds_send_tmedlisth.copyRow(iRow, ds_grd_patlist, chk_cnt); // 복약설명서 조회조건 설정
  436. ds_send_tmedlisth.addColumn("autoprntflag", "string", 256);
  437. ds_send_tmedlisth.setColumn(iRow, "autoprntflag", "Y"); // 자동출력 flag
  438. // 2. 복약설명서 조회
  439. dsf_setDefaultVal(ds_send_tmedlisth, "difflagcd:1");
  440. //dsf_setTypeFormat(ds_send_tmedlisth, "cretno:INT");
  441. var oParam = {};
  442. oParam.id = "TRADC02105";
  443. oParam.service = "pharmacyconsultapp.ReqMngt";
  444. oParam.method = "reqGetTmedAllPrntData";
  445. oParam.inds = "req=ds_send_tmedlisth";
  446. oParam.outds = "ds_main_tmedlist=tmedlist";
  447. oParam.async = false;
  448. oParam.callback = "cf_TRADC02105";
  449. tranf_submit(oParam);
  450. if( arErrorCode.pop("TRADC02105") > -1 ){
  451. var objImgeData;
  452. for( var iNo = 0; iNo <= ds_main_tmedlist.rowcount; iNo++ ){
  453. //DIF의 jpg 이미지를 base64로 인코딩
  454. if( ds_init_difflag.getColumn(0, "difflagcd") != "1" ){
  455. objImgeData = objCxtCommon.encodeBase64(ds_main_tmedlist.getColumn(iNo, "pimagepath"));
  456. ds_main_tmedlist.setColumn(iNo, "medpic", objImgeData);
  457. } else {
  458. if( !utlf_isNull(ds_main_tmedlist.getColumn(iNo, "medpic")) ){
  459. objImgeData = objCxtCommon.encodeBase64(ds_main_tmedlist.getColumn(iNo, "medpic"));
  460. ds_main_tmedlist.addColumn("medpict", "string", 256);
  461. ds_main_tmedlist.setColumn(iNo, "medpict", objImgeData);
  462. }
  463. }
  464. }
  465. //20110929_laboru_전체 출력시 개인 출력 form 과 동일하도록 맞춤
  466. ds_tmedinfo_patinfo.clearData();
  467. ds_tmedinfo_patinfo.copyData(ds_grd_patlist);
  468. // 3.복약설명서 출력
  469. if( (prePid != curPid) || (sPreOrddd != sCurOrddd) || (sPreOrdDeptcd != sCurOrdDeptcd) || (sPreCretno != sCurCretno) ){ // 이전 등록번호와 다를 때만 출력
  470. ///////////////////////2014년 12월4일 김치국
  471. AutNuFlag = ds_temp_srchinfo.getColumn(0, "autoprntnurseflag");
  472. var objDOM = rptf_createDOM();
  473. if( AutNuFlag != "Y" ){
  474. //20110929_laboru_전체 출력시 개인 출력 form 과 동일하도록 맞춤
  475. if( ds_grd_patlist.getColumn(0, "prcpgenrflag") == "O" ) {
  476. // 외래
  477. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1 - 약품정보
  478. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2 - 환자 정보
  479. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  480. var objParam = new Object();
  481. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  482. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  483. rptf_exeReportPreview30(["RPADC02203"],[objParam], option);
  484. ds_grd_patlist.enableevent = true;
  485. } else {
  486. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1 - 약품정보
  487. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2 - 환자 정보
  488. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  489. var objParam = new Object();
  490. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  491. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  492. rptf_exeReportPreview30(["RPADC02201"],[objParam], option);
  493. ds_grd_patlist.enableevent = true;
  494. }
  495. } else {
  496. //2014년 12월 1일 복약상단 출력물 간호 출력 김치국
  497. if( ds_grd_patlist.getColumn(0, "prcpgenrflag") == "O" ){
  498. // 외래
  499. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1
  500. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2
  501. rptf_setNodeListToDOM(objDOM, "/root/temp/srchinfo", ds_temp_srchinfo); // 데이터셋 4 - 복약기준자료
  502. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  503. var objParam = new Object();
  504. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  505. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  506. rptf_exeReportPreview30(["RPADC02303"],[objParam], option);
  507. ds_grd_patlist.enableevent = true;
  508. }else{
  509. // 입원
  510. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/tmedlist", ds_main_tmedlist); // 데이터셋 1
  511. rptf_setNodeListToDOM(objDOM, "/root/main/tmedinfo/patinfo", ds_tmedinfo_patinfo); // 데이터셋 2
  512. rptf_setNodeListToDOM(objDOM, "/root/temp/srchinfo", ds_temp_srchinfo); // 데이터셋 4 - 복약기준자료
  513. sysf_trace(objDOM.documentElement.source); // XML 내용출력
  514. var objParam = new Object();
  515. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  516. var option = "open=1;save=1;directprint=1;printdialog=0;print=0;zoom=0;";
  517. rptf_exeReportPreview30(["RPADC02301"],[objParam], option);
  518. ds_grd_patlist.enableevent = true;
  519. }
  520. }
  521. }
  522. ds_send_tmedlistd.copyData(ds_main_tmedlist);
  523. for(var j = 0; j <= ds_main_tmedlist.rowcount; j++){
  524. ds_send_tmedlistd.setColumn(j, "orddeptcd", ds_send_tmedlisth.getColumn(0, "orddeptcd")); //과코드
  525. ds_send_tmedlistd.setColumn(j, "orddrid", ds_send_tmedlisth.getColumn(0, "orddrid")); //의사코드
  526. ds_send_tmedlistd.setColumn(j, "cretno", ds_send_tmedlisth.getColumn(0, "cretno")); //생성번호
  527. ds_send_tmedlistd.setColumn(j, "drugno", ds_send_tmedlisth.getColumn(0, "drugno")); //생성번호
  528. }
  529. //개별상세내역출려과같이 사용함
  530. dsf_setDefaultVal(ds_send_tmedlisth, "descformflag:A");
  531. //dsf_setTypeFormat(ds_send_tmedlisth, "cretno:INT");
  532. var oParam = {};
  533. oParam.id = "TXADC02101";
  534. oParam.service = "pharmacyconsultapp.TmedMngt";
  535. oParam.method = "reqExeTmedAllPrntData";
  536. oParam.inds = "req=ds_send_tmedlisth tmedlist=ds_send_tmedlistd";
  537. oParam.outds = "ds_send_tmedlistd=ret";
  538. oParam.async = false;
  539. //oParam.callback = "cf_TXADC02101";
  540. tranf_submit(oParam);
  541. ds_grd_patlist.setColumn(chk_cnt, "prntdt", utlf_getCurrentDate() + utlf_getCurrentTime().substr(0,4) );
  542. for( var j=1 ; j<grd_patlist.getCellCount("Body") ; j++ ){
  543. ds_grd_patlist.setColumn(chk_cnt, "colBack"+j, "#7BE6B7");
  544. }
  545. // var sExpr1 ="background:EXPR( !utlf_isNull(prntdt)?&quot;#fec34d&quot:&quot;&quot;)";
  546. // grd_patlist.setCellProperty("body", chk_cnt, "background", sExpr1);
  547. }
  548. }
  549. }
  550. }
  551. function cf_TRADC02105(sSvcId, nErrorCode, sErrorMsg) {
  552. arErrorCode.push(sSvcId, nErrorCode);
  553. }
  554. /**
  555. * 재원/퇴원/외래 구분 체크시
  556. */
  557. function fChkSrchflag() {
  558. var gubuncode = ds_temp_srchinfo.getColumn(0, "srchflag");
  559. var temp = ds_temp_srchinfo.getColumn(0, "srchflag").split("|");
  560. if( temp.length == 3 ){
  561. ds_temp_srchinfo.setColumn(0, "srchflagall", "Y");
  562. if( !grp_sea.chk_hosinhosoutflag.enable ){
  563. grp_sea.chk_hosinhosoutflag.enable = true;
  564. //grp_sea.chk_hosinhosoutflagall.enable = true;
  565. ds_temp_srchinfo.setColumn(0, "hosinhosoutflag", "I|O");
  566. ds_temp_srchinfo.setColumn(0, "hosinhosoutflagall", "Y");
  567. }
  568. if( !grp_sea.rdo_newdrugflag.enable ){
  569. rdo_newdrugflag.enable = true;
  570. ds_temp_srchinfo.setColumn(0, "newdrugflag", "1");
  571. }
  572. } else {
  573. ds_temp_srchinfo.setColumn(0, "srchflagall", "");
  574. //외래 선택시 원내/원외 컨트롤 활성화
  575. if( utlf_isSearchString( ds_temp_srchinfo.getColumn(0, "srchflag"),"3") ){
  576. grp_sea.chk_hosinhosoutflag.enable = true;
  577. //grp_sea.chk_hosinhosoutflagall.enable = true;
  578. //////2016년 4월18일 김치국
  579. grp_sea.rdo_outfirst.enable = true;
  580. ds_temp_srchinfo.setColumn(0, "outfirst", "");
  581. ds_temp_srchinfo.setColumn(0, "hosinhosoutflag", "I|O");
  582. ds_temp_srchinfo.setColumn(0, "hosinhosoutflagall", "Y");
  583. } else {
  584. grp_sea.chk_hosinhosoutflag.enable = false;
  585. //grp_sea.chk_hosinhosoutflagall.enable = false;
  586. //////2016년 4월18일 김치국
  587. grp_sea.rdo_outfirst.enable = false;
  588. ds_temp_srchinfo.setColumn(0, "outfirst", "");
  589. ds_temp_srchinfo.setColumn(0, "hosinhosoutflag", "");
  590. ds_temp_srchinfo.setColumn(0, "hosinhosoutflagall", "");
  591. }
  592. //외래/재원 선택시 새처방 컨트롤 활성화
  593. var getSrchFlag = ds_temp_srchinfo.getColumn(0, "srchflag");
  594. if( utlf_isSearchString( getSrchFlag,"3") || utlf_isSearchString(getSrchFlag,"1")){
  595. if( !rdo_newdrugflag.enable ){
  596. grp_sea.rdo_newdrugflag.enable = true;
  597. ds_temp_srchinfo.setColumn(0, "newdrugflag", "1");
  598. }
  599. }else{
  600. grp_sea.rdo_newdrugflag.enable = false;
  601. ds_temp_srchinfo.setColumn(0, "newdrugflag", "");
  602. }
  603. }
  604. }
  605. /**
  606. * 출력건수 조회
  607. */
  608. function fPrntCnt(){
  609. var prntcnt =0;
  610. for ( var i = 0 ; i < ds_grd_patlist.rowcount; i++ ) {
  611. if ( !utlf_isNull(ds_grd_patlist.getColumn(i, "prntdt")) ) {
  612. prntcnt += 1;
  613. }
  614. }
  615. grp_sea.txtCnt.text = "Total : " + ds_grd_patlist.rowcount + " 출력 : " + prntcnt ;
  616. }]]></Script>