/**
* mplus_nursing
*/
var mplus_nursing = function(){
//상속
mplus_common.call(this);
//super
var self = this;
//변수
//임상 페이지 변수
var btnPlusMaxBps = $('#btnPlusMaxBps');
var btnMinusMaxBps = $('#btnMinusMaxBps');
var maxBpsCheck = $('#maxBpsCheck');
var btnPlusMinBps = $('#btnPlusMinBps');
var btnMinusMinBps = $('#btnMinusMinBps');
var minBpsCheck = $('#minBpsCheck');
var btnPlusPulse = $('#btnPlusPulse');
var btnMinusPulse = $('#btnMinusPulse');
var pulseCheck = $('#pulseCheck');
var btnPlusTemperature = $('#btnPlusTemperature');
var btnMinusTemperature = $('#btnMinusTemperature');
var temperatureCheck = $('#temperatureCheck');
var btnPlusBreath = $('#btnPlusBreath');
var btnMinusBreath = $('#btnMinusBreath');
var breathCheck = $('#breathCheck');
var btnPlusSpO2 = $('#btnPlusSpO2');
var btnMinusSpO2 = $('#btnMinusSpO2');
var spO2Check = $('#spO2Check');
var sliderMaxBps = $("#sliderMaxBps");
var sliderMinBps = $("#sliderMinBps");
var sliderPulse = $("#sliderPulse");
var sliderTemperature = $("#sliderTemperature");
var sliderBreath = $("#sliderBreath");
var sliderSpO2 = $("#sliderSpO2");
var txtMaxBps = $('#txtMaxBps');
var txtMinBps = $('#txtMinBps');
var txtPulse = $('#txtPulse');
var txtTemperature = $('#txtTemperature');
var txtBreath = $('#txtBreath');
var txtSpO2 = $('#txtSpO2');
var div = $('
');
var span = $(' ');
var tr = $(' ');
var td = $(' ');
var li = $(' ');
var input = $(' ');
var label = $(' ');
//약실시 변수
var actingList;
/**
* 초기화
*/
this.init = function(){
addEvent();
// 처음에 정보탭이 열리니까 여기서 이걸 해줘야하는건가...??
// 위에 addEvent 안에서 해야되나..?
infoInit();
$('#nursingRecodeTab a[data-toggle="tab"]').unbind();
$('#nursingRecodeTab a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabInfo'){
infoInit();
}else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabHistory'){
historyInit();
}else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabVital'){
vitalInit();
}else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabInject'){
//self.rotateScreen('vertical');
injectInit();
}else if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabCure'){
//self.rotateScreen('landscape');
cureInit();
}else{
/*slef.alert('에러메시지?');*/
};
});
/* $('#nursingRecodeTab a[data-toggle="tab"]').on('hide.bs.tab', function (e) {
if($("ul#nursingRecodeTab.nav-tabs li.active a").attr('aria-controls')=='tabCure'){
self.rotateScreen('vertical');
}
});*/
};
//토글이 열려있는 상태에서 다른환자 클릭시 호출
this.reInit = function(tabName){
if(tabName=='tabInfo'){
infoInit();
}else if(tabName=='tabHistory'){
historyInit();
}else if(tabName=='tabVital'){
vitalInit();
}else if(tabName=='tabInject'){
injectInit();
}else if(tabName=='tabCure'){
cureInit();
};
};
/**
* 이벤트 등록
*/
var addEvent = function(){
};
//------------------------------------정보 탭---------------------------------------
var infoInit = function() {
// 환자정보 받기
// 환자 상세정보받기
$('#tabInfo').scrollTop(0);
addEventInfo();
};
var addEventInfo = function() {
// 환자 상세정보 Text 펼치기/접기
$('#infoPatientDetail').unbind();
$('#infoPatientDetail').click(function(){
if( $('#infoPatientDetailTxt').hasClass('in')) {
$('#infoPatientDetailTxt').removeClass('in').fadeOut("fast", "linear");
} else {
$('#infoPatientDetailTxt').addClass('in').fadeIn("slow", "linear");
}
});
$('#infoPatientDetailTxt').click(function(){
$('#infoPatientDetailTxt').removeClass('in').fadeOut("fast", "linear");
});
};
//------------------------------------정보 탭 종료 -----------------------------------
//------------------------------------이력 탭---------------------------------------
var historyInit = function() {
historyDataSetting('ALL', 'N', null);
addEventHistory();
$('#tabHistory').scrollTop(0);
};
var addEventHistory = function () {
$('#historyOutMore, #historyInMore, #historyOpMore').unbind();
$('#historyOutMore, #historyInMore, #historyOpMore').click( function(e) {
var targetId = e.currentTarget.id;
var listId = targetId.replace('More', '');
$('#' + targetId).before($('#'+ listId).find('.history-item:last').clone()); /* 야매 코드 */
});
};
var historyDataSetting = function(type, addYn, endDt){
var patientInfo = JSON.parse(localStorage.patientInfo);
var today = new Date();
var targetEndDt = endDt==null? moment(today).format('YYYYMMDD'): moment(moment(endDt)._d - 1 * 1000 * 60 * 60 * 24).format('YYYYMMDD');
var targetStartDt = moment(moment(targetEndDt)._d - 30 * 1000 * 60 * 60 * 24).format('YYYYMMDD');
var param = {
patientId: patientInfo.patientId,
startDt: targetStartDt,
endDt: targetEndDt
};
if(type=='ALL'){ //바인딩할때 리스트 empty하니 탭 이동할때 데이터 조회 오류가나도 empty가 되지않아 여기서 해줌!
if(addYn=='N'){
$('#historyIn').empty();
$('#historyOut').empty();
$('#historyOp').empty();
};
self.nursing.getVisitList(param, 'in', addYn, targetStartDt);
self.nursing.getVisitList(param, 'out', addYn, targetStartDt);
self.nursing.getVisitList(param, 'op', addYn, targetStartDt);
}else{
if(addYn=='N'){
if(type=='in'){
$('#historyIn').empty();
}else if(type=='out'){
$('#historyOut').empty();
}else{
$('#historyOp').empty();
};
};
self.nursing.getVisitList(param, type, addYn, targetStartDt);
};
};
var spanMoreIcon = span.clone().addClass('glyphicon glyphicon-menu-down').attr('aria-hidden', 'true');
var spanCloseIcon = span.clone().addClass('glyphicon glyphicon-menu-up').attr('aria-hidden', 'true');
bindingVisitList = function(visitList, type, addYn, endDt){
var today = new Date();
if(type=='in'){
//입원
$('#inSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
if(addYn=='Y'){
$('#historyInMore').remove();
$('#historyInClose').remove();
};
for(var j=0; j').clone().text(moment(visitList[j].inDt).format('YYYY-MM-DD') + ' ~ ' + (visitList[j].outDt==''? '': moment(visitList[j].outDt).format('YYYY-MM-DD'))));
var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[j].departmentNm + ' ' + visitList[j].doctorNm + ' ' + visitList[j].wardNm + '/' + visitList[j].roomNm + '/' + visitList[j].bedNm);
var divEmpty = div.clone().addClass('col-xs-4 pd0');
var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[j].diagnosisNm);
$('#historyIn').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
};
/*if(visitList.length>0){*/
var divInMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyInMore').attr('endDt', endDt);
var divInClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyInClose');
$('#historyIn').append(divInMore.append(spanMoreIcon.clone())).append(divInClose.append(spanCloseIcon.clone()));
$('#historyInMore').unbind();
$('#historyInMore').on('click', function(){
historyDataSetting('in', 'Y', $('#historyInMore').attr('endDt'));
});
$('#historyInClose').unbind();
$('#historyInClose').on('click', function(){
$('#inSearchDt').text('');
$('#historyInMore').removeAttr('endDt');
$('#historyIn').find('.history-item').remove();
});
/*};*/
}else if(type=='out'){
//외래
$('#outSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
if(addYn=='Y') {
$('#historyOutMore').remove();
$('#historyOutClose').remove();
};
for(var i=0; i').clone().text(moment(visitList[i].treatDt).format('YYYY-MM-DD')));
var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[i].departmentNm + ' ' + visitList[i].doctorNm);
var divEmpty = div.clone().addClass('col-xs-4 pd0');
var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[i].diagnosisNm);
$('#historyOut').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
};
/*if(visitList.length>0){*/
var divOutMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOutMore').attr('endDt', endDt);
var divOutClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOutClose');
$('#historyOut').append(divOutMore.append(spanMoreIcon.clone())).append(divOutClose.append(spanCloseIcon.clone()));
$('#historyOutMore').unbind();
$('#historyOutMore').on('click', function(){
historyDataSetting('out', 'Y', $('#historyOutMore').attr('endDt'));
});
$('#historyOutClose').unbind();
$('#historyOutClose').on('click', function(){
$('#outSearchDt').text('');
$('#historyOutMore').removeAttr('endDt');
$('#historyOut').find('.history-item').remove();
});
/*};*/
}else{
//수술
$('#opSearchDt').text(moment(endDt).format('YYYY-MM-DD') + ' ~ ' + moment(today).format('YYYY-MM-DD'));
if(addYn=='Y'){
$('#historyOpMore').remove();
$('#historyOpClose').remove();
};
for(var k=0; k').clone().text(moment(visitList[k].operatingDt).format('YYYY-MM-DD')));
var divDoctor = div.clone().addClass('col-xs-8 col-sm-4 pd0').text(visitList[k].operatingNm + ', ' + visitList[k].diagnosisNm);
var divEmpty = div.clone().addClass('col-xs-4 pd0');
var divDiagnosisNm = div.clone().addClass('col-xs-8 col-sm-5 pd0').text(visitList[k].operatingDeptNm + ' '+ visitList[k].operatingDrNm);
$('#historyOp').append(div.clone().addClass('history-item col-xs-12').append(divTreatDt).append(divDoctor).append(divEmpty).append(divDiagnosisNm));
};
/*if(visitList.length>0){*/
var divOpMore = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOpMore').attr('endDt', endDt);
var divOpClose = div.clone().addClass('col-xs-6 history-more text-center').attr('id', 'historyOpClose');
$('#historyOp').append(divOpMore.append(spanMoreIcon.clone())).append(divOpClose.append(spanCloseIcon.clone()));
$('#historyOpMore').unbind();
$('#historyOpMore').on('click', function(){
historyDataSetting('op', 'Y', $('#historyOpMore').attr('endDt'));
});
$('#historyOpClose').unbind();
$('#historyOpClose').on('click', function(){
$('#opSearchDt').text('');
$('#historyOpMore').removeAttr('endDt');
$('#historyOp').find('.history-item').remove();
});
/*};*/
};
};
//------------------------------------이력 탭 종료 -----------------------------------
//------------------------------------임상 탭---------------------------------------
var vitalInit = function(){
$('#vitalSearch').css('display', 'block');
$('#vitalInfo').css('display', 'none');
$('#vitalSearch #vitalSearchDate').text(moment(new Date).format('YYYY-MM-DD'));
self.lastVital = new Array();
vitalDataSetting(true);
addEventVital();
$('#tabVital').scrollTop(0);
};
var vitalDataSetting = function(saveLastVital){
var patientInfo = JSON.parse(localStorage.patientInfo);
if(patientInfo.visitNo == undefined) return;
var param = {visitNo: patientInfo.visitNo, searchDt: $('#vitalSearchDate').text()};
var vitalList = self.nursing.getVitalList(param);
var vitalListArr = [];
for(var i=0; i o.time === vitalList[i].ActDt.split(' ')[1])==undefined){
if(vitalListArr.find(function(o){return o.time === vitalList[i].ActDt.split(' ')[1];})==undefined){
vitalListArr.push({
'time': vitalList[i].ActDt.split(' ')[1],
'pulse': '-',
'breath': '-',
'temperature': '-',
'minBps': '-',
'maxBps': '-',
'spO2': '-'
});
}*/
var Arrtemp = undefined;
for(var j=0; j o.time === vitalList[i].ActDt.split(' ')[1]);
var targetObject = null;
for(var j=0; j 0) {
self.lastVital.push(vitalListArr[0]);
}
vitalDataBinding(vitalListArr);
};
var vitalDataBinding = function(vitalList){
$('#vitalList').empty();
for(var i=0; i 0 && Number(value) > $('input#' + sliderId).val()) {
$('input#' + txtId).val($('input#' + sliderId).val());
}
};
//------------------------------------임상 탭 종료---------------------------------------
//------------------------------------투약 탭 -----------------------------------------
var injectInit = function() {
$('#injectSearch #injectSearchDate').text(moment(new Date()).format('YYYY-MM-DD'));
injectBinding();
addEventInject();
$('#tabInject').scrollTop(0);
};
var addEventInject = function(){
$('#injectSearch .inject-prev-day').unbind();
$('#injectSearch .inject-prev-day').click(function() {
var currentDate = moment($('#injectSearch #injectSearchDate').text()).format('YYYY-MM-DD');
$('#injectSearch #injectSearchDate').text(moment(currentDate).add(-1, 'days').format('YYYY-MM-DD'));
injectBinding();
});
$('#injectSearch .inject-next-day').unbind();
$('#injectSearch .inject-next-day').click(function() {
var currentDate = moment($('#injectSearch #injectSearchDate').text()).format('YYYY-MM-DD');
$('#injectSearch #injectSearchDate').text(moment(currentDate).add(1, 'days').format('YYYY-MM-DD'));
injectBinding();
});
};
var addEventInjectItem = function() {
$('#injectDataList .list-group-item').unbind();
$('#injectDataList .list-group-item').click(function(){
var detailArea = $(this).find('.inject-data-detail');
if( detailArea.hasClass('hidden')) {
detailArea.removeClass('hidden');
} else {
detailArea.addClass('hidden');
}
});
};
var injectBinding = function(){
var patientInfo = JSON.parse(localStorage.patientInfo);
var searchDate = moment($('#injectSearchDate').text()).format('YYYYMMDD');
var param = {
'patientId': patientInfo.patientId,
'startDt': searchDate,
'endDt': searchDate,
};
var medicationList = self.nursing.getMedicationHistory(param);
$('#injectDataList').empty();
for(var i=0; i0){
$('#modalStartDrug').modal('show');
/*$('#modalStartSap').modal('show');*/
$('input#sapNo').prop('checked', true).trigger('change');
}else{
self.alert('투약내역을 선택해주세요.');
return;
};
});
$('#btnChangeDrug').unbind();
$('#btnChangeDrug').click(function(){
if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
$('#modalChangeDrug').modal('show');
/*$('#modalStartSap').modal('show');*/
$('input#sapYes').prop('checked', true).trigger('change');
}else{
self.alert('투약내역을 선택해주세요.');
return;
};
});
$('#modalChangeDrug').on('show.bs.modal', function (e) {
$('#dateChangeDrug')[0].value = self.util.toDatetimeLocal(new Date());
});
$('#btnStartSap').unbind();
$('#btnStartSap').click(function(){//이 if문을 나중에 정상 실시, 변경후 실시 로직 안으로 옮기기
if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
$('#modalStartSap').modal('show');
$('input#sapYes').prop('checked', true).trigger('change');
}else{
self.alert('투약내역을 선택해주세요.');
return;
};
});
$('#modalStartSap').on('show.bs.modal', function (e) {
$('#dateStartSap')[0].value = self.util.toDatetimeLocal(new Date());
$('#dateEndSap')[0].value = self.util.toDatetimeLocal(new Date());
$('input[name="sapStatus"]').unbind();
$('input[name="sapStatus"]').change(function(e){
if(e.currentTarget.value=='N'){
$('.disabled-sapYes').prop('disabled', true);
$('.disabled-sapEnd').prop('disabled', true);
}else if(e.currentTarget.value=='Y'){
$('.disabled-sapYes').prop('disabled', false);
$('.disabled-sapEnd').prop('disabled', true);
}else{
$('.disabled-sapYes').prop('disabled', true);
$('.disabled-sapEnd').prop('disabled', false);
};
});
$('#btnExecuteIvStart').unbind();
$('#btnExecuteIvStart').click(function(){
var actingData = actingList[$('input[type=checkbox][id*=chk_cureDetail_]:checked')[0].id.split('_')[2]];
var patientInfo = JSON.parse(localStorage.patientInfo);
var prepYn = '';
if(actingData.OrdKindCd.trim()=='S' || actingData.OrdKindCd.trim()=='U' || actingData.OrdKindCd.trim()=='V' || actingData.OrdKindCd.trim()=='W'
|| actingData.DrgOrdGb.trim()=='J' || actingData.DrgOrdGb.trim()=='R' || actingData.DrgOrdGb.trim()=='S' || actingData.DrgOrdGb.trim()=='D' || actingData.DrgOrdGb.trim()=='E'){
if((actingData.OrdExecYmd==null || actingData.OrdExecYmd.trim()=='') && (actingData.OrdProgStus.trim()=='00' || actingData.OrdProgStus.trim()=='05')){
prepYn = 'N';
}else if((actingData.OrdExecYmd!=null && actingData.OrdExecYmd.trim()!='') && (actingData.OrdProgStus.trim()=='00' || actingData.OrdProgStus.trim()=='05')){
prepYn = 'Y';
}else{
prepYn = '';
}
}else{
prepYn = '';
};
console.log({
'userId': JSON.parse(localStorage.user).userId,
'chosNo': patientInfo.patientId,
'grNo': actingData.OrdNo2 + '/'+actingData.DrgInjExecSeq + '/' + actingData.OrdYmd, //이게 맞는지?
'actDt': moment($('#dateStartSap').val()).format('YYYYMMDD HHmm'),
'msmtVal': $('#sapCapacity').val(),
'RgtId': JSON.parse(localStorage.user).userId,
'patNm': patientInfo.patientNm,
'ordYmd': actingData.OrdYmd,
'ordSeq': actingData.OrdSeq,
'ordNo': actingData.OrdNo,
'drgInjExecSeq': actingData.DrgInjExecSeq,
'injDuseQty': '0.000',
'execStrYmd': moment($('#dateStartSap').val()).format('YYYYMMDD'),
'execStrHm': moment($('#dateStartSap').val()).format('HHmm'),
'ordTypCd': actingData.OrdTypCd2,
'execYn': actingData.ExecGb,
'hmChgResn': $('#sltChangeSap option:selected').val(),
'basCapUnitNm': actingData.BasCapUnitNm,
'drgInjExecQty': actingData.DrgInjExecQty,
'drgInjExecQty1': '',
'qty': actingData.Qty,
'callLoc': '2',
'chosGb': 'I',
'ordProgLoc': localStorage.selectDeptCode,
'cnYn': 'N',
'prepYn': prepYn,
'vaccOrdCd': actingData.VaccOrdCd,
'vaccRegYn': actingData.VaccRegYn,
'ordExecYmd': actingData.OrdExecYmd,
'ordExecHms': '', //선택한 항목의 ordExecHms, OrdExecYmd밖에없는뎅????
'execGb': actingData.ExecGb
})
});
});
$('#btnEndSap').unbind();
$('#btnEndSap').click(function(){//이 if문을 나중에 정상 실시, 변경후 실시 로직 안으로 옮기기
if($('input[type=checkbox][id*=chk_cureDetail_]:checked').length>0){
/*$('#modalEndSap').modal('show');*/
$('#modalStartSap').modal('show');
$('input#sapEnd').prop('checked', true).trigger('change');
}else{
self.alert('투약내역을 선택해주세요.');
return;
};
});
$('#modalEndSap').on('show.bs.modal', function (e) {
$('#dateEndSap')[0].value = self.util.toDatetimeLocal(new Date());
});
};
var getCureList = function(duty){
$('#cureDetailDataList').empty();
var patientInfo = JSON.parse(localStorage.patientInfo);
if(patientInfo.visitNo == undefined) return;
var today = new Date();
var startDt = '';
var endDt = '';
if($('#sltTimeType').val()=='current'){
startDt = moment(today).format('HH')+'0000';
endDt = moment(today).format('HH')+'5959';
}else if($('#sltTimeType').val()=='special'){
startDt = $('#sltTime').val()+'0000';
endDt = $('#sltTime').val()+'5959';
}else if($('#sltTimeType').val()=='noTime'){
startDt = '000000';
endDt = '235959';
}else {
if(6<=moment(today).format('HH')&& moment(today).format('HH')<=13){
startDt = '060000';
endDt = '135959';
}else if(14<=moment(today).format('HH')&&moment(today).format('HH')<=21){
startDt = '140000';
endDt = '215959';
}else{
startDt = '220000';
endDt = '055959';
}
}
var param = {
'visitNo': patientInfo.visitNo,
'ordSlipCd': $('#sltMedType').val(),
'startDt': moment(today).format('YYYYMMDD'),
'startTm': startDt,
'endDt': moment(today).format('YYYYMMDD'),
'endTm': endDt,
'userId': JSON.parse(localStorage.user).userId,
'wardCd': patientInfo.wardCd
};
/*var param = {
'visitNo': '90110301I00088',
'ordSlipCd': 'A01',
'startDt': '20180126',
'startTm': '120000',
'endDt': '20180126',
'endTm': '125959',
'userId': '0722006',
'wardCd': '63'
};
*/
actingList = self.nursing.getActList(param);
if( actingList.result != undefined ) {
cureBinding(actingList.result, actingList.extraMsg);
} else {
self.alert('조회 실패');
}
};
var cureBinding = function(actList, extraMsg){
if( actList.length == 0 && extraMsg != 'null' ) {
self.alert(extraMsg);
}
if(actList.length == 0) {
$('#cureDetailDataList').append(li.clone().append(div.clone().addClass('text-center no-result').text('―')));
return;
}
for(var i=0; i