SMADT30100.xjs 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * 파 일 명 : SMADT30100.js
  4. * 설 명 : 마약향정처방관리 Javascriot
  5. * 설 계 자 : 공두경
  6. * 작 성 자 : 공두경
  7. * 수정이력 : 2007.08.10 / 최초작성 / 공두경
  8. */
  9. var nextFlag ="GO";
  10. var gTimer = null;
  11. var sleepTime= 1000;
  12. var rtnprntflag = 'N'; // 20110422_laboru_경북대병원_반환처방전 반환확인 시 자동출력 될때 메시지 창 안뜨게 하기
  13. var totqtyflag = 'Y'; // 201120712 경북대병원_반환처방전 반환수량 (-) 뜨게하기 김치국
  14. var arErrorCode = new HashArray();
  15. var colHidnValue;
  16. /******************************************************************
  17. * Argument : fInit()
  18. * Description : onload
  19. ******************************************************************/
  20. function fInit()
  21. {
  22. //구분 초기화(전체)
  23. //model.setValue("/root/temp/srchinfo/narcflag", "M");
  24. ds_temp_srchinfo.setColumn(0, "narcflag", "T");
  25. ds_temp_srchinfo.setColumn(0, "srchdrugkind", "T");
  26. ds_temp_srchinfo.setColumn(0, "drugflag", "I");
  27. // fChkIOTotal();
  28. ds_temp_srchinfo.setColumn(0, "narcstat", "T");
  29. group3.group2.div_kind.rdo_cncl.enable = false;
  30. ds_temp_srchinfo.setColumn(0, "cnclstat", "");
  31. group3.group2.div_kind.rdo_rtn.enable = false;
  32. ds_temp_srchinfo.setColumn(0, "rtnstat", "");
  33. ds_temp_srchinfo.setColumn(0, "narctypeflag", "T");
  34. ds_temp_srchinfo.setColumn(0, "srchioflag", "I");
  35. ////자동시 표기 김치국 20170329
  36. cap_automess.visible = false;
  37. fChgIOFlag();
  38. //토글초기화
  39. ds_temp_srchinfo.setColumn(0, "srchroot", "M");
  40. grd_narclist.visible = true;
  41. //조회날짜 초기화
  42. ds_temp_srchinfo.setColumn(0, "fst_dd", utlf_getCurrentDate());
  43. ds_temp_srchinfo.setColumn(0, "last_dd", utlf_getCurrentDate());
  44. //병동 Combo 조회
  45. ds_send_srchcond.setColumn(0, "deptflag", "W");
  46. var oParam = {};
  47. oParam.id = "TRADT30101";
  48. oParam.service = "pharmacyprescriptionapp.Narcotics";
  49. oParam.method = "reqGetSrchList";
  50. oParam.inds = "req=ds_send_srchcond";
  51. oParam.outds = "ds_temp_srchcond_ward=ward ds_temp_srchcond_narclist=narclist";
  52. oParam.async = false;
  53. //oParam.callback = "cf_TRADT30101";
  54. tranf_submit(oParam);
  55. //astfAddCombo("/root/temp/srchcond", "ward", "wardcd,wardnm", ",");
  56. dsf_addDsItem(ds_temp_srchcond_ward, "deptcd", "deptnm", "전체", "", "above"); //병동 셋팅
  57. //로그인 사용자 셋팅
  58. var userid = sysf_getUserId();
  59. ds_temp_srchinfo.setColumn(0, "srchid", userid);
  60. fChgUserID();
  61. //바코드프린터설정 초기화
  62. ds_send.setColumn(0, "scrnid", frmf_getScreenID());
  63. var oParam = {};
  64. oParam.id = "TRLLC90101";
  65. oParam.service = "diagtestapplib.LisCommon";
  66. oParam.method = "reqGetSetUpInfo";
  67. oParam.inds = "scrnid=ds_send";
  68. oParam.outds = "ds_main_barcdprntsetup=getSetUpInfo";
  69. oParam.async = false;
  70. //oParam.callback = "cf_TRLLC90101";
  71. tranf_submit(oParam);
  72. var sParamObj = new Object();
  73. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  74. var pXmlStr = ds_main_barcdprntsetup.getColumn(0, "prntsetupinfo");
  75. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  76. sysf_trace(succYn);
  77. var comm = ds_data_comm02.getColumn(0, "comm");
  78. var prntkind = ds_data_setupinfo.getColumn(0, "prntkind");
  79. if( comm == "2" ) {
  80. ds_data_comm02.setColumn(0, "comm", "1");
  81. }
  82. if( prntkind == "1" ) {
  83. ds_data_setupinfo.setColumn(0, "prntkind", "5");
  84. }
  85. //라벨 출력 형식 옵션
  86. var oParam = {};
  87. oParam.id = "TRADT30106";
  88. oParam.service = "pharmacyprescriptionapp.Narcotics";
  89. oParam.method = "reqGetLblType3";
  90. oParam.inds = "req=ds_send_userinfo";
  91. oParam.outds = "ds_init_lbltype=item";
  92. oParam.async = false;
  93. //oParam.callback = "cf_TRADT30106";
  94. tranf_submit(oParam);
  95. //잔량옵션
  96. var oParam = {};
  97. oParam.id = "TRADT30107";
  98. oParam.service = "pharmacyprescriptionapp.Narcotics";
  99. oParam.method = "reqGetNarType";
  100. oParam.inds = "req=ds_send_userinfo";
  101. oParam.outds = "ds_init_nartype=item";
  102. oParam.async = false;
  103. //oParam.callback = "cf_TRADT30107";
  104. tranf_submit(oParam);
  105. // 출고부서 조회, 설정
  106. var oParam = {};
  107. oParam.id = "TRADT01106";
  108. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  109. oParam.method = "reqGetMisDeptlist";
  110. oParam.inds = "";
  111. oParam.outds = "ds_init_misdeptlist=deptlist";
  112. oParam.async = false;
  113. //oParam.callback = "cf_TRADT01106";
  114. tranf_submit(oParam);
  115. if( ds_init_misdeptlist.rowcount == 1 ) {
  116. group3.group2.combo1.setFocus();
  117. group3.group2.combo1.index = 0;
  118. } else {
  119. // 2010.01.25 pymi 입원주사조제실 제거
  120. if( ds_init_misdeptlist.getColumn(0, "deptcd") == "3242104000" ) {
  121. ds_init_misdeptlist.deleteRow(0);
  122. } else {
  123. group3.group2.combo1.setFocus();
  124. group3.group2.combo1.index = 0; // 20101019_laboru_경북대병원_cmc 셋팅을 경북대병원용으로 변경
  125. }
  126. // (e)
  127. }
  128. //1일기준인지 1회기준인지 체크하여 컬럼을 hidden
  129. colHidnValue = lf_grdBaseColHidn("D");
  130. //var colHidnValue = "C";
  131. //1회 기준
  132. if( colHidnValue == "C" ) {
  133. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpvol"),"size",0);
  134. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpvolunit"),"size",0);
  135. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","dayprcpqty"),"size",0);
  136. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","dayprcpqtyunit"),"size",0);
  137. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpvol"),"size",0);
  138. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpvolunit"),"size",0);
  139. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","dayprcpqty"),"size",0);
  140. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","dayprcpqtyunit"),"size",0);
  141. } else {
  142. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpvol2"),"size",0);
  143. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpvolunit2"),"size",0);
  144. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpqty2"),"size",0);
  145. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpqtyunit2"),"size",0);
  146. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpvol2"),"size",0);
  147. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpvolunit2"),"size",0);
  148. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpqty2"),"size",0);
  149. grd_narclist.setFormatColProperty(grd_narclist.getBindCellIndex("body","prcpqtyunit2"),"size",0);
  150. }
  151. }
  152. /******************************************************************
  153. * Argument :
  154. * Description : 입원외래구분 클릭시
  155. ******************************************************************/
  156. function fChgIOFlag() {
  157. var ioflag = ds_temp_srchinfo.getColumn(0, "srchioflag");
  158. // ========================== 병동, 퇴원/외박/외출 radio 컨트롤 visible ==========================
  159. if( ioflag == "O" ){
  160. ds_temp_srchinfo.setColumn(0, "drugflag", "");
  161. group3.group2.rdo_drugflag.visible = false;
  162. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpkindnm"),"size",0);//20090811 처방구분숨기기
  163. if( ds_temp_srchinfo.getColumn(0, "narcflag") == "H" ) {
  164. group3.group2.combo2.setFocus();//외래향정일때 실시일자
  165. group3.group2.combo2.index = 3;
  166. } else {
  167. group3.group2.combo2.setFocus();//그외 적용일자
  168. group3.group2.combo2.index = 1;
  169. }
  170. } else if( ioflag == "I" ){
  171. ds_temp_srchinfo.setColumn(0, "drugflag", "I");
  172. group3.group2.rdo_drugflag.visible = true;
  173. grd_outnarc.setFormatColProperty(grd_outnarc.getBindCellIndex("body","prcpkindnm"),"size",52); //20090811 처방구분보이기
  174. group3.group2.combo2.setFocus();//그외 적용일자
  175. group3.group2.combo2.index = 1;
  176. } else {
  177. group3.group2.rdo_drugflag.visible = false;
  178. }
  179. // =========================================================================================
  180. // ========================== 병동 Combo 조회===========================
  181. ds_send_srchcond.setColumn(0, "deptflag", "W");
  182. var oParam = {};
  183. oParam.id = "TRADT30401";
  184. oParam.service = "pharmacyprescriptionapp.Narcotics";
  185. oParam.method = "reqGetNursSrchList";
  186. oParam.inds = "req=ds_send_srchcond";
  187. oParam.outds = "ds_temp_srchcond_dept=dept";
  188. oParam.async = false;
  189. //oParam.callback = "cf_TRADT30401";
  190. tranf_submit(oParam);
  191. ds_temp_drugdeptinfo.copyData(ds_temp_srchcond_dept); //수행부서 셋팅
  192. dsf_addDsItem(ds_temp_drugdeptinfo, "deptcd", "deptnm", "수술실 마취", "3073100000", "above"); //수행부서 셋팅
  193. dsf_addDsItem(ds_temp_drugdeptinfo, "deptcd", "deptnm", "수술실 회복실", "3073300000", "above"); //수행부서 셋팅
  194. dsf_addDsItem(ds_temp_drugdeptinfo, "deptcd", "deptnm", "전체", "", "above");
  195. //Multi Combo
  196. group3.group2.combo3.setDataSet(ds_temp_drugdeptinfo,"deptcd","deptnm");
  197. group3.group2.combo3.setCallEvent("fn_combo3");
  198. dsf_addDsItem(ds_temp_srchcond, "deptcd", "deptnm", "수술실 마취", "3073100000", "above"); //불출신청부서 셋팅
  199. dsf_addDsItem(ds_temp_srchcond, "deptcd", "deptnm", "수술실 회복실", "3073300000", "above"); //불출신청부서 셋팅
  200. var oParam = {};
  201. oParam.id = "TRADT30405";
  202. oParam.service = "pharmacyprescriptionapp.Narcotics";
  203. oParam.method = "reqGetOutDeptInfo";
  204. oParam.inds = "";
  205. oParam.outds = "ds_temp_dutdeptinfo=dept";
  206. oParam.async = false;
  207. //oParam.callback = "cf_TRADT30405";
  208. tranf_submit(oParam);
  209. dsf_copyDs(ds_temp_drugdeptinfo, ds_temp_dutdeptinfo, "after");
  210. ds_temp_srchcond.copyData(ds_temp_drugdeptinfo);
  211. dsf_addDsItem(ds_temp_srchcond, "deptcd", "deptnm", "", "", "above");
  212. fChgSwitch();
  213. fGetNarcData();
  214. var oParam = {};
  215. oParam.id = "TRADT30101";
  216. oParam.service = "pharmacyprescriptionapp.Narcotics";
  217. oParam.method = "reqGetSrchList";
  218. oParam.inds = "req=ds_send_srchcond";
  219. oParam.outds = "ds_temp_srchcond_ward=ward ds_temp_srchcond_narclist=narclist";
  220. oParam.async = false;
  221. //oParam.callback = "cf_TRADT30101";
  222. tranf_submit(oParam);
  223. if( ioflag == "O" ) group3.group2.cmb_ward.value = "";
  224. }
  225. /******************************************************************
  226. * Argument :
  227. * Description : Multi Combo set
  228. ******************************************************************/
  229. function fn_combo3(e){
  230. var getCombo3 = e.postvalue;
  231. ds_temp_srchinfo.setColumn(0, "srchdeptcd", getCombo3);
  232. }
  233. /******************************************************************
  234. * Argument :
  235. * Description : userid 변경시
  236. ******************************************************************/
  237. function fChgUserID() {
  238. var sUserid = ds_temp_srchinfo.getColumn(0, "srchid");
  239. // 20100728_경북대_laboru_userid 길이체크 삭제
  240. //if(sUserid.length == 8 || sUserid.length == 9 || sUserid.length == 10){
  241. ds_send_userinfo.setColumn(0, "userid", sUserid);
  242. var oParam = {};
  243. oParam.id = "TRADT30104";
  244. oParam.service = "pharmacyprescriptionapp.DrugReturn";
  245. oParam.method = "reqGetUserInfo";
  246. oParam.inds = "req=ds_send_userinfo";
  247. oParam.outds = "ds_temp_userinfo=userinfo";
  248. oParam.async = false;
  249. //oParam.callback = "cf_TRADT30104";
  250. tranf_submit(oParam);
  251. if( utlf_isNull(ds_temp_userinfo.getColumn(0, "userid")) ){
  252. sysf_messageBox("사용자ID 정보가 없습니다.\n다시","C001");
  253. ds_temp_srchinfo.setColumn(0, "srchid", "");
  254. group3.group2.ipt_srchid.setFocus();
  255. } else {
  256. ds_temp_srchinfo.setColumn(0, "srchid", "");
  257. group3.group2.ipt_srchid.setFocus();
  258. group3.group2.input9.setFocus();
  259. }
  260. /*} else {
  261. messageBox("사용자ID 정보가 다릅니다.\n다시","C001");
  262. model.setValue("/root/temp/srchinfo/srchid","");
  263. model.setFocus("ipt_srchid");
  264. }*/
  265. }
  266. /******************************************************************
  267. * Argument :
  268. * Description : switch case변경
  269. ******************************************************************/
  270. function fChgSwitch() {
  271. var srchroot = ds_temp_srchinfo.getColumn(0, "srchroot");
  272. var ioflag = ds_temp_srchinfo.getColumn(0, "srchioflag");
  273. var drugflag = ds_temp_srchinfo.getColumn(0, "drugflag");
  274. if( srchroot == "M" ){
  275. if(ioflag == "O"){
  276. grd_outnarc.visible = true;
  277. grd_narclist.visible = false;
  278. grd_sprelist.visible = false;
  279. } else {
  280. if(drugflag == "L"){
  281. grd_outnarc.visible = true;
  282. grd_narclist.visible = false;
  283. grd_sprelist.visible = false;
  284. } else {
  285. grd_narclist.visible = true;
  286. grd_outnarc.visible = false;
  287. grd_sprelist.visible = false;
  288. }
  289. }
  290. } else if(srchroot == "R"){
  291. grd_sprelist.visible = true;
  292. grd_narclist.visible = false;
  293. grd_outnarc.visible = false;
  294. }
  295. }
  296. /******************************************************************
  297. * Argument :
  298. * Description : 마약리스트 조회
  299. ******************************************************************/
  300. function fGetNarcData() {
  301. //이선경 2008-07-22 start (조회시 마약종류를 조회조건에 추가)
  302. var narccdlist = "";
  303. for( var i = 0; i < ds_temp_srchcond_narclist.rowcount; i++ ) {
  304. if( ds_temp_srchcond_narclist.getColumn(i, "sel") == "1" ) {
  305. if( utlf_isNull(narccdlist) ) {
  306. narccdlist = "'" + ds_temp_srchcond_narclist.getColumn(i, "narccd") + "'";
  307. } else {
  308. narccdlist += ",'" + ds_temp_srchcond_narclist.getColumn(i, "narccd") + "'";
  309. }
  310. }
  311. }
  312. ds_temp_srchinfo.setColumn(0, "narccd", narccdlist);
  313. //이선경 2008-07-22 start (조회시 마약종류를 조회조건에 추가)
  314. // grd_narclist.fixedcellischeck(0, 1) = false;
  315. // grd_outnarc.fixedcellischeck(0, 1) = false;
  316. grd_narclist.setCellProperty("Head",0,"text",0);
  317. grd_outnarc.setCellProperty("Head",0,"text",0);
  318. ds_send_srchinfo.copyData(ds_temp_srchinfo);
  319. if( ds_temp_srchinfo.getColumn(0, "prtab") == "Y" ) { // 향정반환반납장부 출력조건 2009.05.18 pymi
  320. ds_send_srchinfo.setColumn(0, "cnclflag", "Y");
  321. ds_send_srchinfo.setColumn(0, "rtnflag", "Y");
  322. ds_send_srchinfo.setColumn(0, "rtnstat", "T");
  323. ds_send_srchinfo.setColumn(0, "cnclstat", "T");
  324. ds_send_srchinfo.setColumn(0, "narcstat", "");
  325. }
  326. // (e)
  327. /*if(model.getValue("/root/send/srchinfo/narcflag") == "H" ) {
  328. submit("TRADT30105");
  329. }*///주석처리 20090901 이선경 조회하는 로직안으로 옮김(향정이 반환대상이면 반환신청으로 잔량대상이면 잔량신청으로 업데이트 후 조회)
  330. if( ds_temp_srchinfo.getColumn(0, "autoprnt") != "Y" ) {
  331. dsf_createDsRow("ds_req", [
  332. {col:"narcflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narcflag")}
  333. , {col:"timeflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"timeflag")}
  334. , {col:"fst_dd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"fst_dd")}
  335. , {col:"last_dd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"last_dd")}
  336. , {col:"srchdrugkind" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdrugkind")}
  337. , {col:"srchioflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchioflag")}
  338. , {col:"drugflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"drugflag")}
  339. , {col:"srchroot" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchroot")}
  340. , {col:"narcstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narcstat")}
  341. , {col:"cnclstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"cnclstat")}
  342. , {col:"rtnstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"rtnstat")}
  343. , {col:"nodeliveflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"nodeliveflag")}
  344. , {col:"narctype" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narctype")}
  345. , {col:"pid" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"pid")}
  346. , {col:"ward" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"ward")}
  347. , {col:"srchdrugno" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdrugno")}
  348. , {col:"barcode" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"barcode")}
  349. , {col:"narccd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narccd")}
  350. , {col:"barcode_2" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"barcode_2")}
  351. , {col:"srchdeptcd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdeptcd")}
  352. , {col:"srchprcpkind" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchprcpkind")}
  353. , {col:"srchprcpkindall", type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchprcpkindall")}
  354. , {col:"prntdt" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"prntdt")}
  355. , {col:"issdeptcd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"issdeptcd")}
  356. , {col:"selkey" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"selkey")}
  357. ]);
  358. var oParam = {};
  359. oParam.id = "TRADT30102";
  360. oParam.service = "pharmacyprescriptionapp.Narcotics";
  361. oParam.method = "reqGetNarcData";
  362. oParam.inds = "req=ds_req";
  363. oParam.outds = "ds_main_narclist=narclist";
  364. oParam.async = false;
  365. oParam.callback = "cf_TRADT30102";
  366. tranf_submit(oParam);
  367. } else if( ds_temp_srchinfo.getColumn(0, "autoprnt") == "Y" ) {
  368. dsf_createDsRow("ds_req", [
  369. {col:"narcflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narcflag")}
  370. , {col:"timeflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"timeflag")}
  371. , {col:"fst_dd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"fst_dd")}
  372. , {col:"last_dd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"last_dd")}
  373. , {col:"srchdrugkind" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdrugkind")}
  374. , {col:"srchioflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchioflag")}
  375. , {col:"drugflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"drugflag")}
  376. , {col:"srchroot" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchroot")}
  377. , {col:"narcstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narcstat")}
  378. , {col:"cnclstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"cnclstat")}
  379. , {col:"rtnstat" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"rtnstat")}
  380. , {col:"nodeliveflag" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"nodeliveflag")}
  381. , {col:"narctype" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narctype")}
  382. , {col:"pid" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"pid")}
  383. , {col:"ward" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"ward")}
  384. , {col:"srchdrugno" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdrugno")}
  385. , {col:"barcode" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"barcode")}
  386. , {col:"narccd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"narccd")}
  387. , {col:"barcode_2" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"barcode_2")}
  388. , {col:"srchdeptcd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"srchdeptcd")}
  389. , {col:"prntdt" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"prntdt")}
  390. , {col:"issdeptcd" , type:"STRING", size:256, val:ds_send_srchinfo.getColumn(0,"issdeptcd")}
  391. ]);
  392. var oParam = {};
  393. oParam.id = "TRADT30110";
  394. oParam.service = "pharmacyprescriptionapp.Narcotics";
  395. oParam.method = "reqGetNarcData";
  396. oParam.inds = "req=ds_req";
  397. oParam.outds = "ds_temp_narclist=narclist";
  398. oParam.async = false;
  399. oParam.callback = "cf_TRADT30110";
  400. tranf_submit(oParam);
  401. }
  402. }
  403. function cf_TRADT30102(sSvcId, nErrorCode, sErrorMsg) {
  404. if(nErrorCode < 0) return;
  405. dsf_setDefaultVal(ds_temp_narclist, "sel:");
  406. // dsf_setTypeFormat(ds_main_narclist, "prcptims:INT^prcpdayno:INT^rtnqty:INT^prcpno:INT^prcphistno:INT^drugno:INT");
  407. ds_main_narclist.addColumn("prcpqtyunit2", "string", 256);
  408. ds_main_narclist.addColumn("dayprcpqtyunit", "string", 256);
  409. ds_main_narclist.addColumn("prcpvolunit2", "string", 256);
  410. for( var i = 0; i < ds_main_narclist.rowcount; i++ ){
  411. var unit = ds_main_narclist.getColumn(i, "prcpqtyunit");
  412. var volunit = ds_main_narclist.getColumn(i, "prcpvolunit");
  413. ds_main_narclist.setColumn(i, "prcpqtyunit2", unit);
  414. ds_main_narclist.setColumn(i, "dayprcpqtyunit", unit);
  415. ds_main_narclist.setColumn(i, "prcpvolunit2", volunit);
  416. }
  417. }
  418. function cf_TRADT30110(sSvcId, nErrorCode, sErrorMsg) {
  419. if(nErrorCode < 0) return;
  420. dsf_setDefaultVal(ds_temp_narclist, "sel:1");
  421. // dsf_setTypeFormat(ds_temp_narclist, "prcptims:INT^prcpdayno:INT^rtnqty:INT^prcpno:INT^prcphistno:INT^drugno:INT^drugseqno:INT");
  422. ds_temp_narclist.addColumn("prcpqtyunit2", "string", 256);
  423. ds_temp_narclist.addColumn("dayprcpqtyunit", "string", 256);
  424. ds_temp_narclist.addColumn("prcpvolunit2", "string", 256);
  425. for( var i = 0; i < ds_temp_narclist.rowcount; i++ ){
  426. var unit = ds_temp_narclist.getColumn(i, "prcpqtyunit");
  427. var volunit = ds_temp_narclist.getColumn(i, "prcpvolunit");
  428. ds_temp_narclist.setColumn(i, "prcpqtyunit2", unit);
  429. ds_temp_narclist.setColumn(i, "dayprcpqtyunit", unit);
  430. ds_temp_narclist.setColumn(i, "prcpvolunit2", volunit);
  431. }
  432. }
  433. /******************************************************************
  434. * Argument :
  435. * Description : 재출력 선택시 출력일자(콤보박스) 조회
  436. ******************************************************************/
  437. function fGetNarcPrintDt() {
  438. var narccdlist = "";
  439. for( var i = 0; i < ds_temp_srchcond_narclist.rowcount; i++ ) {
  440. if( ds_temp_srchcond_narclist.getColumn(i, "sel" ) == "1" ) {
  441. if( utlf_isNull(narccdlist) ) {
  442. narccdlist = "'" + ds_temp_srchcond_narclist.getColumn(i, "narccd") + "'";
  443. } else {
  444. narccdlist += ",'" + ds_temp_srchcond_narclist.getColumn(i, "narccd") + "'";
  445. }
  446. }
  447. }
  448. ds_temp_srchinfo.setColumn(0, "narccd", narccdlist);
  449. //이선경 2008-07-22 start (조회시 마약종류를 조회조건에 추가)
  450. // grd_narclist.fixedcellischeck(0, 1) = false;
  451. // grd_outnarc.fixedcellischeck(0, 1) = false;
  452. ds_send_srchinfo.copyData(ds_temp_srchinfo);
  453. if( ds_temp_srchinfo.getColumn(0, "prtab") == "Y" ) { // 향정반환반납장부 출력조건 2009.05.18 pymi
  454. ds_send_srchinfo.setColumn(0, "cnclflag", "Y");
  455. ds_send_srchinfo.setColumn(0, "rtnflag", "Y");
  456. ds_send_srchinfo.setColumn(0, "rtnstat", "T");
  457. ds_send_srchinfo.setColumn(0, "cnclstat", "T");
  458. ds_send_srchinfo.setColumn(0, "narcstat", "");
  459. }
  460. // (e)
  461. var oParam = {};
  462. oParam.id = "TRADT30111";
  463. oParam.service = "pharmacyprescriptionapp.Narcotics";
  464. oParam.method = "reqGetNarcPrintDt";
  465. oParam.inds = "req=ds_send_srchinfo";
  466. oParam.outds = "ds_temp_prntdt=item";
  467. oParam.async = false;
  468. //oParam.callback = "cf_TRADT30111";
  469. tranf_submit(oParam);
  470. }
  471. /******************************************************************
  472. * Argument :
  473. * Description : 바코드 변경시
  474. ******************************************************************/
  475. function fChgBarcodeSpre() {
  476. var sBar = ds_temp_srchinfo.getColumn(0, "barcodespre").toUpperCase();
  477. ds_temp_srchinfo.setColumn(0, "barcodespre", sBar);
  478. if(sBar.length >= 21){
  479. if( utlf_isNull(ds_temp_userinfo.getColumn(0, "userid")) ){
  480. sysf_messageBox("사용자ID가 없습니다. 사용자ID부터","C001");
  481. ds_temp_srchinfo.setColumn(0, "srchid", "");
  482. group3.group2.ipt_srchid.setFocus();
  483. } else if(sBar.substr(0,1) != "M" && sBar.substr(0,1) != "H"){
  484. sysf_messageBox("바코드 정보가 다릅니다. 바코드를 다시","C001");
  485. ds_temp_srchinfo.setColumn(0, "barcode", "");
  486. ds_temp_srchinfo.setColumn(0, "barcodespre", "");
  487. group3.group2.input1.setFocus();
  488. } else {
  489. //바코드로 먼저 해당처방을 조회함
  490. ds_temp_srchinfo.setColumn(0, "barcode", ds_temp_srchinfo.getColumn(0, "barcodespre"));
  491. fGetNarcData();
  492. //바코드로 Acting처리가 가능한 처방인지 체크함
  493. //바코드로 처리가능한 Acting : 조제완료, 불출, 잔량반납확인, 반환확인
  494. //바코드로 조회시 데이터는 한건만 조회됨.
  495. ds_main_narclist.setColumn(0, "sel", "1");
  496. fNarcActing("Spre");
  497. ds_temp_srchinfo.setColumn(0, "barcode", "");
  498. ds_temp_srchinfo.setColumn(0, "barcodespre", "");
  499. }
  500. } else {
  501. sysf_messageBox("바코드 정보가 다릅니다.\n다시","C001");
  502. ds_temp_srchinfo.setColumn(0, "barcodespre", "");
  503. group3.group2.input1.setFocus();
  504. }
  505. }
  506. /******************************************************************
  507. * Argument :
  508. * Description : 마약처방전 출력
  509. ******************************************************************/
  510. function fNarcPrint() {
  511. if( utlf_isNull(ds_temp_userinfo.getColumn(0, "userid")) ){
  512. sysf_messageBox("사용자ID가 없습니다. 사용자ID를 먼저","C001");
  513. ds_temp_srchinfo.setColumn(0, "barcode", "");
  514. group3.group2.input9.setFocus();
  515. return;
  516. }
  517. var chkAll = ds_send.getColumn(0, "chkall"); // 20101206 wify 경북대병원 일괄처리 추가
  518. //액팅전 체크표시 cash
  519. fChkCash("before");
  520. for( var i = 0; i < ds_main_narclist.rowcount; i++ ){
  521. var sel = ds_main_narclist.getColumn(i, "sel");
  522. var narcstat = ds_main_narclist.getColumn(i, "narcstat"); // 불출상태
  523. var cnclstat = ds_main_narclist.getColumn(i, "cnclstat"); // 반환상태
  524. var ioflag = ds_main_narclist.getColumn(i, "ioflag"); // 입원외래구분
  525. var prntdt = ds_main_narclist.getColumn(i, "prntdt"); // 처방전출력일시
  526. var sPid = ds_main_narclist.getColumn(i, "pid"); // 환자번호
  527. var sPrcpcd = ds_main_narclist.getColumn(i, "prcpcd"); // 처방명
  528. var sDrugno = ds_main_narclist.getColumn(i, "drugno"); // 투약번호
  529. var rpt = ds_temp.getColumn(0, "reprnt"); //재출력구분 20101221 wify 경북대병원 처방전 재출력 추가
  530. var msg = "*투약번호 : "+sDrugno+" *환자번호 : "+ sPid+ " *약품코드 : "+ sPrcpcd + "\n";
  531. var result = "";
  532. var prntyn = ""; // 출력가능 여부
  533. /*이선경 2008-07-23 start
  534. if(sel == 'Y' && narcstat != "1")
  535. *///이선경 2008-07-23 end
  536. if(sel == "1"){
  537. // 20101221 wify 경북대병원 처방전 재출력시 재출력 체크 하지 않게 함.
  538. if( rpt=="Y" && narcstat == "1" || rpt == "Y" && narcstat == "2") {
  539. alert("일괄처리후 재출력할수 있습니다.");
  540. return;
  541. }
  542. if( !utlf_isNull(prntdt) && narcstat > 2 && rpt != "Y" && rtnprntflag != "Y") {
  543. var prntdata = prntdt.substring(0,4) + "년" + prntdt.substring(4,6) + "월" + prntdt.substring(6,8) + "일" +
  544. prntdt.substring(8,10) + ":" + prntdt.substring(10,12) + ":" + prntdt.substring(12,14);
  545. result = sysf_messageBox(prntdata + "에 출력한 처방입니다. 재출력을","Q003");
  546. } else {
  547. result = "6";
  548. }
  549. if(result == "6") {
  550. ds_send_prntinfo.clear();
  551. dsf_copyColInfo(ds_send_prntinfo, ds_main_narclist);
  552. var iRow = ds_send_prntinfo.addRow();
  553. ds_send_prntinfo.copyRow(iRow, ds_main_narclist, i);
  554. ds_send_prntinfo.addColumn("prntid", "string", 256);
  555. ds_send_prntinfo.setColumn(iRow, "prntid", ds_temp_userinfo.getColumn(0, "userid"));
  556. // ************************ [반환처방전] 출력 ************************
  557. if( !utlf_isNull(cnclstat) ){
  558. if(ioflag == "I"){
  559. // 반환신청, 반환확인, 반환종료시(출력완료, 조제완료 일 때만) 반환처방전 출력 가능
  560. // 20091201 이선경 수정 : 반환신청일때는 제외, 반환확인, 반환종료상태만 가능
  561. // 2013년 3월 26일 김치국 반환신청(cnclstat == "1")일때도 처방전 출력으로 원복
  562. if(cnclstat == "1" || cnclstat == "2" || (parseInt(narcstat) >= 3 && parseInt(narcstat) <= 4 && cnclstat == "7")){
  563. // if(cnclstat == "2" || (parseInt(narcstat) >= 3 && parseInt(narcstat) <= 4 && cnclstat == "7")){
  564. ds_send_prntinfo.addColumn("prntflag", "string", 256);
  565. ds_send_prntinfo.setColumn(iRow, "prntflag", "D");
  566. prntyn = "Y";
  567. } else {
  568. if(cnclstat == "7" ){
  569. //메세지처리 반환종료 된 처방입니다.
  570. sysf_messageBox(msg+"반환","I002");
  571. continue;
  572. } else {
  573. //메세지처리 반환확인해야 합니다.
  574. sysf_messageBox(msg+"반환확인시 반환처방전 출력","I006");
  575. continue;
  576. }
  577. continue;
  578. }
  579. } else {
  580. if(cnclstat == "0"){
  581. //반환확인후 출력가능합니다.
  582. sysf_messageBox(msg+"반환확인후 출력","I006");
  583. continue;
  584. } else {
  585. ds_send_prntinfo.addColumn("prntflag", "string", 256);
  586. ds_send_prntinfo.setColumn(iRow, "prntflag", "D");
  587. prntyn = "Y";
  588. }
  589. }
  590. // ************************ [마약처방전] 출력 ************************
  591. } else {
  592. if(narcstat == "1"){
  593. //불출신청이 되어야 출력가능합니다.
  594. sysf_messageBox(msg+"불출신청 이후 출력","I006");
  595. continue;
  596. } else {
  597. ds_send_prntinfo.addColumn("prntflag", "string", 256);
  598. ds_send_prntinfo.setColumn(iRow, "prntflag", "O");
  599. prntyn = "Y";
  600. }
  601. }
  602. if(prntyn == "Y"){
  603. //dsf_setTypeFormat(ds_send_prntinfo, "prcpno:INT^prcphistno:INT^drugno:INT^drugseqno:INT");
  604. dsf_createDsRow("ds_req", [
  605. {col:"pid" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"pid")}
  606. , {col:"orddd" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"orddd")}
  607. , {col:"orddeptcd" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"orddeptcd")}
  608. , {col:"prcpgenrflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"prcpgenrflag")}
  609. , {col:"prcpdd" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"prcpdd")}
  610. , {col:"prcpno" , type:"INT" , size:256, val:ds_send_prntinfo.getColumn(0,"prcpno")}
  611. , {col:"prcphistno" , type:"INT" , size:256, val:ds_send_prntinfo.getColumn(0,"prcphistno")}
  612. , {col:"drugdd" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"drugdd")}
  613. , {col:"drugno" , type:"INT" , size:256, val:ds_send_prntinfo.getColumn(0,"drugno")}
  614. , {col:"drugseqno" , type:"INT" , size:256, val:ds_send_prntinfo.getColumn(0,"drugseqno")}
  615. , {col:"ioflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"ioflag")}
  616. , {col:"narcflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"narcflag")}
  617. , {col:"narcstat" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"narcstat")}
  618. , {col:"returnflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"returnflag")}
  619. , {col:"prntid" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"prntid")}
  620. , {col:"prntflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"prntflag")}
  621. , {col:"drugflag" , type:"STRING" , size:256, val:ds_send_prntinfo.getColumn(0,"drugflag")}
  622. ]);
  623. var oParam = {};
  624. oParam.id = "TRADT30103";
  625. oParam.service = "pharmacyprescriptionapp.Narcotics";
  626. oParam.method = "reqGetNarcPrntData";
  627. oParam.inds = "req=ds_req";
  628. oParam.outds = "ds_main_patinfo=patinfo ds_main_diaginfo=diaginfo ds_main_prntlist=prntlist ds_main_resn=resn";
  629. oParam.async = false;
  630. //oParam.callback = "cf_TRADT30103";
  631. tranf_submit(oParam);
  632. if( !utlf_isNull(ds_main_patinfo.getColumn(0, "drugno")) ){
  633. //처방전에 DUR이 존재하면 RFADT30105 존재하지 않으면 RFADT30100 출력
  634. var resn = ds_main_resn.getColumn(0, "resnnm");
  635. // 반환일경우 수량에 (-) 표시
  636. if (cnclstat == "0" || cnclstat == "1" || cnclstat == "2" || cnclstat == "7" ) {
  637. var totdrugqty = ds_main_prntlist.getColumn(0, "totdrugqty") ;
  638. totdrugqty = totdrugqty * -1 ;
  639. ds_main_prntlist.setColumn(0, "totdrugqty", totdrugqty );
  640. }
  641. if( utlf_isNull(resn) ){
  642. //1일기준인지 1회기준인지 체크하여 컬럼을 hidden
  643. var colHidnValue = lf_grdBaseColHidn("D");
  644. if( colHidnValue == "C") {//1회 기준
  645. ds_main_patinfo.addColumn("prcpvolchk", "string", 256);
  646. ds_main_patinfo.setColumn(0, "prcpvolchk", "Y");
  647. }
  648. //20101119_wify_경북대병원_마약처방전 폼 변경
  649. // RFADT30100 ==> RFADT30106
  650. // RFADT30105 ==> RFADT30107
  651. var objCxtCommon = new ExtCommon();
  652. ds_main_patinfo.addColumn("sign", "string");
  653. for( var j = 0; j < ds_main_patinfo.rowcount; j++ ){
  654. var objImgeData = objCxtCommon.encodeBase64(ds_main_patinfo.getColumn(j, "signdata"));
  655. ds_main_patinfo.setColumn(j, "sign", objImgeData);
  656. }
  657. var objDOM = rptf_createDOM(); // DOM 객체 설정
  658. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/prntlist", ds_main_prntlist); // 데이터셋 1
  659. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/patinfo", ds_main_patinfo); // 데이터셋 2
  660. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/diaginfo", ds_main_diaginfo); // 데이터셋 3
  661. rptf_setNodeListToDOM(objDOM, "/root/temp/userinfo/userinfo", ds_temp_userinfo); // 데이터셋 4
  662. var objParam = new Object();
  663. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  664. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  665. var prntOtion = "";
  666. if(!utlf_isNull(this.objects["ds_data_comm01"])) {
  667. prntOtion = prntOtion+"printername="+ds_data_comm01.getColumn(0,"setupval")+";";
  668. }
  669. if(!utlf_isNull(this.objects["ds_data_blank"])) {
  670. prntOtion = prntOtion+"offsetx=" + ds_data_blank.getColumn(0,"left") + ";" + "offsety=" + ds_data_blank.getColumn(0,"top") + ";printername=;";
  671. }
  672. rptf_exeReportPreview30(["RFADT30106"],[objParam], option, prntOtion);
  673. }else{
  674. var objCxtCommon = new ExtCommon();
  675. ds_main_patinfo.addColumn("sign", "string");
  676. for( var j=0; j < ds_main_patinfo.rowcount; j++ ){
  677. var objImgeData = objCxtCommon.encodeBase64(ds_main_patinfo.getColumn(j, "signdata"));
  678. ds_main_patinfo.setColumn(j, "sign", objImgeData);
  679. }
  680. var objDOM = rptf_createDOM(); // DOM 객체 설정
  681. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/prntlist", ds_main_prntlist); // 데이터셋 1
  682. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/patinfo", ds_main_patinfo); // 데이터셋 2
  683. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/diaginfo", ds_main_diaginfo); // 데이터셋 3
  684. rptf_setNodeListToDOM(objDOM, "/root/main/prntlist/resn", ds_main_resn); // 데이터셋 4
  685. var objParam = new Object();
  686. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  687. objParam.xml_data_XML2 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  688. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  689. var prntOtion = "";
  690. if(!utlf_isNull(this.objects["ds_data_comm01"])) {
  691. prntOtion = prntOtion+"printername="+ds_data_comm01.getColumn(0,"setupval")+";";
  692. }
  693. if(!utlf_isNull(this.objects["ds_data_blank"])) {
  694. prntOtion = prntOtion+"offsetx=" + ds_data_blank.getColumn(0,"left") + ";" + "offsety=" + ds_data_blank.getColumn(0,"top") + ";printername=;";
  695. }
  696. rptf_exeReportPreview30(["RFADT30107"],[objParam], option, prntOtion);
  697. }
  698. }
  699. }
  700. }
  701. }
  702. }
  703. // 20101206 wify 경북대병원 처방전 출력후 체크표시 및 출력완료 표시
  704. if ( utlf_isNull(chkAll) ) {
  705. fGetNarcData();
  706. //액팅전 체크표시 다시 표시
  707. // grd_narclist.fixedcellischeck(0, 1) = false;
  708. // grd_outnarc.fixedcellischeck(0, 1) = false;
  709. fChkCash("after");
  710. }
  711. }
  712. /******************************************************************
  713. * Argument :
  714. * Description : 마약처방전 출력
  715. ******************************************************************/
  716. function fChkCash(chk) {
  717. var pid = ds_temp_srchinfo.getColumn(0, "pid");
  718. var param_grid = "";
  719. if( ds_main_narclist.rowcount != 0){ // 2009.07.30 pymi
  720. if(chk == "before"){
  721. ds_temp_chkcashinfo_narclist.clear();
  722. dsf_copyColInfo(ds_temp_chkcashinfo_narclist, ds_main_narclist);
  723. for( var i = 0; i < ds_main_narclist.rowcount; i++ ){
  724. if( ds_main_narclist.getColumn(i, "sel") == "1"){
  725. var iRow = ds_temp_chkcashinfo_narclist.addRow();
  726. ds_temp_chkcashinfo_narclist.copyRow(iRow, ds_main_narclist, i);
  727. }
  728. }
  729. } else if(chk == "after"){
  730. for( var a = 0; a < ds_temp_chkcashinfo_narclist.rowcount; a++ ){
  731. var cash_prcpdd = ds_temp_chkcashinfo_narclist.getColumn(a, "prcpdd");
  732. var cash_prcpno = ds_temp_chkcashinfo_narclist.getColumn(a, "prcpno");
  733. for( var b = 0; b < ds_main_narclist.rowcount; b++){
  734. var search_prcpdd = ds_main_narclist.getColumn(b, "prcpdd");
  735. var search_prcpno = ds_main_narclist.getColumn(b, "prcpno");
  736. if(cash_prcpdd == search_prcpdd && cash_prcpno == search_prcpno){
  737. ds_main_narclist.setColumn(b, "sel", "1");
  738. }
  739. }
  740. }
  741. }
  742. }
  743. }
  744. /******************************************************************
  745. * Argument :
  746. * Description : 불출확인서 출력시 출력일자 설정
  747. ******************************************************************/
  748. function fSetNarcPrintDt() {
  749. if( ds_main_narclist.rowcount == 0)
  750. return;
  751. ds_send_prntdt.copyData(ds_main_narclist);
  752. ds_send_prntdt.addColumn("m", "string", 256);
  753. for( var i = 0; i < ds_send_prntdt.rowcount; i++ ){
  754. ds_send_prntdt.setColumn(i, "m", "u");
  755. }
  756. dsf_setTypeFormat(ds_send_prntdt, "drugno:INT^prcpno:INT");
  757. var oParam = {};
  758. oParam.id = "TXADT30104";
  759. oParam.service = "pharmacyprescriptionapp.Narcotics";
  760. oParam.method = "reqSetNarcPrintDt";
  761. oParam.inds = "narcdata=ds_send_prntdt";
  762. oParam.outds = "ds_temp_ret=item";
  763. oParam.async = false;
  764. //oParam.callback = "cf_TXADT30104";
  765. tranf_submit(oParam);
  766. }
  767. /******************************************************************
  768. * Argument : fNarcLBLPrintR(chk)
  769. * Description : 마약라벨 출력
  770. ******************************************************************/
  771. function fNarcLBLPrintR(chk) {
  772. var reprint="";
  773. //20091015 이선경 수정 : 자동출력 기본이 병동(퇴원제외)만이나 lbltype3이 "Y"이면 외래, 퇴원도 모두 출력됨
  774. var lbltype3 = ds_init_lbltype.getColumn(0, "lbltype3");
  775. var prcpclscdflag = "N";
  776. for( var i = 0; i < ds_main_narclist.rowcount; i++ ){
  777. var sel = ds_main_narclist.getColumn(i, "sel");
  778. var sNarcStat = ds_main_narclist.getColumn(i, "narcstat");
  779. var ioflag = ds_main_narclist.getColumn(i, "ioflag");
  780. var drugflag = ds_main_narclist.getColumn(i, "drugflag");
  781. var sPrcphistcd = ds_main_narclist.getColumn(i, "prcphistcd"); // 2010.03.15 pymi
  782. //20091015 이선경 수정 : 조제확인시 라벨자동출력은 fNarcLBLPrint 함수에서 처방조회시 가져온 ioflag로 체크해서 출력 여부 결정
  783. //(수정원인 : 외래,병동 전체 조회 후 조제확인시 라벨자동출력이 안되는 현상이 있음)
  784. //if(sel == 'Y' && ((chk == "Prnt" && sNarcStat == "3" && sPrcphistcd != "D" && (lbltype3 == "Y" || (ioflag == "I" && drugflag != "L" && drugflag != "G"))) || (chk == "Reprnt" && parseInt(sNarcStat,10) > 3))){ // 2010.03.15 pymi 반환완료된 처방 제외
  785. if(sel == "1" && ((chk == "Prnt" && sNarcStat == "2" && sPrcphistcd != "D" && (lbltype3 == "Y" || (ioflag == "I" && drugflag != "L" && drugflag != "G"))) || (chk == "Reprnt" && parseInt(sNarcStat,10) > 3))){ // 2010.03.15 pymi 반환완료된 처방 제외
  786. PrnKind = ds_data_setupinfo.getColumn(0, "prntkind");
  787. PrnMarginLeft = ds_data_blank.getColumn(0, "left");
  788. PrnMarginTop = ds_data_blank.getColumn(0, "top");
  789. var commkind = ds_data_setupinfo.getColumn(0, "commkind")
  790. if(ds_main_narclist.getColumn(i, "prcpclscd") == "A6") {
  791. prcpclscdflag = "Y"; // 20120724_주사라벨이 아닐때만
  792. }
  793. if ( ds_main_narclist.getColumn(i, "lblprnttims")>0 ){
  794. reprint ="(재)";
  795. }
  796. // 바코드(21자리) : 마약구분(1)+입원/외래구분(1)+반납구분(1)+처방일자(8)+처방번호(10)
  797. var narcflag = ds_main_narclist.getColumn(i, "narcflag");
  798. var ioflag = ds_main_narclist.getColumn(i, "ioflag")
  799. var returnflag = ds_main_narclist.getColumn(i, "returnflag");
  800. if( utlf_isNull(returnflag) ){
  801. returnflag = "O";
  802. } else {
  803. returnflag = "D";
  804. }
  805. var prcpdd = ds_main_narclist.getColumn(i, "prcpdd");
  806. var prcpno = ds_main_narclist.getColumn(i, "prcpno");
  807. var drugseqno ="";
  808. if ( ioflag =="O" ){
  809. drugseqno = ds_main_narclist.getColumn(i, "drugseqno");
  810. }
  811. var iLen = prcpno.length;
  812. for(var j=iLen; j<10; j++) {
  813. prcpno = "0" + prcpno;
  814. }
  815. var sResult = narcflag+ioflag+returnflag+prcpdd+prcpno+drugseqno;
  816. ds_main_narclist.addColumn("barcode", "string", 256);
  817. ds_main_narclist.setColumn(i, "barcode", sResult);
  818. //라벨이름
  819. var nm = "";
  820. if(ds_main_narclist.getColumn(i, "narcflag") == "M") {
  821. nm = "마 약";
  822. }else {
  823. nm = "향 정";
  824. }
  825. ds_main_narclist.setColumn(i, "drugkindnm", nm);
  826. ds_main_narclist.setColumn(i, "prcpdd", fGetDateString(ds_main_narclist.getColumn(i, "prcpdd")) );
  827. // issdeptcdnm 글자 수 5자이상 자르기 안되게 수정 2011.9.23. jmkim
  828. var issdept = ds_main_narclist.getColumn(i, "issdeptcdnm");
  829. // var issdept = model.getValue("/root/main/narclist/narclist["+i+"]/issdeptcdnm").substring(0, 5); - original ver. 2011.9.23 jmkim
  830. ds_main_narclist.setColumn(i, "issdeptcdnm", issdept + "("+ds_main_narclist.getColumn(i, "roomcd") + ")" );
  831. // issdeptcdnm(발행부서) 문자열 길이가 15자 이상일 때 체크 2011.9.23 jmkim ex. 508병동(무균)(1111)
  832. var issdeptcdnmvalue = ds_main_narclist.getColumn(i, "issdeptcdnm");
  833. if(issdeptcdnmvalue.length >= 15)
  834. ds_main_narclist.addColumn("issdeptcdnmlengthflag", "string", 256);
  835. ds_main_narclist.setColumn(i, "issdeptcdnmlengthflag", "Y");
  836. var sPid_Drugno = ds_main_narclist.getColumn(i, "patnm")
  837. + " (" + ds_main_narclist.getColumn(i, "drugno")+reprint + ")";
  838. ds_main_narclist.setColumn(i, "patnm", sPid_Drugno);
  839. // 2015년 1월 15일 김치국
  840. var unit = ds_main_narclist.getColumn(i, "totdrugqty") + ds_main_narclist.getColumn(i, "prcpqtyunit");
  841. ds_main_narclist.addColumn("unit", "string", 256);
  842. ds_main_narclist.setColumn(i, "unit", unit);
  843. ds_main_narclist.setColumn(i, "drugnm", "(" + ds_main_narclist.getColumn(i, "drugnm")+")" );
  844. // 20120719_일일수량과 영문상품명 추가
  845. ds_main_narclist.addColumn("qtyname", "string", 256);
  846. ds_main_narclist.setColumn(i, "qtyname", ds_main_narclist.getColumn(i, "totdrugqty") + " " + ds_main_narclist.getColumn(i, "lblnm"));
  847. var day = ds_main_narclist.getColumn(i, "prcpdayno");
  848. var prcptims = ds_main_narclist.getColumn(i, "prcptims");
  849. var prcpqty2 = ds_main_narclist.getColumn(i, "prcpqty2");
  850. var prcpqtyunit = ds_main_narclist.getColumn(i, "prcpqtyunit");
  851. ds_main_narclist.addColumn("narcunit", "string", 256);
  852. ds_main_narclist.setColumn(i, "narcunit", "1일 " + prcptims + "회 " + prcpqty2 + prcpqtyunit + "씩 " + day + "일분");
  853. var rgstdt = "처방입력일시 : "+ fGetDateString(ds_main_narclist.getColumn(i, "rgstdt")) ;
  854. ds_main_narclist.setColumn(i, "rgstdt" , rgstdt);
  855. } else {
  856. ds_main_narclist.deleteRow(i);
  857. i--;
  858. }
  859. }
  860. var instcd = sysf_getUserInfo("dutplceinstcd");
  861. if( ds_temp_srchinfo.getColumn(0, "autoprnt") != "Y") {
  862. var posx = '';
  863. var posy = '';
  864. var nRow = ds_data_pcllist.findRowExpr("barnm=='"+"RFADT30111"+"'");
  865. posx = ds_data_pcllist.getColumn(nRow, "xpos");
  866. posy = ds_data_pcllist.getColumn(nRow, "ypos");
  867. if( utlf_isNull(posx) ) posx = "0";
  868. if( utlf_isNull(posy) ) posy = "0";
  869. var printnm = ds_data_pcllist.getColumn(nRow, "prtnm");
  870. if(instcd == "031") { // 20120724_임시로 본원, 칠곡 구분
  871. // 2015년 4월9일 김치국 마약처방을 ATC출력물로 통일
  872. var objDOM = rptf_createDOM(); // DOM 객체 설정
  873. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  874. sysf_trace(ds_main_narclist.saveXML());
  875. var objParam = new Object();
  876. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  877. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  878. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  879. rptf_exeReportPreview30(["RFADT30113"],[objParam], option, prntOtion);
  880. } else {
  881. if(prcpclscdflag == "Y" ) {
  882. var objDOM = rptf_createDOM(); // DOM 객체 설정
  883. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  884. var objParam = new Object();
  885. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  886. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  887. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  888. rptf_exeReportPreview30(["RFADT30111"],[objParam], option, prntOtion);
  889. } else {
  890. var objDOM = rptf_createDOM(); // DOM 객체 설정
  891. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  892. var objParam = new Object();
  893. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  894. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  895. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  896. rptf_exeReportPreview30(["RFADT30112"],[objParam], option, prntOtion);
  897. }
  898. }
  899. } else if( ds_temp_srchinfo.getColumn(0, "autoprnt") == "Y") {
  900. if(instcd == "031") { // 20120724_임시로 본원, 칠곡 구분
  901. // 2015년 4월9일 김치국 마약처방을 ATC출력물로 통일
  902. var objDOM = rptf_createDOM(); // DOM 객체 설정
  903. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  904. var objParam = new Object();
  905. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  906. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  907. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  908. rptf_exeReportPreview30(["RFADT30113"],[objParam], option, prntOtion);
  909. } else {
  910. if(prcpclscdflag == "Y" ) {
  911. var objDOM = rptf_createDOM(); // DOM 객체 설정
  912. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  913. var objParam = new Object();
  914. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  915. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  916. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  917. rptf_exeReportPreview30(["RFADT30111"],[objParam], option, prntOtion);
  918. } else {
  919. var objDOM = rptf_createDOM(); // DOM 객체 설정
  920. rptf_setNodeListToDOM(objDOM, "/root/main/narclist/narclist", ds_main_narclist); // 데이터셋 1
  921. var objParam = new Object();
  922. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  923. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  924. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  925. rptf_exeReportPreview30(["RFADT30112"],[objParam], option, prntOtion);
  926. }
  927. }
  928. }
  929. var oParam = {};
  930. oParam.id = "TRADT30102";
  931. oParam.service = "pharmacyprescriptionapp.Narcotics";
  932. oParam.method = "reqGetNarcData";
  933. oParam.inds = "req=ds_send_srchinfo";
  934. oParam.outds = "ds_main_narclist=narclist";
  935. oParam.async = false;
  936. oParam.callback = "cf_TRADT30102";
  937. tranf_submit(oParam);
  938. // ds_main_narclist.addColumn("prcpqtyunit2", "string", 256);
  939. // ds_main_narclist.addColumn("dayprcpqtyunit", "string", 256);
  940. // ds_main_narclist.addColumn("prcpvolunit2", "string", 256);
  941. // for( var i = 0; i < ds_main_narclist.rowcount; i++ ){
  942. // var unit = ds_main_narclist.getColumn(i, "prcpqtyunit");
  943. // var volunit = ds_main_narclist.getColumn(i, "prcpvolunit");
  944. // ds_main_narclist.setColumn(i, "prcpqtyunit2", unit);
  945. // ds_main_narclist.setColumn(i, "dayprcpqtyunit", unit);
  946. // ds_main_narclist.setColumn(i, "prcpvolunit2", volunit);
  947. // }
  948. }
  949. // function cf_TRADT30102(sSvcId, nErrorCode, sErrorMsg) {
  950. // if(nErrorCode < 0) return;
  951. // fMakeCopyColumn(ds_main_narclist,"prcpqtyunit","prcpqtyunit2");
  952. // fMakeCopyColumn(ds_main_narclist,"prcpvolunit","prcpvolunit2");
  953. // //dsf_setTypeFormat(ds_main_narclist, "prcptims:INT^prcpdayno:INT^rtnqty:INT^prcpno:INT^prcphistno:INT^drugno:INT");
  954. // }
  955. /******************************************************************
  956. * Argument : fGetDateString(s)
  957. * Description : 바코드불출 Button event
  958. ******************************************************************/
  959. function fGetDateString(s){
  960. var dates = "";
  961. if(s.length >8){
  962. dates = s.substring(0,4) +"/" +s.substring(4,6)+"/" +s.substring(6,8)+" "+s.substring(8,10)+":"+s.substring(10,12)+":"+s.substring(12,14);
  963. } else {
  964. dates = s.substring(0,4) +"/" +s.substring(4,6)+"/" +s.substring(6,8);
  965. }
  966. return dates;
  967. }
  968. /****************************************************************************************
  969. * Argument : objDs - Dataset ID
  970. * : sColSrc - 원본 컬럼
  971. * : sColTgt - 생성할 컬럼
  972. * Description : 데이터셋 특정컬럼 카피하여 새컬럼 생성
  973. ****************************************************************************************/
  974. function fMakeCopyColumn(objDs,sColSrc,sColTgt) {
  975. if(utlf_isNull(objDs.getColumnInfo(sColTgt))) objDs.addColumn(sColTgt,"string");
  976. for(var i = 0 ; i < objDs.rowcount ; i++) {
  977. objDs.setColumn(i,sColTgt,objDs.getColumn(i,sColSrc));
  978. }
  979. }]]></Script>