SMMNV07300_수술및분만진행현황전광판(의정부).xrw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <?xml version="1.0" encoding="EUC-KR"?>
  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>수술 및 분만 진행현황 안내</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cond>
  11. <oppartrtndd/>
  12. <count/>
  13. <toggle/>
  14. </cond>
  15. <oppatlist/>
  16. <pregpatinfo/>
  17. <menuitems>
  18. <gnrlmenu>
  19. <item>
  20. <name>종료</name>
  21. <func>fCloseBoard</func>
  22. </item>
  23. </gnrlmenu>
  24. </menuitems>
  25. </main>
  26. <send>
  27. <reqdata/>
  28. </send>
  29. <init>
  30. </init>
  31. <hidden>
  32. <callmsg/>
  33. </hidden>
  34. </root>
  35. </instance>
  36. <script type="javascript" ev:event="xforms-ready">
  37. <![CDATA[
  38. submit("TRMNV03003");
  39. IntervalTime2 = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='5']/cdid"));
  40. IntervalTime3 = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='6']/cdid"));
  41. IntervalTime4 = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='1']/cdid"));
  42. DelTempFolderTime = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='7']/cdid")) ;
  43. showMsgTime = parseInt(model.getValue("/root/main/cond/interval/intervalnm[sortseq='8']/cdid")) ;
  44. fOpInit();
  45. fGetCallMessage();
  46. DelTempFolderID = window.setInterval("fdelTempFolers();", DelTempFolderTime); //12시간
  47. model.setFocus("line1");
  48. ]]>
  49. </script>
  50. <submission id="TRMNV02002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/msg"/>
  51. <submission id="TRMNV05302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/msg"/>
  52. <submission id="TRMNV06301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/cond" resultref="/root/hidden/patlist"/>
  53. <submission id="TRMNV03003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/cond/interval"/>
  54. </model>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  57. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  58. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  59. <script type="javascript">
  60. <![CDATA[
  61. var IntervalTime2 = 0;// 10초 (수술)
  62. var IntervalTime3 = 0; // 11초 (의정부 그림)
  63. var IntervalTime4 = 0; // 10초 (분만)
  64. var DelTempFolderTime = 0; // 12시간
  65. var showMsgTime = 0; // 9초 메시지
  66. var cnts = 0;
  67. var getlListOpInterval = "";
  68. var getlLisPregtInterval = "";
  69. var getlListPicInterval = "";
  70. var msgintervalIDTop = "";
  71. var DelTempFolderID = "";
  72. var printno = 8;
  73. var toNodeno= 0;
  74. var fromNodeno= 0;
  75. function fOpInit() {
  76. model.removeNodeset("/root/hidden/patlist/");
  77. model.removeNodeset("/root/main/msglist/msginfo");
  78. model.removenode("/root/main/oppatlist/oppatlist1");
  79. model.makeValue("/root/main/cond/oppartrtndd", getCurrentDate());
  80. model.makeValue("/root/main/cond/flag", "O");
  81. submit("TRMNV06301");
  82. for(var i = 1 ; i <= 8 ; i ++){
  83. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]");
  84. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+i+"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  85. }
  86. model.refresh();
  87. fDispChngColor();
  88. getlListOpInterval = window.setInterval("fGetNextOpPatList()", IntervalTime2); //10초
  89. }
  90. function fGetNextOpPatList() {
  91. // 50초 이후에는 분만현황으로 바꿔주기 위함
  92. count = model.getValue("/root/main/cond/count");
  93. var cnts = getNodesetCount("/root/main/oppatlist/oppatlist1/oppatinfo1");
  94. if (count >= 5 ) {
  95. if(!isNull(getlListOpInterval)) {
  96. window.clearInterval(getlListOpInterval);
  97. model.setValue("/root/main/cond/toggle", "PREG1");
  98. model.setValue("/root/main/cond/count", "0");
  99. fPregInit();
  100. }
  101. } else {
  102. count++
  103. model.setValue("/root/main/cond/count", count);
  104. }
  105. var togglenm = model.getValue("/root/main/cond/toggle");
  106. if (togglenm ==""||count==1) {
  107. togglenm = "OP1";
  108. model.setValue("/root/main/cond/toggle", togglenm);
  109. togglenm = model.getValue("/root/main/cond/toggle");
  110. model.toggle(togglenm);
  111. printno=0;
  112. }
  113. var Nodes = instance1.selectNodes("/root/hidden/patlist/oppatinfo1");
  114. model.removenode("/root/main/oppatlist/oppatlist1");
  115. fromNodeno=printno+1; // 전광판의 첫 행
  116. toNodeno= fromNodeno + 7 ; // 마지막행
  117. if(fromNodeno>Nodes.length){
  118. printno=0;
  119. fromNodeno=printno+1; // 전광판의 첫 행
  120. toNodeno= fromNodeno + 7 ; // 마지막행
  121. }
  122. if(toNodeno>Nodes.length){
  123. toNodeno=Nodes.length;
  124. }
  125. if (Nodes.length==0){
  126. fromNodeno=1;
  127. toNodeno = fromNodeno+7;
  128. }
  129. var grdcnts = 1;
  130. for(var i = fromNodeno ; i <= toNodeno ; i ++){
  131. model.makeNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+ grdcnts +"]");
  132. model.copyNode("/root/main/oppatlist/oppatlist1/oppatinfo1["+ grdcnts +"]", "/root/hidden/patlist/oppatinfo1["+i+"]");
  133. grdcnts++;
  134. printno++;
  135. }
  136. fDispChngColor();
  137. if (printno==Nodes.length){
  138. printno=0;
  139. }
  140. model.refresh();
  141. }
  142. /**
  143. * @desc : 진행상태에 따른 색 변경
  144. * @
  145. * @param :
  146. * @return : 수술중 : 녹색
  147. * @ 회복중 , 수술종료 : 남색
  148. * @ 병실이동 : 파란색
  149. * @ 대기 : 검정색
  150. * @author : 김영학
  151. * @---------------------------------------------------
  152. */
  153. function fDispChngColor(){
  154. for(var i = 1; i < grd_op1.rows; i++){
  155. var color = model.getValue("/root/main/oppatlist/oppatlist1/oppatinfo1[" + i + "]/color");
  156. if(!isNull(color)){
  157. grd_op1.rowStyle(i, "all", "color") = "#" + color;
  158. }else{
  159. grd_op1.rowStyle(i, "all", "color") = "#" + "000000";
  160. }
  161. grd_op1.refresh();
  162. }
  163. }
  164. // **********************************************************분만***********************************************************************
  165. function fPregInit(){
  166. model.removeNodeset("/root/hidden/patlist/");
  167. model.removeNodeset("/root/main/msglist/msginfo");
  168. model.removenode("/root/main/pregpatinfo/preginfo1");
  169. model.makeValue("/root/main/cond/oppartrtndd", getCurrentDate());
  170. model.makeValue("/root/main/cond/flag", "P");
  171. model.refresh();
  172. submit("TRMNV06301");
  173. for(var i = 1 ; i <= 8 ; i ++){
  174. model.makeNode("/root/main/pregpatinfo/preginfo1/preginfo1["+i+"]");
  175. model.copyNode("/root/main/pregpatinfo/preginfo1/preginfo1["+i+"]", "/root/hidden/patlist/preginfo1["+i+"]");
  176. }
  177. model.toggle("PREG1");
  178. model.refresh();
  179. getlLisPregtInterval = window.setInterval("fGetNextPregPatList()", IntervalTime4); //5초
  180. }
  181. function fGetNextPregPatList() {
  182. count = model.getValue("/root/main/cond/count");
  183. if (count >= 2 ) {
  184. if(!isNull(getlLisPregtInterval)) {
  185. window.clearInterval(getlLisPregtInterval);
  186. model.setValue("/root/main/cond/toggle", "PIC");
  187. model.setValue("/root/main/cond/count", 0);
  188. fPicInit();
  189. }
  190. } else {
  191. count++
  192. model.setValue("/root/main/cond/count", count);
  193. }
  194. var togglenm = model.getValue("/root/main/cond/toggle");
  195. var Nodes = instance1.selectNodes("/root/hidden/patlist/preginfo1");
  196. if (togglenm ==""||count==1) {
  197. var cnts = getNodesetCount("/root/main/pregpatinfo/preginfo1/preginfo1");
  198. togglenm = "PREG1";
  199. model.setValue("/root/main/cond/toggle", togglenm);
  200. togglenm = model.getValue("/root/main/cond/toggle");
  201. model.toggle(togglenm);
  202. printno=0;
  203. }
  204. model.removenode("/root/main/pregpatinfo/preginfo1");
  205. fromNodeno=printno+1; // 전광판의 첫 행
  206. toNodeno= fromNodeno + 7 ; // 마지막행
  207. if(toNodeno>Nodes.length){
  208. toNodeno=Nodes.length;
  209. }
  210. var grdcnts = 1
  211. for(var i = fromNodeno ; i <= toNodeno ; i ++){
  212. model.makeNode("/root/main/pregpatinfo/preginfo1/preginfo1["+ grdcnts +"]");
  213. model.copyNode("/root/main/pregpatinfo/preginfo1/preginfo1["+ grdcnts +"]", "/root/hidden/patlist/preginfo1["+i+"]");
  214. printno++;
  215. grdcnts++;
  216. }
  217. if (printno==Nodes.length){
  218. printno=0;
  219. }
  220. model.refresh();
  221. }
  222. function fPicInit(){
  223. model.toggle("PIC");
  224. model.refresh();
  225. getlListPicInterval = window.setInterval("fGetNextPicPatList()", IntervalTime3); //5초
  226. }
  227. function fGetNextPicPatList() {
  228. var togglenm = model.getValue("/root/main/cond/toggle");
  229. count = model.getValue("/root/main/cond/count");
  230. model.refresh();
  231. if (count >= 2 ) {
  232. if(!isNull(getlListPicInterval)) {
  233. window.clearInterval(getlListPicInterval);
  234. piccnts = 0;
  235. model.setValue("/root/main/cond/toggle", "");
  236. model.setValue("/root/main/cond/count", 0);
  237. fOpInit();
  238. }
  239. } else {
  240. count++
  241. model.setValue("/root/main/cond/count", count);
  242. }
  243. model.refresh()
  244. }
  245. //로그를 지우는 함수
  246. function fdelTempFolers()
  247. {
  248. var fso = new ActiveXObject("Scripting.FileSystemObject");
  249. var fldr = fso.GetFolder("C:\\Program Files\\himed\\components\\TrustForm\\TFViewer");
  250. var fc = new Enumerator(fldr.SubFolders);
  251. for(;!fc.atEnd(); fc.moveNext())
  252. {
  253. fc.item().Delete();
  254. }
  255. }
  256. /**
  257. * @group :
  258. * @ver : 2007.10.09
  259. * @by : 문창곤
  260. * @---------------------------------------------------
  261. * @type : function
  262. * @access : public
  263. * @desc : 수술환자 보호자 호출메시지 조회.
  264. * @param :
  265. * @param :
  266. * @return :
  267. * @---------------------------------------------------
  268. */
  269. function fGetCallMessage(){
  270. var sPath = "/root/main/msglist";
  271. if(getNodesetCount(sPath + "/msginfo") == 0) {
  272. model.removeNodeset(sPath);
  273. model.copyNode("/root/send/reqdata", "/root/main/cond") ;
  274. setErrorOff();
  275. submit("TRMNV05302",false);
  276. var msgCnt = getNodesetCount(sPath + "/msginfo") ;
  277. if (msgCnt > 0) {
  278. msgintervalIDTop = window.setInterval("fGetCallMessageSub1()", showMsgTime); //10초
  279. }else{
  280. model.setValue("/root/hidden/callmsg", "평일 PM 8:00 이후 수술종료시 집중치료실에서 마취회복이 이루어집니다.");
  281. tar_callmsg.refresh();
  282. }
  283. model.refresh();
  284. }
  285. }
  286. //-------------------------------
  287. // 수술환자 보호자 호출메시지 조회.
  288. //-------------------------------
  289. function fGetCallMessageSub1() {
  290. if (cnts > 0 ) {
  291. model.removenode("/root/main/msglist/msginfo[1]") ;
  292. }
  293. model.setValue("/root/hidden/callmsg", model.getValue("/root/main/msglist/msginfo[1]/callmsg")) ;
  294. cnts ++;
  295. model.refresh();
  296. if ( getNodesetCount("/root/main/msglist/msginfo") == 0) {
  297. cnts = 0;
  298. model.setValue("/root/hidden/callmsg", "평일 PM 8:00 이후 수술종료시 집중치료실에서 마취회복이 이루어집니다.");
  299. model.refresh() ;
  300. window.clearInterval(msgintervalIDTop);
  301. fGetCallMessage();
  302. }
  303. }
  304. function fCloseBoard(){
  305. if (getlListOpInterval != "") window.clearInterval(getlListOpInterval);
  306. if (getlLisPregtInterval != "") window.clearInterval(getlLisPregtInterval);
  307. if (getlListPicInterval != "") window.clearInterval(getlListPicInterval);
  308. if (msgintervalIDTop != "") window.clearInterval(msgintervalIDTop);
  309. if (DelTempFolderID != "") window.clearInterval(DelTempFolderID);
  310. window.close();
  311. }
  312. ]]>
  313. </script>
  314. </xhtml:head>
  315. <xhtml:body pagewidth="1020" pageheight="730" guideline="2,726;2,486;1,1039;" style="margin-left:4; margin-top:0; margin-right:4; margin-bottom:0; ">
  316. <switch id="switch1" class="sw_no_border" style="left:0px; top:0px; width:1010px; height:640px; ">
  317. <case id="OP1" selected="true">
  318. <datagrid id="grd_op1" nodeset="/root/main/oppatlist/oppatlist1/oppatinfo1" class="datagrid_op" overflow="hidden" scroll="auto" caption="병실^환자명^성별^수술과^진행상태^caption1" colsep="^" colwidth="179, 183, 124, 299, 252" dataheight="64px" extendlastcol="noscroll" frozenrows="7" mergecellsfixedrows="bycolrec" rowheight="90" rowsep="|" style="left:0px; top:95px; width:1002px; height:540px; font-size:29pt; text-align:center; vertical-align:middle; background-color:#c0c0c0; ">
  319. <col ref="roomcd" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  320. <col ref="patnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  321. <col ref="sex" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  322. <col ref="orddept" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  323. <col ref="opstatnm" style="font-family:HY각헤드라인M; font-size:18pt; font-weight:bold; "/>
  324. </datagrid>
  325. <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>
  326. <caption id="caption2" style="left:363px; top:69px; width:122px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">성별</caption>
  327. <caption id="caption3" style="left:180px; top:70px; width:183px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">환자명</caption>
  328. <caption id="caption4" style="left:485px; top:70px; width:300px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">수술과</caption>
  329. <caption id="caption5" style="left:180px; top:70px; width:183px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">환자명</caption>
  330. <caption id="caption7" style="left:0px; top:70px; width:180px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">병 실</caption>
  331. <caption id="caption8" style="left:785px; 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>
  332. <line id="line2" class="line_1" style="x1:0px; y1:68px; x2:1003px; y2:68px; "/>
  333. <line id="line3" class="line_1" style="x1:0px; y1:120px; x2:1003px; y2:120px; "/>
  334. </case>
  335. <case id="PREG1">
  336. <datagrid id="datagrid1" nodeset="/root/main/pregpatinfo/preginfo1/preginfo1" class="datagrid_op" overflow="hidden" scroll="auto" caption="병실^산모명^보호자^진행상태^분만내용^caption1" colsep="^" colwidth="180, 190, 190, 220, 219, 0" dataheight="64px" ellipsis="true" extendlastcol="noscroll" frozenrows="7" mergecellsfixedrows="bycolrec" rowheight="90" rowsep="|" style="left:0px; top:100px; width:1002px; height:532px; font-size:29pt; text-align:center; vertical-align:middle; background-color:#c0c0c0; ">
  337. <col ref="roomcd" style="font-family:HY각헤드라인M; font-size:22pt; font-weight:bold; "/>
  338. <col ref="patnm" style="font-family:HY각헤드라인M; font-size:22pt; font-weight:bold; "/>
  339. <col ref="orddept" style="font-family:HY각헤드라인M; font-size:28pt; font-weight:bold; "/>
  340. <col ref="opstatnm" style="font-family:HY각헤드라인M; font-size:28pt; font-weight:bold; "/>
  341. <col ref="patposplcecd" style="font-family:HY각헤드라인M; font-size:28pt; font-weight:bold; "/>
  342. <col ref="opstatcd" visibility="hidden"/>
  343. </datagrid>
  344. <caption id="caption77" style="left:0px; top:0px; width:999px; height:75px; font-family:HY헤드라인M; font-size:36pt; font-weight:bold; color:#000080; text-align:center; vertical-align:middle; ">분만 현황 안내</caption>
  345. <caption id="caption79" style="left:369px; top:70px; width:191px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">보호자</caption>
  346. <caption id="caption83" style="left:559px; top:70px; width:221px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">진행상태</caption>
  347. <caption id="caption85" style="left:179px; top:70px; width:191px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">산모명</caption>
  348. <caption id="caption87" style="left:0px; top:70px; width:181px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">병 실</caption>
  349. <caption id="caption88" style="left:779px; top:70px; width:223px; height:54px; font-family:HY헤드라인M; font-size:29pt; color:#ffffff; text-align:center; background-color:#008080; border-color:#c0c0c0; border-style:solid; ">분만내용</caption>
  350. <line id="line16" class="line_1" style="x1:0px; y1:120px; x2:1001px; y2:120px; "/>
  351. <line id="line17" class="line_1" style="x1:0px; y1:68px; x2:1001px; y2:68px; "/>
  352. </case>
  353. <case id="PIC">
  354. <caption id="caption72" 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>
  355. <img id="img1" src="../../../emr/waitguideweb/images/his013pic.jpg" style="left:0px; top:70px; width:1001px; height:560px; background-stretch:stretch; "/>
  356. </case>
  357. </switch>
  358. <textarea id="tar_callmsg" ref="/root/hidden/callmsg" overflow="visible" scroll="autovscroll" style="left:0px; top:640px; width:1005px; height:92px; font-family:HY각헤드라인M; font-size:32pt; font-weight:bold; color:#003366; "/>
  359. <line id="line25" class="line_1" style="x1:0px; y1:634px; x2:1004px; y2:634px; "/>
  360. <script type="javascript" ev:event="onmousedown">
  361. <![CDATA[
  362. if(event.button == 3) {
  363. window.setPopupMenu(true, "/root/main/menuitems/gnrlmenu/item", "name", "func", false);
  364. }
  365. ]]>
  366. </script>
  367. <script type="javascript" ev:event="DOMFocusOut">
  368. <![CDATA[
  369. window.setPopupMenu(false);
  370. ]]>
  371. </script>
  372. </xhtml:body>
  373. </xhtml:html>