SMMNV05700_수술진행현황전광판(빈센트).xrw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>수술 및 분만 진행현황 안내</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cond>
  11. <oppartrtndd/>
  12. <count/>
  13. <toggle/>
  14. <interval>
  15. <intervalnm/>
  16. </interval>
  17. </cond>
  18. <oppatlist/>
  19. <pregpatinfo/>
  20. <menuitems>
  21. <gnrlmenu>
  22. <item>
  23. <name>종료</name>
  24. <func>fCloseBoard</func>
  25. </item>
  26. </gnrlmenu>
  27. </menuitems>
  28. <date>
  29. <tdate/>
  30. <ttime/>
  31. </date>
  32. </main>
  33. <send>
  34. <reqdata/>
  35. </send>
  36. <init>
  37. <msglist>
  38. <msginfo>
  39. <calltm/>
  40. <callmsg>빠른 쾌유를 빕니다.</callmsg>
  41. <oprsrvno/>
  42. </msginfo>
  43. <msginfo>
  44. <calltm/>
  45. <callmsg>항상 최선을 다하는 수술실이 되겠습니다.</callmsg>
  46. <oprsrvno/>
  47. </msginfo>
  48. </msglist>
  49. </init>
  50. <hidden>
  51. <callmsg/>
  52. </hidden>
  53. </root>
  54. </instance>
  55. <script type="javascript" ev:event="xforms-ready">
  56. <![CDATA[
  57. submit("TRMNV03003");
  58. IntervalTime2 = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='5']/cdid"));
  59. IntervalTime3 = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='6']/cdid"));
  60. DelTempFolderTime = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='7']/cdid")) ;
  61. showMsgTime = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='8']/cdid")) ;
  62. model.setFocus("line1");
  63. clockID = window.setInterval("clock();" , 1000); //1초
  64. fOpInit();
  65. fGetCallMessage();
  66. DelTempFolderID = window.setInterval("fdelTempFolers();", DelTempFolderTime); //6시간
  67. model.setFocus("line1");
  68. ]]>
  69. </script>
  70. <submission id="TRMNV02002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/msg"/>
  71. <submission id="TRMNV05302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/msg"/>
  72. <submission id="TRMNV06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/hidden/patlist"/>
  73. <submission id="TRMNV03003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/cond/interval"/>
  74. </model>
  75. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  76. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  77. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  78. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  79. <script type="javascript">
  80. <![CDATA[
  81. var IntervalTime2 ;
  82. var IntervalTime3 ;
  83. var DelTempFolderTime ;
  84. var showMsgTime ;
  85. var cnts = 0;
  86. var getlListOpInterval = "";
  87. var getlListPicInterval = "";
  88. var msgintervalIDTop = "";
  89. var DelTempFolderID = "";
  90. var clockID ="";
  91. var printno = 8;
  92. var toNodeno= 0;
  93. var fromNodeno= 0;
  94. var loopcnts = 0;
  95. function fOpInit() {
  96. model.toggle("OP1");
  97. model.removeNodeset("/root/hidden/patlist/");
  98. // model.removeNodeset("/root/main/msglist/msginfo");
  99. model.removenode("/root/main/oppatlist/oppatlist1");
  100. model.makeNode("/root/main/oppatlist/oppatlist1");
  101. model.makeValue("/root/main/cond/oppartrtndd", getCurrentDate());
  102. model.makeValue("/root/main/cond/flag", "O");
  103. model.refresh();
  104. submit("TRMNV06301", false);
  105. var totcnts = getNodesetCount("/root/hidden/patlist/oppatinfo1")
  106. if (totcnts > 8 ) {
  107. totcnts= 8;
  108. }
  109. for(var i = 1 ; i <= parseInt(totcnts) ; i ++){
  110. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]");
  111. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  112. }
  113. model.refresh();
  114. fDispChngColor();
  115. getlListOpInterval = window.setInterval("fGetNextOpPatList()", IntervalTime2); //10초
  116. }
  117. function fGetNextOpPatList() {
  118. // 50초 이후에는 분만현황으로 바꿔주기 위함
  119. count = model.getValue("/root/main/cond/count");
  120. // var cnts = getNodesetCount("/root/main/oppatlist/oppatlist1/oppatinfo1");
  121. var totcnts = getNodesetCount("/root/hidden/patlist/oppatinfo1")
  122. var divCount = parseInt(totcnts) / 8
  123. if (count >= divCount ) {
  124. if(!isNull(getlListOpInterval)) {
  125. window.clearInterval(getlListOpInterval);
  126. model.setValue("/root/main/cond/toggle", "PIC");
  127. model.setValue("/root/main/cond/count", "0");
  128. fPicInit();
  129. }
  130. } else {
  131. count++;
  132. model.setValue("/root/main/cond/count", count);
  133. }
  134. var togglenm = model.getValue("/root/main/cond/toggle");
  135. // if (togglenm ==""||count==1) {
  136. if (togglenm =="") {
  137. togglenm = "OP1";
  138. model.setValue("/root/main/cond/toggle", togglenm);
  139. togglenm = model.getValue("/root/main/cond/toggle");
  140. model.toggle(togglenm);
  141. printno=0;
  142. }
  143. var Nodes = instance1.selectNodes("/root/hidden/patlist/oppatinfo1");
  144. var toNodeno= 0;
  145. var fromNodeno= 0;
  146. model.removenode("/root/main/oppatlist/oppatlist1");
  147. fromNodeno=printno+1; // 전광판의 첫 행
  148. toNodeno= fromNodeno + 7 ; // 마지막행
  149. if(fromNodeno>Nodes.length){
  150. printno=0;
  151. fromNodeno=printno+1; // 전광판의 첫 행
  152. toNodeno= fromNodeno + 7 ; // 마지막행
  153. }
  154. if(toNodeno>Nodes.length){
  155. toNodeno=Nodes.length;
  156. }
  157. if (Nodes.length==0){
  158. fromNodeno=1;
  159. toNodeno = fromNodeno+7;
  160. }
  161. var grdcnts = 1;
  162. for(var i = fromNodeno ; i <= toNodeno ; i ++){
  163. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+ grdcnts +"]");
  164. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+ grdcnts +"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  165. grdcnts++;
  166. printno++;
  167. }
  168. fDispChngColor();
  169. if (printno==Nodes.length){
  170. printno=0;
  171. }
  172. model.refresh()
  173. }
  174. //상태에 따른 색상 변경
  175. //수술중 : 빨간색 / 회복 : 초록색 / 종료 : 파란색 / 이동, 대기 : 검정색
  176. function fDispChngColor(){
  177. for(var i = 1; i < grd_op1.rows; i++){
  178. var color = model.getValue("/root/main/oppatlist/oppatlist1/oppatinfo1[" + i + "]/color2");
  179. if(!isNull(color)){
  180. grd_op1.cellStyle("color",i,3) = "#" + color;
  181. }else{
  182. grd_op1.cellStyle("color",i,3) = "#" + "000000";
  183. }
  184. }
  185. grd_op1.refresh();
  186. }
  187. function fPicInit(){
  188. model.toggle("PIC");
  189. // model.refresh();
  190. getlListPicInterval = window.setInterval("fGetNextPicPatList()", IntervalTime3); //5초
  191. }
  192. function fGetNextPicPatList() {
  193. if(!isNull(getlListPicInterval)) {
  194. window.clearInterval(getlListPicInterval);
  195. piccnts = 0;
  196. model.setValue("/root/main/cond/toggle", "");
  197. model.setValue("/root/main/cond/count", 0);
  198. fOpInit();
  199. }
  200. model.refresh()
  201. }
  202. //로그를 지우는 함수
  203. function fdelTempFolers()
  204. {
  205. var fso = new ActiveXObject("Scripting.FileSystemObject");
  206. var fldr = fso.GetFolder("C:\\Program Files\\himed\\components\\TrustForm\\TFViewer");
  207. var fc = new Enumerator(fldr.SubFolders);
  208. for(;!fc.atEnd(); fc.moveNext())
  209. {
  210. fc.item().Delete();
  211. }
  212. }
  213. /**
  214. * @group :
  215. * @ver : 2007.10.09
  216. * @by : 문창곤
  217. * @---------------------------------------------------
  218. * @type : function
  219. * @access : public
  220. * @desc : 수술환자 보호자 호출메시지 조회.
  221. * @param :
  222. * @param :
  223. * @return :
  224. * @---------------------------------------------------
  225. */
  226. function fGetCallMessage(){
  227. var sPath = "/root/main/msglist";
  228. if(getNodesetCount(sPath + "/msginfo") == 0) {
  229. model.removeNodeset(sPath);
  230. model.copyNode("/root/send/reqdata", "/root/main/cond") ;
  231. setErrorOff();
  232. submit("TRMNV05302",false);
  233. copyNodeListType("/root/main/msglist", "/root/init/msglist/msginfo", "after");
  234. msgintervalIDTop = window.setInterval("fGetCallMessageSub1()", showMsgTime); //10초
  235. model.refresh();
  236. }
  237. }
  238. //-------------------------------
  239. // 수술환자 보호자 호출메시지 조회.
  240. //-------------------------------
  241. function fGetCallMessageSub1() {
  242. if (cnts > 0 ) {
  243. model.removenode("/root/main/msglist/msginfo[1]") ;
  244. }
  245. model.setValue("/root/hidden/callmsg", model.getValue("/root/main/msglist/msginfo[1]/callmsg")) ;
  246. cnts ++;
  247. model.refresh();
  248. if ( getNodesetCount("/root/main/msglist/msginfo") == 0) {
  249. cnts = 0;
  250. window.clearInterval(msgintervalIDTop);
  251. fGetCallMessage();
  252. }
  253. }
  254. function fCloseBoard(){
  255. if (getlListOpInterval != "") window.clearInterval(getlListOpInterval);
  256. if (getlListPicInterval != "") window.clearInterval(getlListPicInterval);
  257. if (msgintervalIDTop != "") window.clearInterval(msgintervalIDTop);
  258. if (DelTempFolderID != "") window.clearInterval(DelTempFolderID);
  259. if (clockID != "") window.clearInterval(clockID);
  260. window.close();
  261. }
  262. function clock() {
  263. var tdate = getCurrentDateTime().substring(0, 4) + "년 "
  264. + getCurrentDateTime().substring(4, 6) + "월 "
  265. + getCurrentDateTime().substring(6, 8) + "일 "
  266. + getCurrentDate().toDate("YYYYMMDD").getDayOfWeek("K") + "요일 "
  267. var ttime = getCurrentDateTime().substring(8, 11) + "시" + " "
  268. + getCurrentDateTime().substring(11, 13) + "분" + " "
  269. + getCurrentDateTime().substring(13, 15) + "초"
  270. model.setValue("/root/main/date/tdate", tdate) ;
  271. model.setValue("/root/main/date/ttime", ttime) ;
  272. model.refresh();
  273. }
  274. ]]>
  275. </script>
  276. </xhtml:head>
  277. <xhtml:body pagewidth="1366" pageheight="760" guideline="2,746;2,644;1,1350;2,642;">
  278. <caption id="tar_callmsg" ref="/root/hidden/callmsg" overflow="visible" appearance="caption" scroll="autovscroll" style="left:0px; top:652px; width:1350px; height:92px; font-family:HY각헤드라인M; font-size:32pt; font-weight:bold; color:#003366; text-align:center; vertical-align:middle; border-color:#c0c0c0; border-width:1px; border-style:solid; "/>
  279. <switch id="switch1" class="sw_no_border" style="left:0px; top:0px; width:1350; height:644px; ">
  280. <case id="OP1" selected="true">
  281. <datagrid id="grd_op1" nodeset="/root/main/oppatlist/oppatlist1/oppatinfo1" class="datagrid_op" overflow="hidden" scroll="auto" caption="병실^환자명^진료과(보호자)^상태^이동위치^caption1" colsep="^" colwidth="217, 234, 346, 176, 376" dataheight="64px" extendlastcol="noscroll" frozenrows="7" mergecellsfixedrows="bycolrec" rowheight="90" rowsep="|" style="left:0px; top:108px; width:1350; height:536px; font-size:30pt; text-align:center; vertical-align:middle; ">
  282. <col ref="roomcd" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  283. <col ref="patnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  284. <col ref="orddept" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  285. <col ref="opstatnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  286. <col ref="patposplcecd" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  287. </datagrid>
  288. <caption id="caption4" style="left:451px; top:79; width:347px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">수술과</caption>
  289. <caption id="caption5" style="left:217px; top:79; width:234px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">환자명</caption>
  290. <caption id="caption7" style="left:0px; top:79; width:217px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">병 실</caption>
  291. <caption id="caption8" style="left:798px; top:79px; width:177px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">상태</caption>
  292. <caption id="caption2" style="left:975px; top:80px; width:375px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">이동위치</caption>
  293. <line id="line2" class="line_1" style="x1:0px; y1:131px; x2:1350; y2:131px; "/>
  294. <line id="line3" class="line_1" style="x1:0px; y1:77px; x2:1350; y2:77px; "/>
  295. </case>
  296. <case id="PIC">
  297. <img id="img1" src="../../../emr/waitguideweb/images/his017pic.jpg" style="left:0px; top:77px; width:1350px; height:567px; background-stretch:stretch; "/>
  298. </case>
  299. </switch>
  300. <script type="javascript" ev:event="onmousedown">
  301. <![CDATA[
  302. if(event.button == 3) {
  303. window.setPopupMenu(true, "/root/main/menuitems/gnrlmenu/item", "name", "func", false);
  304. }
  305. ]]>
  306. </script>
  307. <script type="javascript" ev:event="DOMFocusOut">
  308. <![CDATA[
  309. window.setPopupMenu(false);
  310. ]]>
  311. </script>
  312. <line id="line1" class="line_1" style="x1:0px; y1:647px; x2:1350; y2:647px; "/>
  313. <img id="img3" src="../../../emr/waitguideweb/images/his017logo.jpg" style="left:0px; top:0px; width:175px; height:77px; background-stretch:stretch; "/>
  314. <caption id="caption26" style="left:0px; top:0px; width:1350px; height:77px; font-family:HY헤드라인M; font-size:36pt; font-weight:bold; color:#000080; text-align:center; vertical-align:middle; ">수술 진행현황 안내</caption>
  315. <caption id="caption27" ref="/root/main/date/tdate" style="left:1035px; top:10px; width:315px; height:30px; font-family:HY각헤드라인M; font-size:18pt; text-align:right; "/>
  316. <caption id="caption28" ref="/root/main/date/ttime" style="left:1095px; top:40px; width:214px; height:30px; font-family:HY각헤드라인M; font-size:18pt; text-align:right; "/>
  317. </xhtml:body>
  318. </xhtml:html>