SPMMO05800.js 38 KB

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