SPMMO05400.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 수술마취일정변경 ( SPMMO05400_수술마취일정변경.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. /**
  7. * @desc : 수술마취일정변경 화면 초기화
  8. * @
  9. * @param :
  10. * @return :
  11. * @author : 오지훈
  12. * @---------------------------------------------------
  13. */
  14. function fInitialize_SPMMO05400(){
  15. zbcfGetCodeList(new Array("M0014",
  16. "M0017",
  17. "M0243",
  18. "M0244",
  19. "M0245"),
  20. new Array("/root/init/M0014",
  21. "/root/init/M0017",
  22. "/root/init/M0243",
  23. "/root/init/M0244",
  24. "/root/init/M0245"));
  25. reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcd", 18); //마취통증의학과 조회
  26. gANSTDEPTCD = model.getValue("/root/init/hardcd/hardcd/hardcd");
  27. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  28. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", gANSTDEPTCD, "0330");
  29. addComboInstance("/root/init/userlist", "userid^usernm", "-^-", "usercombo"); //의사콤보 전체항목 추가
  30. reqOpRoomList(getCurrentDate(), "/root/init/oproomlist", "total"); //수술방 콤보 조회
  31. addComboInstance("/root/init/oproomlist", "oproomcd^oproomnm", "0000^방없음", "oproomlist"); //수술방 방없음 추가
  32. var param = opener.javascript.getParameter("SPMMO05400_param");
  33. param = param.split("▦");
  34. if(param[12] == "01"){
  35. cmb_anstdetl.choices.itemset.attribute("nodeset") = "/root/init/M0243/M0243";
  36. }else if(param[12] == "02"){
  37. cmb_anstdetl.choices.itemset.attribute("nodeset") = "/root/init/M0244/M0244";
  38. }else if(param[12] == "03"){
  39. cmb_anstdetl.choices.itemset.attribute("nodeset") = "/root/init/M0245/M0245";
  40. }
  41. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", param[7], "0330");
  42. model.refresh();
  43. var opnm = param[15].substring(4, param[15].length); //앞자리의 Lt: Rt:를 제거
  44. model.setValue("/root/main/opanstschechng/oprsrvno" , param[0]);
  45. model.setValue("/root/main/opanstschechng/ophistno" , param[1]);
  46. model.setValue("/root/main/opanstschechng/opcnfmdd" , param[2]);
  47. model.setValue("/root/main/opanstschechng/oproomcd" , param[3]);
  48. model.setValue("/root/main/opanstschechng/opfromtmcd" , param[4]);
  49. model.setValue("/root/main/opanstschechng/opendtmcd" , param[5]);
  50. model.setValue("/root/main/opanstschechng/opusetm" , param[6]);
  51. model.setValue("/root/main/opanstschechng/perfdeptcd" , param[7]);
  52. model.setValue("/root/main/opanstschechng/perfdrid" , param[8]);
  53. model.setValue("/root/main/opanstschechng/anstdrid1" , param[9]);
  54. model.setValue("/root/main/opanstschechng/anstdrid2" , param[10]);
  55. model.setValue("/root/main/opanstschechng/anstdrid3" , param[11]);
  56. model.setValue("/root/main/opanstschechng/anstmthdcd" , param[12]);
  57. model.setValue("/root/main/opanstschechng/opflagcd" , param[13]);
  58. model.setValue("/root/main/opanstschechng/diagnm" , param[14]);
  59. model.setValue("/root/main/opanstschechng/opnm" , opnm);
  60. model.setValue("/root/main/opanstschechng/diagcd" , param[16]);
  61. model.setValue("/root/main/opanstschechng/opcd" , param[17]);
  62. model.setValue("/root/main/opanstschechng/anstdetlmthdcd" , param[18]);
  63. model.setValue("/root/main/opanstschechng/opstatcd" , param[20]);
  64. model.setValue("/root/main/opanstschechng/pid" , param[21]);
  65. model.setValue("/root/main/opanstschechng/oppatflagcd" , param[22]);
  66. model.setValue("/root/main/opanstschechng/orgdiagcd" , param[16]); //원진단코드
  67. model.setValue("/root/main/opanstschechng/ccrtno" , param[23]); //ccrtno
  68. model.setValue("/root/main/opanstschechng/hngnm" , param[24]);
  69. model.setValue("/root/main/opanstschechng/sa" , param[25]);
  70. model.setValue("/root/main/opanstschechng/cnstopflag" , param[26]);
  71. model.setValue("/root/main/opanstschechng/moproomcd" , param[27]); // 2008.09.08 협진일경우 주수술의 수술방,시간
  72. model.setValue("/root/main/opanstschechng/mopfromtmcd" , param[28]);
  73. model.setValue("/root/main/opanstschechng/mopendtmcd" , param[29]);
  74. model.setValue("/root/main/opanstschechng/anstccrtno" , param[31]); //2008.10.17 마취CART
  75. model.setValue("/root/main/opanstschechng/mainoprsrvno" , param[32]); //2008.11.26 주수술예약번호
  76. model.copyNode("/root/temp/opanstschechng" , "/root/main/opanstschechng");
  77. //2008.08.25 LWS 타과협진수술구분 Y인경우 caption1 보이도록
  78. if(param[26] == "Y") {
  79. caption1.visible = true;
  80. }
  81. // 2008.12.03 수술중 수술 상태에 상관없이 일정 변경가능하도록
  82. if(param[20] != 20 && param[20] != 30 && param[20] != 15) {
  83. combo4.disabled = true;
  84. input5.disabled = true;
  85. input3.disabled = true;
  86. input6.disabled = true;
  87. input4.disabled = true;
  88. cmb_perfdeptcd2.disabled = true;
  89. combo10.disabled = true;
  90. //radio2.disabled = true; //2013.09.11 수술구분 변경가능하도록 수정
  91. }
  92. // 09.02.04 주수술이 취소된 경우만 주/부 변경이 가능하도록
  93. if(param[26] == "Y") {
  94. if(!fChkMainOpYN()) return;
  95. }
  96. //(e)
  97. model.refresh();
  98. }
  99. /**
  100. * @desc : 주/부 수술변경 여부
  101. * @
  102. * @param :
  103. * @return :
  104. * @author : 박유미
  105. * @---------------------------------------------------
  106. */
  107. function fChkMainOpYN(){
  108. var mainoprsrvno = model.getValue("/root/main/opanstschechng/mainoprsrvno");
  109. model.removeNodeset("/root/send/reqdata");
  110. model.makeValue("/root/send/reqdata/mainoprsrvno", mainoprsrvno); //등록번호
  111. if(submit("TRMMO05402")) {
  112. var rgstyn = model.getValue("/root/main/rgstinfo/rgstinfo/ret");
  113. var retmainoprsrvno = model.getValue("/root/main/rgstinfo/rgstinfo/mainoprsrvno");
  114. if(rgstyn == "Y") { // 주수술이 삭제되었음.
  115. checkbox1.disabled = false;
  116. return true;
  117. }else{
  118. return false;
  119. }
  120. }
  121. return true;
  122. }
  123. /**
  124. * @desc : 변경된 내역 유무확인(스케줄 변경 확인버튼 클릭)
  125. * @
  126. * @param :
  127. * @return :
  128. * @author : 오지훈
  129. * @---------------------------------------------------
  130. */
  131. function fClkScheChngBtn(){
  132. if(compareNodeVal("/root/temp/opanstschechng", "/root/main/opanstschechng") == true){
  133. //변경된 내역이 있는 경우
  134. if(fCheckValidTime("/root/main/opanstschechng") == true) {
  135. // 2008.09.08 협진이면 주수술 수술방, 시간이 일치하는지 check한다. (s)
  136. // 2008.09.26 협진수술시간 지정 가능하도록 주석처리
  137. /*if(model.getValue("/root/main/opanstschechng/cnstopflag") == "Y") {
  138. var moproomcd = model.getValue("/root/temp/opanstschechng/moproomcd");
  139. var mopfromtmcd = model.getValue("/root/temp/opanstschechng/mopfromtmcd");
  140. var mopendtmcd = model.getValue("/root/temp/opanstschechng/mopendtmcd");
  141. var oproomcd = model.getValue("/root/main/opanstschechng/oproomcd");
  142. var opfromtmcd = model.getValue("/root/main/opanstschechng/opfromtmcd");
  143. var opendtmcd = model.getValue("/root/main/opanstschechng/opendtmcd");
  144. if( moproomcd != oproomcd ) {
  145. messageBox("주수술의 방과", "E004");
  146. return;
  147. }
  148. if( (mopfromtmcd != opfromtmcd) || (mopendtmcd != opendtmcd) ) {
  149. messageBox("주수술의 시간과", "E004");
  150. return;
  151. }
  152. }*/
  153. // 2008.09.26 수술진행중인 수술시간대로 입력불가
  154. /*var oproomcd = model.getValue("/root/main/opanstschechng/oproomcd");
  155. var opfromtmcd = model.getValue("/root/main/opanstschechng/opfromtmcd");
  156. var opendtmcd = model.getValue("/root/main/opanstschechng/opendtmcd");
  157. var nodeList = opener.instance1.selectNodes("/root/main/opanstpatinfo/opanstcnfmpatlist[opstatcd = '40' and oproomcd = "+ oproomcd +"]");
  158. if( nodeList.length > 0 ) {
  159. var cOpfromtmcd = nodeList.item(0).selectSingleNode("opfromtmcd").text;
  160. var cOpendtmcd = nodeList.item(0).selectSingleNode("opendtmcd").text;
  161. if(cOpfromtmcd == opfromtmcd) {
  162. messageBox("현재 수술 진행중인 수술", "I009");
  163. return;
  164. }
  165. if(cOpfromtmcd < opfromtmcd && cOpendtmcd >= opfromtmcd ) {
  166. messageBox("현재 수술 진행중인 수술", "I009");
  167. return;
  168. }
  169. if(cOpfromtmcd < opendtmcd && (cOpendtmcd >= opendtmcd || cOpendtmcd <= opendtmcd) ) {
  170. messageBox("현재 수술 진행중인 수술", "I009");
  171. return;
  172. }
  173. }*/
  174. //(e)
  175. // 2008.10.07 마취의 배정
  176. //마취의1이 배정되지 않고 마취의 2,3이 선택되는 문제점 방지
  177. var anstdrid1 = model.getValue("/root/main/opanstschechng/anstdrid1");
  178. var anstdrid2 = model.getValue("/root/main/opanstschechng/anstdrid2");
  179. var anstdrid3 = model.getValue("/root/main/opanstschechng/anstdrid3");
  180. if( (!isNull(anstdrid2) && anstdrid2 != '-') || (!isNull(anstdrid3) && anstdrid3 != '-') ) {
  181. if(anstdrid1 == "" || anstdrid1 == "-") {
  182. messageBox("마취의1을", "C002");
  183. return;
  184. }
  185. }
  186. // (e)
  187. // 09.02.05
  188. var perfdeptcd = model.getValue("/root/main/opanstschechng/perfdeptcd");
  189. var perfdrid = model.getValue("/root/main/opanstschechng/perfdrid");
  190. if(perfdeptcd == "") {
  191. messageBox("집도과를", "C002");
  192. return;
  193. }
  194. if(perfdrid == "") {
  195. messageBox("집도의를", "C002");
  196. return;
  197. }
  198. // (e)
  199. fSetOpAnstChngStatus(); //저장될 status를 변경값에 따라 설정
  200. if( model.getValue("/root/main/opanstschechng/tmststatus") == "u") {
  201. // 2008.09.24 변경될 수술방 alert
  202. if(submit("TXMMO05406")) { // 2008.10.01 수술방, 시간 변경일 경우만 message 날리기
  203. var msg = model.getValue("/root/main/opanstpatinfo/bfcnfmtmlist/msg");
  204. if(msg != "") {
  205. var chk = messageBox(msg + "\n\n", "Q012");
  206. }
  207. if(chk == "6" || msg == "") {
  208. //fSetOpAnstChngStatus(); //저장될 status를 변경값에 따라 설정
  209. model.removeNodeset("/root/send/savedata");
  210. model.makeNode("/root/send/savedata");
  211. model.copyNode("/root/send/savedata", "/root/main/opanstschechng");
  212. if(submit("TXMMO05402")){
  213. opener.javascript.setParameter("SPMMO05400_rtn_useyn", "Y");
  214. window.close();
  215. }
  216. }
  217. }
  218. } else {
  219. model.removeNodeset("/root/send/savedata");
  220. model.makeNode("/root/send/savedata");
  221. model.copyNode("/root/send/savedata", "/root/main/opanstschechng");
  222. if(submit("TXMMO05402")){
  223. opener.javascript.setParameter("SPMMO05400_rtn_useyn", "Y");
  224. window.close();
  225. }
  226. }
  227. // (e)
  228. }
  229. } else{
  230. //변경된 내역이 없는 경우
  231. messageBox("저장할 내역이", "I004");
  232. return;
  233. }
  234. }
  235. /**
  236. * @desc : 변경된 데이터에 따라 status를 구분한다.
  237. * @
  238. * @param :
  239. * @return :
  240. * @author : 오지훈
  241. * @---------------------------------------------------
  242. */
  243. function fSetOpAnstChngStatus(){
  244. var diagcd = model.getValue("/root/main/opanstschechng/diagcd");
  245. var perfdrid = model.getValue("/root/main/opanstschechng/perfdrid");
  246. var anstdrid1 = model.getValue("/root/main/opanstschechng/anstdrid1");
  247. var anstdrid2 = model.getValue("/root/main/opanstschechng/anstdrid2");
  248. var anstdrid3 = model.getValue("/root/main/opanstschechng/anstdrid3");
  249. var opcd = model.getValue("/root/main/opanstschechng/opcd");
  250. var oproomcd = model.getValue("/root/main/opanstschechng/oproomcd");
  251. var anstmthdcd = model.getValue("/root/main/opanstschechng/anstmthdcd");
  252. var anstdetlmthdcd = model.getValue("/root/main/opanstschechng/anstdetlmthdcd");
  253. var orgdiagcd = model.getValue("/root/temp/opanstschechng/diagcd");
  254. var orgperfdrid = model.getValue("/root/temp/opanstschechng/perfdrid");
  255. var organstdrid1 = model.getValue("/root/temp/opanstschechng/anstdrid1");
  256. var organstdrid2 = model.getValue("/root/temp/opanstschechng/anstdrid2");
  257. var organstdrid3 = model.getValue("/root/temp/opanstschechng/anstdrid3");
  258. var orgopcd = model.getValue("/root/temp/opanstschechng/opcd");
  259. var orgoproomcd = model.getValue("/root/temp/opanstschechng/oproomcd");
  260. var organstmthdcd = model.getValue("/root/temp/opanstschechng/anstmthdcd");
  261. var organstdetlmthdcd = model.getValue("/root/temp/opanstschechng/anstdetlmthdcd");
  262. if(diagcd != orgdiagcd){
  263. model.setValue("/root/main/opanstschechng/diagstatus", "u");
  264. }
  265. if( oproomcd != orgoproomcd) {
  266. // 2008.09.29 수술방 구분자 수정함 updtflag --> roomupdtflag
  267. // model.makeValue("/root/main/opanstschechng/updtflag", "O");
  268. model.makeValue("/root/main/opanstschechng/roomupdtflag", "O");
  269. }
  270. //opcd 비교 추가 20080629 pymi
  271. if(perfdrid != orgperfdrid || opcd != orgopcd){
  272. model.setValue("/root/main/opanstschechng/opstatus" , "u");
  273. //20080629 pymi
  274. if(perfdrid != orgperfdrid) model.makeValue("/root/main/opanstschechng/updtflag", "P");
  275. }
  276. if(anstdrid1 != organstdrid1 || anstdrid2 != organstdrid2 || anstdrid3 != organstdrid3){
  277. model.setValue("/root/main/opanstschechng/anststatus", "u");
  278. //20080808 주 마취의 변경시 LWS
  279. if(anstdrid1 != organstdrid1) model.makeValue("/root/main/opanstschechng/anstupdtflag", "P");
  280. }
  281. if( anstmthdcd != organstmthdcd || anstdetlmthdcd != organstdetlmthdcd) {
  282. model.makeValue("/root/main/opanstschechng/anstmthdstatus", "u");
  283. }
  284. //수술시간변경
  285. fChngOpTm("/root/main/opanstschechng");
  286. model.refresh();
  287. }
  288. /**
  289. * @desc : 수술시간 설정
  290. * @
  291. * @param :
  292. * @return :
  293. * @author : 박유미
  294. * @---------------------------------------------------
  295. */
  296. function fChngOpTm(timePath) {
  297. //수술시간변경
  298. var opfromtmcd = model.getValue( timePath + "/opfromtmcd");
  299. var opendtmcd = model.getValue( timePath + "/opendtmcd");
  300. var oproomcd = model.getValue( timePath + "/oproomcd");
  301. /*var orgopfromtmcd = model.getValue( timePath + "/opfromtmcd");
  302. var orgopendtmcd = model.getValue( timePath + "/opendtmcd");
  303. var orgoproomcd = model.getValue( timePath + "/oproomcd");*/
  304. var orgopfromtmcd = model.getValue( "/root/temp/opanstschechng/opfromtmcd");
  305. var orgopendtmcd = model.getValue( "/root/temp/opanstschechng/opendtmcd");
  306. var orgoproomcd = model.getValue( "/root/temp/opanstschechng/oproomcd");
  307. if( (opfromtmcd != orgopfromtmcd) || (opendtmcd != orgopendtmcd) || (oproomcd != orgoproomcd) ) {
  308. model.makeValue( timePath + "/tmststatus", "u");
  309. }
  310. fReqRegOpTime(); // 정규 수술시간 조회
  311. var regfromtm = model.getValue("/root/main/scheregtimelist/scheregtimelist/regfromtm"); //정규수술시작시간
  312. // 수술 종료시간보다 수술 시작시간이 더 클 경우에만 하루를 더하도록 한다. 20110602 김영학
  313. if (opendtmcd < opfromtmcd ) {
  314. // 00~ 정규시작시간까지는 24시간을 더해서 계산
  315. if(opfromtmcd.substr(0,4) > 0 && opfromtmcd.substr(0,2) < regfromtm) {
  316. opfromtmcd = parseInt(opfromtmcd.substr(0,2)) + 24 + opfromtmcd.substr(2,4);
  317. }
  318. if(opendtmcd.substr(0,4) > 0 && opendtmcd.substr(0,2) < regfromtm) {
  319. opendtmcd = parseInt(opendtmcd.substr(0,2)) + 24 + opendtmcd.substr(2,4);
  320. }
  321. // 2008.10.12 끝시간이 정규시간과 같을 경우
  322. if(opendtmcd.substr(0,4) > 0 && opendtmcd.substr(0,2) <= regfromtm && opendtmcd.substr(2,4) <= 0) {
  323. opendtmcd = parseInt(opendtmcd.substr(0,2), 10) + 24 + opendtmcd.substr(2,4);
  324. }
  325. }
  326. if ((opfromtmcd.length == 4 && opendtmcd.length == 6) ||(opfromtmcd.length == 6 && opendtmcd.length == 4)
  327. ||(opfromtmcd.length == 6 && opendtmcd.length == 6) || (opfromtmcd.length == 4 && opendtmcd.length == 4)) {
  328. var sec = getTimeInterval(opfromtmcd, opendtmcd);
  329. var min =sec/60;
  330. if(min > 59) {
  331. if(min % 60 != 0) {
  332. var hh = ((""+parseInt(min/60)).length == 1 ) ? "0" + parseInt(min/60) : parseInt(min/60);
  333. var mm = ((""+Math.floor(min % 60)).length ==1) ? "0" + Math.floor(min % 60) : Math.floor(min % 60);
  334. model.setValue( timePath + "/opusetm", hh +""+ mm);
  335. } else {
  336. var hh = ((""+parseInt(min/60)).length == 1 ) ? "0" + parseInt(min/60) : parseInt(min/60);
  337. model.setValue( timePath + "/opusetm", hh +""+"00");
  338. }
  339. } else {
  340. var mm= ((""+min).length == 1) ? "0" + min : min;
  341. model.setValue( timePath + "/opusetm", "00" + "" + mm);
  342. }
  343. }
  344. }
  345. /**
  346. * @desc : 입력된 수술시간이 유효한지 check
  347. * @
  348. * @param :
  349. * @return :
  350. * @author : 박유미
  351. * @---------------------------------------------------
  352. */
  353. function fCheckValidTime(timePath){
  354. var fromtm = model.getValue( timePath + "/opfromtmcd");
  355. var endtm = model.getValue( timePath + "/opendtmcd");
  356. if(fromtm.length != 6) {
  357. fromtm += "00";
  358. model.setValue(timePath + "/opfromtmcd", fromtm);
  359. }
  360. if(endtm.length != 6) {
  361. endtm += "00";
  362. model.setValue(timePath + "/opendtmcd", endtm);
  363. }
  364. var node = instance1.selectNodes("/root/init/M0014/M0014/cdid");
  365. var i, j;
  366. for(i=1; i< node.length; i++) {
  367. if(fromtm == node.item(i).value) {
  368. break;
  369. }
  370. }
  371. for(j=1; j< node.length; j++) {
  372. if(endtm == node.item(j).value) {
  373. break;
  374. }
  375. }
  376. if(i == node.length) {
  377. messageBox("입력된 시간이", "E016");
  378. model.setFocus("ipt_fmtm");
  379. return false;
  380. }
  381. if(j == node.length) {
  382. messageBox("입력된 시간이", "E016");
  383. model.setFocus("ipt_endtm");
  384. return false;
  385. }
  386. return true;
  387. }
  388. /**
  389. * @desc : CaseCart조회 및 value설정
  390. * @
  391. * @param :
  392. * @return :
  393. * @author : 오지훈
  394. * @---------------------------------------------------
  395. */
  396. function fOpenCcrtSearch(){
  397. var param = model.getValue("/root/main/opanstschechng/opschedd") + "▦" +
  398. model.getValue("/root/main/opanstschechng/perfdeptcd") + "▦" +
  399. model.getValue("/root/main/opanstschechng/perfdrid") + "▦" +
  400. model.getValue("/root/main/opanstschechng/opcd") + "▦" +
  401. model.getValue("/root/main/opanstschechng/opnm") + "▦" +
  402. "perf"; //query구분
  403. setParameter("SPMMO11000_param", param);
  404. modal("SPMMO11000");
  405. var useyn = getParameter("SPMMO11000_rtn_useyn");
  406. if(useyn == "Y"){
  407. var rtnparam = getParameter("SPMMO11000_rtn_param");
  408. rtnparam = rtnparam.split("▦");
  409. model.setValue("/root/main/opanstschechng/ccrtno" , rtnparam[0]);
  410. model.setValue("/root/main/opanstschechng/ccrtstat", 1);
  411. model.setValue("/root/main/opanstschechng/opcd" , rtnparam[1]);
  412. model.setValue("/root/main/opanstschechng/opnm" , rtnparam[2]);
  413. setParameter("SPMMO11000_rtn_useyn", "N");
  414. }
  415. model.refresh();
  416. }
  417. /**
  418. * @desc : 검색 조건없이 CaseCart조회
  419. * @
  420. * @param :
  421. * @return :
  422. * @author : 오지훈
  423. * @---------------------------------------------------
  424. */
  425. function fOpenCCrtSearchNoCond(){
  426. var param = model.getValue("/root/main/opanstschechng/opcnfmdd") + "▦" +
  427. model.getValue("/root/main/opanstschechng/perfdeptcd") + "▦" +
  428. model.getValue("/root/main/opanstschechng/perfdrid") + "▦" +
  429. "▦" +
  430. "▦" +
  431. "perf";
  432. setParameter("SPMMO11000_param", param);
  433. modal("SPMMO11000");
  434. var useyn = getParameter("SPMMO11000_rtn_useyn");
  435. if(useyn == "Y"){
  436. var rtnparam = getParameter("SPMMO11000_rtn_param");
  437. rtnparam = rtnparam.split("▦");
  438. model.setValue("/root/main/opanstschechng/ccrtno" , rtnparam[0]);
  439. model.setValue("/root/main/opanstschechng/ccrtstat", 1);
  440. model.setValue("/root/main/opanstschechng/opcd" , rtnparam[1]);
  441. model.setValue("/root/main/opanstschechng/opnm" , rtnparam[2]);
  442. setParameter("SPMMO11000_rtn_useyn", "N");
  443. }else{
  444. var orgopcd = model.getValue("/root/temp/opanstschechng/opcd");
  445. var orgopnm = model.getValue("/root/temp/opanstschechng/opnm");
  446. model.setValue("/root/main/opanstschechng/opcd" , orgopcd);
  447. model.setValue("/root/main/opanstschechng/opnm" , orgopnm);
  448. }
  449. model.refresh();
  450. }
  451. /**
  452. * @desc : 마취방법 변경시 마취방법상세 변경
  453. * @
  454. * @param :
  455. * @return :
  456. * @author : 오지훈
  457. * @---------------------------------------------------
  458. */
  459. function fChngAnstMthdCmb(cmbobj, cmbobjtrgt, cmbpath){
  460. var anstmthdcd = cmbobj.value;
  461. if(anstmthdcd == "01"){ //전신마취
  462. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0243/M0243";
  463. }else if(anstmthdcd == "02"){ //부위마취
  464. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0244/M0244";
  465. }else if(anstmthdcd == "03"){ //국소마취
  466. cmbobjtrgt.choices.itemset.attribute("nodeset") = "/root/init/M0245/M0245";
  467. }
  468. model.setValue(cmbpath, "-");
  469. model.refresh();
  470. }
  471. /**
  472. * @desc : 진단코드 검색
  473. * @
  474. * @param :
  475. * @return :
  476. * @author : 오지훈
  477. * @---------------------------------------------------
  478. */
  479. function fOpenSrchDiagCD(){
  480. var diagcd = model.getValue("/root/main/opanstschechng/diagcd");
  481. setParameter("SPMMO00800_cond1", 1);
  482. setParameter("SPMMO00800_cond2", 1);
  483. setParameter("SPMMO00800_cond3", "E");
  484. setParameter("SPMMO00800_cond4", getCurrentDate());
  485. setParameter("SPMMO00800_cond5", diagcd);
  486. modal("SPMMO00800");
  487. var useyn = getParameter("SPMMO00800_rtn_useyn");
  488. if(useyn == "Y"){
  489. setParameter("SPMMO00800_rtn_useyn", "");
  490. var rtnparam = getParameter("SPMMO00800_rtn");
  491. rtnparam = rtnparam.split("▩");
  492. var tmpstr = rtnparam[1];
  493. tmpstr = tmpstr.split("▦");
  494. model.setValue("/root/main/opanstschechng/diagnm" , tmpstr[3]);
  495. model.setValue("/root/main/opanstschechng/diagcd" , tmpstr[9]);
  496. }else{
  497. var orgdiagcd = model.getValue("/root/temp/opanstschechng/diagcd");
  498. var orgdiagnm = model.getValue("/root/temp/opanstschechng/diagnm");
  499. model.setValue("/root/main/opanstschechng/diagcd", orgdiagcd);
  500. model.setValue("/root/main/opanstschechng/diagnm", orgdiagnm);
  501. }
  502. model.refresh();
  503. }
  504. /**
  505. * @desc : 진단명 검색
  506. * @
  507. * @param :
  508. * @return :
  509. * @author : 오지훈
  510. * @---------------------------------------------------
  511. */
  512. function fOpenSrchDiagNM(){
  513. var diagnm = model.getValue("/root/main/opanstschechng/diagnm");
  514. bflag = fIsHangul(diagnm);
  515. setParameter("SPMMO00800_cond1", 2);
  516. setParameter("SPMMO00800_cond2", 2);
  517. setParameter("SPMMO00800_cond3", bflag);
  518. setParameter("SPMMO00800_cond4", getCurrentDate());
  519. setParameter("SPMMO00800_cond5", diagnm);
  520. modal("SPMMO00800");
  521. var useyn = getParameter("SPMMO00800_rtn_useyn");
  522. if(useyn == "Y"){
  523. setParameter("SPMMO00800_rtn_useyn", "");
  524. var rtnparam = getParameter("SPMMO00800_rtn");
  525. rtnparam = rtnparam.split("▩");
  526. var tmpstr = rtnparam[1];
  527. tmpstr = tmpstr.split("▦");
  528. model.setValue("/root/main/opanstschechng/diagnm" , tmpstr[3]);
  529. model.setValue("/root/main/opanstschechng/diagcd" , tmpstr[9]);
  530. }else{
  531. var orgdiagcd = model.getValue("/root/temp/opanstschechng/diagcd");
  532. var orgdiagnm = model.getValue("/root/temp/opanstschechng/diagnm");
  533. model.setValue("/root/main/opanstschechng/diagcd", orgdiagcd);
  534. model.setValue("/root/main/opanstschechng/diagnm", orgdiagnm);
  535. }
  536. model.refresh();
  537. }
  538. /**
  539. * @desc : 수술 방/시간 설정
  540. * @
  541. * @param : bFlag - true/false
  542. * @return :
  543. * @author : 오지훈
  544. * @---------------------------------------------------
  545. */
  546. function fOpenOpScheTime(){
  547. var param = "u" + "▦" +
  548. model.getValue("/root/main/opanstschechng/oproomcd") + "▦" +
  549. model.getValue("/root/main/opanstschechng/oprsrvno") + "▦" +
  550. model.getValue("/root/main/opanstschechng/ophistno") + "▦" +
  551. model.getValue("/root/main/opanstschechng/pid") + "▦" +
  552. model.getValue("/root/main/opanstschechng/opcnfmdd") + "▦" +
  553. model.getValue("/root/main/opanstschechng/perfdeptcd") + "▦" +
  554. model.getValue("/root/main/opanstschechng/opfromtmcd") + "▦" +
  555. model.getValue("/root/main/opanstschechng/opendtmcd") + "▦" +
  556. "oprsrv";
  557. setParameter("SPMMO08800_param", param);
  558. modal("SPMMO08800");
  559. var rtnuseyn = getParameter("SPMMO08800_rtn_useyn");
  560. if(rtnuseyn == "Y"){
  561. setParameter("SPMMO08800_rtn_useyn", "N");
  562. var rtnparam = getParameter("SPMMO08800_rtn_param");
  563. rtnparam = rtnparam.split("▦");
  564. var difftime = getTimeInterval(rtnparam[1], rtnparam[2]);
  565. model.setValue("/root/main/opanstschechng/oproomcd" , rtnparam[0]);
  566. model.setValue("/root/main/opanstschechng/opfromtmcd", rtnparam[1]);
  567. model.setValue("/root/main/opanstschechng/opendtmcd" , rtnparam[2]);
  568. model.setValue("/root/main/opanstschechng/opusetm" , fTransSecToHourMin(difftime));
  569. model.refresh();
  570. }
  571. }
  572. /**
  573. * @desc : 초를 시/분으로 전환
  574. * @
  575. * @param : bFlag - true/false
  576. * @return :
  577. * @author : 오지훈
  578. * @---------------------------------------------------
  579. */
  580. function fTransSecToHourMin(sec){
  581. var hr = 3600;
  582. var min = 60;
  583. hour = parseInt(sec/hr);
  584. min = parseInt(sec%hr/min);
  585. hour = ("" + hour + "").getLeftPad(2, "0");
  586. min = ("" + min + "").getLeftPad(2, "0");
  587. var rtnstr = hour.concat(min);
  588. return rtnstr;
  589. }
  590. /**
  591. * @desc : 두 NodeList와 NodeValue값을 비교 결과에 따라 true, false를 return한다.
  592. * @param : desNode - 목적노드
  593. : srcNode - 원본노드
  594. * @return : true, false
  595. * @authur : 오지훈 2007. 6. 14
  596. * @---------------------------------------------------
  597. */
  598. function compareNodeVal(desNode, srcNode){
  599. var node = instance1.selectSingleNode(desNode);
  600. var node2 = instance1.selectSingleNode(srcNode);
  601. var nodeList = node.childNodes;
  602. var nodeList2 = node2.childNodes;
  603. while(childNode = nodeList.nextNode()){
  604. childNode2 = nodeList2.nextNode();
  605. //alert(childNode.NodeValue + "," + childNode2.NodeValue);
  606. if(childNode.NodeValue != childNode2.NodeValue){
  607. return true; //값이 다른 경우 true
  608. }
  609. }
  610. return false; //값이 같은 경우 false
  611. }
  612. /**
  613. * @desc : 초를 시/분으로 전환
  614. * @
  615. * @param : bFlag - true/false
  616. * @return :
  617. * @author : 오지훈
  618. * @---------------------------------------------------
  619. */
  620. function fTransSecToHourMin(sec){
  621. var hr = 3600;
  622. var min = 60;
  623. hour = parseInt(sec/hr);
  624. min = parseInt(sec%hr/min);
  625. hour = ("" + hour + "").getLeftPad(2, "0");
  626. min = ("" + min + "").getLeftPad(2, "0");
  627. var rtnstr = hour.concat(min);
  628. return rtnstr;
  629. }