123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- <?xml version="1.0" encoding="UTF-8"?>
- <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
- <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>HD 대기안내 기준자료 관리</xhtml:title>
- <model id="model1">
- <instance id="instance1">
- <root xmlns="">
- <main>
- <shifttimeinfo>
- <shifttimelist>
- <shift/>
- <starttime/>
- <endtime/>
- </shifttimelist>
- </shifttimeinfo>
- <noticeinfo/>
- </main>
- <send>
- </send>
- <init>
- <codeinfo>
- <codelist>
- <cdgrupid/>
- <cdid/>
- <cdnm/>
- <grupdetldesc/>
- <supcdid/>
- </codelist>
- </codeinfo>
- </init>
- <hidden/>
- <temp>
- <shiftmsg/>
- <noticemsg/>
- <copydata/>
- </temp>
- </root>
- </instance>
- <script type="javascript" ev:event="xforms-ready">
- <![CDATA[
- //fInitialize();
- fGetData();
- fSetMsg();
-
- ]]>
- </script>
- <script type="javascript">
- <![CDATA[
- /* 전역 공간 */
- var noticeValue = "";
- var existFlag_Shift = "";
- var existFlag_Notice = "";
- var mainPath = "";
- var initPath = "";
- var exeFlag = "";
- // Msg 설정
- function fSetMsg(){
- var shiftMsg = "(( 시간 입력시 자릿수를 꼭 맞춰주세요. ex)12:34 ))"
- + "\n\n" + "시작시간~ 종료시간 동안 대기장소 안내 시스템으로 환자에게 인공신장실로 들어오시도록 안내함."
- + "\n" + "시작시간이 된 Shift의 인공신장실 배치도 view를 대기장소 안내 시스템에 조회함. "
- + "\n" + "안내 리스트 및 배치도 view의 환자 명단은 10분에 한번씩 새로 조회합니다." ;
- //var noticeCnt = noticeValue.getByteLength();
- var noticeMsg = "최대 (150)자까지 표시 가능, 삭제할때까지 표시";
- model.setValue("/root/temp/shiftmsg", shiftMsg);
- model.setValue("/root/temp/noticemsg", noticeMsg);
- model.refresh();
- }
-
- // 데이터 조회
- function fGetData(){
- fScrhSaveState();
- var endCnt = "";
- if(existFlag_Shift == "Y"){
- if(existFlag_Notice == "Y") endCnt = parseInt(getNodesetCount(initPath))-1;
- else endCnt = parseInt(getNodesetCount(initPath));
-
- //alert("initPath: " + initPath + " / " + "mainPath: " + mainPath);
- for(var i=1; i<=endCnt; i++){
- model.makeValue(mainPath + "[" + i + "]/shift", model.getValue(initPath + "[" + i + "]/cdid")) // shift 기준자료
- if(model.getValue(mainPath + "[" + i + "]/shift") == "5"){
- model.makeValue(mainPath + "[" + i + "]/shift", "응급");
- }
- var timeValue = model.getValue(initPath + "[" + i + "]/grupdetldesc"); // starttime
- var startTime = "";
- var endTime = "";
- var timeFlag = "start";
- //alert ("timeValue: " + timeValue + " / " + "timeValue.length" + timeValue.length);
- for (var j=0; j< timeValue.length; j++){
- if(timeFlag == "start"){
- if(timeValue.charAt(j) != "@") startTime = startTime + timeValue.charAt(j);
- else if (timeValue.charAt(j) == "@") {
- timeFlag = "end";
- }
- }else if(timeFlag == "end"){
- endTime = endTime + timeValue.charAt(j);
- }
- }
-
- var timeS = startTime.substring(0,2);
- var minuteS = startTime.substring(2,4);
- model.makeValue(mainPath + "[" + i + "]/starttime", timeS + minuteS); // starttime 기준자료
- var timeE = endTime.substring(0,2);
- var minuteE = endTime.substring(2,4);
- model.makeValue(mainPath + "[" + i + "]/endtime", timeE + minuteE); // endtime 기준자료
- }
- }
-
- else if(existFlag_Shift == "N"){
- for(var i=1; i<=4; i++){
- if(i==4) model.makeValue(mainPath + "[" + i + "]/shift", "응급"); // shift 기준자료
- else model.makeValue(mainPath + "[" + i + "]/shift", i);
- model.makeValue(mainPath + "[" + i + "]/starttime", ""); // starttime 기준자료
- model.makeValue(mainPath + "[" + i + "]/endtime", ""); // endtime 기준자료
- }
- }
-
-
- noticeValue = "";
- if(existFlag_Notice == "Y"){
- if(existFlag_Shift == "Y") noticeValue = model.getValue(initPath + "[5]/grupdetldesc"); // starttime
- else if (existFlag_Shift == "N") noticeValue = model.getValue(initPath + "[1]/grupdetldesc"); // starttime
- model.setValue("/root/main/noticeinfo", noticeValue);
- }
- else if (existFlag_Notice == "N"){
- model.setValue("/root/main/noticeinfo", "");
- }
- model.refresh();
-
- fDataCopy(); // 재복사
- }
-
- // shift 시간 저장
- function fSaveShiftInfo(){
- fScrhSaveState();
- if(existFlag_Shift=="Y") exeFlag = "SU"; // shift update
- else exeFlag = "SI"; // shift insert
-
- var startTime = "";
- var endTime = "";
- var timeValue = "";
- var comFlag = new Array();
-
- comFlag = fDataCompare();
-
- var sName = new Array("1 shift", "2 shift", "3 shift", "응급");
- var xPath = "/root/main/shifttimeinfo/shifttimelist";
-
- // 일괄 처리를 위한 path 설정
- var sPath =
- "exeflag" //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦cdgrupid" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦cdid" //03 shift (shift 및 공지사항 구분)
- + "▦grupdetldesc" //04 starttime, endtime, 공지사항
- + "▦cdnm" //05 구분 이름
- + "▩" ;
-
- if(exeFlag =="SI"){ // shift 시간관리 Insert
- //alert("SI");
- for (i=1;i <= sName.length; i++ ) {
- startTime = model.getValue(xPath + "[" + i + "]/starttime"); // starttime
- endTime = model.getValue(xPath + "[" + i + "]/endtime"); // endtime
- //var timeFlag = "start";
- timeValue = startTime.substring(0,2) + startTime.substring(2,4) +
- "@" + endTime.substring(0,2) + endTime.substring(2,4);
- sPath +=
- exeFlag //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦" + "HD" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦" + ((model.getValue(xPath+"[" + i + "]/shift")) == "응급" ? "5" : (model.getValue(xPath+"[" + i + "]/shift"))) //03 shift (shift 및 공지사항 구분)
- + "▦" + timeValue //04 starttime, endtime, 공지사항
- + "▦" + sName[i-1] //05 구분 이름
- + "▩" ;
- }
- }
- else if(exeFlag =="SU"){ // shift 시간관리 Update
- //alert("SU");
- for (i=1;i <= sName.length; i++ ) {
- if(comFlag[i-1] == "Changed"){ // 변경사항이 있는 영역만 수정
- startTime = model.getValue(xPath + "[" + i + "]/starttime"); // starttime
- endTime = model.getValue(xPath + "[" + i + "]/endtime"); // endtime
- //var timeFlag = "start";
- timeValue = startTime.substring(0,2) + startTime.substring(2,4) +
- "@" + endTime.substring(0,2) + endTime.substring(2,4);
- sPath +=
- exeFlag //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦" + "HD" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦" + ((model.getValue(xPath+"[" + i + "]/shift")) == "응급" ? "5" : (model.getValue(xPath+"[" + i + "]/shift"))) //03 shift (shift 및 공지사항 구분)
- + "▦" + timeValue //04 starttime, endtime, 공지사항
- + "▦" + sName[i-1] //05 구분 이름
- + "▩" ;
- }
- }
- }
- model.removenode("/root/send");
- model.makeNode("/root/send");
- model.makeValue("/root/send/sPath" ,sPath );
-
- submit("TXMNV15101");
- model.refresh();
-
- fGetData(); // 저장 후 재조회
- }
-
- // 안내사항 저장
- function fSaveNoticeInfo(){
- /* // 150자 체크.. 이미 textarea에서 maxbyte 속성으로 제한!
- var sizeCheck = model.getValue("/root/main/noticeinfo");
- if(!sizeCheck.isByteSize("301")) { // 150자 체크
- messageBox("150자를 넘을 수 없습니다.", "I");
- return;
- }
- */
- fScrhSaveState();
- if(existFlag_Notice=="Y") exeFlag = "NU"; // notice update
- else exeFlag = "NI"; // notice insert
-
- var sName = "공지사항";
- var xPath = "/root/main/noticeinfo";
-
- // 일괄 처리를 위한 path 설정
- var sPath =
- "exeflag" //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦cdgrupid" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦cdid" //03 shift (shift 및 공지사항 구분)
- + "▦grupdetldesc" //04 starttime, endtime, 공지사항
- + "▦cdnm" //05 구분 이름
- + "▩" ;
- sPath +=
- exeFlag //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦" + "HD" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦" + "9" //03 shift (shift 및 공지사항 구분)
- + "▦" + model.getValue(xPath) //04 starttime, endtime, 공지사항
- + "▦" + sName //05 구분 이름
- + "▩" ;
-
- model.removenode("/root/send");
- model.makeNode("/root/send");
- model.makeValue("/root/send/sPath" ,sPath );
-
- submit("TXMNV15101");
- model.refresh();
- fGetData(); // 저장 후 재조회
- }
-
- // 안내사항 삭제
- function fDelNoticeInfo(){
- fScrhSaveState();
- if(existFlag_Notice=="N"){
- messageBox("저장된 데이터가 없습니다.", "I");
- return;
- }
- exeFlag = "ND"; // notice delete
-
- //var sName = "공지사항";
- //var xPath = "/root/main/noticeinfo";
-
- // 일괄 처리를 위한 path 설정
- var sPath =
- "exeflag" //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦cdgrupid" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦cdid" //03 shift (shift 및 공지사항 구분)
- + "▦grupdetldesc" //04 starttime, endtime, 공지사항
- + "▦cdnm" //05 구분 이름
- + "▩" ;
- sPath +=
- exeFlag //01 저장/삭제 구분 (SU, SI, NU, NI, ND)
- + "▦" + "HD" //02 cd그룹코드 ("HD" 인공신장실)
- + "▦" + "9" //03 shift (shift 및 공지사항 구분)
- + "▦" + "" //04 starttime, endtime, 공지사항
- + "▦" + "" //05 구분 이름
- + "▩" ;
-
- model.removenode("/root/send");
- model.makeNode("/root/send");
- model.makeValue("/root/send/sPath" ,sPath );
-
- submit("TXMNV15101");
- model.refresh();
- fGetData(); // 삭제 후 재조회
-
- }
-
- function fScrhSaveState(){
- // 간호하드코딩 테이블 조회_20100526(By 안도영)
- var pCode = "'HD'"; // 조회할 CdGrupID 코드정보
- var pDate = getCurrentDate(); //조회기준일자
- mainPath = "/root/main/shifttimeinfo/shifttimelist";
- initPath = "/root/init/codeinfo/codelist";
- //var uijungbuinstcd="", sunggainstcd="", vincentinstcd=""; // 의정부성모병원, 부천성가병원, 수원빈센트병원 기관코드
- fGetNursHardCdInfo(pCode, pDate);
-
- existFlag_Shift = "N";
- existFlag_Notice = "N";
- for(var i=1; i<=getNodesetCount(initPath); i++){
- if(model.getValue(initPath + "[" + i + "]/cdid") == "1"){ // shift 기준자료
- existFlag_Shift = "Y";
- }
- if(model.getValue(initPath+ "[" + i + "]/cdid") == "9"){ // 공지사항 기준자료
- existFlag_Notice = "Y";
- }
- }
- }
-
- // 조회시 데이터 복사
- function fDataCopy(){
- var inRef = "/root/main/shifttimeinfo";
- var tmpRef = "/root/temp/copydata";
- model.copyNode(tmpRef, inRef);
- }
-
- // 조회시의 데이터와 변경 여부 체크 (부분적 Update 구분)
- function fDataCompare(){
- //var array_nodePath= new Array("patdelist/reptcnts", "patnlist/reptcnts", "situatdelist/reptcnts", "situatnlist/reptcnts", "psn_edu_etclist/reptcnts", "noticlist/reptcnts");
- var comFlag = new Array();
- var inRef = "/root/main/shifttimeinfo/shifttimelist";
- var tmpRef = "/root/temp/copydata/shifttimelist";
-
- for(i=1; i<=4; i++){
- var comTmp1 = model.getValue(inRef + "["+i+"]/starttime") != model.getValue(tmpRef + "["+i+"]/starttime");
- var comTmp2 = model.getValue(inRef + "["+i+"]/endtime") != model.getValue(tmpRef + "["+i+"]/endtime");
- if(comTmp1 || comTmp2){
- comFlag[i-1] = "Changed";
- }
- else if(!comTmp1&&!comTmp2){
- comFlag[i-1] = "NoChanged";
- }
- }
- return comFlag;
- }
- // shift 시간 자리수 채우기
- function fCheckLength(){
- // 자리수 따짐
- var dataRef = "/root/main/shifttimeinfo/shifttimelist";
- var startTime = "";
- var endTime = "";
- for (i=1;i <= 4; i++ ) {
- startTime = model.getValue(dataRef + "[" + i + "]/starttime");
- endTime = model.getValue(dataRef + "[" + i + "]/endtime");
- //alert(startTime);
- alert (startTime.length);
- alert (endTime.length);
- //alert(parseInt(getByteLength(endTime)));
- if(startTime.length <4 || endTime.length <4) {
- messageBox("자리수를 채워주시기 바랍니다.", "I");
- return;
- }
- }
- }
-
- ]]>
- </script>
- <submission id="TRMNW00001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/codeinfo"/>
- <submission id="TXMNV15101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send"/>
- </model>
- <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
- <script type="javascript" src="../../../com/commonweb/js/common.js"/>
- <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
- <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
- <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
- <script type="javascript" src="../../../emr/waitguideweb/js/MNV00100.js"/>
- </xhtml:head>
- <xhtml:body pagewidth="445" pageheight="440" guideline="1,459;1,438;1,444;2,440;">
- <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:178px; height:14px; ">HD 대기안내 기준자료 관리</caption>
- <button id="button2" class="btn_sw" group="tab1" selected="true" style="left:120px; top:18px; width:100px; height:22px; vertical-align:middle; ">
- <caption>공지사항 관리</caption>
- <toggle case="case2" ev:event="onclick"/>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- model.toggle("case2");
- //unitflg = 2;
- ]]>
- </script>
- </button>
- <button id="button19" class="btn_sw" group="tab1" selected="true" style="left:5px; top:18px; width:115px; height:32px; vertical-align:middle; ">
- <caption>Shift별 시간관리</caption>
- <toggle case="case1" ev:event="onclick"/>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- model.toggle("case1");
- ]]>
- </script>
- </button>
- <switch id="switch1" style="left:5px; top:40px; width:433px; height:399px; ">
- <case id="case1" selected="true" style="left:0px; top:0px; width:433px; height:413px; ">
- <caption id="caption2" class="tit_2" style="left:11px; top:6px; width:116px; height:14px; font-size:12pxptpt; ">Shift별 시간관리</caption>
- <button id="button1" class="btn5_letter2" style="left:253px; top:2px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn1_letter6.gif; ">
- <caption>저장</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- //fCheckLength();
- /*
- if( ! getGridUpdateData(grd_shift) ) {
- messageBox("입력","E013"); // 그리드에 데이터가 업데이트 되지 않으면 "입력된 데이터가 없습니다."는 메시지 출력
- return ;
- }
- */
- //model.makeValue("/root/send/savedata", grd_room.getUpdateData()); // 분류코드의 업데이트 된 내용을 savedata에 넣는다
- //submit("TXMNV21101");
- //alert("grd_shift.getUpdateDataXml() - " + grd_shift.getUpdateDataXml());
- fSaveShiftInfo();
- ]]>
- </script>
- </button>
- <datagrid id="grd_shift" nodeset="/root/main/shifttimeinfo/shifttimelist" caption="caption1^shift^시작시간^종료시간^orddeptcd^roomcd" colsep="^" colwidth="0, 67, 100, 100, 0, 0" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:5px; top:25px; width:290px; height:245px; text-align:center; ">
- <col/>
- <col ref="shift"/>
- <col imemode="disabled" ref="starttime" type="input" format="hh:nn"/>
- <col imemode="disabled" ref="endtime" type="input" format="hh:nn"/>
- </datagrid>
- <line id="line2" class="line_1" style="x1:5px; y1:22px; x2:295px; y2:22px; "/>
- <textarea id="textarea2" ref="/root/temp/shiftmsg" scroll="autohscroll" editable="false" style="left:5px; top:275px; width:420px; height:115px; background-color:#ffff99; "/>
- </case>
- <case id="case2" style="left:0px; top:0px; width:433px; height:494px; ">
- <textarea id="textarea1" ref="/root/main/noticeinfo" scroll="autovscroll" maxbyte="300" style="left:5px; top:25px; width:420px; height:245px; "/>
- <caption id="caption17" class="tit_2" style="left:11px; top:6px; width:116px; height:14px; font-size:12pxptpt; ">대대기 공지사항</caption>
- <button id="button5" class="btn5_letter2" style="left:338px; top:4px; width:42px; height:19px; ">
- <caption>저장</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- fSaveNoticeInfo();
- ]]>
- </script>
- </button>
- <textarea id="textarea9" ref="/root/temp/noticemsg" scroll="autovscroll" editable="false" style="left:5px; top:275px; width:420px; height:115px; background-color:#ffff99; "/>
- <button id="btn_inreqsrch" class="btn2_letter2" style="left:383px; top:4px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn1_letter6.gif; ">
- <caption>삭제</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- fDelNoticeInfo();
- ]]>
- </script>
- </button>
- </case>
- </switch>
- </xhtml:body>
- </xhtml:html>
|