123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- 제 목 : SPMMO21300_중증체류시간
- 작성자 : 김광성(kskim)
- 작성일 : 2010.03.10
- 관련xrw : SPMMO21300_중증체류시간,
- SMMMO04400_응급환자리스트.xrw,
- SMMMO04100.xrw
- 관련 js : SMMMO4100.js
- -->
- <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">
- <xhtml:head>
- <xhtml:title>중증체류시간</xhtml:title>
- <model id="model1">
- <instance id="instance1">
- <root xmlns="">
- <reqdata>
- <instcd/>
- <pid/>
- <indd/>
- <cretno/>
- <visitno/>
- </reqdata>
- <time>
- <list>
- <doortime/>
- <activatetime/>
- <curtime/>
- </list>
- </time>
- <savedata>
- <doortime/>
- <activatetime/>
- <curtime/>
- <intervalid/>
- </savedata>
- </root>
- </instance>
- <script type="javascript" src="../../../com/commonweb/js/common.js"/>
- <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
- <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
- <script type="javascript" ev:event="xforms-ready">
- <![CDATA[
- fStartWnd();
- ]]>
- </script>
- <submission id="TRMMO21301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/reqdata" resultref="/root/time"/>
- </model>
- <script type="javascript">
- <![CDATA[
- // window.setInterval()을 사용하기 전 기존에 사용 중인 인터벌이 있을 경우 자원 해제
- function fCleanIntervalId(){
- if (!isNull( model.getValue("/root/savedata/intervalid")) ){
- window.clearInterval( model.getValue("/root/savedata/intervalid") );
- }
- }
- // 윈도우 화면 닫기
- function fCloseWnd(){
- window.close();
- }
- // 진료대상자 리스트에서 다른환자 선택시 중증체류시간 화면 새로고침
- function fStartWnd(){
- // doortime : 내원 후 경과 시간
- // activatetime : 응급실 중증호출 후 경과 시간
- fInitData(); // 환자검색에 필요한 환자정보 opener로 부터 가져온 후, 데이터 초기화
- fCalcTime(); // doortime과 activatetime 시간계산
- fCleanIntervalId(); // window.setInterval()을 사용하기 전 기존에 사용 중인 인터벌이 있을 경우 자원 해제
- fSetInterval(); // window.setInterval()을 설정
- window.modelessTopmost= true;
- }
-
- // window.setInterval()을 설정
- function fSetInterval(){
- var intervalId = window.setInterval( "fCalcTime()", 1000);
- model.setValue("/root/savedata/intervalid", intervalId);
- }
-
- // 환자검색에 필요한 데이터 초기화
- // 환자검색에 필요한 환자정보 데이터를 페이지 xml값에 할당
- function fInitData(){
- var param = opener.javascript.getParameter("SPMMO21300_param");
- var paramvalue = param.split("▦");
- var pid = paramvalue[0];
- var indd = paramvalue[1];
- var cretno = paramvalue[2];
- var visitno = paramvalue[3];
-
- model.setValue("/root/reqdata/pid", pid);
- model.setValue("/root/reqdata/indd", indd);
- model.setValue("/root/reqdata/cretno", cretno);
- model.setValue("/root/reqdata/visitno", visitno);
-
- submit("TRMMO21301"); // doortime, activatetime 값을 db로 부터 가죠오기
- }
- // 시, 분 출력시 한자리 숫자 앞에 '0'문자열을 붙여서 주는 함수
- function fAddZero(n){
- return n < 10 ? "0" + n : n;
- }
-
- // 날짜 문자열 형식이 'yyyymmddhh24mi'인 문자열을 Date객체로 변화해 주는 함수
- function fCvDate(time){
- var year = time.substr(0, 4);
- var month = time.substr(4, 2) - 1 ; // 1월=0 ~ 12월=11
- var day = time.substr(6, 2);
- var hours = time.substr(8, 2);
- var minutes = time.substr(10, 2);
-
- return new Date(year, month, day, hours, minutes);
- }
-
- // 현재 시간과 사용자가 함수에 넘겨주는 Date객체와의 시간 차이를 시, 분 단위로 출력해 주는 함수
- function fCalcPassingTimes(dbDate){
- var curClientTime = new Date();
-
- var rstMilionse = curClientTime.getTime() - dbDate.getTime();
- var passingSecond = Math.floor( (rstMilionse / 1000) % 60 );
- var passingMin = Math.floor( (rstMilionse / (1000 * 60)) % 60 );
- var passingHours = Math.floor(rstMilionse / ( 1000 * 60 * 60 ));
-
- return fAddZero(passingHours) + "시간 " + fAddZero(passingMin) + "분 " + fAddZero(passingSecond) + "초";
- }
-
- // 중증체류시간 계산하기 위해 가장 먼저 실행되는 함수
- function fCalcTime(){
-
- var doorTime = null;
- var activateTime = null;
-
- doorTime = model.getValue("/root/time/list/doortime");
- activateTime = model.getValue("/root/time/list/activatetime");
-
- // door to now(내원 시간 계산)
- if( !isNull( doorTime)){
- doorTime = fCvDate( model.getValue("/root/time/list/doortime") );
- var doorTimeSt = fCalcPassingTimes(doorTime);
- model.setValue("/root/savedata/doortime", doorTimeSt);
- }
- else{
- model.setValue("/root/savedata/doortime", "no data");
- }
-
- // activate to now(중증호출 시간 계산)
- if( !isNull( activateTime)){
- activateTime = fCvDate( model.getValue("/root/time/list/activatetime") );
- var activateTimeSt = fCalcPassingTimes(activateTime);
- model.setValue("/root/savedata/activatetime", activateTimeSt);
- }
- else{
- model.setValue("/root/savedata/activatetime", "no data");
- }
-
- opt_doortime.refresh();
- opt_activatetime.refresh();
- }
- ]]>
- </script>
- </xhtml:head>
- <xhtml:body pagewidth="250" pageheight="110" style="font-family:Arial; font-size:11pt; font-weight:bold; border-style:solid; margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
- <output id="opt_doortime" ref="/root/savedata/doortime" style="left:8px; top:20px; width:216px; height:29px; font-family:HY헤드라인M; font-size:16pt; color:#ff0000; text-align:center; vertical-align:middle; background-color:#dddddd; border-width:1px; border-style:solid; "/>
- <caption id="caption1" style="left:11px; top:-1px; width:92px; height:26px; font-family:Arial; font-size:9pt; vertical-align:middle; ">Door to Now</caption>
- <output id="opt_activatetime" ref="/root/savedata/activatetime" style="left:8px; top:65px; width:216px; height:29px; font-family:HY헤드라인M; font-size:16pt; color:#ff0000; text-align:center; vertical-align:middle; background-color:#dddddd; border-width:1px; border-style:solid; "/>
- <caption id="caption2" style="left:11px; top:43px; width:107px; height:26px; font-family:Arial; font-size:9pt; vertical-align:middle; ">Activate to Now</caption>
- </xhtml:body>
- </xhtml:html>
|