SPMMO05400.xjs 31 KB

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