oppatient.js 22 KB

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