"use strict";
/**
* mplus_modal_prescription
*/
var mplus_modal_prescription = function(){
// 상속
mplus_common.call(this);
// 상위 객체 생성
//var mplusPatient = new mplus_mobile_patient();
//var mplusNursing = new mplus_nursing();
//super
var self = this;
var varPrescriptionLists = [];
//20190607 dkchoi75
// var varExamrslttyParam = { "examCd" : "", "examRsltKey" : "", "examRsltKey2" : "", "examRsltKey3" : "" };
var varExamrslttyParam = { "examCd" : "", "examRsltKey" : "", "examRsltKey2" : "", "examRsltKey3" : "", "prescriptionNo" : "" };
//==== 변수 { ====
//==== 변수 } ====
/**
* 초기화
*/
this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
// 초기 화면 조건 구성
initCondition();
// 이벤트 초기화
addEvent();
};
//==== 초기화 설정 { ====
var initCondition = function(){
initEmptyData();
initSetData();
// 초기 화면 조건 구성
//외래 입원 분기처리
searchMedicalInOut();
//처방조회 조회
//searchMedicalPrescriptionList();
//3.처방 분류 리스트
searchMedicalPrescriptionClsList();
//4.처방 상태 리스트
searchMedicalgetPrescriptionStatList();
//5.구분 리스트
searchMedicalgetPrescriptionClassList();
};
var initSetData = function(){
var varToday = new Date();
$("#txtPrescriptionVisitDt").val(moment(varToday).format("YYYY-MM-DD"));
};
var initEmptyData = function(){
$("#divPrescriptionResultRows").empty();
varPrescriptionLists = [];
// 20190607 dkchoi75
//varExamrslttyParam = { "examCd" : "", "examRsltKey" : "", "examRsltKey2" : "", "examRsltKey3" : "" };
varExamrslttyParam = { "examCd" : "", "examRsltKey" : "", "examRsltKey2" : "", "examRsltKey3" : "", "prescriptionNo" : "" };
}
var searchMedicalPrescriptionList = function(){
var varPrescriptionDt = "";
if(gPatientTreatCls == "I"){ //입원
varPrescriptionDt = moment($("#txtPrescriptionVisitDt").val()).format("YYYYMMDD");
//20190520 dkchoi75 백병원 입원>처방조회 시 외래일자 API 변경 미처리 부분
// varPrescriptionDt = moment($("#sltOutPrescriptionHospitalizationDt").val()).format("YYYYMMDD");
}else if(gPatientTreatCls == "O"){ //외래
varPrescriptionDt = moment($("#sltOutPrescriptionHospitalizationDt").val()).format("YYYYMMDD");
}
// 20190502 dkchoi75 : 응급 처방조회 목록 수정
else if(gPatientTreatCls == "E"){ //응급
varPrescriptionDt = moment($("#sltOutPrescriptionHospitalizationDt").val()).format("YYYYMMDD");
}
var param = {
userId:gLoginUserId,
patientId:gPatientId,
deptCd:gPatientDeptCd,
searchCls:gPatientTreatCls,
prescriptionDt:varPrescriptionDt,
prescriptionClsCd:$("#sltPrescriptionClsCd").val(),
prescriptionStatCd:$("#sltPrescriptionStatCd").val(),
prescriptionCls2Cd:$("#sltPrescriptionClass").val()
};
self.medical.getPrescription(param, processSearchMedicalPrescriptionList);
};
var processSearchMedicalPrescriptionList = function(lists){
//console.log(JSON.stringify(lists));
varPrescriptionLists = lists;
var strDisplayTemp = "";
$("#divPrescriptionResultRows").empty();
for( var i = 0; i < lists.length; i++){
strDisplayTemp += "
"
+ "
"
+ "
" + lists[i].prescriptionStatNm + "
"
+ "
" + lists[i].prescriptionClsNm + "
"
+ "
" + lists[i].prescriptionCls2Nm + "
"
+ "
" + lists[i].prescriptionNm + "
"
+ "
"
+ "
"
+ "
" + "
"
+ "
" + lists[i].prescriptionStatNm + " / " + ((lists[i].commentYn == "Y") ? lists[i].comment : "") + "
"
+ "
"
+ "
" ;
if(lists[i].examResultKey != null && lists[i].examResultKey != "" && lists[i].examResultKey != "-"){
strDisplayTemp += " "
}
if(lists[i].medicationKeyYn == "Y"){
strDisplayTemp += " "
}
//2019.04.15. 건대 코드 하드코딩
// prescriptionClsCd (11 주사)(12 내복약) 또는 처방코드 앞문자가 M 또는 I
//2019.05.09 백병원 요구사항으로 약품정보 버튼 미노출
// 20190610 dkchoi75 일산백병원 요구사항으로 약품정보 버튼 노출 Y: 노출 N:미노출
var varDrogInfoButtonYn = "Y";
//if(lists[i].prescriptionClsCd == "11" || lists[i].prescriptionClsCd == "12" || (lists[i].prescriptionCd).indexOf("M") == 0 || (lists[i].prescriptionCd).indexOf("I") == 0){
if(lists[i].prescriptionCd != null && lists[i].prescriptionCd != "" && lists[i].prescriptionCd != "-"){
//if(lists[i].comment != null && lists[i].comment != "" && lists[i].comment != "-" && varDrogInfoButtonYn == "Y"){
strDisplayTemp += " "
}
strDisplayTemp += "
"
+ "
"
+ "
"
;
//console.log( i + " : " + lists[i].deptNm);
}
$("#divPrescriptionResultRows").append(strDisplayTemp); // element 추가
//선택이벤트 처리
addEventPrescriptionResult();
};
var addEventPrescriptionResult = function() {
$("#divPrescriptionResultRows .list-group-item").off("click"); // 기존 이벤트 해제
$("#divPrescriptionResultRows .list-group-item").on("click", function(e){
//진료기록 조회 리스트 검색 처리
var varPreCnt = e.currentTarget.attributes.listCnt.value;
var divPrescriptionId = "#divPrescriptionDetail" + varPreCnt;
// 20190610 dkchoi75 일산백병원 약품정보 Naver 연동 서비스 구분 N:Naver, E:내부EMR, K:킴스
var varDrugInfoApi = "N";
//버튼 클릭 이벤트 처리
if((e.target.id).indexOf("btnCallExamrsltty") != -1){//검사결과
varExamrslttyParam.examRsltKey =
((varPrescriptionLists[varPreCnt].examResultKey != undefined ||
varPrescriptionLists[varPreCnt].examResultKey != null ||
varPrescriptionLists[varPreCnt].examResultKey != "" ||
varPrescriptionLists[varPreCnt].examResultKey != "-") ? varPrescriptionLists[varPreCnt].examResultKey : ""
);
// 20190607 dkchoi75
varExamrslttyParam.prescriptionNo = varPrescriptionLists[varPreCnt].prescriptionNo;
if (varPrescriptionLists[varPreCnt].isExamResult == "1"){
// if(varPrescriptionLists[varPreCnt].examResultKey != null && varPrescriptionLists[varPreCnt].examResultKey != "" && varPrescriptionLists[varPreCnt].examResultKey != "-"){
//examResultKey의 값을 정확하게 처리해야함!!! 체크바람!
if(varPrescriptionLists[varPreCnt].examRsltTy == "1"){//검사결과 검체
$("#modalExamRsltTy1").modal("show");
//mplusModalExamrsltty1.init(varPrescriptionLists[varPreCnt]);
mplusModalExamrsltty1.init(varExamrslttyParam);
}else{//판독결과
// 환자 정보 화면 띄우기
$("#modalExamRsltTy2").modal("show");
//mplusModalExamrsltty2.init(varPrescriptionLists[varPreCnt]);
mplusModalExamrsltty2.init(varExamrslttyParam);
}
}else{
//self.alert("데이터 오류입니다. 관리자에게 문의하세요.");
console.log("examResultKey값 확인바람 : " + varPrescriptionLists[varPreCnt].examResultKey);
}
return;
}else if((e.target.id).indexOf("btnCallMedicationlist") != -1){//투약조회
if(/*varPrescriptionLists[varPreCnt].prescriptionNo != "" &&*/ varPrescriptionLists[varPreCnt].prescriptionCd != ""&& varPrescriptionLists[varPreCnt].medicationSearchDt != ""){
var param = {
prescriptionCd: varPrescriptionLists[varPreCnt].prescriptionCd,
prescriptionNo: varPrescriptionLists[varPreCnt].prescriptionNo,
medicationSearchDt: varPrescriptionLists[varPreCnt].medicationSearchDt
};
$("#modalMedicationList").modal("show");
mplusModalMedicationlist.init(param);
}else{
//self.alert("데이터 오류입니다. 관리자에게 문의하세요.");
console.log("prescriptionCd 확인바람 : " + varPrescriptionLists[varPreCnt].prescriptionCd);
}
return;
}else if((e.target.id).indexOf("btnCallPrescriptionDrugInfo") != -1){//약품정보
//if(varPrescriptionLists[varPreCnt].prescriptionCd != null && varPrescriptionLists[varPreCnt].prescriptionCd != "" && varPrescriptionLists[varPreCnt].prescriptionCd != "-"){
// if(varPrescriptionLists[varPreCnt].comment != null && varPrescriptionLists[varPreCnt].comment != "" && varPrescriptionLists[varPreCnt].comment != "-" ){
// 20190610 dkchoi75 일산백병원 약품정보 Naver 연동
if (varDrugInfoApi == "N") {
var jsonMsg = {
"type":"command",
"functionType":"popup",
"value" : {
"url" : "http://m.terms.naver.com/medicineSearch.nhn?query=" + varPrescriptionLists[varPreCnt].comment,
"method": "GET", // Default "GET" ** 2017-10-19 추가
"parameters": "-" // POST 인 경우만, GET 인 경우는 "url" 에 모두 붙여서 전달 ** 2017-10-19 추가
}
};
self.toNative(jsonMsg);
} else if (varDrugInfoApi == "E") {
var param = {
orderCd: varPrescriptionLists[varPreCnt].prescriptionCd
};
//console.log("prescriptionCd : " + varPrescriptionLists[varPreCnt].prescriptionCd);
mplusModalMedication.init(param);
$("#mplusAlertDrugInfo").modal("show");
} else if (varDrugInfoApi == "K") {
// 킴스 연동 부분
}
// }else{
//self.alert("데이터 오류입니다. 관리자에게 문의하세요.");
// self.alert("약품정보가 없습니다.");
//console.log("prescriptionCd 확인바람 : " + varPrescriptionLists[varPreCnt].prescriptionCd);
// }
return;
}
if( $(divPrescriptionId).hasClass("hidden")) {
$(divPrescriptionId).removeClass("hidden");
} else {
$(divPrescriptionId).addClass("hidden");
}
});
};
var searchMedicalInOut = function(){
if(gPatientTreatCls == "I"){ //입원
$("#divOutPrescriptionHospitalizationDt").addClass('hidden');
$("#divInPrescriptionHospitalizationDt").removeClass('hidden');
//1.입원일자 이력 리스트
// 20190514 dkchoi75 백병원 요구사항 입원->처방조회 검색 부분 외래로 맞춰달라고 함
//$("#divOutPrescriptionHospitalizationDt").removeClass('hidden');
//$("#divInPrescriptionHospitalizationDt").addClass('hidden');
searchMedicalInDateList();
//searchMedicalOutDateList();
}else if(gPatientTreatCls == "O"){ //외래
$("#divOutPrescriptionHospitalizationDt").removeClass('hidden');
$("#divInPrescriptionHospitalizationDt").addClass('hidden');
//2.외래 진료일자 이력 리스트
searchMedicalOutDateList();
}
// 20190502 dkchoi75 : 응급 처방조회 목록 수정
else if(gPatientTreatCls == "E"){ //응급
$("#divOutPrescriptionHospitalizationDt").removeClass('hidden');
$("#divInPrescriptionHospitalizationDt").addClass('hidden');
//3.응급(외래) 진료일자 이력 리스트
searchMedicalOutDateList();
}
};
var searchMedicalInDateList = function(){
var param = {
userId:gLoginUserId,
patientId:gPatientId
};
self.medical.getInDateList(param, processSearchMedicalInDateList);
};
var processSearchMedicalInDateList = function(lists){
$("#sltInPrescriptionHospitalizationDt").empty();
var strDisplayTemp = "";
strDisplayTemp = "";
if(lists != undefined){
for(var i=0; i"+ moment(lists[i].hospitalizationDt).format("YYYY-MM-DD") + "~" + moment(lists[i].dischargeDt).format("YYYY-MM-DD") +"";
strDisplayTemp += "";
}
}
$("#sltInPrescriptionHospitalizationDt").append(strDisplayTemp);
$("#sltInPrescriptionHospitalizationDt").val($("#sltInPrescriptionHospitalizationDt option:first").val());
//처방조회 조회
searchMedicalPrescriptionList();
};
var searchMedicalOutDateList = function(){
var param = {
userId:gLoginUserId,
patientId:gPatientId,
//20190521 dkchoi75 백병원 Input Paremeter에 deptCd (진료과코드) 추가
deptCd:gPatientDeptCd
};
self.medical.getOutDateList(param, processSearchMedicalOutDateList);
};
var processSearchMedicalOutDateList = function(lists){
$("#sltOutPrescriptionHospitalizationDt").empty();
var varVisitDt = "";
var strDisplayTemp = "";
if(lists != undefined){
for(var i=0; i"+ moment(lists[i].visitDt).format("YYYY-MM-DD") +"";
strDisplayTemp += "";
}
}else{
strDisplayTemp = "";
}
$("#sltOutPrescriptionHospitalizationDt").append(strDisplayTemp);
$("#sltOutPrescriptionHospitalizationDt").val($("#sltOutPrescriptionHospitalizationDt option:first").val());
//처방조회 조회
searchMedicalPrescriptionList();
};
var searchMedicalPrescriptionClsList = function(){
var param = {
userId:gLoginUserId,
searchCls:gPatientTreatCls
};
self.medical.getPrescriptionClsList(param, processSearchMedicalPrescriptionClsList);
};
var processSearchMedicalPrescriptionClsList = function(lists){
$("#sltPrescriptionClsCd").empty();
var strDisplayTemp = "";
strDisplayTemp = "";
if(lists != undefined){
for(var i=0; i"+ lists[i].prescriptionClsNm +"";
}
}
$("#sltPrescriptionClsCd").append(strDisplayTemp);
$("#sltPrescriptionClsCd").val($("#sltPrescriptionClsCd option:first").val());
};
var searchMedicalgetPrescriptionStatList = function(){
var param = {
userId:gLoginUserId,
searchCls:gPatientTreatCls
};
self.medical.getPrescriptionStatList(param, processSearchMedicalPrescriptionStatList);
};
var processSearchMedicalPrescriptionStatList = function(lists){
$("#sltPrescriptionStatCd").empty();
var strDisplayTemp = "";
strDisplayTemp = "";
if(lists != undefined){
for(var i=0; i"+ lists[i].prescriptionStatNm +"";
}
}
$("#sltPrescriptionStatCd").append(strDisplayTemp);
$("#sltPrescriptionStatCd").val($("#sltPrescriptionStatCd option:first").val());
};
var searchMedicalgetPrescriptionClassList = function(lists){
$("#sltPrescriptionClass").empty();
var strDisplayTemp = "";
strDisplayTemp = "";
if(lists != undefined){
for(var i=0; i"+ lists[i].prescriptionStatNm +"";
}
}
$("#sltPrescriptionClass").append(strDisplayTemp);
$("#sltPrescriptionClass").val($("#sltPrescriptionClass option:first").val());
};
//==== 초기화 설정 } ====
//==== 이벤트 설정 { ====
var addEvent = function(){
//$("#btnLogout").on("click", function(){
// logout();
//});
eventConditionClick();
eventColumnClick();
eventRowClick();
};
var eventConditionClick = function(){
// 조회버튼
$("#btnPrescriptionSearch").off("click"); // 기존 이벤트 해제
$("#btnPrescriptionSearch").on("click", function(e){
searchMedicalPrescriptionList();
});
$("#sltOutPrescriptionHospitalizationDt").off("change");
$("#sltOutPrescriptionHospitalizationDt").on("change", function(){
//처방조회 조회
searchMedicalPrescriptionList();
});
};
var eventColumnClick = function(){
};
var eventRowClick = function(){
};
//==== 이벤트 설정 } ====
//==== 서비스 실행 { ====
//==== 서비스 실행 { ====
};