SPMMO05800.xjs 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048
  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-03-03
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-03-03 Live Converter TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. // var sRSRVAPPCNCL_PATH = "/root/main/reqinfo/rsrvappcncl"; ds_main_rsrvappcncl
  16. // var sOPRSRVINFO_PATH = "/root/main/oprsrvinfo/oprsrvinfo"; ds_main_oprsrvinfo
  17. var gSTATUS = 1; //집도의가 변경되면 0: CaseCart뜸, 1: CaseCart뜨지않음
  18. var arErrorCode = new HashArray();
  19. //=======================================================================================
  20. // Function
  21. //---------------------------------------------------------------------------------------
  22. /***************************************************************************************************
  23. * Function : fInitialize_SPMMO05800
  24. * Description : 수술마취 확정 취소 화면 초기화
  25. * Argument :
  26. * return type :
  27. * Creator :
  28. ***************************************************************************************************/
  29. function fInitialize_SPMMO05800(){
  30. fInitOpAnstChngInfo();
  31. // zbcfGetCodeList(new Array("M0014", "M0016", "M0017", "M0243", "M0244", "M0245", "M0341", "M0013", "M0377"),
  32. // new Array("/root/init/M0014", "/root/init/M0016", "/root/init/M0017", "/root/init/M0243", "/root/init/M0244", "/root/init/M0245", "/root/init/M0341", "/root/init/M0013", "/root/init/M0377"));
  33. var arrParam = [ {dsNm: "ds_init_M0013", cdGrpId: "M0013"}
  34. ,{dsNm: "ds_init_M0014", cdGrpId: "M0014"}
  35. ,{dsNm: "ds_init_M0016", cdGrpId: "M0016"}
  36. ,{dsNm: "ds_init_M0017", cdGrpId: "M0017"}
  37. ,{dsNm: "ds_init_M0243", cdGrpId: "M0243"}
  38. ,{dsNm: "ds_init_M0244", cdGrpId: "M0244"}
  39. ,{dsNm: "ds_init_M0245", cdGrpId: "M0245"}
  40. ,{dsNm: "ds_init_M0341", cdGrpId: "M0341"}
  41. ,{dsNm: "ds_init_M0377", cdGrpId: "M0377"}
  42. ]
  43. appf_getCodeList(arrParam);
  44. var opstatcd = ds_main_rsrvappcncl.getColumn(0,"opstatcd");
  45. ds_temp_M0356_FT.filterstr = "cdid < 200";
  46. var hosprsncd = dsf_getDsCSV(ds_temp_M0356_FT); //병원사유
  47. ds_temp_M0356_FT.filterstr = "cdid > 200 && cdid < 300";
  48. var patrsncd = dsf_getDsCSV(ds_temp_M0356_FT); //환자사유
  49. if(opstatcd == "20" || opstatcd == "30") { // 2008.10.23 대기, 수술중 추가
  50. ds_temp_M0356_FT.filterstr = "cdid > 300 && cdid < 400";
  51. var opchngcd = dsf_getDsCSV(ds_temp_M0356_FT); //수술변경
  52. }else{
  53. ds_temp_M0356_FT.filterstr = "cdid > 400 && cdid < 500";
  54. var opchngcd = dsf_getDsCSV(ds_temp_M0356_FT); //수술변경
  55. }
  56. // [요청번호: 847] 수술일자 변경 2010.06.25 kskim. 시작
  57. // 수술일자 변경 시 수술마취의뢰 시 사용 중인 날짜, 시간 체크 기능 사용하기 위해 추가
  58. lf_getHardCDList("N", 102, null, ds_init_chkopcnfmtm); //수술마취 정규수술 저장 가능시간
  59. lf_getHardCDList("N", 103, null, ds_init_chkoffday); //수술마취 정규수술 저장시 휴일체크 여부 체크
  60. //sysf_trace("hosprsncd : "+hosprsncd);
  61. dsf_setCSVToDs("ds_init_hosprsncd", hosprsncd);
  62. dsf_setCSVToDs("ds_init_patrsncd" , patrsncd);
  63. dsf_setCSVToDs("ds_init_opchngcd" , opchngcd);
  64. if(opstatcd > "30") { // 2008.10.23 대기일 경우도 풀기
  65. ds_main_rsrvappcncl.setColumn(0,"reqrsnflag", "U");
  66. radio1.enable = false;
  67. }
  68. fChngCmbOpAnstCnclRsn();
  69. fInptDisable(false);
  70. cmb_rsncd.index = 0;
  71. }
  72. /***************************************************************************************************
  73. * Function : fInitOpAnstChngInfo
  74. * Description : 수술마취 변경내용 초기화
  75. * Argument :
  76. * return type :
  77. * Creator :
  78. ***************************************************************************************************/
  79. function fInitOpAnstChngInfo(){
  80. var oprsrvno = opener.frmf_getParameter("SPMMO05800_param_oprsrvno");
  81. var aprvreqno= opener.frmf_getParameter("SPMMO05800_param_aprvreqno");
  82. var ophistno = opener.frmf_getParameter("SPMMO05800_param_ophistno");
  83. var pid = opener.frmf_getParameter("SPMMO05800_param_pid");
  84. var opdata = opener.frmf_getParameter("SPMMO05800_param_opdata");
  85. var status = "i";
  86. if(aprvreqno != 0){
  87. status = "u";
  88. }
  89. //sysf_trace("opdata : "+opdata)
  90. var param = opdata.split("▦");
  91. ds_main_rsrvappcncl.setColumn(0,"status" , status);
  92. ds_main_rsrvappcncl.setColumn(0,"oprsrvno" , oprsrvno);
  93. ds_main_rsrvappcncl.setColumn(0,"aprvreqno" , aprvreqno);
  94. ds_main_rsrvappcncl.setColumn(0,"ophistno" , ophistno);
  95. ds_main_rsrvappcncl.setColumn(0,"pid" , pid);
  96. ds_main_rsrvappcncl.setColumn(0,"opschedd" , param[19]);
  97. ds_main_rsrvappcncl.setColumn(0,"opfromtmcd" , param[1]);
  98. ds_main_rsrvappcncl.setColumn(0,"opendtmcd" , param[2]);
  99. ds_main_rsrvappcncl.setColumn(0,"oproomcd" , param[3]);
  100. ds_main_rsrvappcncl.setColumn(0,"opcd" , param[4]);
  101. ds_main_rsrvappcncl.setColumn(0,"opnm" , param[5]);
  102. ds_main_rsrvappcncl.setColumn(0,"diagcd" , param[6]);
  103. ds_main_rsrvappcncl.setColumn(0,"diagnm" , param[7]);
  104. ds_main_rsrvappcncl.setColumn(0,"perfdeptcd" , param[8]);
  105. ds_main_rsrvappcncl.setColumn(0,"perfdrid" , param[9]);
  106. ds_main_rsrvappcncl.setColumn(0,"opusetm" , param[10]);
  107. ds_main_rsrvappcncl.setColumn(0,"anstmthdcd" , param[11]);
  108. ds_main_rsrvappcncl.setColumn(0,"opposturecd" , param[14]);
  109. ds_main_rsrvappcncl.setColumn(0,"opdirecflag" , param[15]);
  110. ds_main_rsrvappcncl.setColumn(0,"oppatflagcd" , param[16]);
  111. ds_main_rsrvappcncl.setColumn(0,"opcntmdg" , param[17]);
  112. ds_main_rsrvappcncl.setColumn(0,"opdelivefact" , param[18]);
  113. if(!utlf_isNull(ds_main_rsrvappcncl.getColumn(0,"anstmthdcd"))) {
  114. fChngAnstMthdCmb(cmb_anstmthdcd , cmb_detlanstmthdcd , ds_main_rsrvappcncl, "anstdetlmthdcd");
  115. ds_main_rsrvappcncl.setColumn(0,"anstdetlmthdcd" , param[12]);
  116. }
  117. ds_main_rsrvappcncl.setColumn(0,"opstatcd" , param[13]);
  118. // [요청번호: 847] 수술일자변경 2010.06.25 kskim
  119. ds_main_rsrvappcncl.setColumn(0,"opflagcd" , param[20]); //수술구분(정규,응급,추가)
  120. ds_main_rsrvappcncl.setColumn(0,"cntctel" , param[21]); //연락처
  121. ds_main_rsrvappcncl.setColumn(0,"cnstopflag" , param[22]); //협진여부
  122. ds_main_rsrvappcncl.setColumn(0,"ccrtno" , param[23]); //카드번호
  123. // DRG 정보 2013.06.20 KJS
  124. ds_main_rsrvappcncl.setColumn(0,"drgyn" , param[24]); //DRG 유무
  125. ds_main_rsrvappcncl.setColumn(0,"drgno" , param[25]); //DRG 번호
  126. ds_main_rsrvappcncl.setColumn(0,"drgnm" , param[26]); //DRG 이름
  127. var perfdeptcd = param[8];
  128. // zbcfGetCodeList(new Array("M0356"), new Array("/root/temp/M0356"));
  129. var arrParam = [ {dsNm: "ds_temp_M0356", cdGrpId: "M0356"}]
  130. appf_getCodeList(arrParam);
  131. lf_mmbfGetDeptCodeComboList(ds_init_orddept,"D");
  132. //20180306 이돈희 수정 : 집도의 목록이 수술 예약과 동일하도록 수정
  133. //lf_mmbfGetUserComboList(ds_init_userlist , perfdeptcd, "0330", "", "M");
  134. lf_mmbfGetUserComboList(ds_init_userlist, sysf_getUserInfo("dutplcecd"), "0330", "", "", "", "", "", "", "");
  135. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist, ds_init_opallroomlist, "total");
  136. // mmbfGetHardCodeInfoNm("/root/send/reqdata", "/root/init/oppatflag", 84);
  137. lf_getHardCDList("N", 84, null, ds_init_oppatflag); //수술환자구분
  138. }
  139. /***************************************************************************************************
  140. * Function : fChngAnstMthdCmb
  141. * Description : 마취방법 변경시 마취방법상세 변경
  142. * Argument :
  143. * return type :
  144. * Creator :
  145. ***************************************************************************************************/
  146. function fChngAnstMthdCmb(cmbobj, cmbobjtrgt, cmbbindds, cmbbindcol){
  147. var anstmthdcd = cmbobj.value;
  148. if(anstmthdcd == "01"){ //전신마취
  149. // cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0243/M0243";
  150. cmbobjtrgt.innerdataset = "ds_init_M0243";
  151. }else if(anstmthdcd == "02"){ //부위마취
  152. // cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0244/M0244";
  153. cmbobjtrgt.innerdataset = "ds_init_M0244";
  154. }else if(anstmthdcd == "03"){ //국소마취
  155. // cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0245/M0245";
  156. cmbobjtrgt.innerdataset = "ds_init_M0245";
  157. }
  158. cmbbindds.setColumn(0,cmbbindcol,"-");
  159. ds_main_rsrvappcncl.setColumn(0,"anstdetlmthdcd","00");
  160. }
  161. /***************************************************************************************************
  162. * Function : fChngCmbOpAnstCnclRsn
  163. * Description : 수술마취 확정 취소/변경 구분, 사유변경
  164. * Argument :
  165. * return type :
  166. * Creator :
  167. ***************************************************************************************************/
  168. function fChngCmbOpAnstCnclRsn(){
  169. var reqrsnflag = ds_main_rsrvappcncl.getColumn(0,"reqrsnflag");
  170. var reqrsnflag2 = ds_main_rsrvappcncl.getColumn(0,"reqrsnflag2");
  171. radio2.enable = true;
  172. if(reqrsnflag == "U"){ // 수술변경
  173. radio2.enable = false;
  174. // cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/opchngcd/opchngcd";
  175. cmb_rsncd.innerdataset = "ds_init_opchngcd";
  176. ds_main_rsrvappcncl.setColumn(0,"reqrsncd","")
  177. }else if(reqrsnflag == "C"){ //수술취소
  178. if(reqrsnflag2 == "H"){ //병원사유
  179. //sysf_trace(ds_init_hosprsncd.saveXML());
  180. cmb_rsncd.innerdataset = "ds_init_hosprsncd";
  181. ds_main_rsrvappcncl.setColumn(0,"reqrsncd","")
  182. }else if(reqrsnflag2 == "P"){ //환자사유
  183. cmb_rsncd.innerdataset = "ds_init_patrsncd";
  184. ds_main_rsrvappcncl.setColumn(0,"reqrsncd","")
  185. }
  186. fInptDisable(false);
  187. }
  188. }
  189. /***************************************************************************************************
  190. * Function : fInptDisable
  191. * Description : 화면 disabled 설정
  192. * Argument : bflag : true/false
  193. * return type :
  194. * Creator :
  195. ***************************************************************************************************/
  196. function fInptDisable(bflag){
  197. ipt_opschedd.enable = bflag;
  198. ipt_oproomcd.enable = bflag;
  199. cmb_opfromtmcd.enable = bflag;
  200. cmb_opendtmcd.enable = bflag;
  201. ipt_opusetm.enable = bflag;
  202. ipt_diagcd.enable = bflag;
  203. ipt_diagnm.enable = bflag;
  204. ipt_opcd.enable = bflag;
  205. ipt_opnm.enable = bflag;
  206. cmb_perfdeptcd.enable = bflag;
  207. cmb_perfdrid.enable = bflag;
  208. btn_openopsche.enable = bflag;
  209. cmb_anstmthdcd.enable = bflag;
  210. cmb_detlanstmthdcd.enable = bflag;
  211. // 2008.10.15
  212. cmb_opposture.enable = bflag;
  213. cmb_opdirecflag.enable = bflag;
  214. rdo_oppatflag.enable = bflag;
  215. cmb_opcnfmdg.enable = bflag;
  216. ipt_delivefact.enable = bflag;
  217. // [요청번호: 13012 요청제목: 수술/마취 승인 이후 취소변경 의뢰 시 저장 시점에 유효한 정보가 아닌 경우 BLOCKING]
  218. //유효한 수술명 및 코드가 입력되도록 로직 추가 2010.04.19 by 김광성(kskim)
  219. // 2010.04.14 kskim
  220. btn_ccrtsearch.enable = bflag;
  221. // (e)
  222. // [요청번호: 847] 수술일자변경 2010.06.25 kskim
  223. // opflagcd 수술구분정보 추가
  224. rdo_opflag.enable = bflag;
  225. // DRG 정보 2013.06.20 KJS
  226. rdo_drgyn.enable = bflag;
  227. btn_drgmod.enable = bflag;
  228. ipt_drgno.enable = bflag;
  229. ipt_drgnm.enable = bflag;
  230. }
  231. /***************************************************************************************************
  232. * Function : fChngCmbRsnCD
  233. * Description : 사유콤보 변경
  234. * Argument :
  235. * return type :
  236. * Creator :
  237. ***************************************************************************************************/
  238. function fChngCmbRsnCD(){
  239. var reqrsncd = ds_main_rsrvappcncl.getColumn(0,"reqrsncd");
  240. if(reqrsncd == "302" || reqrsncd == "303" || reqrsncd == "306" || reqrsncd == "402" || reqrsncd == "403"){ //수술시간변경, 수술방변경
  241. fInptDisable(false);
  242. btn_openopsche.enable = true;
  243. }else if(reqrsncd == "305" || reqrsncd == "405"){ //수술 집도의변경
  244. fInptDisable(false);
  245. ipt_opcd.enable = true;
  246. ipt_opnm.enable = true;
  247. cmb_perfdeptcd.enable = true;
  248. cmb_perfdrid.enable = true;
  249. cmb_perfdrid.setFocus();
  250. }else if(reqrsncd == "301" || reqrsncd == "401"){ //수술명 변경
  251. fInptDisable(false);
  252. ipt_opcd.enable = true;
  253. ipt_opnm.enable = true;
  254. // 2010.04.14 kskim
  255. btn_ccrtsearch.enable = true;
  256. ipt_opcd.setFocus();
  257. }else if(reqrsncd == "304" || reqrsncd == "404"){ //진단명 변경
  258. fInptDisable(false);
  259. ipt_diagcd.enable = true;
  260. ipt_diagnm.enable = true;
  261. ipt_diagcd.setFocus();
  262. }else if(reqrsncd == "307" || reqrsncd == "406") { //마취방법 변경
  263. fInptDisable(false);
  264. cmb_anstmthdcd.enable = true;
  265. cmb_detlanstmthdcd.enable = true;
  266. cmb_anstmthdcd.setFocus();
  267. }else if(reqrsncd == "308" || reqrsncd == "407") { //수술집도과 변경
  268. fInptDisable(false);
  269. cmb_perfdeptcd.enable = true;
  270. cmb_perfdrid.enable = true;
  271. ipt_diagcd.enable = true;
  272. ipt_diagnm.enable = true;
  273. ipt_opcd.enable = true;
  274. ipt_opnm.enable = true;
  275. cmb_perfdeptcd.setFocus();
  276. }else if(reqrsncd == "309" || reqrsncd == "408") { //수술체위 변경
  277. fInptDisable(false);
  278. cmb_opposture.enable = true;
  279. cmb_opposture.setFocus();
  280. }else if(reqrsncd == "310" || reqrsncd == "409") { //수술위치 변경
  281. fInptDisable(false);
  282. cmb_opdirecflag.enable = true;
  283. cmb_opdirecflag.setFocus();
  284. }else if(reqrsncd == "311" || reqrsncd == "410") { //수술창상 변경
  285. fInptDisable(false);
  286. cmb_opcnfmdg.enable = true;
  287. cmb_opcnfmdg.setFocus();
  288. }else if(reqrsncd == "312" || reqrsncd == "411") { //전달사항 변경
  289. fInptDisable(false);
  290. ipt_delivefact.enable = true;
  291. ipt_delivefact.setFocus();
  292. }else if(reqrsncd == "313" || reqrsncd == "412") { //수술환자구분 변경
  293. fInptDisable(false);
  294. rdo_oppatflag.enable = true;
  295. rdo_oppatflag.setFocus();
  296. }else if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 수술일 변경 2010.06.25 kskim
  297. // 수술확정(opstatcd: 20), 수술대기(opstatcd: 30) 까지 수술일 변경 허용
  298. var opstatcd = ds_main_rsrvappcncl.getColumn(0,"opstatcd");
  299. if( !utlf_isNull(opstatcd) && opstatcd > 30 ){
  300. sysf_messageBox("수술중인 수술은 수술일 변경을 할 수 ", "I004");
  301. return;
  302. }
  303. // 외래, DSC여부 체크
  304. var oppatflagcd = ds_main_rsrvappcncl.getColumn(0,"oppatflagcd");
  305. if( !utlf_isNull(oppatflagcd) && (oppatflagcd == 'D' || oppatflagcd == 'O')){ //외래,DSC일경우 수술일 변경 불가 2010.06.28. kskim
  306. sysf_messageBox("외래 또는 DSC환자는 수술일 변경을 할 수 ", "I004");
  307. return;
  308. }
  309. // [요청번호: 847] 수술일 변경 2010.06.25 kskim
  310. // 협진여부 체크
  311. var cnstopflag = ds_main_rsrvappcncl.getColumn(0,"cnstopflag");
  312. if( cnstopflag != "Y" ){
  313. ds_send_reqdata.clear();
  314. dsf_makeValue(ds_send_reqdata,"oprsrvno","string", ds_main_rsrvappcncl.getColumn(0,"oprsrvno"));
  315. var oParam = {};
  316. oParam.id = "TRMMO05803";
  317. oParam.service = "prcpmngtapp.OpMngt";
  318. oParam.method = "reqGetCnstOpExist";
  319. oParam.inds = "req=ds_send_reqdata";
  320. oParam.outds = "ds_tmp_cnstopinfo=cnstopinfo";
  321. oParam.async = false;
  322. oParam.callback = "cf_TRMMO05803";
  323. tranf_submit(oParam);
  324. // if( submit("TRMMO05803") ){
  325. if(arErrorCode.pop("TRMMO05803") > -1) {
  326. var cnstopchk = ds_tmp_cnstopinfo.getColumn(0,"cnstopchk");
  327. if( !utlf_isNull(cnstopchk) && (cnstopchk == "Y") ){
  328. sysf_messageBox("협진수술인 경우는 수술일 변경을 할 수 ", "I004");
  329. return;
  330. }
  331. }
  332. fInptDisable(false);
  333. rdo_opflag.enable = true; //수술구분
  334. ipt_opschedd.enable = true; //수술예정일(달력)
  335. btn_openopsche.enable = true; //정규, 응급, 추가에 따라 시간 설정
  336. ds_main_rsrvappcncl.setColumn(0,"opflagcd" , "");
  337. ds_main_rsrvappcncl.setColumn(0,"opschedd" , "");
  338. ds_main_rsrvappcncl.setColumn(0,"oproomcd" , "");
  339. ds_main_rsrvappcncl.setColumn(0,"opfromtmcd", "");
  340. ds_main_rsrvappcncl.setColumn(0,"opendtmcd" , "");
  341. ds_main_rsrvappcncl.setColumn(0,"opusetm" , "");
  342. }else{
  343. sysf_messageBox("협진수술인 경우는 수술일 변경을 할 수 ", "I004");
  344. return;
  345. }
  346. }else if(reqrsncd == "316" || reqrsncd == "413") { //DRG 정보 변경
  347. fInptDisable(false);
  348. rdo_drgyn.enable = true;
  349. btn_drgmod.enable = true;
  350. ipt_drgno.enable = true;
  351. ipt_drgnm.enable = true;
  352. rdo_drgyn.setFocus();
  353. }
  354. }
  355. /***************************************************************************************************
  356. * Function : cf_TRMMO05803
  357. * Description : TRMMO05803 콜백함수
  358. * Argument :
  359. * return type :
  360. * Creator :
  361. ***************************************************************************************************/
  362. function cf_TRMMO05803(sSvcId, nErrorCode, sErrorMsg) {
  363. arErrorCode.push(sSvcId, nErrorCode);
  364. }
  365. /***************************************************************************************************
  366. * Function : fGetCalendar
  367. * Description : 병원 휴일 select
  368. * Argument : basedd : 기준일자
  369. * return type :
  370. * Creator :
  371. ***************************************************************************************************/
  372. function fGetCalendar(basedd){
  373. var preyear = new Date(basedd.substring(0, 4) -1, basedd.substring(4, 6), basedd.substring(6, 8));
  374. dsf_makeValue(ds_send_reqdata,"basedd","string",preyear.getDateFormat().substring(0, 4)+ "▦" +basedd.substring(0, 4));
  375. var oParam = {};
  376. oParam.id = "TRMMO00212";
  377. oParam.service = "prcpmngtapp.OpMngt";
  378. oParam.method = "reqGetPrcpCalendar";
  379. oParam.inds = "req=ds_send_reqdata";
  380. oParam.outds = "ds_main_calendar=calendar";
  381. oParam.async = false;
  382. oParam.callback = "";
  383. tranf_submit(oParam);
  384. // --> 2008.10.27 휴일인 경우 blocking 처리 check
  385. }
  386. /***************************************************************************************************
  387. * Function : fValidOpFlagCD
  388. * Description : 수술구분 유효성 체크, 당일인 경우 정규 설정은 불가함
  389. * Argument :
  390. * return type :
  391. * Creator :
  392. ***************************************************************************************************/
  393. function fValidOpFlagCD(){
  394. var chkopcnfmtm = ds_init_chkopcnfmtm.getColumn(0,"hardcd");
  395. var opflagcd = ds_main_rsrvappcncl.getColumn(0,"opflagcd");
  396. var MyTime = utlf_getCurrentTime();
  397. var Mydate = utlf_getCurrentDate();
  398. var realtime = MyTime.substr(0,2);
  399. // var addstart = ds_init_hardcodeS.getColumn(0,"hardcd");
  400. // var addend = ds_init_hardcodeE.getColumn(0,"hardcd");
  401. // var formalend = ds_init_hardcodeJ.getColumn(0,"hardcd");
  402. var dutflag = ds_main_calendar.getColumn(ds_main_calendar.findRow("basedd",ipt_opschedd.value),"dutflag");
  403. var currentflag = ds_main_calendar.getColumn(ds_main_calendar.findRow("basedd",MyTime),"dutflag");
  404. var reqrsncd = ds_main_rsrvappcncl.getColumn(0,"reqrsncd"); // [요청번호: 847] 수술일 변경 - 수술일변경 사유 구분 코드 2010.07.06 by 박영우
  405. var opusetm = ds_main_rsrvappcncl.getColumn(0,"opusetm"); // [요청번호: 847] 수술일 변경 - 수술시간 2010.07.06 by 박영우
  406. var oproomcd = ds_main_rsrvappcncl.getColumn(0,"oproomcd"); // [요청번호: 847] 수술일 변경 - 수술방 2010.07.06 by 박영우
  407. var cnstopflag = ds_main_rsrvappcncl.getColumn(0,"cnstopflag");
  408. var realopschedd;
  409. if(ipt_opschedd.value == Mydate){ //현재일자와 동일한 경우
  410. if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 수술일 변경 - 당일변경 불가 2010.07.06 by 박영우
  411. sysf_messageBox("당일로 수술일 변경은 할 수 ", "I004"); //by sonjy 20100726
  412. ds_main_rsrvappcncl.setColumn(0,"opschedd", "");
  413. } else {
  414. if(opflagcd == 1){ //정규인 경우
  415. // if(sysf_getUserInfo("dutplceinstcd") == '012' ||sysf_getUserInfo("dutplceinstcd")=='017'||sysf_getUserInfo("dutplceinstcd")=='014'){
  416. // sysf_messageBox("당일 수술마취의뢰는 응급만", "I006");
  417. // }else{
  418. // sysf_messageBox("당일 수술마취의뢰는 추가, 응급만", "I006");
  419. // }
  420. sysf_messageBox("당일 수술마취의뢰는 추가, 응급만", "I006");
  421. ds_main_rsrvappcncl.setColumn(0,"opflagcd", "");
  422. // 2010.05.24 kskim
  423. ds_main_rsrvappcncl.setColumn(0,"opusetm" , "");
  424. ds_main_rsrvappcncl.setColumn(0,"oproomcd", "");
  425. }
  426. // else if((getUserInfo("dutplceinstcd") == '012' ||getUserInfo("dutplceinstcd")=='017'||getUserInfo("dutplceinstcd")=='014' )&& opflagcd == 3 && cnstopflag != "Y"){ //추가인 경우 [kimsj 100322 협진일 경우 당일 가능]
  427. // messageBox("추가의뢰는 익일부터", "I006");
  428. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  429. // }else if( getUserInfo("dutplceinstcd") == '012' && opflagcd == 3 && cnstopflag == "Y"){// 서울성모경우 당일 협진의뢰시 응급만 가능하도록 요청 2010.06.22 kskim
  430. // messageBox("추가의뢰는 익일부터", "I006");
  431. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  432. // }
  433. }
  434. }
  435. // else if(ipt_opschedd.value != Mydate){ //현재일자가 아닌경우
  436. // if( getCurrentWeek() == "6"|| getCurrentWeek() == "0" ) {
  437. // if(getUserInfo("dutplceinstcd") == '012'){
  438. // var opsdd = model.getValue(sRSRVAPPCNCL_PATH + "/opschedd"); // 의뢰요일
  439. // var someday = new Date(opsdd.substring(0, 4), opsdd.substring(4, 6), opsdd.substring(6, 8));
  440. // someday = someday.getAddDate(-1, "M");
  441. // var dkind = someday.getDay();
  442. // if(opflagcd == "1" && dkind == "1") { // 의뢰요일이 월요일이면
  443. // messageBox("월요일 정규 수술마취 의뢰는 전주 금요일 12MD 까지만 가능합니다." + "\n"+"추가로 의뢰하시기 바랍니다. ", "I");
  444. // return;
  445. // }
  446. // }
  447. // }
  448. // if( getUserInfo("dutplceinstcd") == '012' ||getUserInfo("dutplceinstcd")=='017'){
  449. // for(var i =1; i<8; i++){
  450. // var tmprealopschedd = getCurrentDate().toDate('YYYYMMDD').getAddDate(+i, "D").getDateFormat('YYYYMMDD');
  451. // var opyn = model.getValue("/root/main/calendar/calendar[basedd ="+ tmprealopschedd +"]/dutflag");
  452. // if(opyn!="8" && opyn!="4" ){
  453. // realopschedd =tmprealopschedd;
  454. // break;
  455. // }
  456. // }
  457. // if(opflagcd == 1) {
  458. // if (dutflag !="8" && dutflag !="4"){
  459. // if (realopschedd==ipt_opschedd.value){
  460. // if(formalend<=realtime){
  461. // model.alert("정규 수술마취의뢰 가능 시간은 00:00 ~" +formalend+":00 입니다.");
  462. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  463. // }
  464. // }
  465. // }else if ( dutflag =="8" || dutflag =="4") {
  466. // messageBox("수술일자가 휴일 또는 토요일인 경우는 정규수술로 의뢰가 불가능합니다", "I");
  467. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  468. // }
  469. // }else if(opflagcd == 3) { //추가인 경우
  470. // for(var i =1; i<8; i++){
  471. // var tmprealopschedd = getCurrentDate().toDate('YYYYMMDD').getAddDate(+i, "D").getDateFormat('YYYYMMDD');
  472. // var opyn = model.getValue("/root/main/calendar/calendar[basedd ="+ tmprealopschedd +"]/dutflag");
  473. // if(opyn!="8" ){
  474. // realopschedd =tmprealopschedd;
  475. // break;
  476. // }
  477. // }
  478. // if(dutflag!="8"){
  479. // if (realopschedd ==ipt_opschedd.value) {
  480. // if ((currentflag =="8"&& currentflag !="4") || currentflag !="8" ){
  481. // if(realtime<addstart || addend<=realtime){
  482. // model.alert("추가 수술마취의뢰 가능 시간은 "+addstart+":00 ~ "+addend+":00 입니다.");
  483. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  484. // }
  485. // }
  486. // }
  487. // }else if (dutflag=="8" ){
  488. // model.alert("수술 예정일이 휴일 이므로 추가 수술마취 의뢰가 불가능합니다.");
  489. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  490. // }
  491. // }
  492. // }else if(getUserInfo("dutplceinstcd") == '014' && opflagcd == 3 && dutflag=="8") {
  493. // //kimsj 부천 - 수술일자가 휴일인 경우 추가 수술마취의뢰 불가
  494. // model.alert("수술 예정일이 휴일 이므로 추가 수술마취 의뢰가 불가능합니다.");
  495. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  496. // }
  497. // }
  498. if(opflagcd == 2 && ipt_opschedd.value != "") { //응급인 경우
  499. //if(ipt_opschedd.value != getCurrentDate()) {
  500. // if(getUserInfo("dutplceinstcd") == '012' ||getUserInfo("dutplceinstcd")=='017' ){
  501. // if( ipt_opschedd.value != getCurrentDate()) { // 2008.09.10 수술하루전 일괄확정시간 이전일 경우만 check 하도록 조건 추가
  502. // messageBox("응급은 당일 수술마취만", "I006");
  503. // model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  504. // }
  505. // }else {
  506. if( ipt_opschedd.value != getCurrentDate() && getCurrentTime() <= chkopcnfmtm ) { // 2008.09.10 수술하루전 일괄확정시간 이전일 경우만 check 하도록 조건 추가
  507. messageBox("응급은 당일 수술마취만", "I006");
  508. model.setValue(sRSRVAPPCNCL_PATH + "/opflagcd", "");
  509. }
  510. // }
  511. }
  512. }
  513. /***************************************************************************************************
  514. * Function : fReqDailyChrgAnstDr
  515. * Description : 담당요일 의사조회
  516. * Argument : opschedd : 수술예약일자
  517. * return type :
  518. * Creator :
  519. ***************************************************************************************************/
  520. function fReqDailyChrgAnstDr(opschedd){
  521. ds_send_reqdata.clear();
  522. dsf_makeValue(ds_send_reqdata,"opschedd","string",opschedd);
  523. var oParam = {};
  524. oParam.id = "TRMMO00203";
  525. oParam.service = "prcpmngtapp.OpMngt";
  526. oParam.method = "reqGetOpAnstDailyChrgDr";
  527. oParam.inds = "req=ds_send_reqdata";
  528. oParam.outds = "ds_main_dailychrgdrlist=dailychrgdrlist";
  529. oParam.async = false;
  530. oParam.callback = "cf_TRMMO00203";
  531. tranf_submit(oParam);
  532. //if(submit("TRMMO00203")){
  533. if(arErrorCode.pop("TRMMO00203") > -1) {
  534. // var existxml = instance1.selectNodes("/root/main/dailychrgdrlist/dailychrgdrlist");
  535. var existxml = ds_main_dailychrgdrlist.rowcount;
  536. if(existxml == 1){ //담당자가 있는 경우
  537. var daynm = ds_main_dailychrgdrlist.getColumn(0,"chrgdwnm") + "요일";
  538. var chrgdrnm = ds_main_dailychrgdrlist.getColumn(0,"usernm") + "\n"+"("
  539. + ds_main_dailychrgdrlist.getColumn(0,"beepno") + ")";
  540. ds_main_cond.setColumn(0,"daynm" , daynm);
  541. ds_main_cond.setColumn(0,"chrgdrnm", chrgdrnm);
  542. }else{ //담당자가 없는 경우
  543. ds_main_cond.setColumn(0,"daynm" , "");
  544. ds_main_cond.setColumn(0,"chrgdrnm", "");
  545. }
  546. }
  547. }
  548. /***************************************************************************************************
  549. * Function : cf_TRMMO00203
  550. * Description : TRMMO00203 콜백 함수
  551. * Argument :
  552. * return type :
  553. * Creator :
  554. ***************************************************************************************************/
  555. function cf_TRMMO00203(sSvcId, nErrorCode, sErrorMsg) {
  556. arErrorCode.push(sSvcId, nErrorCode);
  557. }
  558. /***************************************************************************************************
  559. * Function : fOpenOpScheTime
  560. * Description : 수술예약시간 설정 open
  561. * Argument :
  562. * return type :
  563. * Creator :
  564. ***************************************************************************************************/
  565. function fOpenOpScheTime(){
  566. var opflagcd = ds_main_rsrvappcncl.getColumn(0,"opflagcd");
  567. var reqrsncd = ds_main_rsrvappcncl.getColumn(0,"reqrsncd");
  568. if( !utlf_isNull(opflagcd) && opflagcd == "1" ){
  569. var param = "u" + "▦" +
  570. ds_main_rsrvappcncl.getColumn(0,"oproomcd") + "▦" +
  571. ds_main_rsrvappcncl.getColumn(0,"oprsrvno") + "▦" +
  572. ds_main_rsrvappcncl.getColumn(0,"ophistno") + "▦" +
  573. ds_main_rsrvappcncl.getColumn(0,"pid") + "▦" +
  574. ds_main_rsrvappcncl.getColumn(0,"opschedd") + "▦" +
  575. ds_main_rsrvappcncl.getColumn(0,"perfdeptcd") + "▦" +
  576. ds_main_rsrvappcncl.getColumn(0,"opfromtmcd") + "▦" +
  577. ds_main_rsrvappcncl.getColumn(0,"opendtmcd") + "▦" +
  578. "oprsrv" + "▦" +
  579. ds_main_rsrvappcncl.getColumn(0,"perfdrid") + "▦" +
  580. ds_main_rsrvappcncl.getColumn(0,"opstatcd");
  581. frmf_setParameter("SPMMO08800_param", param);
  582. // modal("SPMMO08800");
  583. frmf_modal("SPMMO08800", "SPMMO08800", "", "", "", "", "", "", "", "", "", "", "M");
  584. var rtnuseyn = frmf_getParameter("SPMMO08800_rtn_useyn");
  585. if(rtnuseyn == "Y"){
  586. frmf_setParameter("SPMMO08800_rtn_useyn", "N");
  587. var rtnparam = frmf_getParameter("SPMMO08800_rtn_param");
  588. rtnparam = rtnparam.split("▦");
  589. var difftime = utlf_getTimeInterval(rtnparam[1], rtnparam[2]);
  590. ds_main_rsrvappcncl.setColumn(0,"oproomcd" , rtnparam[0]);
  591. ds_main_rsrvappcncl.setColumn(0,"opfromtmcd", rtnparam[1]);
  592. ds_main_rsrvappcncl.setColumn(0,"opendtmcd" , rtnparam[2]);
  593. ds_main_rsrvappcncl.setColumn(0,"opusetm" , fTransSecToHourMin(difftime));
  594. }
  595. }// if( !isNull(opflagcd) && opflagcd == '1' )
  596. else if( !utlf_isNull(opflagcd) && (opflagcd == "2" || opflagcd == "3") ){
  597. //group2.position.left = this.position.left + 150;
  598. //group2.position.top = this.position.top + 150;
  599. group2.visible = true;
  600. radio1.enable = false;
  601. cmb_rsncd.enable= false;
  602. if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 수술일 변경 2010.06.25 kskim
  603. rdo_opflag.enable = true;
  604. } else {
  605. rdo_opflag.enable = false;
  606. }
  607. btn_openopsche.enable = false;
  608. btn_schecnfm.enable = false;
  609. }
  610. }
  611. /***************************************************************************************************
  612. * Function : fTransSecToHourMin
  613. * Description : 초를 시분으로 전환
  614. * Argument : sec : 초
  615. * return type :
  616. * Creator :
  617. ***************************************************************************************************/
  618. function fTransSecToHourMin(sec){
  619. var hr = 3600;
  620. var min = 60;
  621. hour = parseInt(sec/hr);
  622. min = parseInt(sec%hr/min);
  623. hour = ("" + hour + "").getLeftPad(2, "0");
  624. min = ("" + min + "").getLeftPad(2, "0");
  625. var rtnstr = hour.concat(min);
  626. return rtnstr;
  627. }
  628. /***************************************************************************************************
  629. * Function : fOpenDiagSearch
  630. * Description : 진단명 검색 팝업 open
  631. * Argument : pFlag 처리구분 (code : 코드검색, term : 수술명)
  632. * return type :
  633. * Creator :
  634. ***************************************************************************************************/
  635. function fOpenDiagSearch(pFlag){
  636. if(pFlag == "code"){
  637. var diagcd = ds_main_rsrvappcncl.getColumn(0,"diagcd")
  638. frmf_setParameter("SPMMO00800_cond1", 1);
  639. frmf_setParameter("SPMMO00800_cond2", 1);
  640. frmf_setParameter("SPMMO00800_cond3", "E");
  641. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  642. frmf_setParameter("SPMMO00800_cond5", diagcd);
  643. }else if(pFlag =="term"){
  644. var diagnm = ds_main_rsrvappcncl.getColumn(0,"diagnm");
  645. frmf_setParameter("SPMMO00800_cond1", 2);
  646. frmf_setParameter("SPMMO00800_cond2", 2);
  647. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diagnm));
  648. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  649. frmf_setParameter("SPMMO00800_cond5", diagnm);
  650. }
  651. // modal("SPMMO00800");
  652. frmf_modal("SPMMO00800", "SPMMO00800", "", "", "", "", "", "", "", "", "", "", "M");
  653. var useyn = frmf_getParameter("SPMMO00800_rtn_useyn");
  654. if(useyn == "Y"){
  655. frmf_setParameter("SPMMO00800_rtn_useyn", "N");
  656. var rtnparam = frmf_getParameter("SPMMO00800_rtn");
  657. rtnparam = rtnparam.split("▩");
  658. var tmpstr = rtnparam[0];
  659. tmpstr = tmpstr.split("▦");
  660. ds_main_rsrvappcncl.setColumn(0,"diagcd" , tmpstr[9]);
  661. ds_main_rsrvappcncl.setColumn(0,"diagnm" , tmpstr[2]);
  662. }else{
  663. ds_main_rsrvappcncl.setColumn(0,"diagcd" , "");
  664. ds_main_rsrvappcncl.setColumn(0,"diagnm" , "");
  665. }
  666. }
  667. /***************************************************************************************************
  668. * Function : fOpenCcrtSearch
  669. * Description : CaseCart조회 및 value설정
  670. * Argument :
  671. * return type :
  672. * Creator :
  673. ***************************************************************************************************/
  674. function fOpenCcrtSearch(){
  675. var param = ds_main_rsrvappcncl.getColumn(0,"opschedd") + "▦" +
  676. ds_main_rsrvappcncl.getColumn(0,"perfdeptcd") + "▦" +
  677. ds_main_rsrvappcncl.getColumn(0,"perfdrid") + "▦" +
  678. ds_main_rsrvappcncl.getColumn(0,"opcd") + "▦" +
  679. ds_main_rsrvappcncl.getColumn(0,"opnm") + "▦" +
  680. "perf"; //query구분
  681. frmf_setParameter("SPMMO11000_param", param);
  682. // modal("SPMMO11000");
  683. frmf_modal("SPMMO11000", "SPMMO11000", "", "", "", "", "", "", "", "", "", "", "M");
  684. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  685. if(useyn == "Y"){
  686. var rtnparam = frmf_getParameter("SPMMO11000_rtn_param");
  687. rtnparam = rtnparam.split("▦");
  688. ds_main_rsrvappcncl.setColumn(0,"ccrtno" , rtnparam[0]);
  689. ds_main_rsrvappcncl.setColumn(0,"ccrtstat", 1);
  690. ds_main_rsrvappcncl.setColumn(0,"opcd" , rtnparam[1]);
  691. ds_main_rsrvappcncl.setColumn(0,"opnm" , rtnparam[2]);
  692. frmf_setParameter("SPMMO11000_rtn_useyn", "N");
  693. }
  694. }
  695. /***************************************************************************************************
  696. * Function : fOpenCCrtSearchNoCond
  697. * Description : 검색 조건없이 CaseCart조회
  698. * Argument :
  699. * return type :
  700. * Creator :
  701. ***************************************************************************************************/
  702. function fOpenCCrtSearchNoCond(){
  703. var param = ds_main_rsrvappcncl.getColumn(0,"opschedd") + "▦" +
  704. ds_main_rsrvappcncl.getColumn(0,"perfdeptcd") + "▦" +
  705. ds_main_rsrvappcncl.getColumn(0,"perfdrid") + "▦" +
  706. "▦" +
  707. "▦" +
  708. "perf";
  709. frmf_setParameter("SPMMO11000_param", param);
  710. // modal("SPMMO11000");
  711. frmf_modal("SPMMO11000", "SPMMO11000", "", "", "", "", "", "", "", "", "", "", "M");
  712. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  713. if(useyn == "Y"){
  714. var rtnparam = frmf_getParameter("SPMMO11000_rtn_param");
  715. rtnparam = rtnparam.split("▦");
  716. ds_main_rsrvappcncl.setColumn(0,"ccrtno" , rtnparam[0]);
  717. ds_main_rsrvappcncl.setColumn(0,"ccrtstat", 1);
  718. ds_main_rsrvappcncl.setColumn(0,"opcd" , rtnparam[1]);
  719. ds_main_rsrvappcncl.setColumn(0,"opnm" , rtnparam[2]);
  720. frmf_setParameter("SPMMO11000_rtn_useyn", "N");
  721. }
  722. }
  723. /***************************************************************************************************
  724. * Function : fChngHopeTmFlag
  725. * Description : 희망시간구분 변경
  726. * Argument :
  727. * return type :
  728. * Creator :
  729. ***************************************************************************************************/
  730. function fChngHopeTmFlag(){
  731. var hopetmflag = ds_main_rsrvappcncl.getColumn(0,"hopetmflag");
  732. if(hopetmflag == 1){//오전
  733. ds_main_hopebox.setColumn(0,"hopehour", "00");
  734. ds_main_hopebox.setColumn(0,"hopemin" , "00");
  735. ds_main_hopebox.setColumn(0,"usehour", "00");
  736. ds_main_hopebox.setColumn(0,"usemin" , "00");
  737. group2.ipt_cntctel.setFocus();
  738. group2.ipt_hopehour.enable = false;
  739. group2.cmb_hopemin.enable = false;
  740. }else if(hopetmflag == 2){ //오후
  741. ds_main_hopebox.setColumn(0,"hopehour", "00");
  742. ds_main_hopebox.setColumn(0,"hopemin" , "00");
  743. ds_main_hopebox.setColumn(0,"usehour", "00");
  744. ds_main_hopebox.setColumn(0,"usemin" , "00");
  745. }else if(hopetmflag == 3){ //상관없음
  746. group2.ipt_cntctel.setFocus();
  747. group2.ipt_hopehour.enable = false;
  748. group2.cmb_hopemin.enable = false;
  749. }else if(hopetmflag == 4){ //특정시간
  750. group2.ipt_hopehour.enable = true;
  751. group2.cmb_hopemin.enable = true;
  752. //20180330 이돈희 : 오류발생, 1.0코드로 주석 처리
  753. //model.setFocus("ipt_hopehour");
  754. group2.ipt_hopehour.setFocus();
  755. }
  756. }
  757. /***************************************************************************************************
  758. * Function : fClkCnfmHopeTm
  759. * Description : 희망시간 확정버튼 클릭
  760. * Argument :
  761. * return type :
  762. * Creator :
  763. ***************************************************************************************************/
  764. function fClkCnfmHopeTm(){
  765. group2.visible = false;
  766. var hopehour = ds_main_hopebox.getColumn(0,"hopehour");
  767. var hopemin = ds_main_hopebox.getColumn(0,"hopemin");
  768. var usehour = ds_main_hopebox.getColumn(0,"usehour");
  769. var usemin = ds_main_hopebox.getColumn(0,"usemin");
  770. var hopetmflag = ds_main_oprsrvinfo.getColumn(0,"hopetmflag");
  771. if(hopehour.length == 1) {
  772. hopehour = "0" + hopehour;
  773. }
  774. if(usehour.length == 1) {
  775. usehour = "0" + usehour;
  776. }
  777. var opusetm = usehour.concat(usemin);
  778. if(hopetmflag == 4){
  779. var opfromtmcd = hopehour.concat(hopemin) + "00";
  780. var opendhour = eval(hopehour) + eval(usehour);
  781. var opendmin = eval(hopemin) + eval(usemin);
  782. if(opendmin == 60){
  783. opendhour++;
  784. opendmin = "00";
  785. }else if(opendmin == 0){
  786. opendmin = "00";
  787. }
  788. if(opendhour < 10){
  789. opendhour = "0".concat(opendhour);
  790. }
  791. var opendtmcd = ("" + opendhour + "").concat(opendmin) + "00";
  792. ds_main_rsrvappcncl.setColumn(0,"opfromtmcd", opfromtmcd);
  793. ds_main_rsrvappcncl.setColumn(0,"opendtmcd" , opendtmcd);
  794. }
  795. //20180330 이돈희 : 방없음이 아닌 임시방으로 설정 (0000 -> 2222)
  796. ds_main_rsrvappcncl.setColumn(0,"oproomcd", "2222"); //응급, 추가의 경우, 방없음 설정
  797. ds_main_rsrvappcncl.setColumn(0,"opusetm" , opusetm);
  798. if(hopetmflag != 4) { // 2008.10.13 특정시간 설정일 경우만 제외하고 처리
  799. if(cmb_opfromtmcd.value != "" || cmb_opendtmcd.value != "") {
  800. ds_main_rsrvappcncl.setColumn(0,"opfromtmcd", "");
  801. ds_main_rsrvappcncl.setColumn(0,"opendtmcd" , "");
  802. }
  803. }
  804. radio1.enable = true;
  805. cmb_rsncd.enable = true;
  806. btn_openopsche.enable = true;
  807. btn_schecnfm.enable = true;
  808. }
  809. /***************************************************************************************************
  810. * Function : fClkBtnSave
  811. * Description : 저장버튼 클릭
  812. * Argument :
  813. * return type :
  814. * Creator :
  815. ***************************************************************************************************/
  816. function fClkBtnSave(){
  817. var reqrsncd = ds_main_rsrvappcncl.getColumn(0,"reqrsncd");
  818. if(utlf_isNull(reqrsncd)){
  819. sysf_messageBox("사유를", "C002");
  820. return;
  821. }
  822. var reqrsnflag = ds_main_rsrvappcncl.getColumn(0,"reqrsnflag");
  823. var reqrsnflag2= ds_main_rsrvappcncl.getColumn(0,"reqrsnflag2");
  824. if(reqrsnflag == "C" && reqrsnflag2 == "H"){ //수술취소(병원사유)
  825. ds_main_rsrvappcncl.setColumn(0,"reqrsnflag", 1);
  826. }else if(reqrsnflag == "C" && reqrsnflag2 == "P"){ //수술취소(환자사유)
  827. ds_main_rsrvappcncl.setColumn(0,"reqrsnflag", 2);
  828. }else{ //수술변경
  829. ds_main_rsrvappcncl.setColumn(0,"reqrsnflag", 3);
  830. }
  831. if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 수술일 변경 2010.06.25 kskim
  832. ds_main_rsrvappcncl.setColumn(0,"opcnfmdd", ds_main_rsrvappcncl.getColumn(0,"opschedd") );
  833. dsf_makeValue(ds_main_rsrvappcncl,"opchngddflag","string", "Y");
  834. var opflagcd = ds_main_rsrvappcncl.getColumn(0,"opflagcd");
  835. var opusetm = ds_main_rsrvappcncl.getColumn(0,"opusetm"); // [요청번호: 847] 수술일 변경 - 수술시간 2010.07.06 by 박영우
  836. var oproomcd = ds_main_rsrvappcncl.getColumn(0,"oproomcd"); // [요청번호: 847] 수술일 변경 - 수술방 2010.07.06 by 박영우
  837. if(opflagcd == 1) { //[요청번호: 847] 수술일 변경 - 정규일 때 수술방, 수술시간이 빈값일 경우 blocking 2010.07.06 by 박영우
  838. if(utlf_isNull(opusetm) || utlf_isNull(oproomcd)) {
  839. sysf_messageBox("정규수술은 수술방 ", "I003");
  840. return;
  841. }
  842. }
  843. // 수술확정(opstatcd: 20), 수술대기(opstatcd: 30) 까지 수술일 변경 허용
  844. var opstatcd = ds_main_rsrvappcncl.getColumn(0,"opstatcd");
  845. if( !utlf_isNull(opstatcd) && opstatcd > 30 ){
  846. sysf_messageBox("수술중인 수술은 수술일 변경을 할 수 ", "I004");
  847. return;
  848. }
  849. // 외래, DSC여부 체크
  850. var oppatflagcd = ds_main_rsrvappcncl.getColumn(0,"oppatflagcd");
  851. if( !utlf_isNull(oppatflagcd) && (oppatflagcd == 'D' || oppatflagcd == 'O')){ //외래,DSC일경우 수술일 변경 불가 2010.06.28. kskim
  852. sysf_messageBox("외래 또는 DSC환자는 수술일 변경을 할 수 ", "I004");
  853. return;
  854. }
  855. // 협진여부 체크
  856. var cnstopflag = ds_main_rsrvappcncl.getColumn(0,"cnstopflag");
  857. if( cnstopflag != "Y" ){
  858. ds_send_reqdata.clear();
  859. dsf_makeValue(ds_send_reqdata,"oprsrvno","string",ds_main_rsrvappcncl.getColumn(0,"oprsrvno"));
  860. var oParam = {};
  861. oParam.id = "TRMMO05803";
  862. oParam.service = "prcpmngtapp.OpMngt";
  863. oParam.method = "reqGetCnstOpExist";
  864. oParam.inds = "req=ds_send_reqdata";
  865. oParam.outds = "ds_tmp_cnstopinfo=cnstopinfo";
  866. oParam.async = false;
  867. oParam.callback = "cf_TRMMO05803";
  868. tranf_submit(oParam);
  869. if(arErrorCode.pop("TRMMO05803") > -1) {
  870. var cnstopchk = ds_tmp_cnstopinfo.getColumn(0,"cnstopchk");
  871. if( !utlf_isNull(cnstopchk) && (cnstopchk == "Y") ){
  872. sysf_messageBox("협진수술인 경우는 수술일 변경을 할 수 ", "I004");
  873. return;
  874. }
  875. }
  876. }else{
  877. sysf_messageBox("협진수술인 경우는 수술일 변경을 할 수 ", "I004");
  878. return;
  879. }
  880. //당일수술 변경 관련 추가 by sonjy 20100726
  881. if( ds_main_rsrvappcncl.getColumn(0,"opschedd") == utlf_getCurrentDate() ){
  882. sysf_messageBox("당일로 수술일 변경은 할 수 ", "I004");
  883. ds_main_rsrvappcncl.setColumn(0,"opschedd", "");
  884. return ;
  885. }
  886. //수술일 변경시 입력부분 valid check by sonjy 20100726
  887. if( utlf_isNull( ds_main_rsrvappcncl.getColumn(0,"opschedd") ) || ds_main_rsrvappcncl.getColumn(0,"opschedd") == "-" ) {
  888. sysf_messageBox("수술예정일자를 ", "C001");
  889. return;
  890. }
  891. if( utlf_isNull( ds_main_rsrvappcncl.setColumn(0,"opflagcd") ) || ds_main_rsrvappcncl.setColumn(0,"opflagcd") == "-" ) {
  892. sysf_messageBox("수술구분을 ", "C001");
  893. return;
  894. }
  895. }
  896. ds_send_savedata.copyData(ds_main_rsrvappcncl);
  897. var oParam = {};
  898. oParam.id = "TXMMO05801";
  899. oParam.service = "prcpmngtapp.OpMngt";
  900. oParam.method = "reqInsOpAnstRsrvCnclChng";
  901. oParam.inds = "req=ds_send_savedata";
  902. oParam.outds = "";
  903. oParam.async = false;
  904. oParam.callback = "cf_TXMMO05801";
  905. tranf_submit(oParam);
  906. if(arErrorCode.pop("TXMMO05801") > -1){
  907. opener.frmf_setParameter("SPMMO05800_rtn_useyn", "Y");
  908. this.close();
  909. }
  910. }
  911. /***************************************************************************************************
  912. * Function : cf_TXMMO05801
  913. * Description : TXMMO05801 콜백 함수
  914. * Argument :
  915. * return type :
  916. * Creator :
  917. ***************************************************************************************************/
  918. function cf_TXMMO05801(sSvcId, nErrorCode, sErrorMsg) {
  919. arErrorCode.push(sSvcId, nErrorCode);
  920. }
  921. /////////////////////////////////////////////////////////////
  922. /****************************************************************************************
  923. * Components : Button
  924. * Components ID : btn_schecnfm
  925. * Event : onclick
  926. * Argument : 01.obj : Object Event has occurred
  927. * : 02.e : Event Object
  928. * Description : 저장 버튼 클릭
  929. ****************************************************************************************/
  930. function btn_schecnfm_onclick(obj:Button, e:ClickEventInfo)
  931. {
  932. fClkBtnSave();
  933. }
  934. /****************************************************************************************
  935. * Components : Button
  936. * Components ID : btn_schecncl
  937. * Event : onclick
  938. * Argument : 01.obj : Object Event has occurred
  939. * : 02.e : Event Object
  940. * Description : 취소 버튼 클릭
  941. ****************************************************************************************/
  942. function btn_schecncl_onclick(obj:Button, e:ClickEventInfo)
  943. {
  944. opener.frmf_setParameter("SPMMO05800_rtn_useyn", "N");
  945. this.close();
  946. }
  947. /****************************************************************************************
  948. * Components : Button
  949. * Components ID : button1
  950. * Event : onclick
  951. * Argument : 01.obj : Object Event has occurred
  952. * : 02.e : Event Object
  953. * Description : 종료 버튼 클릭
  954. ****************************************************************************************/
  955. function button1_onclick(obj:Button, e:ClickEventInfo)
  956. {
  957. opener.frmf_setParameter("SPMMO05800_rtn_useyn", "N");
  958. this.close();
  959. }
  960. ]]></Script>