/** * consent/outpatient */ var mcare_mobile_consentOutpatient = function(){ //상속 mplus_mobile_consent.call(this); //변수 var div = $("
"); var tr = $(""); var th = $(""); var td = $(""); var table = $("
"); var li = $("
  • "); var a = $(""); var span = $(""); var button = $(""); $crudServiceBaseUrl = contextPath + "/mobile"; var $btnSearchPatient = $('#btnSearchPatient'); var $btnTotalSearchConsent = $('#btnTotalSearchConsent'); var $btnSearchConsent = $('#btnSearchConsent'); var $sltTreament = $('#sltTreament'); var $dtpSrchdd = $('#dtpSrchdd'); var $sltDoctor = $('#sltDoctor'); var $txtSearchPatient = $('#txtSearchPatient'); var $ulPatientList = $('#ulPatientList'); var $ulAgreementCheck = $("#ulAgreementCheck"); var $ulAgreementList = $("#ulAgreementList"); var $ulConsentList = $("#ulConsentList"); var $ulSetList = $('#ulSetList'); var $dtpConsentStartDt = $('#dtpConsentStartDt'); var $dtpConsentEndDt = $('#dtpConsentEndDt'); var $sltCategory = $('#sltCategory'); var $sltCategoryLower = $('#sltCategoryLower'); var $txtConsentSrch = $('#txtConsentSrch'); var $tabSet = $('#tabSet'); var todayDateStr = ''; var $btnPatientConsent = $('#btnPatientConsent'); var $btnDoctorConsent = $('#btnDoctorConsent'); var $menuType = 'O'; var self = this; patientList = []; var patientInfo; var unfinishedConsentList = []; var agreementList = []; var setList = []; var totalConsentList = []; var doctorId; var doctorNm; /** * 초기화 */ this.init = function(){ formDataInit(); addEvent(); initDropDownList(); initSetList(); if(jobKindCd=='0330'||jobKindCd=='0640'){ $('input:radio[name=searchRadio]:input[value=""]').attr("checked", true); }else{ $('input:radio[name=searchRadio]:input[value="C"]').attr("checked", true); }; if((indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113')) ||(jobKindCd=='0330'||jobKindCd=='0640')){ $sltTreament.selectpicker('val', deptCd); if($sltTreament.val()==null) { $sltTreament.selectpicker('val', ''); }else{ showDoctorList(deptCd); searchPatientList('Y'); } }; }; var formDataInit = function(){ // datepicker 초기화 $('.datepicker').datepicker({'format': 'yyyy/mm/dd'}); var today = new Date(); var prevDay = new Date(Date.parse(new Date()) - 7 * 1000 * 60 * 60 * 24); //일주일전!! todayDateStr = moment(today).format('YYYY/MM/DD'); var prevDayStr = moment(prevDay).format('YYYY/MM/DD'); $("#divDtpSrchdd").datepicker('update', todayDateStr); $("#divDtpConsentStartDt").datepicker('update', prevDayStr); $("#divDtpConsentEndDt").datepicker('update', todayDateStr); }; /** * 이벤트 등록 */ var addEvent = function(){ $btnSearchPatient.on("click", function(e){ $('span[name^="sort_"]').attr('sortType', ''); searchPatientList('N'); }); $btnTotalSearchConsent.on("click", function(e){ searchTotalConsentList('Y'); }); $btnSearchConsent.on("click", function(e){ searchConsentList(); }); $tabSet.on("click", function(e){ initSetList(); }); $btnPatientConsent.on("click", function(e){ //일괄인증 버튼 제어 $('.consentSignBox').css('display', 'none'); initAggrementList("patient"); }); $btnDoctorConsent.on("click", function(e){ //일괄인증 버튼 제어 $('.consentSignBox').css('display', 'block'); initAggrementList("docotr"); }); $('span[name^="sort_"]').on("click", function(e){ self.loading("show"); setTimeout(function(){ var sortData = e.currentTarget.attributes.name.value.split('_'); var sortKey = sortData[1]; var sortType = sortData[2]; var sortClassName = sortData[3]; var sortOrder = $('span.'+sortClassName+'[name^="sort_"]')[0].attributes.sortType.value; $('span[name^="sort_"]').attr('sortType', ''); if(sortOrder==undefined || sortOrder=='up'){ sortPatientList(sortKey, sortType, 'down'); $('span.'+sortClassName+'[name^="sort_"]').attr('sortType', 'down'); }else{ sortPatientList(sortKey, sortType, 'up'); $('span.'+sortClassName+'[name^="sort_"]').attr('sortType', 'up'); }; self.loading("hide"); }, 300); }); }; var initDropDownList = function(){ //부서리스트 var deptParam = {ordtype: 'O'}; var deptResult = self.hospital.getDeptList(deptParam); $sltTreament.empty(); for(var i=0; i'+deptResult[i].deptnm+''); $sltTreament.append(option); }; $sltTreament.children(":first").attr("selected", true); $sltTreament.selectpicker('refresh'); //진료과에 따른 의사조회 이벤트 연결 $sltTreament.change(function() { showDoctorList(this.value); }); //카테고리조회 var categoryParam = { categoryId: '1' }; var categoryResult = self.consent.getCategoryForDropdown(categoryParam); $sltCategory.empty(); for(var i=0; i'+categoryResult[i].categoryName+''); $sltCategory.append(option); }; $sltCategory.children(":first").attr("selected", true); $sltCategory.selectpicker('refresh'); showCategoryLowerList(categoryResult[0].categoryId); //진료과에따른 하위 카테고리조회 $sltCategory.change(function() { showCategoryLowerList(this.value); }); }; var showCategoryLowerList = function(categoryId){ var param = { categoryId: categoryId }; var result = self.consent.getCategoryForDropdown(param); $sltCategoryLower.empty(); for(var i=0; i'+result[i].categoryName+''); $sltCategoryLower.append(option); }; $sltCategoryLower.children(":first").attr("selected", true); $sltCategoryLower.selectpicker('refresh'); }; //진료과에 따른 의사조회 var showDoctorList = function(doctorid){ var param = {srchdd: $dtpSrchdd[0].value.replace(/\//g,''), orddeptcd: doctorid}; var result = self.hospital.getDoctorList(param); $sltDoctor.empty(); for(var i=0; i'+result[i].doctornm+''); $sltDoctor.append(option); }; $sltDoctor.children(":first").attr("selected", true); $sltDoctor.selectpicker('refresh'); }; //환자리스트 조회 var searchPatientList = function(firstYn){ initPatientInfo(); var param = {srchdd: $dtpSrchdd[0].value.replace(/\//g,''), orddeptcd: $sltTreament.val(), doctorid: $sltDoctor.val(), pid: $txtSearchPatient.val(), patstat: $(':radio[name="searchRadio"]:checked').val()}; self.patient.getPatientList($menuType, param, firstYn); }; //환자리스트 정렬 var sortPatientList = function(sortKey, sortType, order){ self.patient.setPatientList($menuType, patientList, sortKey, sortType, order); }; //환자정보 초기화 var initPatientInfo = function(){ $ulAgreementList.empty(); patientInfo = {}; $("#tbPatientInfo").empty(); unfinishedConsentList = []; $ulAgreementCheck.empty(); $("#consentTap1 .sub-title").empty(); }; //환자정보 조회 getPatientInfo = function(seq){ initPatientInfo(); var data = patientList[seq]; var patientParam = { pid: data.pid, orddd: data.indd.replace(/\//g,''), ordtype: data.ordtype, orddeptcd: data.orddeptcd }; var patientResult = self.hospital.getPatientInfo(patientParam); // target 환자 정보를 보관해 둔다 patientInfo = patientResult[0]; if( patientInfo == undefined ) {return;}; doctorId = data.doctorid; //설명의사 설정하기위해 주치의ID를 보관 doctorNm = data.doctornm; //설명의사 설정 - 주치의 이름 보관 $("#divDtpConsentStartDt").datepicker('update', moment(patientInfo.ioaddate).format('YYYY/MM/DD')); for(var i=0; i"); //alert Data }; var trData6 = tr.clone().addClass("infoalert").html(th.clone().text("Alert")).append(tdData5); var tableData = table.clone().addClass("patientData").html(trData).append(trData2).append(trData3).append(trData6); $("#consentTap1 .sub-title").text(patientResult[i].ioptID+" " + patientResult[i].ioptName+" "+ editAgeToIdNum(patientResult[i].iosexAgeYM) + "/"+patientResult[i].iojuminNo.split('-')[0]); $("#tbPatientInfo").append(tableData); }; getUnfinishedConsentInfo(data); }; //미작성동의서 조회 var getUnfinishedConsentInfo = function(data){ var consentParam = { patientCode: data.pid, startDt: patientInfo.ioaddate, endDt: moment(todayDateStr).format('YYYYMMDD'), consentState: "'UNFINISHED', 'TEMP'", jobKindCd: indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113')? 'ALL': jobKindCd }; var consentResult = self.consent.getConsentList(consentParam); unfinishedConsentList = consentResult; //미작성동의서 리스트 바인딩 var divCheckbox = div.clone().addClass("checkbox3 checkbox-check checkbox-light"); $ulAgreementCheck.empty(); for(var i=0; i")) .append($("")) .append(span.clone().addClass("detail").text(consentResult[i].consentName)) .append(span.clone().addClass("label "+ (consentResult[i].consentState=='TEMP'? "label-temp": consentResult[i].consentState=='UNFINISHED'? "label-unfinished": consentResult[i].consentState=='ELECTR_CMP'? "label-electrCmp": consentResult[i].consentState=='CERTIFY_CMP'? "label-certifyCmp": consentResult[i].consentState=='PAPER_OUT'? "label-paperOut": consentResult[i].consentState=='VERBAL'? "label-verbal":"label-default") ).text(consentResult[i].consentStateDisp)) .append(button.clone().addClass("text-right btn btn-default") .text("삭제").attr("seq", i)) ) ) }; $('#ulAgreementCheck li').on("click", function(e){ //체크박스 if(e.toElement.localName == "label") { var input = $(this).children().children("input"); $(input).prop("checked", !$(input).prop("checked")); if($(input).prop("checked")){ $(this).addClass('checked') }else { $(this).removeClass('checked') }; }else if(e.toElement.localName == "button"){ //버튼클릭(삭제) }else{ //동의서 이름 클릭 if(!$(this).hasClass("checked")){ var input = $(this).children().children("input"); $(input).prop("checked", true); $(this).addClass('checked'); }; // 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. // 16.12.12 #6225 siyoung.ahn if( doctorId.startsWith('5000')) { self.alert("담당의가 일반의사인 경우 출력전용입니다."); return; } //선택한 동의서만 가지고오기 var selectedItems = $('#ulAgreementCheck li[class="checked"] input'); var selectedConsentList = []; var printOnlyList = []; for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; // 동의서 상태 체크 var param = {consentmstrid: unfinishedConsentList[seq].consentMstRid, consentState: unfinishedConsentList[seq].consentState}; var state = self.consent.checkConsentState(param); if( state == undefined ) { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '-1') { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '1') { printOnlyList.push("["+unfinishedConsentList[seq].consentName+"] - 이미 작성된 동의서"); } else if (state.text == '0'){ selectedConsentList.push(unfinishedConsentList[seq]); } } var printOnlyAlertMsg = ''; for(var j=0; j0) { self.confirm("작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){ if(confirm){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm); var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId": doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); } }); }else{ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm); var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId" : doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; }; }; e.stopPropagation(); e.preventDefault(); }); //삭제 이벤트걸기 $('#ulAgreementCheck li button').on("click", function(e){ self.confirm("삭제하시겠습니까?", function(confirm){ if(confirm){ $('#txtSeq').val(e.currentTarget.attributes.seq.value); $('#mplusConsentDeleteForm').modal('show'); $('#btnConsentDelete').unbind(); $('#btnConsentDelete').on('click', function(){ var checkVal = $('#mplusConsentDeleteForm input[name=consentDeleteRadio]:checked').val(); var deleteReasonText = $('#consentDeleteTextarea').val(); deleteConsent($('#txtSeq').val(), checkVal=="slt4"? deleteReasonText: $('#mplusConsentDeleteForm input[name=consentDeleteRadio]:checked')[0].attributes.dataReason.value); }); } }); }); }; //동의서이력 리스트 초기화 var initAggrementList = function(type){ $ulAgreementList.empty(); $('.consentSearchBox input[type=checkbox]').prop("checked", false); //환자별일경우 '전체' 디폴트체크 if(type=="patient"){ $('.consentSearchBox input[type=checkbox][value="ALL"]').prop("checked", "checked"); }else{ //주치의별일경우 '미작성' 디폴트체크 $('.consentSearchBox input[type=checkbox][value="\'ELECTR_CMP\'"]').prop("checked", "checked"); } }; //동의서 조회 var searchTotalConsentList = function(alertYn){ $ulAgreementList.empty(); var divCheckbox = div.clone().addClass("checkbox3 checkbox-check checkbox-light"); if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){ self.alert('조회할 환자를 선택해주세요.'); return; }; if( patientInfo == undefined ){ self.alert('환자 정보가 정상 조회되지 않았습니다.'); return; }; var temConsentState = self.consent.makeConsentStateParam(); if(temConsentState==undefined) return; if($('#btnPatientConsent').hasClass("active")){ /*-------------------환자별 동의서 조회 시작---------------------*/ var temIndex = $('#ulPatientList .list-group-item.active').parent()[0].id.split('_')[1]; var data = patientList[temIndex]; var param = { patientCode: data.pid, startDt: $dtpConsentStartDt[0].value.replace(/\//g,''), endDt: $dtpConsentEndDt[0].value.replace(/\//g,''), consentState: temConsentState, jobKindCd: indexPage=='O'&&(jobKindCd=='1140'||jobKindCd=='1113')? 'ALL': jobKindCd }; var result = self.consent.getConsentList(param); // 오른쪽 동의서 리스트 보관 agreementList = result; if(alertYn=='Y'&&(result==undefined||result.length==0)) { self.alert('조회된 데이터가 없습니다.'); return; }else if(alertYn=='N'&&(result==undefined||result.length==0)) {return;}; for(var i=0; i")) .append($("")) .append(span.clone().addClass("document").text(result[i].consentName) .append(span.clone().addClass("label "+ (result[i].consentState=='TEMP'? "label-temp": result[i].consentState=='UNFINISHED'? "label-unfinished": result[i].consentState=='ELECTR_CMP'? "label-electrCmp": result[i].consentState=='CERTIFY_CMP'? "label-certifyCmp": result[i].consentState=='PAPER_OUT'? "label-paperOut": result[i].consentState=='VERBAL'? "label-verbal":"label-default") ).text(result[i].consentStateDisp)) ) )); }; //클릭이벤트 연결 $('#ulAgreementList li').on("click", function(e){ // 체크박스 클릭했을 때 if(e.toElement.localName == "label") { var input = $(this).children().children("input"); $(input).prop("checked", !$(input).prop("checked")); if($(input).prop("checked")) $(this).addClass('checked') else $(this).removeClass('checked') }else{ // 동의서 내용을 클릭했을 때 if(!$(this).hasClass("checked")){ var input = $(this).children().children("input"); $(input).prop("checked", true); $(this).addClass('checked'); }; var selectedSeq = $(this).children().children("input").attr('id').split('_')[1]; var lastSelectedItem = agreementList[selectedSeq - 1]; // 클릭한 동의서의 상태 체크 // 환자서명이거나 전자인증의 경우 모두 체크해제 하고, 해당 동의서의 이미지를 띄움 if( lastSelectedItem.consentState == 'ELECTR_CMP' || lastSelectedItem.consentState == 'CERTIFY_CMP' ) { // 체크해제 $('#ulAgreementList li[class="checked"] input').prop("checked", false); $('#ulAgreementList li[class="checked"]').removeClass("checked"); var param = {consentMstRid : lastSelectedItem.consentMstRid}; var consentImageList = self.consent.getConsentImage(param); if(consentImageList == undefined || consentImageList.length==0) {self.alert("동의서 이미지 조회 실패"); return;}; var imagePathList = []; $('#consentImgBox').empty(); for( var i = 0; i < consentImageList.length; i++ ) { $('#consentImgBox').append( div.clone().append( "" ) ) } $('.modal-backdrop').removeClass('in'); $('.modal').modal('hide'); $('#mplusConsentImageForm').modal("show"); } // 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. // 16.12.12 #6225 siyoung.ahn if( doctorId.startsWith('5000')) { self.alert("담당의가 일반의사인 경우 출력전용입니다."); return; } //선택한 동의서만 가지고오기 var selectedItems = $('#ulAgreementList li[class="checked"] input'); var selectedConsentList = []; var printOnlyList = []; for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; // data add if(agreementList[seq].consentState=="PAPER_OUT"||agreementList[seq].consentState=="FNU_PRINT"){ //동의서 상태가 출력/FNU출력인 경우 걸러내기 printOnlyList.push("["+agreementList[seq].consentName+"] - "+agreementList[seq].consentStateDisp); }else{ // 동의서 상태 체크 var param = {consentmstrid: agreementList[seq].consentMstRid, consentState: agreementList[seq].consentState}; var state = self.consent.checkConsentState(param); if( state == undefined ) { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '-1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 이미 작성된 동의서"); } else if (state.text == '0'){ selectedConsentList.push(agreementList[seq]); } }; }; //출력전용 메시지 생성 var printOnlyAlertMsg = ''; for(var j=0; j0) { self.confirm("출력전용 및 작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){ if(confirm){ //출력전용 동의서를 제외한 동의서가 있을경우? if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm); var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId" : doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; } }); }else{ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeConsentParam(patientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId" : doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; }; }; e.stopPropagation(); e.preventDefault(); }); /*-------------------환자별 동의서 조회 종료---------------------*/ }else{ /*-------------------주치의별 동의서 조회 시작---------------------*/ var param = { userid: doctorId, status: temConsentState, fromdd: $dtpConsentStartDt[0].value.replace(/\//g,''), todd: $dtpConsentEndDt[0].value.replace(/\//g,'') }; var result = self.consent.getUnfinishedListPerDoctor(param); // 오른쪽 동의서 리스트 보관 agreementList = result; if(result==undefined||result.length==0) { self.alert('조회된 데이터가 없습니다.'); return; }; for(var i=0; i")) .append($("")) .append( div.clone().addClass("list-row").html( span.clone().addClass("doctorConsentNum patientCode").text(result[i].patientCode+" ").append(span.clone().addClass("hngNm").text(result[i].hngnm)) ).append( span.clone().addClass("doctorConsentName").html("") ) ) .append( div.clone().addClass("list-row").html( span.clone().addClass("doctorConsentNum").text(result[i].consentName) ).append( span.clone().addClass("doctorConsentName").html( span.clone().addClass("doctorConsentLabel label "+ (result[i].consentState=='TEMP'? "label-temp": result[i].consentState=='UNFINISHED'? "label-unfinished": result[i].consentState=='ELECTR_CMP'? "label-electrCmp": result[i].consentState=='CERTIFY_CMP'? "label-certifyCmp": result[i].consentState=='PAPER_OUT'? "label-paperOut": result[i].consentState=='VERBAL'? "label-verbal":"label-default") ).text(result[i].consentState=='TEMP'? "임시저장": result[i].consentState=='UNFINISHED'? "미작성": result[i].consentState=='ELECTR_CMP'? "서명": result[i].consentState=='CERTIFY_CMP'? "인증": result[i].consentState=='PAPER_OUT'? "출력": result[i].consentState=='VERBAL'? "구두":"") ) ) ) )); }; //클릭이벤트 연결 $('#ulAgreementList li').on("click", function(e){ if(e.toElement.localName == "label"||e.toElement.localName == "input") { //체크박스 클릭했을때 var input = $(this).children().children("input"); $(input).prop("checked", !$(input).prop("checked")); if($(input).prop("checked")) $(this).addClass('checked') else $(this).removeClass('checked') }else{ //동의서내용 클릭했을때 if(!$(this).hasClass("checked")){ var input = $(this).children().children("input"); $(input).prop("checked", true); $(this).addClass('checked'); }; /* 일괄인증 ON */ if ( $('[name="bootstrapSwitch"]').bootstrapSwitch("state") ) { // ELECTR_CMP 상태인 것들만 뽑아내기 // 그리고 이미지 조회도 정상적으로 된 애들 var selectedItems = $('#ulAgreementList li[class="checked"] input'); var batchSignParam = []; for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; // data add if(agreementList[seq].consentState == 'ELECTR_CMP'){ // 정상적으로 이미지정보가 조회되었을 때만 var param = {consentMstRid : agreementList[seq].consentMstRid}; var consentImageList = self.consent.getConsentImage(param); if(consentImageList == undefined || consentImageList.length==0) {continue;} else{ var signParam = { consentMstRid: agreementList[seq].consentMstRid, consentImageRid: consentImageList[0].consentImageRid, certTarget: agreementList[seq].certtarget==null?"":agreementList[seq].certtarget } batchSignParam.push(signParam); } } }; if( batchSignParam.length > 0 ) { var consentSignMsg = { "type" : "command", "functionType" : "consentSign", "value" : { "callbackFn" : "window.activeObj.consentSignCallback" }, "consentSignParam" : batchSignParam, "userId": doctorId }; self.toNative(consentSignMsg); } else { self.alert('인증 대상 동의서를 선택하세요.'); } } /* 일괄인증 OFF */ else { var selectedSeq = $(this).children().children("input").attr('id').split('_')[1]; var lastSelectedItem = agreementList[selectedSeq - 1]; // 클릭한 동의서의 상태 체크 // 환자서명이거나 전자인증의 경우 모두 체크해제 하고, 해당 동의서의 이미지를 띄움 if( lastSelectedItem.consentState == 'ELECTR_CMP' || lastSelectedItem.consentState == 'CERTIFY_CMP' ) { // 체크해제 $('#ulAgreementList li[class="checked"] input').prop("checked", false); $('#ulAgreementList li[class="checked"]').removeClass("checked"); var param = {consentMstRid : lastSelectedItem.consentMstRid}; var consentImageList = self.consent.getConsentImage(param); if(consentImageList == undefined || consentImageList.length==0) {self.alert("동의서 이미지 조회 실패"); return;}; var imagePathList = []; $('#consentImgBox').empty(); for( var i = 0; i < consentImageList.length; i++ ) { $('#consentImgBox').append( div.clone().append( "" ) ) } $('.modal-backdrop').removeClass('in'); $('.modal').modal('hide'); $('#mplusConsentImageForm').modal("show"); }; // 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. // 16.12.12 #6225 siyoung.ahn if( doctorId.startsWith('5000')) { self.alert("담당의가 일반의사인 경우 출력전용입니다."); return; } //선택한 동의서만 가꼬오기 var selectedItems = $('#ulAgreementList li[class="checked"] input'); var selectedConsentList = []; var printOnlyList = []; var patientId=''; //동일한 환자 체크하기위한 변수 for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; if(i==0){ patientId = agreementList[seq].patientCode; }; //동일한 환자인지 체크 if(patientId != agreementList[seq].patientCode){ self.alert("동일한 환자에 한해서만 동의서로 이동가능합니다."); return; }; var patientId = agreementList[seq].patientCode; // data add if(agreementList[seq].consentState=="PAPER_OUT" || agreementList[seq].consentState=="FNU_PRINT"){ //동의서 상태가 출력/FNU출력인 경우 걸러내기 printOnlyList.push("["+agreementList[seq].consentName+"] - "+agreementList[seq].consentState=="PAPER_OUT"? "출력": "FNU출력"); }else{ // 동의서 상태 체크 var param = {consentmstrid: agreementList[seq].consentMstRid, consentState: agreementList[seq].consentState}; var state = self.consent.checkConsentState(param); if( state == undefined ) { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '-1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 상태 조회 실패"); } else if (state.text == '1') { printOnlyList.push("["+agreementList[seq].consentName+"] - 이미 작성된 동의서"); } else if (state.text == '0'){ selectedConsentList.push(agreementList[seq]); } }; }; if(selectedItems.length>0){ //환자정보조회 var patientSeq = selectedItems[0].id.split('_')[1]; var patientData = agreementList[patientSeq - 1]; var patientParam = {pid: patientData.patientCode, orddd: patientData.orddd, ordtype: patientData.visitType, orddeptcd: patientData.orddeptcd }; var consentPatientInfo = self.hospital.getPatientInfo(patientParam)[0]; if(consentPatientInfo==undefined|| consentPatientInfo.length==0){ self.alert("환자정보 조회에 실패하였습니다."); return; }; var printOnlyAlertMsg = ''; for(var j=0; j0) { self.confirm("출력전용 및 작성이 불가능한 동의서입니다.\n\n" + printOnlyAlertMsg, function(confirm){ if(confirm){ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(consentPatientInfo, doctorId); var consent = self.consent.makeConsentParam(consentPatientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId" : doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; } }); }else{ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(consentPatientInfo, doctorId); var consent = self.consent.makeConsentParam(consentPatientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId" : doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; }; }; }; e.stopPropagation(); e.preventDefault(); } }); /*-------------------주치의별 동의서 조회 종료---------------------*/ }; }; //즐겨찾기 리스트 조회 var initSetList = function(){ $ulSetList.empty(); var param = {}; var result = self.consent.getConsentSetList(param); setList = result; var divCheckbox = div.clone().addClass("checkbox3 checkbox-check checkbox-light"); for(var i=0; i")) .append($("")) .append(span.clone().addClass("document").text(result[i].formName)) .append(button.clone().addClass("text-right btn btn-default") .text("삭제").attr("formCd", result[i].formCd)) )); }; //클릭이벤트 연결 $('#ulSetList li').on("click", function(e){ if(e.toElement.localName == "label") { //체크박스클릭 var input = $(this).children().children("input"); $(input).prop("checked", !$(input).prop("checked")); if($(input).prop("checked")) $(this).addClass('checked') else $(this).removeClass('checked') }else if(e.toElement.localName == "button"){ //삭제버튼 }else{ //동의서내용 if(!$(this).hasClass("checked")){ var input = $(this).children().children("input"); $(input).prop("checked", true); $(this).addClass('checked'); }; if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){ self.alert('환자를 선택해주세요.'); return; }; // 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. // 16.12.12 #6225 siyoung.ahn if( doctorId.startsWith('5000')) { self.alert("담당의가 일반의사인 경우 출력전용입니다."); return; } //선택한 동의서만 가지고오기 var selectedItems = $('#ulSetList li[class="checked"] input'); var selectedConsentList = []; var printOnlyList = []; for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; if(setList[seq].printOnly=="Y"){ printOnlyList.push(setList[seq].formName); }else{ //data add selectedConsentList.push(setList[seq]); }; }; var printOnlyAlertMsg = ''; for(var j=0; j0) { self.confirm(printOnlyAlertMsg+"\n출력전용 동의서 입니다. \nPC에서 출력하세요.", function(confirm){ if(confirm){ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId": doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; } }); }else{ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId": doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; }; }; e.stopPropagation(); e.preventDefault(); }); $('#ulSetList li button').on("click", function(e){ delUserFormSetList(e); }); }; //동의서 검색 var searchConsentList = function(){ var param = { categoryId: $sltCategoryLower.val(), keyWord: $txtConsentSrch.val() }; var result = self.consent.getConsentBySearch(param); // 오른쪽 동의서 리스트 보관 totalConsentList = result; $ulConsentList.empty(); if(result==undefined||result.length==0) { self.alert('조회된 데이터가 없습니다.'); return; }; //동의서 조회 리스트 바인딩 var divCheckbox = div.clone().addClass("checkbox3 checkbox-check checkbox-light"); for(var i=0; i")) .append($("")) .append(span.clone().addClass("document").text(result[i].formName) ) .append(button.clone().addClass("text-right btn btn-default") .text("추가").attr("formCd", result[i].formCd)) )); }; //클릭이벤트 연결 $('#ulConsentList li').on("click", function(e){ if(e.toElement.localName == "label") { //체크박스클릭 var input = $(this).children().children("input"); $(input).prop("checked", !$(input).prop("checked")); if($(input).prop("checked")) $(this).addClass('checked') else $(this).removeClass('checked') }else if(e.toElement.localName == "button"){ //추가버튼클릭 }else{ //동의서 내용클릭 if(!$(this).hasClass("checked")){ var input = $(this).children().children("input"); $(input).prop("checked", true); $(this).addClass('checked'); }; if($('#ulPatientList .list-group-item.active').parent()[0]==undefined){ self.alert('환자를 선택해주세요.'); return; }; // 담당의가 일반의사인 경우 무조건 출력전용이므로 alert 메시지 띄우고 리턴한다. // 16.12.12 #6225 siyoung.ahn if( doctorId.startsWith('5000')) { self.alert("담당의가 일반의사인 경우 출력전용입니다."); return; } //선택한 동의서만 가지고오기 var selectedItems = $('#ulConsentList li[class="checked"] input'); var selectedConsentList = []; var printOnlyList = []; for( var i = 0; i < selectedItems.length; i++ ){ // sequence 추출 var seq = selectedItems[i].id.split('_')[1]; seq = seq - 1; if(totalConsentList[seq].prntOnly=="Y"){ printOnlyList.push(totalConsentList[seq].formName); }else{ //data add selectedConsentList.push(totalConsentList[seq]); }; }; var printOnlyAlertMsg = ''; for(var j=0; j0) { self.confirm(printOnlyAlertMsg+"\n출력전용 동의서 입니다. \nPC에서 출력하세요.", function(confirm){ if(confirm){ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm); // 유효성 검사 추가할 것 var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId": doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; } }); }else{ if(selectedConsentList.length > 0){ var global = self.consent.makeGlobalParam(patientInfo, doctorId); var consent = self.consent.makeNewConsentParam(patientInfo, selectedConsentList, doctorNm); var jsonssg = { "type" : "command", "functionType" : "consent", "value" : { "callbackFn" : "window.activeObj.consentCallback" }, "userId": doctorId, "globalParam" : global, "consentParam" : consent }; self.toNative(jsonssg); }; }; }; e.stopPropagation(); e.preventDefault(); }); $('#ulConsentList li button').on("click", function(e){ setUserFormSetList(e); }); } //즐겨찾기 삭제 var delUserFormSetList = function(e){ self.confirm("삭제하시겠습니까?", function(confirm){ if(confirm){ var result = self.consent.delUserFormSetList({"formcd": e.currentTarget.attributes.formCd.value}); if(result.formcd!=null){ initSetList(); /*self.alert("삭제되었습니다.");*///16.11.12 고객사요청으로 제거 }else{ self.alert("실패했습니다."); } }; }) } //즐겨찾기 추가 var setUserFormSetList = function(e){ self.confirm("즐겨찾기로 추가하시겠습니까?", function(confirm){ if(confirm){ var result = self.consent.setUserFormSetList({"formcd": e.currentTarget.attributes.formCd.value}); if(result.formcd!=null){ /*self.alert("추가되었습니다.");*///16.11.12 고객사요청으로 제거 }else{ self.alert("실패했습니다."); } }; }) } //동의서 삭제 var deleteConsent = function(seq, reason){ $("#mplusConsentDeleteForm").modal("hide"); var delConsentInfo = unfinishedConsentList[seq]; var delConsentParam = {"consentMstRid": delConsentInfo.consentMstRid, "patientCode": delConsentInfo.patientCode, "clnDeptCode": delConsentInfo.clnDeptCd, "ward": delConsentInfo.ward==null? "": delConsentInfo.ward, "roomcd": delConsentInfo.roomCd==null? "": delConsentInfo.roomCd, "formRid": delConsentInfo.formRid==null? "":delConsentInfo.formRid, "consentState": delConsentInfo.consentState==null? "":delConsentInfo.consentState, "reasonForUseN": reason } var result = self.consent.delConsent(delConsentParam); if(result.text==delConsentInfo.consentMstRid){ /*self.alert("삭제되었습니다.");*///16.11.12 고객사요청으로 제거 getUnfinishedConsentInfo(patientList[$('#ulPatientList li a.active')[0].attributes.seq.value]); }else{ self.alert("실패했습니다."); } } // 단말기에서 호출할 콜백 this.consentCallback = function(data) { //self.alert(data); // 미작성 동의서 리프레쉬 getUnfinishedConsentInfo(patientList[$('#ulPatientList li a.active')[0].attributes.seq.value]); // 오른쪽 동의서 리스트 리프레쉬 // 동의서 리스트가 오픈되어있을 떄만 해야하나? searchTotalConsentList('N'); } this.consentSignCallback = function(data){ if( typeof data === "string" ){ data = self.util.parseJson( data ); } if( data.result != undefined ) { data = data.result; } if( data.resultCode == '200') { self.alert('인증 처리가 완료되었습니다.'); } else { self.alert(data.errorMsg); } searchTotalConsentList('N'); } };