copatient.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. "use strict";
  2. /**
  3. * mplus_medical_copatient
  4. */
  5. var mplus_medical_copatient = function(){
  6. // 상속
  7. mplus_common.call(this);
  8. // 상위 객체 생성
  9. //var mplusPatient = new mplus_mobile_patient();
  10. //var mplusNursing = new mplus_nursing();
  11. //super
  12. var self = this;
  13. //==== 변수 { ====
  14. // column 정렬의 토글 상태 제어용 : 0: not selected, 1:오름차순, 2:내림차순
  15. var varToggleCol1 = 0;
  16. var varToggleCol2 = 0;
  17. var varToggleCol3 = 0;
  18. var varToggleCol4 = 0;
  19. var varToggleCol5 = 0;
  20. var varToggleCol6 = 0;
  21. var varToggleCol7 = 0;
  22. var varToggleCol8 = 0;
  23. var varResultLists = [];
  24. var varSearchCls = "C";// 조회구분(I:입원, O:외래, E:응급, OP:수술, T:시술, C:협진)
  25. var varSearchDateGap = 30; // 날짜검색 간격
  26. //==== 변수 } ====
  27. /**
  28. * 초기화
  29. */
  30. this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
  31. // 접근 권한 체크
  32. checkAccessPermission();
  33. // 초기 화면 조건 구성
  34. initCondition();
  35. // 이벤트 초기화
  36. addEvent();
  37. // 환자 검색 실행 및 환자 정보 화면 출력
  38. // 20190102 위치 변경
  39. //searchPatient();
  40. };
  41. //==== 접근 권한 체크 { ====
  42. var checkAccessPermission = function(){
  43. //if( !self.common.checkAccessJobKind( "1000")){
  44. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  45. //}
  46. //if( !self.common.checkAccessUserAuth( "01")){
  47. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  48. //}
  49. //self.common.disableElements( $("#myModalBtn"));
  50. };
  51. //==== 접근 권한 체크 } ====
  52. //==== 초기화 설정 { ====
  53. var initCondition = function(){
  54. // 초기 화면 조건 구성
  55. // 종료 날짜를 현재 날짜로 등록
  56. var varCurDate = new Date();
  57. var strCurDate = self.util.toDate( new Date());
  58. $("#dateCopatientEndDt").val( strCurDate);
  59. // 시작 날짜를 날짜 검색 간격 전 날짜를 등록
  60. var var2DaysAgo = varCurDate;
  61. var2DaysAgo.setDate( varCurDate.getDate() - varSearchDateGap);
  62. var str2DaysAgo = self.util.toDate( var2DaysAgo);
  63. $("#dateCopatientStartDt").val( str2DaysAgo);
  64. // 협진 구분에서 의뢰를 기본 설정으로 적용
  65. $("#sltCopatientCollaborationCls").val( "REQ");
  66. // 진료 구분을 초기화
  67. //2019-01-02 입원고정요청 건대
  68. //$("#sltCopatientSearchCls").val( "");
  69. $("#sltCopatientSearchCls").val("I");
  70. // 협진상태를 초기화
  71. $("#sltCopatientCollaborationStatCd").val("1");
  72. // 퇴원 포함 체크 초기화
  73. $("#chkCopatientIsOut")[0].checked = false;
  74. // 진료과 로드
  75. getDeptList( varSearchCls);
  76. //화면 부서 및 권한 처리
  77. //20190521 dkchoi75 백병원 과선택 할수 있게 변경
  78. //self.common.authorityCheck("#sltCopatientDeptCd");
  79. };
  80. // 진료과 목록을 요청
  81. var getDeptList = function( searchCls){
  82. var param = {
  83. userId: gLoginUserId,
  84. searchCls: searchCls
  85. };
  86. self.medical.getDeptList(param, processGetDeptList);
  87. };
  88. // 진료과 목록을 처리
  89. var processGetDeptList = function( lists){
  90. var strDisplayTemp = "";
  91. $("#sltCopatientDeptCd").empty();
  92. strDisplayTemp += "<option value=\"\">진료과</option>";
  93. for( var i = 0; i < lists.length; i++){
  94. strDisplayTemp += "<option value=\"" + lists[i].deptCd + "\">" + lists[i].deptNm + "</option>";
  95. }
  96. $("#sltCopatientDeptCd").append(strDisplayTemp); // element 추가
  97. // 진료과 목록에 현재 지정된 과가 존재하는 경우, 지정된 과의 담당의 목록을 띄워줌
  98. if( self.util.isValueInSelect( $("#sltCopatientDeptCd")[0], localStorage.selectedDeptCd)){
  99. // 기본 진료과 설정
  100. $("#sltCopatientDeptCd").val(localStorage.selectedDeptCd);
  101. // 기본 진료과의 해당 지정의 목록을 조회
  102. getDoctorListByDept( $("#sltCopatientDeptCd").val(), varSearchCls);
  103. }else{
  104. // 환자 검색 실행 및 환자 정보 화면 출력
  105. searchPatient();
  106. }
  107. }
  108. // 진료의 목록을 요청
  109. var getDoctorListByDept = function( deptCd, searchCls){
  110. var param = {
  111. userId: gLoginUserId,
  112. deptCd: deptCd,
  113. searchCls: searchCls
  114. };
  115. self.medical.getDoctorListByDept(param, processGetDoctorListByDept);
  116. };
  117. // 진료의 목록을 처리
  118. var processGetDoctorListByDept = function( lists){
  119. var strDisplayTemp = "";
  120. $("#sltCopatientSelectedDrId").empty();
  121. strDisplayTemp += "<option value=\"\">진료의</option>";
  122. for( var i = 0; i < lists.length; i++){
  123. strDisplayTemp += "<option value=\"" + lists[i].doctorId + "\">" + lists[i].doctorNm + "</option>";
  124. }
  125. $("#sltCopatientSelectedDrId").append(strDisplayTemp); // element 추가
  126. //2019-01-09 전공의 항목에 사용자 id, 이름 이 없을경우 %전공의로 선택 처리
  127. //20190528 백병원 공통 요구 사항 전공의 처리 제외
  128. $("#sltCopatientSelectedDrId").val(self.common.commonResidentSelect($("#sltCopatientSelectedDrId")[0], localStorage.selectedUserNm, gLoginUserId));
  129. searchPatient();
  130. /*
  131. // 진료의 목록에 현재 로그인 이름이 존재하는 경우, 로그인 이름을 선택
  132. if( self.util.isValueInSelect( $("#sltCopatientSelectedDrId")[0], gLoginUserId)){
  133. // 기본 진료과 설정
  134. $("#sltCopatientSelectedDrId").val(gLoginUserId);
  135. // 환자 검색 실행 및 환자 정보 화면 출력
  136. searchPatient();
  137. }else{
  138. $("#sltCopatientSelectedDrId").val($("#sltCopatientSelectedDrId option:first").val());
  139. // 환자 검색 실행 및 환자 정보 화면 출력
  140. searchPatient();
  141. }*/
  142. }
  143. //==== 초기화 설정 } ====
  144. //==== 이벤트 설정 { ====
  145. var addEvent = function(){
  146. // 컬럼 클릭의 정렬 이벤트
  147. eventColumnClick();
  148. eventRowClick();
  149. eventCondition();
  150. eventBackBlock();
  151. };
  152. //검색 페이지 뒤로가기 막기
  153. var eventBackBlock = function(){
  154. $(window).off("backbutton");
  155. $(window).bind("backbutton", function(event) {
  156. if (event.originalEvent.persisted) {
  157. document.location.reload();
  158. }
  159. });
  160. };
  161. var eventColumnClick = function(){
  162. $("#divResultHeaderColumn1").off("click");
  163. $("#divResultHeaderColumn1").on("click", function(){
  164. //alert("column1 clicked!!");
  165. sortColumn( 1, "patientId");
  166. });
  167. $("#divResultHeaderColumn2").off("click");
  168. $("#divResultHeaderColumn2").on("click", function(){
  169. //alert("column2 clicked!!");
  170. sortColumn( 2, "patientNm");
  171. });
  172. $("#divResultHeaderColumn3").off("click");
  173. $("#divResultHeaderColumn3").on("click", function(){
  174. //alert("column3 clicked!!");
  175. sortColumn( 3, "roomNm");
  176. });
  177. $("#divResultHeaderColumn4").off("click");
  178. $("#divResultHeaderColumn4").on("click", function(){
  179. //alert("column4 clicked!!");
  180. sortColumn( 4, "age");
  181. });
  182. $("#divResultHeaderColumn5").off("click");
  183. $("#divResultHeaderColumn5").on("click", function(){
  184. //alert("column5 clicked!!");
  185. sortColumn( 5, "deptNm");
  186. });
  187. $("#divResultHeaderColumn6").off("click");
  188. $("#divResultHeaderColumn6").on("click", function(){
  189. //alert("column6 clicked!!");
  190. sortColumn( 6, "collaborationDeptNm");
  191. });
  192. $("#divResultHeaderColumn7").off("click");
  193. $("#divResultHeaderColumn7").on("click", function(){
  194. //alert("column7 clicked!!");
  195. sortColumn( 7, "hospitalizationDt");
  196. });
  197. $("#divResultHeaderColumn8").off("click");
  198. $("#divResultHeaderColumn8").on("click", function(){
  199. //alert("column8 clicked!!");
  200. sortColumn( 8, "collaborationStatNm");
  201. });
  202. };
  203. var eventRowClick = function(){
  204. // 환자 선택 이벤트 처리
  205. $("#divResultRows .patient-row").off("click"); // 기존 이벤트 해제
  206. $("#divResultRows .patient-row").on("click", function(e){
  207. var patientNo = e.currentTarget.attributes.patientNo.value;
  208. var patientId = e.currentTarget.attributes.patientId.value;
  209. var patientNm = e.currentTarget.attributes.patientNm.value;
  210. var age = e.currentTarget.attributes.age.value;
  211. var gender = e.currentTarget.attributes.gender.value;
  212. var treatCls = e.currentTarget.attributes.treatCls.value;
  213. var receiptNo = e.currentTarget.attributes.receiptNo.value;
  214. var deptCd = e.currentTarget.attributes.deptCd.value;
  215. var doctorId = e.currentTarget.attributes.doctorId.value;
  216. // 환자 정보 셋팅
  217. self.common.setSelectedPatient( patientId, patientNm, age, gender, treatCls, receiptNo, deptCd, doctorId);
  218. //alert("row clicked!! " + patientNo + " : " + patientId);
  219. //2019-01-09 협진 상세 화면으로 요청
  220. // 환자 정보 화면 띄우기
  221. //$("#modalPatientInfo").modal("show");
  222. //mplusModalPatientinfo.init();
  223. //협진상세
  224. $("#modalCollaborationDetail").modal("show");
  225. //협진 상세 창 호출 시 권한 요청유무 파라미터 보내기
  226. mplusModalCollaborationdetail.init("Y");
  227. });
  228. };
  229. var eventCondition = function(){
  230. // 진료과의 change 이벤트 처리
  231. $("#sltCopatientDeptCd").off("change");
  232. $("#sltCopatientDeptCd").on("change", function(){
  233. getDoctorListByDept( $("#sltCopatientDeptCd").val(), varSearchCls);
  234. });
  235. // 진료의 change 이벤트 처리
  236. $("#sltCopatientSelectedDrId").off("change");
  237. $("#sltCopatientSelectedDrId").on("change", function(){
  238. searchPatient();
  239. });
  240. // 환자 조회 이벤트 처리
  241. $("#btnCopatientSearch").off("click");
  242. $("#btnCopatientSearch").on("click", function(){
  243. // 환자 검색 실행 및 환자 정보 화면 출력
  244. searchPatient();
  245. });
  246. // 설정 초기화 이벤트 처리
  247. $("#btnCopatientReset").off("click");
  248. $("#btnCopatientReset").on("click", function(){
  249. initCondition();
  250. // 환자 검색 실행 및 환자 정보 화면 출력
  251. searchPatient();
  252. });
  253. /* // 검색 시작일자 변경 시, 검색 마지막 날짜를 날짜 검색 간격 후로 변경
  254. $("#dateCopatientStartDt").off("change");
  255. $("#dateCopatientStartDt").on("change", function(){
  256. // 이틀 후 날짜를 등록
  257. var var2DaysLater = new Date( $("#dateCopatientStartDt").val());
  258. var2DaysLater.setDate( var2DaysLater.getDate() + varSearchDateGap);
  259. var str2DaysLater = self.util.toDate( var2DaysLater);
  260. $("#dateCopatientEndDt").val( str2DaysLater);
  261. });
  262. // 검색 종료일자 변경 시, 검색 시작 날짜를 날짜 검색 간격 전으로 변경
  263. $("#dateCopatientEndDt").off("change");
  264. $("#dateCopatientEndDt").on("change", function(){
  265. // 이틀 전 날짜를 등록
  266. var var2DaysAgo = new Date( $("#dateCopatientEndDt").val());
  267. var2DaysAgo.setDate( var2DaysAgo.getDate() - varSearchDateGap);
  268. var str2DaysAgo = self.util.toDate( var2DaysAgo);
  269. $("#dateCopatientStartDt").val( str2DaysAgo);
  270. });*/
  271. }
  272. //==== 이벤트 설정 } ====
  273. //==== 환자 정보 조회 처리 { ====
  274. // 환자 정보 조회
  275. var searchPatient = function(){
  276. var param = {
  277. userId: gLoginUserId,
  278. collaborationCls: $("#sltCopatientCollaborationCls").val(),
  279. startDt: moment($("#dateCopatientStartDt").val()).format("YYYYMMDD"),
  280. endDt: moment($("#dateCopatientEndDt").val()).format("YYYYMMDD"),
  281. deptCd: $("#sltCopatientDeptCd").val(),
  282. selectedDrId: $("#sltCopatientSelectedDrId").val(),
  283. collaborationStatCd: $("#sltCopatientCollaborationStatCd").val(),
  284. searchCls: $("#sltCopatientSearchCls").val(),
  285. isOut: $("#chkCopatientIsOut").is(":checked") ? "1" : "0"
  286. };
  287. console.log( param);
  288. self.medical.getCoPatientList(param, processSearchPatient);
  289. };
  290. // 환자 정보 조회 결과 처리
  291. var processSearchPatient = function(lists){
  292. // 1. 환자 조회 결과 리스트를 varResultLists로 복사
  293. varResultLists = lists;
  294. // 2. 환자 검색 결과 리스트를 재정리 : 중복이름 체크
  295. rebuildPatientList();
  296. // 3. 환자 검색 결과를 화면에 disaplay
  297. drawPatientList();
  298. };
  299. // 환자 검색 결과 리스트를 재정리 : 중복이름 체크
  300. var rebuildPatientList = function(){
  301. // 사용자명 중복 체크
  302. // 1. 환자리스트틀 임시환자리스트로 복사
  303. // 2. 임시환자리스트에서 환자명으로 정렬
  304. // 3. 임시환자리스트에서 중복 사용자 리스트를 추출
  305. // 4. 환자리스트에 중복환자를 수정하면서 중복환자명인 경우 중복상태코드(중복순번)를 추가
  306. var tempList = varResultLists;
  307. var dupList = [];
  308. // 정렬 실행
  309. //20190527 dkchoi75 상계백병원 앱 자체 정렬 않되게 요청
  310. // self.common.sortArrayObject( tempList, "patientNm", true);
  311. // 중복 환자 리스트 추출
  312. for( var i = 1; i < tempList.length; i++){
  313. // 중복 환자명이 있는 경우
  314. if( tempList[i-1].patientNm == tempList[i].patientNm){
  315. console.log( "중복환자명 : " + i + " : " + tempList[i].patientNm);
  316. // 중복리스트의 이미기록된 경우는 skip함
  317. if( dupList[dupList.length - 1] != tempList[i].patientNm){
  318. dupList.push( tempList[i].patientNm);
  319. } else {
  320. //console.log( "중복환자명(skip) : " + i + " : " + tempList[i].patientNm);
  321. }
  322. }
  323. }
  324. // 기존 환자 정보에 중복 여부 체크용 변수(dupNo) 추가, 0:중복 없음, 1,2,3,4,5,6,...(중복순번)
  325. for( var i = 0; i < varResultLists.length; i++){
  326. varResultLists[i].dupNo = 0;
  327. for( var j = 0; j < dupList.length; j++){
  328. if( varResultLists[i].patientNm == dupList[j]){
  329. varResultLists[i].dupNo = j + 1; // 1,2,3,4,5,6,....
  330. //console.log( "중복 dupNo : " + varResultLists[i].dupNo);
  331. break;
  332. }
  333. }
  334. }
  335. };
  336. // 환자 정보 화면에 그리기
  337. var drawPatientList = function(){
  338. var lists = varResultLists;
  339. var strDisplayTemp = "";
  340. $("#divResultRows").empty();
  341. if( lists.length == 0){
  342. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  343. + "<div style=\"height: 55vh;\"></div>";
  344. }
  345. for( var i = 0; i < lists.length; i++){
  346. var tmpDupCheck = lists[i].dupNo > 0 ? "same-name" : "";
  347. //strDisplayTemp += "<div class=\"chart-content well " + tmpDupCheck + "\">"
  348. //2019-01-02 협진목록 동명이인 처리 X
  349. strDisplayTemp += "<div class=\"chart-content well \">"
  350. + " <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 + "\">"
  351. + " <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
  352. + " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].patientId + "</div>"
  353. + " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center lbl_patient_name\" style=\"padding:0px;\">" + lists[i].patientNm + "</div>"
  354. + " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].roomNm + "/" + lists[i].bedNm + "</div>"
  355. + " <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>"
  356. + " </div>"
  357. + " <div class=\"col-xs-12 col-sm-6 col-lg-6\">"
  358. + " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].deptNm + "/" + lists[i].doctorNm + "</div>"
  359. + " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].collaborationDeptNm + "/" + lists[i].collaborationDrNm + "</div>";
  360. if(lists[i].hospitalizationDt != undefined && lists[i].hospitalizationDt != "" && lists[i].hospitalizationDt != null) {
  361. strDisplayTemp += " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + moment(lists[i].hospitalizationDt).format("YYYY-MM-DD") + "</div>";
  362. } else {
  363. strDisplayTemp += " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].hospitalizationDt + "</div>";
  364. }
  365. strDisplayTemp += " <div class=\"col-xs-3 col-sm-3 col-lg-3 text-center\" style=\"padding:0px;\">" + lists[i].collaborationStatNm + "</div>"
  366. + " </div>"
  367. + " </div>"
  368. + "</div>"
  369. ;
  370. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  371. }
  372. $("#divResultRows").append(strDisplayTemp); // element 추가
  373. eventRowClick(); // 클릭 이벤트 처리
  374. }
  375. //==== 환자 정보 조회 처리 } ====
  376. //==== 컬럼 정렬 프로세스 { ====
  377. // 컬럼 상태를 초기화 처리
  378. var initColumnStatus = function(){
  379. varToggleCol1 = 0;
  380. varToggleCol2 = 0;
  381. varToggleCol3 = 0;
  382. varToggleCol4 = 0;
  383. varToggleCol5 = 0;
  384. varToggleCol6 = 0;
  385. varToggleCol7 = 0;
  386. varToggleCol8 = 0;
  387. // 컬럼 정렬 아이콘 초기화 : ▼ ▲
  388. $("#spanSortColumn1").text("");
  389. $("#spanSortColumn2").text("");
  390. $("#spanSortColumn3").text("");
  391. $("#spanSortColumn4").text("");
  392. $("#spanSortColumn5").text("");
  393. $("#spanSortColumn6").text("");
  394. $("#spanSortColumn7").text("");
  395. $("#spanSortColumn8").text("");
  396. };
  397. // 컬럼 상태를 설정(정렬 조건 적용)
  398. var setColumnStatus = function( columnNo){
  399. // 클릭된 column의 현재 상태를 백업
  400. var copyToggleStatus = 0;
  401. if( columnNo == 1)
  402. copyToggleStatus = varToggleCol1;
  403. else if( columnNo == 2)
  404. copyToggleStatus = varToggleCol2;
  405. else if( columnNo == 3)
  406. copyToggleStatus = varToggleCol3;
  407. else if( columnNo == 4)
  408. copyToggleStatus = varToggleCol4;
  409. else if( columnNo == 5)
  410. copyToggleStatus = varToggleCol5;
  411. else if( columnNo == 6)
  412. copyToggleStatus = varToggleCol6;
  413. else if( columnNo == 7)
  414. copyToggleStatus = varToggleCol7;
  415. else if( columnNo == 8)
  416. copyToggleStatus = varToggleCol8;
  417. // column 상태를 초기화
  418. initColumnStatus();
  419. // 클릭된 column의 백업된 상태에서 한단계 진핸된 상태로 변경
  420. if( columnNo == 1)
  421. copyToggleStatus == 0 ? varToggleCol1 = 1 : copyToggleStatus == 1 ? varToggleCol1 = 2 : varToggleCol1 = 1;
  422. else if( columnNo == 2)
  423. copyToggleStatus == 0 ? varToggleCol2 = 1 : copyToggleStatus == 1 ? varToggleCol2 = 2 : varToggleCol2 = 1;
  424. else if( columnNo == 3)
  425. copyToggleStatus == 0 ? varToggleCol3 = 1 : copyToggleStatus == 1 ? varToggleCol3 = 2 : varToggleCol3 = 1;
  426. else if( columnNo == 4)
  427. copyToggleStatus == 0 ? varToggleCol4 = 1 : copyToggleStatus == 1 ? varToggleCol4 = 2 : varToggleCol4 = 1;
  428. else if( columnNo == 5)
  429. copyToggleStatus == 0 ? varToggleCol5 = 1 : copyToggleStatus == 1 ? varToggleCol5 = 2 : varToggleCol5 = 1;
  430. else if( columnNo == 6)
  431. copyToggleStatus == 0 ? varToggleCol6 = 1 : copyToggleStatus == 1 ? varToggleCol6 = 2 : varToggleCol6 = 1;
  432. else if( columnNo == 7)
  433. copyToggleStatus == 0 ? varToggleCol7 = 1 : copyToggleStatus == 1 ? varToggleCol7 = 2 : varToggleCol7 = 1;
  434. else if( columnNo == 8)
  435. copyToggleStatus == 0 ? varToggleCol8 = 1 : copyToggleStatus == 1 ? varToggleCol8 = 2 : varToggleCol8 = 1;
  436. // 정렬 상태 화면에 그리기
  437. varToggleCol1 == 1 ? $("#spanSortColumn1").text("▲") : varToggleCol1 == 2 ? $("#spanSortColumn1").text("▼") : $("#spanSortColumn1").text("");
  438. varToggleCol2 == 1 ? $("#spanSortColumn2").text("▲") : varToggleCol2 == 2 ? $("#spanSortColumn2").text("▼") : $("#spanSortColumn2").text("");
  439. varToggleCol3 == 1 ? $("#spanSortColumn3").text("▲") : varToggleCol3 == 2 ? $("#spanSortColumn3").text("▼") : $("#spanSortColumn3").text("");
  440. varToggleCol4 == 1 ? $("#spanSortColumn4").text("▲") : varToggleCol4 == 2 ? $("#spanSortColumn4").text("▼") : $("#spanSortColumn4").text("");
  441. varToggleCol5 == 1 ? $("#spanSortColumn5").text("▲") : varToggleCol5 == 2 ? $("#spanSortColumn5").text("▼") : $("#spanSortColumn5").text("");
  442. varToggleCol6 == 1 ? $("#spanSortColumn6").text("▲") : varToggleCol6 == 2 ? $("#spanSortColumn6").text("▼") : $("#spanSortColumn6").text("");
  443. varToggleCol7 == 1 ? $("#spanSortColumn7").text("▲") : varToggleCol7 == 2 ? $("#spanSortColumn7").text("▼") : $("#spanSortColumn7").text("");
  444. varToggleCol8 == 1 ? $("#spanSortColumn8").text("▲") : varToggleCol8 == 2 ? $("#spanSortColumn8").text("▼") : $("#spanSortColumn8").text("");
  445. };
  446. // 컬럼 상태를 조회(정렬 조건 적용)
  447. var getColumnStatus = function( columnNo){
  448. if( columnNo == 1)
  449. return varToggleCol1;
  450. else if( columnNo == 2)
  451. return varToggleCol2;
  452. else if( columnNo == 3)
  453. return varToggleCol3;
  454. else if( columnNo == 4)
  455. return varToggleCol4;
  456. else if( columnNo == 5)
  457. return varToggleCol5;
  458. else if( columnNo == 6)
  459. return varToggleCol6;
  460. else if( columnNo == 7)
  461. return varToggleCol7;
  462. else if( columnNo == 8)
  463. return varToggleCol8;
  464. };
  465. // 컬럼의 정렬을 실행
  466. var sortColumn = function( columnNo, fieldName){
  467. // 컬럼 상태 설정
  468. setColumnStatus( columnNo);
  469. // 오름차순, 내림차순 선택
  470. var isAscending = true;
  471. getColumnStatus( columnNo) == 1 ? isAscending = true : getColumnStatus( columnNo) == 2 ? isAscending = false : isAscending = true;
  472. // 정렬 실행
  473. self.common.sortArrayObject( varResultLists, fieldName, isAscending);
  474. // 환자 정보 다시 그리기
  475. drawPatientList();
  476. };
  477. //==== 컬럼 정렬 프로세스 } ====
  478. };