/**
* 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');
}
};