SPMMO05900.js 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 수술마취승인 ( SPMMO05900_수술마취승인.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sAPRVREQINFO_PATH = "/root/tmp/aprvreqinfo/aprvreqinfo";
  7. /**
  8. * @desc : 수술마취승인 화면 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @author : 오지훈
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize_SPMMO05900(){
  16. var data = opener.javascript.getParameter("SPMMO05900_param_data");
  17. paramdata = data.split("▦");
  18. zbcfGetCodeList(new Array("M0356", "M0014", "M0016", "M0017", "M0243", "M0244", "M0245", "M0341"),
  19. new Array("/root/init/M0356", "/root/init/M0014", "/root/init/M0016", "/root/init/M0017", "/root/init/M0243", "/root/init/M0244", "/root/init/M0245", "/root/init/M0341"));
  20. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  21. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", paramdata[9], "0330");
  22. reqOpRoomList(getCurrentDate(), "/root/init/oproomlist", "total");
  23. var opstatcd = opener.javascript.getParameter("SPMMO05900_param_opstatcd");
  24. var hosprsncd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid < 200]")); //병원사유
  25. var patrsncd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid > 200 and cdid < 300]")); //환자사유
  26. mmbfGetHardCodeInfoNm("/root/send/reqdata", "/root/init/oppatflag", 84); //수술환자구분
  27. // 2008.10.16
  28. // 승인요청할때는 확정상태였는데 승인할때 상태값이 바뀌면 승인요청 내용을 마취과 의사가 확인할수 없으므로..
  29. if(opstatcd == "20") {
  30. var opchngcd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid > 300 and cdid < 400]")); //수술변경
  31. }else{
  32. var opchngcd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid > 400 and cdid < 500]")); //수술변경
  33. }
  34. setCSVToNode("/root/init/opchngcd" , opchngcd , "opchngcd");
  35. setCSVToNode("/root/init/hosprsncd", hosprsncd , "hosprsncd");
  36. setCSVToNode("/root/init/patrsncd" , patrsncd , "patrsncd");
  37. model.setValue("/root/main/cnfminfo/opcnfmdd" , paramdata[0]);
  38. model.setValue("/root/main/cnfminfo/oproomcd" , paramdata[1]);
  39. model.setValue("/root/main/cnfminfo/opfromtmcd" , paramdata[2]);
  40. model.setValue("/root/main/cnfminfo/opendtmcd" , paramdata[3]);
  41. model.setValue("/root/main/cnfminfo/opusetm" , paramdata[4]);
  42. model.setValue("/root/main/cnfminfo/opcd" , paramdata[5]);
  43. model.setValue("/root/main/cnfminfo/opnm" , paramdata[6]);
  44. model.setValue("/root/main/cnfminfo/diagcd" , paramdata[7]);
  45. model.setValue("/root/main/cnfminfo/diagnm" , paramdata[8]);
  46. model.setValue("/root/main/cnfminfo/perfdeptcd" , paramdata[9]);
  47. model.setValue("/root/main/cnfminfo/perfdrid" , paramdata[10]);
  48. model.setValue("/root/main/cnfminfo/oppatflagcd" , paramdata[11]);
  49. model.setValue("/root/main/cnfminfo/pid" , paramdata[12]);
  50. model.setValue("/root/main/cnfminfo/anstmthdcd" , paramdata[13]);
  51. if(!isNull(model.getValue("/root/main/cnfminfo/anstmthdcd"))) {
  52. fChngAnstMthdCmb(cmb_anstmthdcd , cmb_anstdetlmthdcd, "/root/main/cnfminfo/anstdetlmthdcd");
  53. model.setValue("/root/main/cnfminfo/anstdetlmthdcd" , paramdata[14]);
  54. }
  55. model.setValue("/root/main/cnfminfo/hngnm" , paramdata[15]);
  56. model.setValue("/root/main/cnfminfo/sa" , paramdata[16]);
  57. // 2008.10.14
  58. //model.setValue("/root/main/cnfminfo/ophistno" , paramdata[17]);
  59. model.setValue("/root/main/cnfminfo/opposturecd" , paramdata[17]);
  60. model.setValue("/root/main/cnfminfo/opdirecflag" , paramdata[18]);
  61. model.setValue("/root/main/cnfminfo/opcntmdg" , paramdata[19]);
  62. model.setValue("/root/main/cnfminfo/opdelivefact", paramdata[20]);
  63. model.setValue("/root/main/cnfminfo/orddeptcd" , paramdata[21]);
  64. model.makeValue("/root/main/cnfminfo/opstatcd" , paramdata[22]);
  65. model.makeValue("/root/main/cnfminfo/drgyn" , paramdata[23]);
  66. model.makeValue("/root/main/cnfminfo/drgno" , paramdata[24]);
  67. model.makeValue("/root/main/cnfminfo/drgnm" , paramdata[25]);
  68. //(e)
  69. model.refresh();
  70. /*if(opstatcd != "20") {
  71. model.setValue("/root/main/cond/opchngflag", "U");
  72. radio1.disabled = true;
  73. }
  74. if(opener.javascript.getParameter("SPMMO05900_param_reqrsncd") > 300) {
  75. model.setValue("/root/main/cond/opchngflag", "U");
  76. } else {
  77. model.setValue("/root/main/cond/opchngflag", "C");
  78. }*/
  79. fChngCmbOpAnstCnclRsn();
  80. fReqAprvReqInfo();
  81. model.setFocus("cmb_rsncd");
  82. fInptDisable(true);
  83. }
  84. /**
  85. * @desc : 주/부 수술변경 여부
  86. * @
  87. * @param :
  88. * @return :
  89. * @author : 박유미
  90. * @---------------------------------------------------
  91. */
  92. function fChkCnstOpYN(){
  93. model.removeNodeset("/root/send/reqdata");
  94. model.makeValue("/root/send/reqdata/oprsrvno", opener.javascript.getParameter("SPMMO05900_param_oprsrvno")); //등록번호
  95. if(submit("TRMMO05904")) {
  96. var cnstlist = instance1.selectNodes("/root/main/rgstinfo/rgstinfo/oprsrvno");
  97. if(cnstlist.length > 0) {
  98. messageBox("협진 의뢰된 수술이 있습니다. 협진 수술을 진행하려면 주수술로 변경", "I008");
  99. }
  100. }
  101. }
  102. /**
  103. * @desc : 수술마취승인 조회, 조회 후 변경내용 설정
  104. * @
  105. * @param :
  106. * @return :
  107. * @author : 오지훈
  108. * @---------------------------------------------------
  109. */
  110. function fReqAprvReqInfo(){
  111. var oprsrvno = opener.javascript.getParameter("SPMMO05900_param_oprsrvno");
  112. var aprvreqno= opener.javascript.getParameter("SPMMO05900_param_aprvreqno");
  113. model.makeValue("/root/send/reqdata/oprsrvno" , oprsrvno);
  114. model.makeValue("/root/send/reqdata/aprvreqno", aprvreqno);
  115. if(submit("TRMMO05903")){
  116. fSetOpAnstChngInfo();
  117. }
  118. }
  119. /**
  120. * @desc : 수술마취변경 내용 설정
  121. * @
  122. * @param :
  123. * @return :
  124. * @author : 오지훈
  125. * @---------------------------------------------------
  126. */
  127. function fSetOpAnstChngInfo(){
  128. var oprsrvno = model.getValue(sAPRVREQINFO_PATH + "/oprsrvno");
  129. var opcnfmdd = model.getValue(sAPRVREQINFO_PATH + "/opcnfmdd");
  130. var oproomcd = model.getValue(sAPRVREQINFO_PATH + "/oproomcd");
  131. var opfromtmcd = model.getValue(sAPRVREQINFO_PATH + "/opfromtmcd");
  132. var opendtmcd = model.getValue(sAPRVREQINFO_PATH + "/opendtmcd");
  133. var opusetm = model.getValue(sAPRVREQINFO_PATH + "/opusetm");
  134. var diagcd = model.getValue(sAPRVREQINFO_PATH + "/diagcd");
  135. var diagnm = model.getValue(sAPRVREQINFO_PATH + "/diagnm");
  136. var opcd = model.getValue(sAPRVREQINFO_PATH + "/opcd");
  137. var opnm = model.getValue(sAPRVREQINFO_PATH + "/opnm");
  138. var perfdeptcd = model.getValue(sAPRVREQINFO_PATH + "/perfdeptcd");
  139. var perfdrid = model.getValue(sAPRVREQINFO_PATH + "/perfdrid");
  140. var delivefact = model.getValue(sAPRVREQINFO_PATH + "/delivefact");
  141. var reqrsncd = model.getValue(sAPRVREQINFO_PATH + "/reqrsncd");
  142. var reqrsnflag = model.getValue(sAPRVREQINFO_PATH + "/reqrsnflag");
  143. var aprvreqno = model.getValue(sAPRVREQINFO_PATH + "/aprvreqno");
  144. var ccrtno = model.getValue(sAPRVREQINFO_PATH + "/ccrtno");
  145. var anstmthdcd = model.getValue(sAPRVREQINFO_PATH + "/anstmthdcd");
  146. var anstdetlmthdcd = model.getValue(sAPRVREQINFO_PATH + "/anstdetlmthdcd");
  147. // 2008.10.14
  148. var opposturecd = model.getValue(sAPRVREQINFO_PATH + "/opposturecd");
  149. var opdirecflag = model.getValue(sAPRVREQINFO_PATH + "/opdirecflag");
  150. var oppatflagcd = model.getValue(sAPRVREQINFO_PATH + "/oppatflagcd");
  151. var opcntmdg = model.getValue(sAPRVREQINFO_PATH + "/opcntmdg");
  152. var opdelivefact = model.getValue(sAPRVREQINFO_PATH + "/opdelivefact");
  153. var drgyn = model.getValue(sAPRVREQINFO_PATH + "/drgyn");
  154. var drgno = model.getValue(sAPRVREQINFO_PATH + "/drgno");
  155. var drgnm = model.getValue(sAPRVREQINFO_PATH + "/drgnm");
  156. //(e)
  157. if(reqrsnflag == 1){ //수술취소(병원사유)
  158. model.setValue("/root/main/cond/opchngflag", "C");
  159. model.setValue("/root/main/cond/opchngrsn" , "H");
  160. cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/hosprsncd/hosprsncd";
  161. }else if(reqrsnflag == 2){ //수술취소(환자사유)
  162. model.setValue("/root/main/cond/opchngflag", "C");
  163. model.setValue("/root/main/cond/opchngrsn" , "P");
  164. cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/patrsncd/patrsncd";
  165. }else{ //수술변경
  166. model.setValue("/root/main/cond/opchngflag" , "U");
  167. //cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/opchngcd/opchngcd";
  168. // 2008.10.16 집도의가 신청했을 시점의 상태로 수술변경사유를 띄우도록 수정
  169. // 신청시점과 승인시점의 상태가 변경되었을때 승인창을 띄웠을때 변경사유와 변경내용이 조회되지 않는 문제가 있으므로..
  170. /*if(reqrsncd.substring(0,1) == "3") {
  171. var opchngcd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid > 300 and cdid < 400]")); //수술변경
  172. setCSVToNode("/root/init/opchngcd" , opchngcd , "opchngcd");
  173. }
  174. else {
  175. var opchngcd = getNodeListCSV(model.instance1.selectNodes("/root/init/M0356/M0356[cdid > 400 and cdid < 500]")); //수술변경
  176. setCSVToNode("/root/init/opchngcd" , opchngcd , "opchngcd");
  177. }*/
  178. // (e)
  179. }
  180. model.setValue("/root/main/chnginfo/oprsrvno" , oprsrvno);
  181. model.setValue("/root/main/chnginfo/aprvreqno" , aprvreqno);
  182. model.setValue("/root/main/chnginfo/opcnfmdd" , opcnfmdd);
  183. model.setValue("/root/main/chnginfo/oproomcd" , oproomcd);
  184. model.setValue("/root/main/chnginfo/opfromtmcd" , opfromtmcd);
  185. model.setValue("/root/main/chnginfo/opendtmcd" , opendtmcd);
  186. model.setValue("/root/main/chnginfo/opusetm" , opusetm);
  187. model.setValue("/root/main/chnginfo/diagcd" , diagcd);
  188. model.setValue("/root/main/chnginfo/diagnm" , diagnm);
  189. model.setValue("/root/main/chnginfo/opcd" , opcd);
  190. model.setValue("/root/main/chnginfo/opnm" , opnm);
  191. model.setValue("/root/main/chnginfo/perfdeptcd" , perfdeptcd);
  192. model.setValue("/root/main/chnginfo/perfdrid" , perfdrid);
  193. model.setValue("/root/main/chnginfo/aprvreqno" , aprvreqno);
  194. model.setValue("/root/main/chnginfo/cnfmcnclresncd", reqrsncd);
  195. model.setValue("/root/main/chnginfo/orgdiagcd" , paramdata[7]); //변경 전 진단 설정
  196. //model.setValue("/root/main/chnginfo/oppatflagcd" , paramdata[11]);//환자의 수술구분 설정
  197. model.setValue("/root/main/chnginfo/pid" , paramdata[12]);//등록번호
  198. model.setValue("/root/main/chnginfo/hngnm" , paramdata[15]);//성명
  199. model.setValue("/root/main/chnginfo/sa" , paramdata[16]);//sa
  200. model.setValue("/root/main/chnginfo/ccrtno" , ccrtno); //CaseCart번호
  201. model.setValue("/root/main/cond/opchngcmb" , reqrsncd);
  202. model.setValue("/root/main/chnginfo/anstmthdcd" , anstmthdcd);
  203. model.setValue("/root/main/cond/opchngdeliv" , delivefact); //전달사항
  204. // 2008.10.14
  205. model.setValue("/root/main/chnginfo/opposturecd" , opposturecd);
  206. model.setValue("/root/main/chnginfo/opdirecflag" , opdirecflag);
  207. model.setValue("/root/main/chnginfo/opcntmdg" , opcntmdg);
  208. model.setValue("/root/main/chnginfo/opdelivefact" , opdelivefact);
  209. model.setValue("/root/main/chnginfo/oppatflagcd" , oppatflagcd);//환자의 수술구분 설정
  210. model.setValue("/root/main/chnginfo/orddeptcd" , paramdata[21]);// 진료과
  211. model.setValue("/root/main/chnginfo/drgyn" , drgyn);//
  212. model.setValue("/root/main/chnginfo/drgno" , drgno);//
  213. model.setValue("/root/main/chnginfo/drgnm" , drgnm);//
  214. model.refresh();
  215. //(e)
  216. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", cmb_chngperfdeptcd.value, "0330");
  217. if(!isNull(model.getValue("/root/main/chnginfo/anstmthdcd"))) {
  218. fChngAnstMthdCmb(cmb_chnganstmthdcd , cmb_chnganstdetlmthdcd , "/root/main/chnginfo/anstdetlmthdcd");
  219. model.setValue("/root/main/chnginfo/anstdetlmthdcd" , anstdetlmthdcd);
  220. }
  221. if(reqrsncd == "302" || reqrsncd == "303" || reqrsncd == "306" || reqrsncd == "402" || reqrsncd == "403"){ //수술시간변경, 수술방변경
  222. caption28.attribute("visibility") = "visible";
  223. cmb_chngoproomcd.attribute("visibility") = "visible";
  224. cmb_chngopfromtmcd.attribute("visibility") = "visible";
  225. cmb_chngopendtmcd.attribute("visibility") = "visible";
  226. ipt_chngopusetm.attribute("visibility") = "visible";
  227. caption8.attribute("visibility") = "visible";
  228. }else if(reqrsncd == "305" || reqrsncd == "405"){ //수술집도의 변경
  229. caption18.attribute("visibility") = "visible";
  230. //caption22.attribute("visibility") = "visible";
  231. //caption20.attribute("visibility") = "visible";
  232. cmb_chngperfdeptcd.attribute("visibility") = "visible";
  233. cmb_chngperfdrid.attribute("visibility") = "visible";
  234. // 2008.10.24 같지 않은 경우만 처리함
  235. if(ipt_opcd.value != ipt_chngopcd.value) {
  236. ipt_chngopcd.attribute("visibility") = "visible";
  237. ipt_chngopnm.attribute("visibility") = "visible";
  238. }
  239. // (e)
  240. //mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", cmb_perfdeptcd.value, "0330");
  241. //mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", cmb_chngperfdeptcd.value, "0330");
  242. }else if(reqrsncd == "301" || reqrsncd == "401"){ //수술명 변경
  243. caption20.attribute("visibility") = "visible";
  244. ipt_chngopcd.attribute("visibility") = "visible";
  245. ipt_chngopnm.attribute("visibility") = "visible";
  246. }else if(reqrsncd == "304" || reqrsncd == "404"){ //진단명 변경
  247. caption21.attribute("visibility") = "visible";
  248. ipt_chngdiagcd.attribute("visibility") = "visible";
  249. ipt_chngdiagnm.attribute("visibility") = "visible";
  250. }else if(reqrsncd == "307" || reqrsncd == "406"){ //마취방법 변경
  251. caption7.attribute("visibility") = "visible";
  252. cmb_chnganstmthdcd.attribute("visibility") = "visible";
  253. cmb_chnganstdetlmthdcd.attribute("visibility") = "visible";
  254. }
  255. // 2008.10.14
  256. else if(reqrsncd == "308" || reqrsncd == "407"){ //수술집도과 변경
  257. caption18.attribute("visibility") = "visible";
  258. cmb_chngperfdeptcd.attribute("visibility") = "visible";
  259. cmb_chngperfdrid.attribute("visibility") = "visible";
  260. // 2008.10.24
  261. if(ipt_opcd.value != ipt_chngopcd.value) {
  262. ipt_chngopcd.attribute("visibility") = "visible";
  263. ipt_chngopnm.attribute("visibility") = "visible";
  264. }
  265. if(ipt_diagcd.value != ipt_chngdiagcd.value) {
  266. ipt_chngdiagcd.attribute("visibility") = "visible";
  267. ipt_chngdiagnm.attribute("visibility") = "visible";
  268. }
  269. // (e)
  270. }
  271. else if(reqrsncd == "309" || reqrsncd == "408"){ //수술체위 변경
  272. caption16.attribute("visibility") = "visible";
  273. cmb_chnopposture.attribute("visibility") = "visible";
  274. }else if(reqrsncd == "310" || reqrsncd == "409"){ //수술위치 변경
  275. caption23.attribute("visibility") = "visible";
  276. cmb_chnopdirecflag.attribute("visibility") = "visible";
  277. }else if(reqrsncd == "311" || reqrsncd == "410"){ //수술창상 변경
  278. caption17.attribute("visibility") = "visible";
  279. cmb_chnopcnfmdg.attribute("visibility") = "visible";
  280. }else if(reqrsncd == "312" || reqrsncd == "411"){ //전달사항 변경
  281. caption19.attribute("visibility") = "visible";
  282. ipt_chndelivefact.attribute("visibility") = "visible";
  283. }else if(reqrsncd == "313" || reqrsncd == "412"){ //수술환자구분 변경
  284. caption29.attribute("visibility") = "visible";
  285. rdo_chnoppatflag.attribute("visibility") = "visible";
  286. }
  287. //(e)
  288. model.setValue("/root/main/chnginfo/opchngcd" , model.getValue("/root/main/cond/opchngflag")); //취소사유
  289. model.setValue("/root/main/chnginfo/opchngnm" , cmb_rsncd.label); //취소사유
  290. model.refresh();
  291. }
  292. /**
  293. * @desc : 승인버튼 클릭
  294. * @
  295. * @param :
  296. * @return :
  297. * @author : 오지훈
  298. * @---------------------------------------------------
  299. */
  300. function fClkBtnAprv(){
  301. // 2008.12.23
  302. if(opener.javascript.getParameter("SPMMO05900_param_opstatcd") > 30 && opener.javascript.getParameter("SPMMO05900_param_reqrsncd") < 300) {
  303. messageBox("수술이 종료되어 취소" , "E001");
  304. return;
  305. }
  306. // (e)
  307. // 09.02 협진 주수술 취소 승인시 부 -> 주 변경 메시지
  308. fChkCnstOpYN();
  309. //alert(4567); return;
  310. //수술방변경이 발생했는지 check
  311. if(model.getValue("/root/main/cnfminfo/oproomcd") != model.getValue("/root/main/chnginfo/oproomcd")) {
  312. model.makeValue("/root/main/chnginfo/updtflag", "O");
  313. }
  314. model.copyNode("/root/send/savedata", "/root/main/chnginfo");
  315. var ophistno = opener.javascript.getParameter("SPMMO05900_param_ophistno");
  316. var opstatcd = opener.javascript.getParameter("SPMMO05900_param_opstatcd");
  317. model.setValue("/root/send/savedata/ophistno", ophistno);
  318. model.makeValue("/root/send/savedata/opstatcd", opstatcd);
  319. if(submit("TXMMO05903")){
  320. window.close();
  321. }
  322. }
  323. /**
  324. * @desc : 마취방법 변경시 마취방법상세 변경
  325. * @
  326. * @param :
  327. * @return :
  328. * @author : 오지훈
  329. * @---------------------------------------------------
  330. */
  331. function fChngAnstMthdCmb(cmbobj, cmbobjtrgt, cmbpath){
  332. var anstmthdcd = cmbobj.value;
  333. if(anstmthdcd == "01"){ //전신마취
  334. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0243/M0243";
  335. }else if(anstmthdcd == "02"){ //부위마취
  336. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0244/M0244";
  337. }else if(anstmthdcd == "03"){ //국소마취
  338. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0245/M0245";
  339. }
  340. model.setValue(cmbpath, "-");
  341. cmbobjtrgt.value = "00";
  342. model.refresh();
  343. }
  344. /**
  345. * @desc : 수술마취 확정 취소/변경 구분, 사유변경
  346. * @
  347. * @param :
  348. * @return :
  349. * @author : 2008.08.26 추가
  350. * @---------------------------------------------------
  351. */
  352. function fChngCmbOpAnstCnclRsn(){
  353. var reqrsnflag = model.getValue("/root/main/cond/opchngflag");
  354. var reqrsnflag2 = model.getValue("/root/main/cond/opchngrsn");
  355. radio2.disabled = false;
  356. if(reqrsnflag == "U"){ // 수술변경
  357. radio2.disabled = true;
  358. cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/opchngcd/opchngcd";
  359. }else if(reqrsnflag == "C"){ //수술취소
  360. if(reqrsnflag2 == "H"){ //병원사유
  361. cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/hosprsncd/hosprsncd";
  362. }else if(reqrsnflag2 == "P"){ //환자사유
  363. cmb_rsncd.choices.itemset.attribute("nodeset") = "/root/init/patrsncd/patrsncd";
  364. }
  365. fInptDisable(true);
  366. }
  367. model.refresh();
  368. }
  369. /**
  370. * @desc : 화면 disabled 설정
  371. * @
  372. * @param : bflag true/false
  373. * @return :
  374. * @author : 2008.08.26 추가
  375. * @---------------------------------------------------
  376. */
  377. function fInptDisable(bflag){
  378. var reqrsnflag = model.getValue("/root/main/cond/opchngflag");
  379. if(reqrsnflag == "U"){
  380. radio2.disabled = bflag;
  381. }
  382. //input7.disabled = bflag;
  383. ipt_oproomcd.disabled = bflag;
  384. cmb_opfromtmcd.disabled = bflag;
  385. cmb_opendtmcd.disabled = bflag;
  386. ipt_opusetm.disabled = bflag;
  387. cmb_chngoproomcd.disabled = bflag;
  388. cmb_chngopfromtmcd.disabled = bflag;
  389. cmb_chngopendtmcd.disabled = bflag;
  390. ipt_chngopusetm.disabled = bflag;
  391. ipt_diagcd.disabled = bflag;
  392. ipt_diagnm.disabled = bflag;
  393. ipt_chngdiagcd.disabled = bflag;
  394. ipt_chngdiagnm.disabled = bflag;
  395. ipt_opcd.disabled = bflag;
  396. ipt_opnm.disabled = bflag;
  397. ipt_chngopcd.disabled = bflag;
  398. ipt_chngopnm.disabled = bflag;
  399. cmb_perfdeptcd.disabled = bflag;
  400. cmb_perfdrid.disabled = bflag;
  401. cmb_chngperfdeptcd.disabled = bflag;
  402. cmb_chngperfdrid.disabled = bflag;
  403. cmb_anstmthdcd.disabled = bflag;
  404. cmb_anstdetlmthdcd.disabled = bflag;
  405. cmb_chnganstmthdcd.disabled = bflag;
  406. cmb_chnganstdetlmthdcd.disabled = bflag;
  407. btn_openopsche.disabled = bflag;
  408. // 2008.10.14
  409. cmb_opposture.disabled = bflag;
  410. cmb_chnopposture.disabled = bflag;
  411. cmb_opdirecflag.disabled = bflag;
  412. cmb_chnopdirecflag.disabled = bflag;
  413. cmb_opcnfmdg.disabled = bflag;
  414. cmb_chnopcnfmdg.disabled = bflag;
  415. ipt_delivefact.disabled = bflag;
  416. ipt_chndelivefact.disabled = bflag;
  417. rdo_oppatflag.disabled = bflag;
  418. rdo_chnoppatflag.disabled = bflag;
  419. rdo_drgyn.disabled = bflag;
  420. ipt_drgno.disabled = bflag;
  421. ipt_drgnm.disabled = bflag;
  422. rdo_drgynch.disabled = bflag;
  423. ipt_drgnoch.disabled = bflag;
  424. ipt_drgnmch.disabled = bflag;
  425. //(e)
  426. model.refresh();
  427. }
  428. /**
  429. * @desc : 사유콤보 변경
  430. * @
  431. * @param :
  432. * @return :
  433. * @author : 2008.08.26 추가
  434. * @---------------------------------------------------
  435. */
  436. function fChngCmbRsnCD(){
  437. var reqrsncd = model.getValue("/root/main/cond/opchngcmb");
  438. model.setValue("/root/main/chnginfo/cnfmcnclresncd" , model.getValue("/root/main/cond/opchngcmb") );
  439. if(ipt_oproomcd.value == cmb_chngoproomcd.value) {
  440. cmb_chngoproomcd.attribute("visibility") = "hidden";
  441. cmb_chngopfromtmcd.attribute("visibility") = "hidden";
  442. cmb_chngopendtmcd.attribute("visibility") = "hidden";
  443. ipt_chngopusetm.attribute("visibility") = "hidden";
  444. }
  445. if(ipt_diagcd.value == ipt_chngdiagcd.value) {
  446. ipt_chngdiagcd.attribute("visibility") = "hidden";
  447. ipt_chngdiagnm.attribute("visibility") = "hidden";
  448. }
  449. if(ipt_opcd.value == ipt_chngopcd.value) {
  450. ipt_chngopcd.attribute("visibility") = "hidden";
  451. ipt_chngopnm.attribute("visibility") = "hidden";
  452. }
  453. if(cmb_perfdeptcd.value == cmb_chngperfdeptcd.value) {
  454. cmb_chngperfdeptcd.attribute("visibility") = "hidden";
  455. cmb_chngperfdrid.attribute("visibility") = "hidden";
  456. }
  457. if(cmb_anstmthdcd.value == cmb_chnganstmthdcd.value) {
  458. cmb_chnganstmthdcd.attribute("visibility") = "hidden";
  459. cmb_chnganstdetlmthdcd.attribute("visibility") = "hidden";
  460. }
  461. if(reqrsncd == "302" || reqrsncd == "303" || reqrsncd == "306" || reqrsncd == "402" || reqrsncd == "403"){ //수술시간변경, 수술방변경
  462. fInptDisable(true);
  463. fChngDisable();
  464. //btn_openopsche.disabled = false;
  465. cmb_chngoproomcd.attribute("visibility") = "visible";
  466. cmb_chngopfromtmcd.attribute("visibility") = "visible";
  467. cmb_chngopendtmcd.attribute("visibility") = "visible";
  468. ipt_chngopusetm.attribute("visibility") = "visible";
  469. btn_openopsche.attribute("visibility") = "visible";
  470. btn_openopsche.disabled = false;;
  471. //cmb_chngopfromtmcd.disabled = false;;
  472. //cmb_chngopendtmcd.disabled = false;;
  473. //ipt_chngopusetm.disabled = false;;
  474. }else if(reqrsncd == "305" || reqrsncd == "405"){ //수술 집도의변경
  475. fInptDisable(true);
  476. fChngDisable();
  477. //cmb_perfdeptcd.disabled = false;
  478. //cmb_perfdrid.disabled = false;
  479. cmb_chngperfdeptcd.attribute("visibility") = "visible";
  480. cmb_chngperfdrid.attribute("visibility") = "visible";
  481. cmb_chngperfdeptcd.disabled = false;
  482. cmb_chngperfdrid.disabled = false;
  483. ipt_chngopcd.attribute("visibility") = "visible";
  484. ipt_chngopnm.attribute("visibility") = "visible";
  485. ipt_chngopcd.disabled = false;
  486. ipt_chngopnm.disabled = false;
  487. model.setFocus("cmb_chngperfdeptcd");
  488. }else if(reqrsncd == "301" || reqrsncd == "401"){ //수술명 변경
  489. fInptDisable(true);
  490. fChngDisable();
  491. //ipt_opcd.disabled = false;
  492. //ipt_opnm.disabled = false;
  493. ipt_chngopcd.attribute("visibility") = "visible";
  494. ipt_chngopnm.attribute("visibility") = "visible";
  495. ipt_chngopcd.disabled = false;
  496. ipt_chngopnm.disabled = false;
  497. model.setFocus("ipt_chngopcd");
  498. }else if(reqrsncd == "304" || reqrsncd == "404"){ //진단명 변경
  499. fInptDisable(true);
  500. fChngDisable();
  501. //ipt_diagcd.disabled = false;
  502. //ipt_diagnm.disabled = false;
  503. ipt_chngdiagcd.attribute("visibility") = "visible";
  504. ipt_chngdiagnm.attribute("visibility") = "visible";
  505. ipt_chngdiagcd.disabled = false;
  506. ipt_chngdiagnm.disabled = false;
  507. model.setFocus("ipt_chngdiagcd");
  508. }else if(reqrsncd == "307" || reqrsncd == "406") { //마취방법 변경
  509. fInptDisable(true);
  510. fChngDisable();
  511. //cmb_anstmthdcd.disabled = false;
  512. //cmb_detlanstmthdcd.disabled = false;
  513. cmb_chnganstmthdcd.attribute("visibility") = "visible";
  514. cmb_chnganstdetlmthdcd.attribute("visibility") = "visible";
  515. cmb_chnganstmthdcd.disabled = false;
  516. cmb_chnganstdetlmthdcd.disabled = false;
  517. model.setFocus("cmb_chnganstmthdcd");
  518. }
  519. // 2008.10.14
  520. else if(reqrsncd == "308" || reqrsncd == "407") { //수술집도과 변경
  521. fInptDisable(true);
  522. fChngDisable();
  523. cmb_chngperfdeptcd.attribute("visibility") = "visible";
  524. cmb_chngperfdrid.attribute("visibility") = "visible";
  525. cmb_chngperfdeptcd.disabled = false;
  526. cmb_chngperfdrid.disabled = false;
  527. ipt_chngopcd.attribute("visibility") = "visible";
  528. ipt_chngopnm.attribute("visibility") = "visible";
  529. ipt_chngopcd.disabled = false;
  530. ipt_chngopnm.disabled = false;
  531. ipt_chngdiagcd.attribute("visibility") = "visible";
  532. ipt_chngdiagnm.attribute("visibility") = "visible";
  533. ipt_chngdiagcd.disabled = false;
  534. ipt_chngdiagnm.disabled = false;
  535. model.setFocus("cmb_chngperfdeptcd");
  536. }
  537. else if(reqrsncd == "309" || reqrsncd == "408") { //수술체위 변경
  538. fInptDisable(true);
  539. fChngDisable();
  540. cmb_chnopposture.attribute("visibility") = "visible";
  541. cmb_chnopposture.disabled = false;
  542. model.setFocus("cmb_chnopposture");
  543. } else if(reqrsncd == "310" || reqrsncd == "409") { //수술위치 변경
  544. fInptDisable(true);
  545. fChngDisable();
  546. cmb_chnopdirecflag.attribute("visibility") = "visible";
  547. cmb_chnopdirecflag.disabled = false;
  548. model.setFocus("cmb_chnopdirecflag");
  549. } else if(reqrsncd == "311" || reqrsncd == "410") { //수술창상 변경
  550. fInptDisable(true);
  551. fChngDisable();
  552. cmb_chnopcnfmdg.attribute("visibility") = "visible";
  553. cmb_chnopcnfmdg.disabled = false;
  554. model.setFocus("cmb_chnopcnfmdg");
  555. } else if(reqrsncd == "312" || reqrsncd == "411") { //전달사항 변경
  556. fInptDisable(true);
  557. fChngDisable();
  558. ipt_chndelivefact.attribute("visibility") = "visible";
  559. ipt_chndelivefact.disabled = false;
  560. model.setFocus("ipt_chndelivefact");
  561. } else if(reqrsncd == "313" || reqrsncd == "412") { //수술환자구분 변경
  562. fInptDisable(true);
  563. fChngDisable();
  564. rdo_chnoppatflag.attribute("visibility") = "visible";
  565. rdo_chnoppatflag.disabled = false;
  566. model.setFocus("rdo_chnoppatflag");
  567. }else if(reqrsncd == "316" || reqrsncd == "413") { //DRG 변경
  568. fInptDisable(true);
  569. fChngDisable();
  570. rdo_drgynch.disabled = false;
  571. ipt_drgnoch.disabled = false;
  572. ipt_drgnmch.disabled = false;
  573. rdo_drgynch.attribute("visibility") = "visible";
  574. ipt_drgnoch.attribute("visibility") = "visible";
  575. ipt_drgnmch.attribute("visibility") = "visible";
  576. model.setFocus("rdo_chnoppatflag");
  577. }
  578. // (e)
  579. model.refresh();
  580. }
  581. /**
  582. * @desc : CaseCart조회 및 value설정
  583. * @
  584. * @param :
  585. * @return :
  586. * @author : 2008.08.26 추가
  587. * @---------------------------------------------------
  588. */
  589. function fOpenCcrtSearch(){
  590. var param = model.getValue("/root/send/reqdata/opschedd") + "▦" +
  591. model.getValue("/root/main/chnginfo/perfdeptcd") + "▦" +
  592. model.getValue("/root/main/chnginfo/perfdrid") + "▦" +
  593. model.getValue("/root/main/chnginfo/opcd") + "▦" +
  594. model.getValue("/root/main/chnginfo/opnm") + "▦" +
  595. "perf"; //query구분
  596. setParameter("SPMMO11000_param", param);
  597. modal("SPMMO11000");
  598. var useyn = getParameter("SPMMO11000_rtn_useyn");
  599. if(useyn == "Y"){
  600. var rtnparam = getParameter("SPMMO11000_rtn_param");
  601. rtnparam = rtnparam.split("▦");
  602. model.setValue("/root/main/chnginfo/ccrtno" , rtnparam[0]);
  603. model.setValue("/root/main/chnginfo/ccrtstat", 1);
  604. model.setValue("/root/main/chnginfo/opcd" , rtnparam[1]);
  605. model.setValue("/root/main/chnginfo/opnm" , rtnparam[2]);
  606. setParameter("SPMMO11000_rtn_useyn", "N");
  607. }
  608. model.refresh();
  609. }
  610. /**
  611. * @desc : 진단명 검색 팝업 open
  612. * @
  613. * @param : pFlag 처리구분 (code : 코드검색, term : 수술명)
  614. * @return :
  615. * @author : 2008.08.26 추가
  616. * @---------------------------------------------------
  617. */
  618. function fOpenDiagSearch(pFlag){
  619. if(pFlag == "code"){
  620. var diagcd = model.getValue("/root/main/chnginfo/diagcd")
  621. setParameter("SPMMO00800_cond1", 1);
  622. setParameter("SPMMO00800_cond2", 1);
  623. setParameter("SPMMO00800_cond3", "E");
  624. setParameter("SPMMO00800_cond4", getCurrentDate());
  625. setParameter("SPMMO00800_cond5", diagcd);
  626. }else if(pFlag =="term"){
  627. var diagnm = model.getValue("/root/main/chnginfo/diagnm");
  628. setParameter("SPMMO00800_cond1", 2);
  629. setParameter("SPMMO00800_cond2", 2);
  630. setParameter("SPMMO00800_cond3", fIsHangul(diagnm));
  631. setParameter("SPMMO00800_cond4", getCurrentDate());
  632. setParameter("SPMMO00800_cond5", diagnm);
  633. }
  634. modal("SPMMO00800");
  635. var useyn = getParameter("SPMMO00800_rtn_useyn");
  636. if(useyn == "Y"){
  637. setParameter("SPMMO00800_rtn_useyn", "N");
  638. var rtnparam = getParameter("SPMMO00800_rtn");
  639. rtnparam = rtnparam.split("▩");
  640. var tmpstr = rtnparam[1];
  641. tmpstr = tmpstr.split("▦");
  642. model.setValue("/root/main/chnginfo/diagcd" , tmpstr[9]);
  643. model.setValue("/root/main/chnginfo/diagnm" , tmpstr[2]);
  644. }else{
  645. model.setValue("/root/main/chnginfo/diagcd" , "");
  646. model.setValue("/root/main/chnginfo/diagnm" , "");
  647. }
  648. model.refresh();
  649. }
  650. /**
  651. * @desc : 수술예약시간 설정 open
  652. * @
  653. * @param :
  654. * @return :
  655. * @author : 2008.08.26 추가
  656. * @---------------------------------------------------
  657. */
  658. function fOpenOpScheTime(){
  659. var param = "u" + "▦" +
  660. model.getValue("/root/main/cnfminfo/oproomcd") + "▦" +
  661. model.getValue("/root/send/reqdata/oprsrvno") + "▦" +
  662. model.getValue("/root/main/cnfminfo/ophistno") + "▦" +
  663. model.getValue("/root/main/cnfminfo/pid") + "▦" +
  664. model.getValue("/root/send/reqdata/opschedd") + "▦" +
  665. model.getValue("/root/main/cnfminfo/perfdeptcd") + "▦" +
  666. model.getValue("/root/main/cnfminfo/opfromtmcd") + "▦" +
  667. model.getValue("/root/main/cnfminfo/opendtmcd") + "▦" +
  668. "oprsrv" + "▦" +
  669. model.getValue("/root/main/cnfminfo/perfdrid");
  670. setParameter("SPMMO08800_param", param);
  671. modal("SPMMO08800");
  672. var rtnuseyn = getParameter("SPMMO08800_rtn_useyn");
  673. if(rtnuseyn == "Y"){
  674. setParameter("SPMMO08800_rtn_useyn", "N");
  675. var rtnparam = getParameter("SPMMO08800_rtn_param");
  676. rtnparam = rtnparam.split("▦");
  677. var difftime = getTimeInterval(rtnparam[1], rtnparam[2]);
  678. model.setValue("/root/main/chnginfo/oproomcd" , rtnparam[0]);
  679. model.setValue("/root/main/chnginfo/opfromtmcd", rtnparam[1]);
  680. model.setValue("/root/main/chnginfo/opendtmcd" , rtnparam[2]);
  681. model.setValue("/root/main/chnginfo/opusetm" , fTransSecToHourMin(difftime));
  682. model.refresh();
  683. }
  684. }
  685. /**
  686. * @desc : 초를 시분으로 전환
  687. * @
  688. * @param :
  689. * @return :
  690. * @author : 2008.08.26 추가
  691. * @---------------------------------------------------
  692. */
  693. function fTransSecToHourMin(sec){
  694. var hr = 3600;
  695. var min = 60;
  696. hour = parseInt(sec/hr);
  697. min = parseInt(sec%hr/min);
  698. hour = ("" + hour + "").getLeftPad(2, "0");
  699. min = ("" + min + "").getLeftPad(2, "0");
  700. var rtnstr = hour.concat(min);
  701. return rtnstr;
  702. }
  703. /**
  704. * @desc : 변경데이터를 보여주는 컨트롤들 초기화 및 값 초기화
  705. * @
  706. * @param :
  707. * @return :
  708. * @author : 2008.09.01 추가
  709. * @---------------------------------------------------
  710. */
  711. function fChngDisable(){
  712. cmb_chngoproomcd.attribute("visibility") = "hidden";
  713. cmb_chngopfromtmcd.attribute("visibility") = "hidden";
  714. cmb_chngopendtmcd.attribute("visibility") = "hidden";
  715. ipt_chngopusetm.attribute("visibility") = "hidden";
  716. model.setValue("/root/main/chnginfo/oproomcd" , model.getValue("/root/main/cnfminfo/oproomcd") );
  717. model.setValue("/root/main/chnginfo/opfromtmcd" , model.getValue("/root/main/cnfminfo/opfromtmcd") );
  718. model.setValue("/root/main/chnginfo/opendtmcd" , model.getValue("/root/main/cnfminfo/opendtmcd") );
  719. model.setValue("/root/main/chnginfo/opusetm" , model.getValue("/root/main/cnfminfo/opusetm") );
  720. ipt_chngdiagcd.attribute("visibility") = "hidden";
  721. ipt_chngdiagnm.attribute("visibility") = "hidden";
  722. model.setValue("/root/main/chnginfo/diagcd" , model.getValue("/root/main/cnfminfo/diagcd") );
  723. model.setValue("/root/main/chnginfo/perfdeptcd" , model.getValue("/root/main/cnfminfo/perfdeptcd") );
  724. ipt_chngopcd.attribute("visibility") = "hidden";
  725. ipt_chngopnm.attribute("visibility") = "hidden";
  726. model.setValue("/root/main/chnginfo/opcd" , model.getValue("/root/main/cnfminfo/opcd") );
  727. model.setValue("/root/main/chnginfo/opnm" , model.getValue("/root/main/cnfminfo/opnm") );
  728. cmb_chngperfdeptcd.attribute("visibility") = "hidden";
  729. cmb_chngperfdrid.attribute("visibility") = "hidden";
  730. model.setValue("/root/main/chnginfo/perfdeptcd" , model.getValue("/root/main/cnfminfo/perfdeptcd") );
  731. model.setValue("/root/main/chnginfo/perfdrid" , model.getValue("/root/main/cnfminfo/perfdrid") );
  732. cmb_chnganstmthdcd.attribute("visibility") = "hidden";
  733. cmb_chnganstdetlmthdcd.attribute("visibility") = "hidden";
  734. model.setValue("/root/main/chnginfo/anstmthdcd" , model.getValue("/root/main/cnfminfo/anstmthdcd") );
  735. model.setValue("/root/main/chnginfo/anstdetlmthdcd" , model.getValue("/root/main/cnfminfo/anstdetlmthdcd") );
  736. btn_openopsche.attribute("visibility") = "hidden";
  737. // 2008.10.14
  738. cmb_chnopposture.attribute("visibility") = "hidden";
  739. model.setValue("/root/main/chnginfo/opposturecd" , model.getValue("/root/main/cnfminfo/opposturecd") );
  740. cmb_chnopdirecflag.attribute("visibility") = "hidden";
  741. model.setValue("/root/main/chnginfo/opdirecflag" , model.getValue("/root/main/cnfminfo/opdirecflag") );
  742. cmb_chnopcnfmdg.attribute("visibility") = "hidden";
  743. model.setValue("/root/main/chnginfo/opcntmdg" , model.getValue("/root/main/cnfminfo/opcntmdg") );
  744. ipt_chndelivefact.attribute("visibility") = "hidden";
  745. model.setValue("/root/main/chnginfo/opdelivefact" , model.getValue("/root/main/cnfminfo/opdelivefact") );
  746. rdo_chnoppatflag.attribute("visibility") = "hidden";
  747. model.setValue("/root/main/chnginfo/oppatflagcd" , model.getValue("/root/main/cnfminfo/oppatflagcd") );
  748. // (e)
  749. model.refresh();
  750. }