SMMNV01400_수술진행현황전광판(성가).xrw 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>Untitle</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <oppatlist>
  11. <oppatlist1/>
  12. <oppatlist2/>
  13. <oppatlist3/>
  14. <oppatlist4/>
  15. <oppatlist5/>
  16. </oppatlist>
  17. <cond>
  18. <oppartrtndd/>
  19. <togglenm/>
  20. <flag/>
  21. </cond>
  22. <msglist>
  23. <msginfo>
  24. <calltm/>
  25. <callmsg/>
  26. <oprsrvno/>
  27. </msginfo>
  28. </msglist>
  29. <menuitems>
  30. <gnrlmenu>
  31. <item>
  32. <name>종료</name>
  33. <func>fCloseBoard</func>
  34. </item>
  35. </gnrlmenu>
  36. </menuitems>
  37. <date>
  38. <tdate/>
  39. <ttime/>
  40. </date>
  41. </main>
  42. <send>
  43. <reqdata/>
  44. </send>
  45. <hidden>
  46. <patlist/>
  47. </hidden>
  48. </root>
  49. </instance>
  50. <script type="javascript" ev:event="xforms-model-construct-done">
  51. <![CDATA[
  52. submit("TRMNV03003");
  53. submitIntervalTime = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='5']/cdid"));
  54. fInitialize();
  55. ]]>
  56. </script>
  57. <submission id="TRMNV06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/hidden/patlist"/>
  58. <submission id="TRMNV03003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/cond/interval"/>
  59. </model>
  60. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  61. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  62. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  63. <script type="javascript">
  64. <![CDATA[
  65. var submitIntervalTime = 10 * 1000 ; // 50초
  66. var getlListInterval = ""
  67. var count = 0;
  68. var printno = 8;
  69. function fInitialize(){
  70. clockID = window.setInterval("clock();" , 1000); //1초
  71. model.removeNodeset("/root/hidden/patlist/");
  72. model.removeNodeset("/root/main/msglist/msginfo");
  73. model.removenode("/root/main/oppatlist/oppatlist1");
  74. model.makeValue("/root/main/cond/oppartrtndd", getCurrentDate());
  75. model.makeValue("/root/main/cond/flag", "O");
  76. model.refresh();
  77. submit("TRMNV06301");
  78. for(var i = 1 ; i <= 8 ; i ++){
  79. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]");
  80. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  81. }
  82. model.refresh();
  83. fDispChngColor();
  84. getlListInterval = window.setInterval("fGetNextOpPatList()", submitIntervalTime); //5초
  85. }
  86. function fGetNextOpPatList() {
  87. var Nodes = instance1.selectNodes("/root/hidden/patlist/oppatinfo1");
  88. var toNodeno= 0;
  89. var fromNodeno= 0;
  90. model.removenode("/root/main/oppatlist/oppatlist1");
  91. fromNodeno=printno+1; // 전광판의 첫 행
  92. toNodeno= fromNodeno + 7 ; // 마지막행
  93. if(fromNodeno>Nodes.length){
  94. printno=0;
  95. fromNodeno=printno+1; // 전광판의 첫 행
  96. toNodeno= fromNodeno + 7 ; // 마지막행
  97. }
  98. if(toNodeno>Nodes.length){
  99. toNodeno=Nodes.length;
  100. }
  101. if (Nodes.length==0){
  102. fromNodeno=1;
  103. toNodeno = fromNodeno+7;
  104. }
  105. for(var i = fromNodeno ; i <= toNodeno ; i ++){
  106. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]");
  107. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  108. printno++;
  109. }
  110. fDispChngColor();
  111. if (printno==Nodes.length){
  112. printno=0;
  113. }
  114. model.refresh()
  115. }
  116. // 50초 이후에는 성가 그림으로 바꿔주기 위함
  117. // if (count >= 5 ) {
  118. // if(!isNull(getlListInterval)) {
  119. // window.clearInterval(getlListInterval);
  120. // opener.window.javaScript.fPicInit();
  121. // }
  122. // } else {
  123. // count++
  124. // }
  125. //
  126. // // 현재의 토글 정보를 가져와서 다음 토글을 알려줌
  127. // // 노드의 리스트가 0일때는 처음으로 돌아첫번째 노드로 돌아감
  128. // var togglenm = model.getValue("/root/main/cond/togglenm");
  129. // if (togglenm =="" || togglenm == "OP5") {
  130. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist1/oppatinfo1");
  131. // togglenm = "OP1";
  132. // } else if ( togglenm == "OP1") {
  133. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist2/oppatinfo2");
  134. // if (cnts == "0" ) {
  135. // togglenm = "OP1";
  136. // } else {
  137. // togglenm = "OP2";
  138. // }
  139. // } else if ( togglenm == "OP2") {
  140. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist3/oppatinfo3");
  141. // if (cnts == "0" ) {
  142. // togglenm = "OP1";
  143. // } else {
  144. // togglenm = "OP3";
  145. // }
  146. // } else if ( togglenm == "OP3") {
  147. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist4/oppatinfo4");
  148. // if (cnts == "0" ) {
  149. // togglenm = "OP1";
  150. // } else {
  151. // togglenm = "OP4";
  152. // }
  153. // } else if ( togglenm == "OP4") {
  154. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist5/oppatinfo5");
  155. // if (cnts == "0" ) {
  156. // togglenm = "OP1";
  157. // } else {
  158. // togglenm = "OP5";
  159. // }
  160. // }
  161. // model.setValue("/root/main/cond/togglenm", togglenm);
  162. // model.toggle(togglenm);
  163. //
  164. // model.refresh()
  165. // }
  166. function fCloseBoard(){
  167. if (getlListInterval != "") window.clearInterval(getlListInterval);
  168. opener.window.close();
  169. }
  170. /**
  171. * @desc : 진행상태에 따른 색 변경
  172. * @
  173. * @param :
  174. * @return : 수술중 : 녹색
  175. * @ 회복중 , 수술종료 : 남색
  176. * @ 병실이동 : 파란색
  177. * @ 대기 : 검정색
  178. * @author : 오지훈
  179. * @---------------------------------------------------
  180. */
  181. function fDispChngColor(){
  182. for(var i = 1; i < grd_op1.rows; i++){
  183. var color = model.getValue("/root/main/oppatlist/oppatlist1/oppatinfo1[" + i + "]/color");
  184. if(!isNull(color)){
  185. grd_op1.rowStyle(i, "all", "color") = "#" + color;
  186. }else{
  187. grd_op1.rowStyle(i, "all", "color") = "#" + "000000";
  188. }
  189. }
  190. grd_op1.refresh();
  191. }
  192. /**
  193. * @group :
  194. * @ver : 2007.10.09
  195. * @by : 문창곤
  196. * @---------------------------------------------------
  197. * @type : function
  198. * @access : public
  199. * @desc : DataTime 조회.
  200. * @return :
  201. * @---------------------------------------------------
  202. */
  203. function clock() {
  204. var tdate = getCurrentDateTime().substring(0, 4) + "년 "
  205. + getCurrentDateTime().substring(4, 6) + "월 "
  206. + getCurrentDateTime().substring(6, 8) + "일 "
  207. // + getCurrentDate().toDate("YYYYMMDD").getDayOfWeek("K") + "요일 "
  208. var ttime = getCurrentDateTime().substring(8, 11) + ":"
  209. + getCurrentDateTime().substring(11, 13) + ":"
  210. + getCurrentDateTime().substring(13, 15)
  211. model.setValue("/root/main/date/tdate", tdate) ;
  212. model.setValue("/root/main/date/ttime", ttime) ;
  213. model.refresh();
  214. }
  215. ]]>
  216. </script>
  217. </xhtml:head>
  218. <xhtml:body pagewidth="1020" pageheight="634" guideline="1,879;2,633;2,634;2,68;" style="margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
  219. <script type="javascript" ev:event="onkeyup">
  220. <![CDATA[
  221. // fClearTimer();
  222. ]]>
  223. </script>
  224. <switch id="switch1" class="sw_no_border" style="left:0px; top:98px; width:1002px; height:532px; ">
  225. <case id="OP1" selected="true">
  226. <datagrid id="grd_op1" nodeset="/root/main/oppatlist/oppatlist1/oppatinfo1" class="datagrid_op" overflow="hidden" scroll="auto" caption="병실^환자명^수술과^진행상태^이동위치^caption1" colsep="^" colwidth="154, 161, 249, 218, 217" dataheight="64px" extendlastcol="noscroll" frozenrows="7" mergecellsfixedrows="bycolrec" rowheight="90" rowsep="|" style="left:0px; top:0px; width:1002px; height:532px; font-size:29pt; text-align:center; vertical-align:middle; background-color:#c0c0c0; ">
  227. <col ref="roomcd" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  228. <col ref="patnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  229. <col ref="orddept" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  230. <col ref="opstatnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  231. <col ref="patposplcecd" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  232. </datagrid>
  233. </case>
  234. </switch>
  235. <caption id="caption1" style="left:0px; top:0px; width:1001px; height:75px; font-family:HY헤드라인M; font-size:36pt; font-weight:bold; color:#000080; text-align:center; vertical-align:middle; ">수술 진행현황 안내</caption>
  236. <caption id="caption4" style="left:315px; top:70px; width:250px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">수술과</caption>
  237. <caption id="caption5" style="left:155px; top:70px; width:160px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">환자명</caption>
  238. <caption id="caption7" style="left:0px; top:70px; width:155px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">병 실</caption>
  239. <caption id="caption8" style="left:565px; top:70px; width:218px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">진행상태</caption>
  240. <caption id="caption2" style="left:783px; top:70px; width:218px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">이동위치</caption>
  241. <script type="javascript" ev:event="onmousedown">
  242. <![CDATA[
  243. if(event.button == 3) {
  244. window.setPopupMenu(true, "/root/main/menuitems/gnrlmenu/item", "name", "func", false);
  245. }
  246. ]]>
  247. </script>
  248. <script type="javascript" ev:event="DOMFocusOut">
  249. <![CDATA[
  250. window.setPopupMenu(false);
  251. ]]>
  252. </script>
  253. <line id="line1" class="line_1" style="x1:0px; y1:68px; x2:1003px; y2:68px; "/>
  254. <line id="line2" class="line_1" style="x1:0px; y1:120px; x2:1003px; y2:120px; "/>
  255. <img id="img2" src="../../../emr/waitguideweb/images/his014logo.jpg" style="left:0px; top:0px; width:166; height:68; background-stretch:stretch; "/>
  256. <caption id="caption3" ref="/root/main/date/tdate" style="left:665px; top:5px; width:330px; height:30px; font-family:HY각헤드라인M; font-size:18pt; text-align:right; "/>
  257. <caption id="caption6" ref="/root/main/date/ttime" style="left:770px; top:35px; width:215px; height:30px; font-family:HY각헤드라인M; font-size:18pt; text-align:right; "/>
  258. </xhtml:body>
  259. </xhtml:html>