"use strict";
/**
 * mplus_medical_barpatient
 */
var mplus_medical_barpatient = function(){
	// 상속
	mplus_common.call(this);
	
	// 상위 객체 생성
	//var mplusPatient = new mplus_mobile_patient();
	//var mplusNursing = new mplus_nursing();
	
	//super
	var self = this;
	
	//==== 변수 { ====
	// column 정렬의 토글 상태 제어용 : 0: not selected, 1:오름차순, 2:내림차순
	var varToggleCol1 = 0;
	var varToggleCol2 = 0;
	var varToggleCol3 = 0;
	var varToggleCol4 = 0;
	var varToggleCol5 = 0;
	var varToggleCol6 = 0;
	var varToggleCol7 = 0;
	var varToggleCol8 = 0;
	
	var varResultLists = [];
	
	var varSearchCls = "I";// 조회구분(I:입원, O:외래, E:응급, OP:수술, T:시술, C:협진)
	//==== 변수 } ====
		
	/**
	 * 초기화
	 */
	this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
		// 접근 권한 체크
		checkAccessPermission();
		
		// 초기 화면 조건 구성
		initCondition();
		
		// 이벤트 초기화
		addEvent();
		
		// 환자 검색 실행 및 환자 정보 화면 출력
		//2019-01-02 위치변경
		//searchPatient();
	};
	
	//==== 접근 권한 체크 { ====
	var checkAccessPermission = function(){
		//if( !self.common.checkAccessJobKind( "1000")){
		//	self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
		//}
			
		//if( !self.common.checkAccessUserAuth( "01")){
		//	self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
		//}
		
		//self.common.disableElements( $("#myModalBtn"));
	};
	//==== 접근 권한 체크 } ====
	
	//==== 초기화 설정 { ====
	var initCondition = function(){
		// 초기 화면 조건 구성
		
		// 날짜를 현재 날짜로 등록
		var varCurDate = new Date();
		var strCurDate = self.util.toDate( new Date());
		$("#dateInpatientSearchDt").val( strCurDate);
		
		
		//2019-01-04 자동 검색 기능 수정
		//Ajax의 비동기로 인해 callback함수에 다음 작업 처리
		// 진료과 로드
		//getDeptList( varSearchCls);	
		
		// 병동 로드
		//getWardList( varSearchCls);	
		
		// 텍스트 검색 내용 초기화
		//$("#txtInpatientSearchTxt").val("");
		
		// 신규환자 체크 초기화
		//$("#chkInpatientIsNewPatient")[0].checked = false;
		
		//화면 부서 및 권한 처리
		self.common.authorityCheck("#sltInpatientDeptCd");
	};
	
	// 진료과 목록을 요청
	var getDeptList = function( searchCls){
		var param = {
				userId: gLoginUserId,
				searchCls: searchCls
				};
		self.medical.getDeptList(param, processGetDeptList);
	};
	
	// 진료과 목록을 처리
	var processGetDeptList = function( lists){
		var strDisplayTemp = "";
		$("#sltInpatientDeptCd").empty();
		strDisplayTemp += "<option value=\"\">진료과</option>";
		for( var i = 0; i < lists.length; i++){
			strDisplayTemp += "<option value=\"" + lists[i].deptCd + "\">" + lists[i].deptNm + "</option>";
		}
		$("#sltInpatientDeptCd").append(strDisplayTemp);	// element 추가
		
		// 진료과 목록에 현재 지정된 과가 존재하는 경우, 지정된 과의 담당의 목록을 띄워줌 
		if( self.util.isValueInSelect( $("#sltInpatientDeptCd")[0], localStorage.selectedDeptCd)){
			// 기본 진료과 설정
			$("#sltInpatientDeptCd").val(localStorage.selectedDeptCd);
			// 기본 진료과의 해당 지정의 목록을 조회
			getDoctorListByDept( $("#sltInpatientDeptCd").val(), varSearchCls);
		}else{
			//2019-01-02 위치변경
			searchPatient();
		}
	};
	
	// 진료의 목록을 요청
	var getDoctorListByDept = function( deptCd, searchCls){
		var param = {
				userId: gLoginUserId,
				deptCd: deptCd,
				searchCls: searchCls
				};
		self.medical.getDoctorListByDept(param, processGetDoctorListByDept);
	};
	
	// 진료의 목록을 처리
	var processGetDoctorListByDept = function( lists){
		var strDisplayTemp = "";
		$("#sltInpatientSelectedDrId").empty();
		strDisplayTemp += "<option value=\"\">진료의</option>";
		for( var i = 0; i < lists.length; i++){
			strDisplayTemp += "<option value=\"" + lists[i].doctorId + "\">" + lists[i].doctorNm + "</option>";
		}
		$("#sltInpatientSelectedDrId").append(strDisplayTemp);	// element 추가
		
		//2019-01-09 전공의 항목에 사용자 id, 이름 이 없을경우 %전공의로 선택 처리
		//20190528 백병원 공통 요구 사항 전공의 처리 제외
		$("#sltInpatientSelectedDrId").val(self.common.commonResidentSelect($("#sltInpatientSelectedDrId")[0], localStorage.selectedUserNm, gLoginUserId));
		searchPatient();
		/*
		// 진료의 목록에 현재 로그인 이름이 존재하는 경우, 로그인 이름을 선택
		if( self.util.isValueInSelect( $("#sltInpatientSelectedDrId")[0], gLoginUserId)){
			// 기본 진료의 설정
			$("#sltInpatientSelectedDrId").val(gLoginUserId);
			
			// 기본 진료과의 해당 지정의 목록을 조회
			searchPatient();
		}else{
			//$("#sltInpatientSelectedDrId").val($("#sltInpatientSelectedDrId option:first").val());
			
			searchPatient();
		}*/
	}	
	
	// 병동 목록을 요청
	var getWardList = function( searchCls){
		var param = {
				userId: gLoginUserId,
				searchCls: searchCls
				};
		self.medical.getWardList(param, processGetWardList);
	};
	
	// 병동 목록을 처리
	var processGetWardList = function( lists){
		var strDisplayTemp = "";
		$("#sltInpatientWardCd").empty();
		strDisplayTemp += "<option value=\"\">병동</option>";
		for( var i = 0; i < lists.length; i++){
			strDisplayTemp += "<option value=\"" + lists[i].wardCd + "\">" + lists[i].wardNm + "</option>";
		}
		$("#sltInpatientWardCd").append(strDisplayTemp);	// element 추가
		
		// 병동 목록에 현재 지정된 과(병동)가 존재하는 경우, 지정된 병동의 병실 목록을 띄워줌 
		if( self.util.isValueInSelect( $("#sltInpatientWardCd")[0], localStorage.selectedDeptCd)){
			// 기본 병동 설정
			$("#sltInpatientWardCd").val(localStorage.selectedDeptCd);
			// 기본 병동의 병실 리스트 조회
			getRoomListByWard( $("#sltInpatientWardCd").val(), varSearchCls);
		}
	}	
	
	// 병실 목록을 요청
	var getRoomListByWard = function( wardCd, searchCls){
		var param = {
				userId: gLoginUserId,
				wardCd: wardCd,
				searchCls: searchCls
				};
		self.medical.getRoomListByWard(param, processGetRoomListByWard);
	};
	
	// 병실 목록을 처리
	var processGetRoomListByWard = function( lists){
		var strDisplayTemp = "";
		$("#sltInpatientRoomCd").empty();
		strDisplayTemp += "<option value=\"\">병실</option>";
		for( var i = 0; i < lists.length; i++){
			strDisplayTemp += "<option value=\"" + lists[i].roomCd + "\">" + lists[i].roomNm + "</option>";
		}
		$("#sltInpatientRoomCd").append(strDisplayTemp);	// element 추가
	}
	//==== 초기화 설정 } ====
	
	//==== 이벤트 설정 { ====
	var addEvent = function(){
		
		// 컬럼 클릭의 정렬 이벤트
		eventColumnClick();
		
		eventRowClick();
		
		eventCondition();
		
		eventBackBlock();
	};
	
	//검색 페이지 뒤로가기 막기
	var eventBackBlock = function(){
		$(window).off("backbutton");
		$(window).bind("backbutton", function(event) {
		    if (event.originalEvent.persisted) {
		        document.location.reload();
		    }
		});
	};
	
	var eventColumnClick = function(){
		$("#divResultHeaderColumn1").off("click");
		$("#divResultHeaderColumn1").on("click", function(){
			//alert("column1 clicked!!");
			sortColumn( 1, "patientId");
		});
		
		$("#divResultHeaderColumn2").off("click");
		$("#divResultHeaderColumn2").on("click", function(){
			//alert("column2 clicked!!");
			sortColumn( 2, "patientNm");
		});

		$("#divResultHeaderColumn3").off("click");
		$("#divResultHeaderColumn3").on("click", function(){
			//alert("column3 clicked!!");
			sortColumn( 3, "roomNm");
		});

		$("#divResultHeaderColumn4").off("click");
		$("#divResultHeaderColumn4").on("click", function(){
			//alert("column4 clicked!!");
			sortColumn( 4, "age");
		});

		$("#divResultHeaderColumn5").off("click");
		$("#divResultHeaderColumn5").on("click", function(){
			//alert("column5 clicked!!");
			sortColumn( 5, "deptNm");
		});

		$("#divResultHeaderColumn6").off("click");
		$("#divResultHeaderColumn6").on("click", function(){
			//alert("column6 clicked!!");
			sortColumn( 6, "specialistNm");
		});

		$("#divResultHeaderColumn7").off("click");
		$("#divResultHeaderColumn7").on("click", function(){
			//alert("column7 clicked!!");
			sortColumn( 7, "hospitalizationDt");
		});

		$("#divResultHeaderColumn8").off("click");
		$("#divResultHeaderColumn8").on("click", function(){
			//alert("column8 clicked!!");
			sortColumn( 8, "birthDt");
		});
	};
	
	var eventRowClick = function(){
		
		// 환자 선택 이벤트 처리
		$("#divResultRows .patient-row").off("click"); // 기존 이벤트 해제
		$("#divResultRows .patient-row").on("click", function(e){
			var patientNo = e.currentTarget.attributes.patientNo.value;
			var patientId = e.currentTarget.attributes.patientId.value;
			var patientNm = e.currentTarget.attributes.patientNm.value;
			var age = e.currentTarget.attributes.age.value;
			var gender = e.currentTarget.attributes.gender.value;
			var treatCls = e.currentTarget.attributes.treatCls.value;
			var receiptNo = e.currentTarget.attributes.receiptNo.value;
			var deptCd = e.currentTarget.attributes.deptCd.value;
			var doctorId = e.currentTarget.attributes.doctorId.value;		
			
			// 환자 정보 셋팅
			self.common.setSelectedPatient( patientId, patientNm, age, gender, treatCls, receiptNo, deptCd, doctorId); 
			//alert("row clicked!! " + patientNo + " : " + patientId + " : " + deptCd );
			
			// 환자 정보 화면 띄우기
			$("#modalPatientInfo").modal("show");
			mplusModalPatientinfo.init();
		});
	};
	
	var eventCondition = function(){
		// 진료과의 change 이벤트 처리
		$("#sltInpatientDeptCd").off("change");
		$("#sltInpatientDeptCd").on("change", function(){
			getDoctorListByDept( $("#sltInpatientDeptCd").val(), varSearchCls);
		});
		
		// 진료의 change 이벤트 처리
		$("#sltInpatientSelectedDrId").off("change");
		$("#sltInpatientSelectedDrId").on("change", function(){
			searchPatient();
		});
		
		// 병동의 change 이벤트 처리
		$("#sltInpatientWardCd").off("change");
		$("#sltInpatientWardCd").on("change", function(){
			getRoomListByWard( $("#sltInpatientWardCd").val(), varSearchCls);
		});

		// 환자 조회 이벤트 처리
		$("#btnInpatientSearch").off("click");
		$("#btnInpatientSearch").on("click", function(){
			// 환자 검색 실행 및 환자 정보 화면 출력
			searchPatient();
		});
		
		// 설정 초기화 이벤트 처리
		$("#btnInpatientReset").off("click");
		$("#btnInpatientReset").on("click", function(){
			initCondition();
			// 환자 검색 실행 및 환자 정보 화면 출력
			searchPatient();
		});
		
		// 20190228 바코드 환자 검색 버튼 실행
		$("#btnBarcodeSearch").off("click"); // 기존 이벤트 해제
		$("#btnBarcodeSearch").on("click", function(e){
			readBarcode();
		});
	}
	//==== 이벤트 설정 } ====
	
	//==== 환자 정보 조회 처리 { ====
	// 환자 정보 조회
	var searchPatient = function(){
		var param = {
				userId: gLoginUserId,
				searchDt: moment($("#dateInpatientSearchDt").val()).format("YYYYMMDD"),
				deptCd: $("#sltInpatientDeptCd").val(),
				selectedDrId: $("#sltInpatientSelectedDrId").val(),
				wardCd: $("#sltInpatientWardCd").val(),
				roomCd: $("#sltInpatientRoomCd").val(),
				searchTxtCls: $("#sltInpatientSearchTxtCls").val(),
				searchTxt: $("#txtInpatientSearchTxt").val(),
				isNewPatient: $("#chkInpatientIsNewPatient").is(":checked") ? "1" : "0"
				};
		console.log( param);
		self.medical.getInPatientList(param, processSearchPatient);
	};
	
	// 환자 정보 조회 결과 처리
	var processSearchPatient = function(lists){
		// 1. 환자 조회 결과 리스트를 varResultLists로 복사
		varResultLists = lists;	
		// 2. 환자 검색 결과 리스트를 재정리 : 중복이름 체크
		rebuildPatientList();
		// 3. 환자 검색 결과를 화면에 disaplay
		drawPatientList();
	};
	
	// 환자 검색 결과 리스트를 재정리 : 중복이름 체크
	var rebuildPatientList = function(){
		
		// 사용자명 중복 체크
		// 1. 환자리스트틀 임시환자리스트로 복사
		// 2. 임시환자리스트에서 환자명으로 정렬
		// 3. 임시환자리스트에서 중복 사용자 리스트를 추출
		// 4. 환자리스트에 중복환자를 수정하면서 중복환자명인 경우 중복상태코드(중복순번)를 추가
		var tempList = varResultLists;
		var dupList = [];
		// 정렬 실행
		self.common.sortArrayObject( tempList, "patientNm", true);
		// 중복 환자 리스트 추출
		for( var i = 1; i < tempList.length; i++){
			// 중복 환자명이 있는 경우
			if( tempList[i-1].patientNm == tempList[i].patientNm){
				console.log( "중복환자명 : " + i + " : " + tempList[i].patientNm);
				// 중복리스트의 이미기록된 경우는 skip함
				if( dupList[dupList.length - 1] != tempList[i].patientNm){
					dupList.push( tempList[i].patientNm);
				} else {
					//console.log( "중복환자명(skip) : " + i + " : " + tempList[i].patientNm);
				}
			}
		}		
		// 기존 환자 정보에 중복 여부 체크용 변수(dupNo) 추가, 0:중복 없음, 1,2,3,4,5,6,...(중복순번)
		for( var i = 0; i < varResultLists.length; i++){
			varResultLists[i].dupNo = 0;
			for( var j = 0; j < dupList.length; j++){
				if( varResultLists[i].patientNm == dupList[j]){
					varResultLists[i].dupNo = j + 1;	// 1,2,3,4,5,6,....
					//console.log( "중복 dupNo : " + varResultLists[i].dupNo);
					break;
				}
			}
		}
	};
	
	// 환자 정보 화면에 그리기
	var drawPatientList = function(){
		var lists = varResultLists;
		var strDisplayTemp = "";
		$("#divResultRows").empty();
		if( lists.length == 0){
			strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
				+ "<div style=\"height: 55vh;\"></div>";
		}
		for( var i = 0; i < lists.length; i++){
			var tmpDupCheck = lists[i].dupNo > 0 ? "same-name" : "";
//			strDisplayTemp += "<div class=\"row patient-row\" patientNo=\"" + i + "\" patientId=\"" + lists[i].patientId + "\" patientNm=\"" + lists[i].patientNm + "\" age=\"" + lists[i].age + "\" gender=\"" + lists[i].gender + "\" treatCls=\"" + lists[i].treatCls + "\" style=\"overflow: hidden; background-color: aqua;\">"
//			+ "  <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].patientId + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].patientNm + tmpDupCheck + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].wardNm + "/" + lists[i].roomNm + "/" + lists[i].bedNm + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].age + "/" + lists[i].gender + "</div>"
//			+ "  </div>"
//			+ "  <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].deptNm + "/" + lists[i].doctorNm + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].specialistNm + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].hospitalizationDt + "</div>"
//			+ "    <div class=\"col-xs-3 col-sm-3 col-lg-3\">" + lists[i].birthDt + "</div>"
//			+ "  </div>"
//			+ "</div>"
//			;
			
			strDisplayTemp += "<div class=\"chart-content well " + tmpDupCheck + "\">"
			+ "  <div class=\"row patient-row\" patientNo=\"" + i + "\" patientId=\"" + lists[i].patientId + "\" patientNm=\"" + lists[i].patientNm + "\" age=\"" + lists[i].age + "\" gender=\"" + lists[i].gender + "\" treatCls=\"" + lists[i].treatCls + "\" receiptNo=\"" + lists[i].receiptNo + "\" deptCd=\"" + lists[i].deptCd.trim() + "\" doctorId=\"" + lists[i].doctorId + "\">"
			+ "    <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].patientId + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center lbl_patient_name\" style=\"padding:0px;\">" + lists[i].patientNm + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].roomNm + "/" + lists[i].bedNm + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center lbl_patient_birth\" style=\"padding:0px;\">" + lists[i].age + "/" + lists[i].gender + "</div>"
			+ "    </div>"
			+ "    <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].deptNm + "/" + lists[i].doctorNm + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].specialistNm + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].hospitalizationDt + "</div>"
			+ "      <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center lbl_patient_birth\" style=\"padding:0px;\">" + lists[i].birthDt + "</div>"
			+ "    </div>"
			+ "  </div>"
			+ "</div>"
			;

			//console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
		}
	
		$("#divResultRows").append(strDisplayTemp);	// element 추가
		eventRowClick();	// 클릭 이벤트 처리
	}
	//==== 환자 정보 조회 처리 } ====
	
	//==== 컬럼 정렬 프로세스 { ====
	// 컬럼 상태를 초기화 처리
	var initColumnStatus = function(){
		varToggleCol1 = 0;
		varToggleCol2 = 0;
		varToggleCol3 = 0;
		varToggleCol4 = 0;
		varToggleCol5 = 0;
		varToggleCol6 = 0;
		varToggleCol7 = 0;
		varToggleCol8 = 0;
		
		// 컬럼 정렬 아이콘 초기화 :  ▼ ▲
		$("#spanSortColumn1").text("");
		$("#spanSortColumn2").text("");
		$("#spanSortColumn3").text("");
		$("#spanSortColumn4").text("");
		$("#spanSortColumn5").text("");
		$("#spanSortColumn6").text("");
		$("#spanSortColumn7").text("");
		$("#spanSortColumn8").text("");
	};
	
	// 컬럼 상태를 설정(정렬 조건 적용)
	var setColumnStatus = function( columnNo){
		
		// 클릭된 column의 현재 상태를 백업
		var copyToggleStatus = 0; 
		if( columnNo == 1)
			copyToggleStatus = varToggleCol1;
		else if( columnNo == 2)
			copyToggleStatus = varToggleCol2;
		else if( columnNo == 3)
			copyToggleStatus = varToggleCol3;
		else if( columnNo == 4)
			copyToggleStatus = varToggleCol4;
		else if( columnNo == 5)
			copyToggleStatus = varToggleCol5;
		else if( columnNo == 6)
			copyToggleStatus = varToggleCol6;
		else if( columnNo == 7)
			copyToggleStatus = varToggleCol7;
		else if( columnNo == 8)
			copyToggleStatus = varToggleCol8;
		
		// column 상태를 초기화
		initColumnStatus();
		
		// 클릭된 column의 백업된 상태에서 한단계 진핸된 상태로 변경
		if( columnNo == 1)
			copyToggleStatus == 0 ? varToggleCol1 = 1 : copyToggleStatus == 1 ? varToggleCol1 = 2 : varToggleCol1 = 1;
		else if( columnNo == 2)
			copyToggleStatus == 0 ? varToggleCol2 = 1 : copyToggleStatus == 1 ? varToggleCol2 = 2 : varToggleCol2 = 1;
		else if( columnNo == 3)
			copyToggleStatus == 0 ? varToggleCol3 = 1 : copyToggleStatus == 1 ? varToggleCol3 = 2 : varToggleCol3 = 1;
		else if( columnNo == 4)
			copyToggleStatus == 0 ? varToggleCol4 = 1 : copyToggleStatus == 1 ? varToggleCol4 = 2 : varToggleCol4 = 1;
		else if( columnNo == 5)
			copyToggleStatus == 0 ? varToggleCol5 = 1 : copyToggleStatus == 1 ? varToggleCol5 = 2 : varToggleCol5 = 1;
		else if( columnNo == 6)
			copyToggleStatus == 0 ? varToggleCol6 = 1 : copyToggleStatus == 1 ? varToggleCol6 = 2 : varToggleCol6 = 1;
		else if( columnNo == 7)
			copyToggleStatus == 0 ? varToggleCol7 = 1 : copyToggleStatus == 1 ? varToggleCol7 = 2 : varToggleCol7 = 1;
		else if( columnNo == 8)
			copyToggleStatus == 0 ? varToggleCol8 = 1 : copyToggleStatus == 1 ? varToggleCol8 = 2 : varToggleCol8 = 1;
		
		// 정렬 상태 화면에 그리기
		varToggleCol1 == 1 ? $("#spanSortColumn1").text("▲") : varToggleCol1 == 2 ? $("#spanSortColumn1").text("▼") : $("#spanSortColumn1").text("");
		varToggleCol2 == 1 ? $("#spanSortColumn2").text("▲") : varToggleCol2 == 2 ? $("#spanSortColumn2").text("▼") : $("#spanSortColumn2").text("");
		varToggleCol3 == 1 ? $("#spanSortColumn3").text("▲") : varToggleCol3 == 2 ? $("#spanSortColumn3").text("▼") : $("#spanSortColumn3").text("");
		varToggleCol4 == 1 ? $("#spanSortColumn4").text("▲") : varToggleCol4 == 2 ? $("#spanSortColumn4").text("▼") : $("#spanSortColumn4").text("");
		varToggleCol5 == 1 ? $("#spanSortColumn5").text("▲") : varToggleCol5 == 2 ? $("#spanSortColumn5").text("▼") : $("#spanSortColumn5").text("");
		varToggleCol6 == 1 ? $("#spanSortColumn6").text("▲") : varToggleCol6 == 2 ? $("#spanSortColumn6").text("▼") : $("#spanSortColumn6").text("");
		varToggleCol7 == 1 ? $("#spanSortColumn7").text("▲") : varToggleCol7 == 2 ? $("#spanSortColumn7").text("▼") : $("#spanSortColumn7").text("");
		varToggleCol8 == 1 ? $("#spanSortColumn8").text("▲") : varToggleCol8 == 2 ? $("#spanSortColumn8").text("▼") : $("#spanSortColumn8").text("");
	};
	
	// 컬럼 상태를 조회(정렬 조건 적용)
	var getColumnStatus = function( columnNo){
		if( columnNo == 1)
			return varToggleCol1;
		else if( columnNo == 2)
			return varToggleCol2;
		else if( columnNo == 3)
			return varToggleCol3;
		else if( columnNo == 4)
			return varToggleCol4;
		else if( columnNo == 5)
			return varToggleCol5;
		else if( columnNo == 6)
			return varToggleCol6;
		else if( columnNo == 7)
			return varToggleCol7;
		else if( columnNo == 8)
			return varToggleCol8;
	};
	
	// 컬럼의 정렬을 실행
	var sortColumn = function( columnNo, fieldName){
		// 컬럼 상태 설정 
		setColumnStatus( columnNo);
		
		// 오름차순, 내림차순 선택
		var isAscending = true;
		getColumnStatus( columnNo) == 1 ? isAscending = true : getColumnStatus( columnNo) == 2 ? isAscending = false : isAscending = true;

		// 정렬 실행
		self.common.sortArrayObject( varResultLists, fieldName, isAscending);
		
		// 환자 정보 다시 그리기
		drawPatientList();
	};
	//==== 컬럼 정렬 프로세스 } ====
	
	// 20190228 shinsunwoo 환자의 바코드 추출 toNative 호출
	var readBarcode = function(){
		console.log('call readBarcode');
		var msg = {
				type : "command", 
				functionType : "readBarcode", 
				value : {
					callbackFn : "window.activeObj.readBarcodeCallBack"
				}
		}; 
		self.toNative( msg );
	};

	// 20190228 shinsunwoo 환자의 바코드 추출 callback 처리
	this.readBarcodeCallBack = function( returnCode){
		var results = new Object();
		if( typeof returnCode === "string" ){			
			results = self.util.parseJson( returnCode );
		} else {
			results = returnCode;
		}
		
		if( results.success != undefined && results.success == "true" ) {
			console.log("readBarcode : success");
			console.log( results.result);			
			self.alert( "results.result = " + results.result);
		} else {
			console.log("readBarcode : failed");
			self.alert( "readBarcode APP function 호출 오류 " );
		}
	};
};