SMMNV02800.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. /* ---------------------------------------------------------------------
  2. 분만환자 진행 현황 전광판 (SMMNV02800_분만진행현황전광판(40)..xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.00
  5. : Create By 안도영
  6. : 2010.06.08
  7. ----------------------------------------------------------------------*/
  8. var submitIntervalTime = 5 * 1000 ; // 10초
  9. //var submitIntervalTime2 = 5 * 1000 ; // 5초
  10. var showGrdTime = 3 * 1000 ; // 3초
  11. var showMsgTime = 5 * 1000 ; // 10초
  12. //----------------(20080930)
  13. // 분만 재실현황
  14. var clockID ; // 하단줄의 시간 interval
  15. var grdintervalID ; // 그리드 조회 interval
  16. var grdintervalIDTop ; // 그리드 상단 올리기 interval
  17. var grdintervalIDDelay ; // 지연
  18. // 신생아 리스트
  19. var grdintervalID2 ; // 그리드 조회 interval
  20. var grdintervalIDTop2 ; // 그리드 상단 올리기 interval
  21. var grdintervalIDDelay2 ; // 지연
  22. var msgintervalID ; // msg 조회 interval
  23. var msgintervalIDTop ; // msg 상단 올리기 interval
  24. var msgintervalIDDelay ; // 지연
  25. /**
  26. * @group :
  27. * @ver : 2009.02.13
  28. * @by : 임여원
  29. * @---------------------------------------------------
  30. * @type : function
  31. * @access : public
  32. * @desc : 분만 대기 환자 조회 화면 초기화 작업
  33. * @param :
  34. * @param :
  35. * @return :
  36. * @---------------------------------------------------
  37. */
  38. function fInitialize(){
  39. model.removeNodeset("/root/main/partrtnpatlist/partrtnpatinfo");
  40. model.removeNodeset("/root/main/partrtnbabylist/partrtnbabyinfo");
  41. model.removeNodeset("/root/main/procercalllist/procercallmsginfo");
  42. model.setValue("/root/main/cond/partrtndd", getCurrentDate());
  43. model.refresh();
  44. fSetGrdTimer();
  45. setWindowSize(); //(20080130) 테스트중
  46. model.setFocus("lbl_header");
  47. }
  48. /*
  49. //--------------------------
  50. // 그리드 top row 제거 실행되는 함수
  51. //--------------------------
  52. function fshowGrdTime() {
  53. model.removenode("/root/main/oppatlist/oppatinfo[1]") ;
  54. setGridColor() ;
  55. model.refresh() ;
  56. }
  57. //--------------------------
  58. // Msg display 실행되는 함수
  59. //--------------------------
  60. function fshowMsgTime() {
  61. model.setValue("/root/hidden/callmsg", model.getValue("/root/main/msglist/msginfo[1]/callmsg")) ;
  62. model.removenode("/root/main/msglist/msginfo[1]") ;
  63. model.refresh() ;
  64. }
  65. */
  66. /**
  67. * @group :
  68. * @ver : 2007.10.09
  69. * @by : 문창곤
  70. * @---------------------------------------------------
  71. * @type : function
  72. * @access : public
  73. * @desc : 지정된 시간간격마다 그리드데이터 조회(화면 호출시 처음만 호출된다)
  74. * @param :
  75. * @param :
  76. * @return :
  77. * @---------------------------------------------------
  78. */
  79. function fSetGrdTimer(){
  80. //시간은 1초 단위로 갱신: 무한루프=> 0.1로 변경
  81. //clockID = window.setInterval("clock();", 1000);
  82. clockID = window.setInterval("clock();", 100); //0.1초
  83. //메시지 5초: 무한루프시켜야 함(그리드 test용으로 막음)
  84. msgintervalID = window.setInterval("fGetCallMessage();", submitIntervalTime); //5초
  85. //분만 화면에서 분만 대기 환자 조회시
  86. grdintervalID = window.setInterval("fGetPartrtnPatList();", submitIntervalTime); //5초
  87. // 아기정보(신생아 리스트) 조회시
  88. //grdintervalID2 = window.setInterval("fGetPartrtnBabyList();", submitIntervalTime); //5초
  89. }
  90. /**
  91. * @group :
  92. * @ver : 2007.10.09
  93. * @by : 문창곤
  94. * @---------------------------------------------------
  95. * @type : function
  96. * @access : public
  97. * @desc : DataTime 조회.
  98. * @param :
  99. * @param :
  100. * @return :
  101. * @---------------------------------------------------
  102. */
  103. function clock() {
  104. var datetime = getCurrentDateTime().substring(0, 4) + "년 "
  105. + getCurrentDateTime().substring(4, 6) + "월 "
  106. + getCurrentDateTime().substring(6, 8) + "일 "
  107. + getCurrentDate().toDate().getDayOfWeek("K") + "요일 "
  108. + getCurrentDateTime().substring(8, 11) + "시 "
  109. + getCurrentDateTime().substring(11, 13) + "분 "
  110. + getCurrentDateTime().substring(13, 15) + "초" ;
  111. model.setValue("/root/hidden/time", datetime) ;
  112. model.refresh();
  113. }
  114. /**
  115. * @group :
  116. * @ver : 2007.10.09
  117. * @by : 문창곤
  118. * @---------------------------------------------------
  119. * @type : function
  120. * @access : public
  121. * @desc : 분만환자 보호자 호출메시지 조회.
  122. * @param :
  123. * @param :
  124. * @return :
  125. * @---------------------------------------------------
  126. */
  127. function fGetCallMessage(){
  128. var sPath = "/root/main/procercalllist";
  129. if(getNodesetCount(sPath + "/procercallmsginfo") == 0) {
  130. //model.removeNodeset("/root/main/msglist/msginfo") ;
  131. model.removeNodeset(sPath) ;
  132. model.refresh();
  133. model.copyNode("/root/send/reqdata", "/root/main/cond") ;
  134. setErrorOff();
  135. if ( submit("TRMNV02802",false) == true) {
  136. model.setValue("/root/init/msgStatus","msg:정상");
  137. model.refresh();
  138. model.setValue("/root/init/msgStatus1", "조회" );
  139. model.refresh();
  140. var msgCnt = getNodesetCount(sPath + "/procercallmsginfo") ;
  141. if (msgCnt > 0) {
  142. /*
  143. var TimerID = window.setInterval('window.setinterval("", 5000) ;'
  144. + 'model.setValue("/root/hidden/callmsg", model.getValue("/root/main/msglist/msginfo[1]/callmsg")) ;'
  145. + 'model.removenode("/root/main/msglist/msginfo[1]") ;'
  146. + 'model.refresh() ;', showMsgTime) ;
  147. */
  148. msgintervalIDTop = window.setInterval("fGetCallMessageSub1()", showMsgTime); //10초
  149. }else{
  150. model.setValue("/root/hidden/callmsg", "") ;
  151. tar_callmsg.refresh();
  152. }
  153. } else {
  154. model.setValue("/root/init/msgStatus","msg:장애");
  155. model.removeNodeset(sPath);
  156. model.refresh();
  157. }
  158. }
  159. }
  160. //-------------------------------
  161. // 분만환자 보호자 호출메시지 조회.
  162. //-------------------------------
  163. function fGetCallMessageSub1() {
  164. var sPath = "/root/main/procercalllist";
  165. // var timerID = window.setinterval("", 5000) ; //시간지연
  166. model.setValue("/root/hidden/callmsg", model.getValue(sPath + "/procercallmsginfo[1]/procercallmsg")) ;
  167. model.removenode(sPath + "/procercallmsginfo[1]") ;
  168. model.setValue("/root/init/msgStatus1", getNodesetCount(sPath + "/procercallmsginfo") );
  169. model.refresh();
  170. if ( getNodesetCount(sPath + "/procercallmsginfo") == 0) {
  171. model.setValue("/root/init/msgStatus1", "E:"+msgintervalIDTop );
  172. model.refresh() ;
  173. fGetCallMessage();
  174. window.clearInterval(msgintervalIDTop);
  175. }
  176. }
  177. /**
  178. * @group :
  179. * @ver : 2007.10.09
  180. * @by : 문창곤
  181. * @---------------------------------------------------
  182. * @type : function
  183. * @access : public
  184. * @desc : 수술 및 분만환자 조회.[조회버튼클릭]
  185. * @param :
  186. * @param :
  187. * @return :
  188. * @---------------------------------------------------
  189. function fGetOpPartrtnPatList(){
  190. var sPath = "/root/main/oppatlist";
  191. if(getNodesetCount(sPath + "/oppatinfo") == 0)
  192. {
  193. //(20080211) oppatinfo까지 된것을 막음)
  194. model.removeNodeset(sPath);
  195. model.refresh();
  196. model.copyNode("/root/send/reqdata", "/root/main/cond");
  197. setErrorOff();
  198. if (submit("TRMNP06200",false) == true) {
  199. model.setValue("/root/init/grdStatus","grd:정상");
  200. model.refresh();
  201. model.setValue("/root/init/grdStatus1", "조회" );
  202. model.refresh() ;
  203. var ndCnt = getNodesetCount(sPath + "/oppatinfo") ;
  204. if ( ndCnt > 0) {
  205. setGridColor() ;
  206. grdintervalIDTop = window.setInterval("fGetOpPartrtnPatListSub1()", showGrdTime); //100) ; //7초
  207. }
  208. } else {
  209. model.setValue("/root/init/grdStatus","grd:장애");
  210. model.removeNodeset(sPath);
  211. model.refresh();
  212. }
  213. }
  214. }
  215. */
  216. //----------------------------
  217. // 자료를 상단으로 올리는 기능1 (재실환자 현황)
  218. //----------------------------
  219. function fGetOpPartrtnPatListSub1() {
  220. // var timerID = window.setinterval("", 5000) ; //상단올리기 지연시킴
  221. model.removenode("/root/main/partrtnpatlist/partrtnpatinfo[1]") ;
  222. //setGridColor() ;
  223. model.setValue("/root/init/grdStatus1", getNodesetCount("/root/main/partrtnpatlist/partrtnpatinfo") );
  224. model.refresh() ;
  225. if ( getNodesetCount("/root/main/partrtnpatlist/partrtnpatinfo") == 0) {
  226. model.setValue("/root/init/grdStatus1", "E:"+grdintervalIDTop );
  227. model.refresh() ;
  228. //fGetPartrtnPatList();
  229. window.clearInterval(grdintervalID);
  230. window.clearInterval(grdintervalIDTop);
  231. var togFlag = fGetBabyListTogFlag();
  232. if(togFlag =="N"){
  233. grdintervalID = window.setInterval("fGetPartrtnPatList();", submitIntervalTime); //5초
  234. fGetPartrtnPatList();
  235. }else if(togFlag =="Y"){
  236. grdintervalID2 = window.setInterval("fGetPartrtnBabyList();", submitIntervalTime); //5초
  237. //alert("!");
  238. model.toggle("아기정보");
  239. fGetPartrtnBabyList();
  240. }
  241. }
  242. }
  243. //----------------------------
  244. // 자료를 상단으로 올리는 기능2 (신생아 리스트)
  245. //----------------------------
  246. function fGetPartrtnBabyListSub1() {
  247. // var timerID = window.setinterval("", 5000) ; //상단올리기 지연시킴
  248. model.removenode("/root/main/partrtnbabylist/partrtnbabyinfo[1]") ;
  249. //setGridColor() ;
  250. model.setValue("/root/init/grdStatus1", getNodesetCount("/root/main/partrtnbabylist/partrtnbabyinfo") );
  251. model.refresh() ;
  252. if ( getNodesetCount("/root/main/partrtnbabylist/partrtnbabyinfo") == 0) {
  253. model.setValue("/root/init/grdStatus1", "E:"+grdintervalIDTop2 );
  254. model.refresh() ;
  255. //fGetPartrtnBabyList();
  256. window.clearInterval(grdintervalID2);
  257. window.clearInterval(grdintervalIDTop2);
  258. grdintervalID = window.setInterval("fGetPartrtnPatList();", submitIntervalTime); //5초
  259. model.toggle("재실환자");
  260. fGetPartrtnPatList();
  261. }
  262. }
  263. /**
  264. * @group :
  265. * @ver : 2007.10.09
  266. * @by : 문창곤
  267. * @---------------------------------------------------
  268. * @type : function
  269. * @access : public
  270. * @desc : 수술예약번호 해당 호출메시지 검색
  271. * @param :
  272. * @param :
  273. * @return :
  274. * @---------------------------------------------------
  275. */
  276. function getCallMsg(Oprsrvno)
  277. {
  278. var msgCnt = getNodesetCount("/root/main/msglist/msginfo") ;
  279. var RtnValue = "NONE" ;
  280. if(msgCnt > 0)
  281. {
  282. for(var i=1;i<=msgCnt;i++)
  283. {
  284. if(Oprsrvno == model.getValue("/root/main/msglist/msginfo["+ i + "]/oprsrvno"))
  285. {
  286. RtnValue = model.getValue("/root/main/msglist/msginfo["+ i + "]/callmsg") ;
  287. model.removenode("/root/main/msglist/msginfo["+ i + "]");
  288. break ;
  289. }
  290. }
  291. }
  292. return RtnValue ;
  293. }
  294. /**
  295. * @group :
  296. * @ver : 2007.10.09
  297. * @by : 문창곤
  298. * @---------------------------------------------------
  299. * @type : function
  300. * @access : public
  301. * @desc : 'ESC' or 'Q' 키를 누르면 타이머 해제 및 윈도우 닫기
  302. * @param :
  303. * @param :
  304. * @return :
  305. * @---------------------------------------------------
  306. */
  307. function fClearTimer(){
  308. var keyPressed = event.keyCode ;
  309. if(keyPressed == 27 || keyPressed == 81) // 'ESC' or 'Q' 키가 눌려진 경우
  310. {
  311. var answer = messageBox("분만 진행현황 안내 프로그램 종료를 ", "Q004") ;
  312. if(answer == 6) {
  313. if (clockID != "") window.clearInterval(clockID);
  314. if (msgintervalID != "") window.clearInterval(msgintervalID);
  315. if (grdintervalID != "") window.clearInterval(grdintervalID);
  316. if (grdintervalID2 != "") window.clearInterval(grdintervalID2);
  317. if (msgintervalIDTop != "") window.clearInterval(msgintervalIDTop);
  318. if (grdintervalIDTop != "") window.clearInterval(grdintervalIDTop);
  319. if (grdintervalIDTop2 != "") window.clearInterval(grdintervalIDTop2);
  320. model.close() ;
  321. }
  322. }
  323. }
  324. /**
  325. * @group :
  326. * @ver : 2007.10.09
  327. * @by : 문창곤
  328. * @---------------------------------------------------
  329. * @type : function
  330. * @access : public
  331. * @desc : 진행상태에 따른 글자색 설정
  332. * @param :
  333. * @param :
  334. * @return :
  335. * @---------------------------------------------------
  336. function setGridColor()
  337. {
  338. var ndCnt = getNodesetCount("/root/main/partrtnpatlist/partrtnpatinfo") ;
  339. var status ;
  340. for(var i=1;i<=ndCnt;i++)
  341. {
  342. status = model.getValue("/root/main/partrtnpatlist/partrtnpatinfo["+ i + "]/opstatcd") ;
  343. alert(status);
  344. if(status == "1") // 분만대기중 - 검정색
  345. grd_list.cellStyle("color", i, 3) = "#000000" ;
  346. else if( status == "2") // 진통중 - 분홍색
  347. grd_list.cellStyle("color", i, 3) = "#FF82FF" ;
  348. else if( status == "3") // 분만중 - 빨강색
  349. grd_list.cellStyle("color", i, 3) = "#FF0000" ;
  350. else if(status == "4") // 분만완료- 파랑색
  351. grd_list.cellStyle("color", i, 3) = "#0000FF" ;
  352. else if(status == "5") // 절대안정중 - 녹색
  353. grd_list.cellStyle("color", i, 3) = "#00CC66" ;
  354. else if(status == "6") // 안정중 - 청녹색
  355. grd_list.cellStyle("color", i, 3) = "#006600" ;
  356. }
  357. }
  358. */
  359. /* --------------------------------------------------*/
  360. /* type : function */
  361. /* access : public */
  362. /* desc : 분만 진행현황 조회 */
  363. /* --------------------------------------------------*/
  364. function fGetPartrtnPatList(){
  365. var sPath = "/root/main/partrtnpatlist";
  366. if(getNodesetCount(sPath + "/partrtnpatinfo") == 0)
  367. {
  368. //(20080211) oppatinfo까지 된것을 막음)
  369. model.removeNodeset(sPath);
  370. //model.makeValue("/root/main/cond/oppartrtnflag","P"); //분만환자 조회 플래그
  371. model.refresh();
  372. model.copyNode("/root/send/reqdata", "/root/main/cond");
  373. setErrorOff();
  374. if (submit("TRMNV02801",false) == true) {
  375. model.setValue("/root/init/grdStatus","grd:정상");
  376. model.refresh();
  377. model.setValue("/root/init/grdStatus1", "조회" );
  378. model.refresh() ;
  379. var ndCnt = getNodesetCount(sPath + "/partrtnpatinfo") ;
  380. if ( ndCnt > 0) {
  381. //setGridColor() ;
  382. /*
  383. //5초간격으로 자료를 상단으로 올리는 기능
  384. var TimerID = window.setInterval('window.setinterval("", 5000) ;'
  385. + 'model.removenode("/root/main/oppatlist/oppatinfo[1]") ;'
  386. + 'setGridColor() ;'
  387. + 'model.refresh() ;', showGrdTime) ;
  388. */
  389. grdintervalIDTop = window.setInterval("fGetOpPartrtnPatListSub1()", showGrdTime); //100) ; //7초
  390. }
  391. } else {
  392. model.setValue("/root/init/grdStatus","grd:장애");
  393. model.removeNodeset(sPath);
  394. model.refresh();
  395. }
  396. }
  397. }
  398. /* --------------------------------------------------*/
  399. /* type : function */
  400. /* access : public */
  401. /* desc : 아기정보(신생아리스트) 조회 */
  402. /* --------------------------------------------------*/
  403. function fGetPartrtnBabyList(){
  404. var sPath = "/root/main/partrtnbabylist";
  405. if(getNodesetCount(sPath + "/partrtnbabyinfo") == 0)
  406. {
  407. //(20080211) oppatinfo까지 된것을 막음)
  408. model.removeNodeset(sPath);
  409. model.refresh();
  410. model.copyNode("/root/send/reqdata", "/root/main/cond");
  411. setErrorOff();
  412. //if (submit("TRMNV02001",false) == true) {
  413. if (submit("TRMNV02803",false) == true) {
  414. model.setValue("/root/init/grdStatus","grd:정상");
  415. model.refresh();
  416. model.setValue("/root/init/grdStatus1", "조회" );
  417. model.refresh() ;
  418. var ndCnt = getNodesetCount(sPath + "/partrtnbabyinfo");
  419. //alert("ndCnt: " + ndCnt);
  420. if ( ndCnt > 0) {
  421. //alert("1");
  422. //setGridColor() ;
  423. /*
  424. //5초간격으로 자료를 상단으로 올리는 기능
  425. var TimerID = window.setInterval('window.setinterval("", 5000) ;'
  426. + 'model.removenode("/root/main/oppatlist/oppatinfo[1]") ;'
  427. + 'setGridColor() ;'
  428. + 'model.refresh() ;', showGrdTime) ;
  429. */
  430. grdintervalIDTop2 = window.setInterval("fGetPartrtnBabyListSub1()", showGrdTime); //100) ; //7초
  431. }
  432. } else {
  433. model.setValue("/root/init/grdStatus","grd:장애");
  434. model.removeNodeset(sPath);
  435. model.refresh();
  436. }
  437. }
  438. }
  439. /* --------------------------------------------------*/
  440. /* type : function */
  441. /* access : public */
  442. /* desc : 아기정보(신생아리스트) 선조회 후 토글 여부 판단 */
  443. /* --------------------------------------------------*/
  444. function fGetBabyListTogFlag(){
  445. var sPath = "/root/main/partrtnbabylist";
  446. model.removeNodeset(sPath);
  447. model.refresh();
  448. model.copyNode("/root/send/reqdata", "/root/main/cond");
  449. setErrorOff();
  450. //if (submit("TRMNV02001",false) == true) {
  451. if (submit("TRMNV02803",false) == true) {
  452. var ndCnt = getNodesetCount(sPath + "/partrtnbabyinfo");
  453. var sPath = "/root/main/partrtnbabylist";
  454. model.removeNodeset(sPath);
  455. //alert("ndCnt: " + ndCnt);
  456. if ( ndCnt > 0) {
  457. return "Y";
  458. }
  459. else{
  460. return "N";
  461. }
  462. }
  463. }
  464. /* ------------------------------------------------- */
  465. /* ------End Of List ------------------------------- */
  466. /* -------------------------------------------------- */