inpatient.js 23 KB

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