injection.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. "use strict";
  2. /**
  3. * mplus_safety_injection
  4. */
  5. var mplus_safety_injection = 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 = 2; // 날짜검색 간격
  26. //투약번호 Length처리
  27. var inputInjectionLength = 0;
  28. //==== 변수 } ====
  29. /**
  30. * 초기화
  31. */
  32. this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
  33. // 접근 권한 체크
  34. checkAccessPermission();
  35. // 초기 화면 조건 구성
  36. initCondition();
  37. // 이벤트 초기화
  38. addEvent();
  39. // 환자 검색 실행 및 환자 정보 화면 출력
  40. //searchPatient();
  41. $("#txtInjectionPatientSearchTxt").focus();
  42. };
  43. //==== 접근 권한 체크 { ====
  44. var checkAccessPermission = function(){
  45. //if( !self.common.checkAccessJobKind( "1000")){
  46. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  47. //}
  48. //if( !self.common.checkAccessUserAuth( "01")){
  49. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  50. //}
  51. //self.common.disableElements( $("#myModalBtn"));
  52. };
  53. //==== 접근 권한 체크 } ====
  54. //==== 초기화 설정 { ====
  55. var initCondition = function(){
  56. // 초기 화면 조건 구성
  57. //환자정보 초기화
  58. initPatientInfo();
  59. // 종료 날짜를 현재 날짜로 등록
  60. var varCurDate = new Date();
  61. var strCurDate = self.util.toDate( new Date());
  62. $("#dateInjectionEndDt").val( strCurDate);
  63. // 시작 날짜를 날짜 검색 간격 전 날짜를 등록
  64. var var2DaysAgo = varCurDate;
  65. var2DaysAgo.setDate( varCurDate.getDate() - varSearchDateGap);
  66. var str2DaysAgo = self.util.toDate( var2DaysAgo);
  67. //$("#dateOppatientStartDt").val( str2DaysAgo);
  68. $("#dateInjectionStartDt").val( str2DaysAgo);
  69. };
  70. //환자 정보 초기화
  71. var initPatientInfo = function(){
  72. //$("#divResultRows").empty();
  73. //투약 실행 버튼
  74. $("#btnInputInjectionAct").attr("disabled" , true);
  75. $(".modal-patient-name").text("-");
  76. $(".modal-patient-id").text("-");
  77. $(".modal-patient-age-gender").text("-");
  78. $(".modal-patient-treat-cls").text("-");
  79. };
  80. //투약실시 초기화
  81. var initInputInjection = function(){
  82. $("#injectionActionNum").empty();
  83. //CheckBoxLength 초기화
  84. inputInjectionLength = 0;
  85. //처방번호 체크
  86. for(var fCnt = 0 ; fCnt < varResultLists.length ; fCnt++){
  87. if($("#checkInjectionSel" + fCnt).is(":checked")){
  88. var tempSpan = "<p>"
  89. + "<span id=\"spanInputInjectionNum" + inputInjectionLength +"\" style=\"color:red;\">" + varResultLists[fCnt].col6 + "</span>"
  90. + "&nbsp;&nbsp;<button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"" + inputInjectionLength + "\" id=\"btnInPutActBarcode" + inputInjectionLength + "\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  91. + "<span style=\"color:white;\">⊙</span>"
  92. + "</button><p/>";
  93. $("#injectionActionNum").append(tempSpan);
  94. inputInjectionLength++;
  95. }
  96. }
  97. eventMakeBarcodeCondition();
  98. };
  99. //바코드 리딩 후 투약실시 초기화
  100. var initBarcodeInputInjection = function(barcodeData){
  101. $("#injectionActionNum").empty();
  102. //CheckBoxLength 초기화
  103. inputInjectionLength = 0;
  104. //처방번호 체크
  105. for(var fCnt = 0 ; fCnt < varResultLists.length ; fCnt++){
  106. if(varResultLists[fCnt].col6 == barcodeData){
  107. var tempSpan = "<p>"
  108. + "<span id=\"spanInputInjectionNum" + inputInjectionLength +"\" style=\"\">" + varResultLists[fCnt].col6 + " " + varResultLists[fCnt].col5 + "</span>"
  109. //+ "&nbsp;&nbsp;<button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"" + inputInjectionLength + "\" id=\"btnInPutActBarcode" + inputInjectionLength + "\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  110. //+ "<span style=\"color:white;\">⊙</span></button>"
  111. + "<p/>";
  112. $("#injectionActionNum").append(tempSpan);
  113. inputInjectionLength++;
  114. return true;
  115. }
  116. }
  117. return false;
  118. //eventMakeBarcodeCondition();
  119. };
  120. // 환자정보 요청
  121. var getPatientInfo = function(){
  122. var param = {
  123. userId: gLoginUserId,
  124. patientId: $("#txtInjectionPatientSearchTxt").val(),
  125. receiptNo: "",
  126. treatCls: "I"
  127. };
  128. self.medical.getPatientInfo(param, processGetPatientInfo);
  129. };
  130. // 투약 목록을 처리
  131. var processGetPatientInfo = function( lists){
  132. $(".modal-patient-name").text(lists[0].patientNm);
  133. $(".modal-patient-id").text(lists[0].patientId);
  134. $(".modal-patient-age-gender").text(lists[0].age + " / " + lists[0].gender);
  135. $(".modal-patient-treat-cls").text("입원");
  136. getInjectionList();
  137. $("#txtInjectionNumberSearchTxt").focus();
  138. };
  139. // 투약실시
  140. var inputInjection = function(){
  141. var params = {param: []};
  142. for(var fCnt = 0 ; fCnt < inputInjectionLength ; fCnt++){
  143. params.param.push({
  144. param1: $("#spanInputInjectionNum" + fCnt).text(),
  145. param2: $("#dateInjectionActionDate").val(),
  146. param3: $("#dateInjectionActionTime").val(),
  147. param4: gLoginUserId
  148. });
  149. }
  150. self.safety.inputInjection(params, processInputInjection);
  151. };
  152. var processInputInjection = function(lists){
  153. if(lists != undefined && lists.length > 0){
  154. var inputCnt = 0;
  155. for(var fCnt = 0 ; fCnt < lists.length ; fCnt++){
  156. if(lists[fCnt].returnCd == "0000"){
  157. inputCnt++;
  158. }
  159. }
  160. self.alert(inputCnt + "건 처리되었습니다.");
  161. //데이터 초기화
  162. $("#mplusAlertInjectionAction").modal("hide");
  163. initPatientInfo();
  164. getPatientInfo();
  165. $("#txtInjectionNumberSearchTxt").focus();
  166. }else{
  167. self.alert("처리중 오류가 발생했습니다.");
  168. }
  169. };
  170. var checkInputInjectionData = function(){
  171. if($("#dateInjectionActionDate").val() == ""){
  172. self.alert("투약일을 입력해주세요.");
  173. return false;
  174. } else if($("#dateInjectionActionTime").val() == "") {
  175. self.alert("투약시간을 입력해주세요.");
  176. return false;
  177. }
  178. //프로세스변경 2019-09-04
  179. return true;
  180. //바코드 체크
  181. var btnInPutActBarcodeCheck = false;
  182. for(var fCnt = 0 ; fCnt < inputInjectionLength ; fCnt++){
  183. console.log("TEST : " + $("#btnInPutActBarcode" + fCnt).is("[disabled]"));
  184. if(!$("#btnInPutActBarcode" + fCnt).is("[disabled]")){
  185. btnInPutActBarcodeCheck = true;
  186. }
  187. }
  188. if(btnInPutActBarcodeCheck){
  189. self.alert("투약번호 바코드를 확인해주세요.");
  190. return false;
  191. }
  192. return true;
  193. };
  194. var settingSetInputInjection = function(){
  195. $("#dateInjectionActionDate").val(moment(new Date()).format("YYYY-MM-DD"));
  196. $("#dateInjectionActionTime").val(moment(new Date()).format("HH:mm:ss"));
  197. };
  198. var checkBarcodeNum = function(barcodeNum){
  199. for(var fCnt = 0 ; fCnt < inputInjectionLength ; fCnt++){
  200. if(barcodeNum == $("#spanInputInjectionNum" + fCnt).text()){
  201. $("#spanInputInjectionNum" + fCnt).css("color" , "blue");
  202. $("#btnInPutActBarcode" + fCnt).attr("disabled" , true);
  203. }
  204. }
  205. };
  206. // 투약정보
  207. var getInjectionList = function(){
  208. var param = {
  209. userId: "",
  210. patientId: "",
  211. receiptNo: "",
  212. treatCls: ""
  213. };
  214. self.safety.getInjectionList(param, processGetInjectionList);
  215. };
  216. var processGetInjectionList = function(lists){
  217. varResultLists = lists;
  218. var strDisplayTemp = "";
  219. $("#divResultRows").empty();
  220. if( lists.length == 0){
  221. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  222. + "<div style=\"height: 55vh;\"></div>";
  223. }
  224. for( var i = 0; i < lists.length; i++){
  225. strDisplayTemp += "<div class=\"chart-content well\">"
  226. + " <div class=\"row patient-row\" patientNo=\"" + i + "\" patientId=\"" + lists[i].col1 + "\" patientNm=\"" + lists[i].col2 + "\" age=\"" + lists[i].col2 + "\" gender=\"" + lists[i].col2 + "\" treatCls=\"" + lists[i].col2 + "\" receiptNo=\"" + lists[i].col2 + "\" deptCd=\"" + lists[i].col2.trim() + "\" doctorId=\"" + lists[i].col2 + "\">"
  227. + " <div class=\"col-xs-12\">"
  228. //+ " <div class=\"col-xs-1 text-center\" style=\"padding:0px;\"><input type=\"checkbox\" class=\"form-check-input checkClassInjectionSel\" id=\"checkInjectionSel" + i + "\"></div>"
  229. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;\">" + moment(lists[i].col1).format("MM-DD") + "</div>"
  230. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;\">" + lists[i].col2 + "</div>"
  231. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;\">" + lists[i].col3 + "</div>"
  232. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;\">" + lists[i].col4 + "</div>"
  233. + " <div class=\"col-xs-7 text-center\" style=\"padding:0px;\">" + lists[i].col5 + "</div>"
  234. + " </div>"
  235. + "</div>"
  236. + "</div>";
  237. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  238. }
  239. $("#divResultRows").append(strDisplayTemp); // element 추가
  240. eventMakeCondition();
  241. };
  242. //==== 초기화 설정 } ====
  243. //==== 이벤트 설정 { ====
  244. var addEvent = function(){
  245. // 컬럼 클릭의 정렬 이벤트
  246. eventColumnClick();
  247. eventRowClick();
  248. eventCondition();
  249. eventBackBlock();
  250. };
  251. // 20190228 shinsunwoo 환자의 바코드 추출 toNative 호출
  252. var readBarcode = function(barMode){
  253. var callbackFn = "window.activeObj.readBarcodeCallBack";
  254. if(barMode == "search"){
  255. callbackFn = "window.activeObj.readBarcodeCallBack";
  256. }else if(barMode == "check"){
  257. callbackFn = "window.activeObj.readBarcodeCallBackCheck";
  258. }else if(barMode == "number"){
  259. callbackFn = "window.activeObj.readBarcodeCallBackNumber";
  260. }else{
  261. callbackFn = "window.activeObj.readBarcodeCallBack";
  262. }
  263. console.log('call readBarcode');
  264. var msg = {
  265. type : "command",
  266. functionType : "readBarcode",
  267. value : {
  268. callbackFn : callbackFn
  269. }
  270. };
  271. self.toNative( msg );
  272. };
  273. // 20190228 shinsunwoo 환자의 바코드 추출 callback 처리
  274. this.readBarcodeCallBack = function( returnCode){
  275. var results = new Object();
  276. if( typeof returnCode === "string" ){
  277. results = self.util.parseJson( returnCode );
  278. } else {
  279. results = returnCode;
  280. }
  281. if( results.success != undefined && results.success == "true" ) {
  282. console.log("readBarcode : success");
  283. console.log( results.result);
  284. $("#txtInjectionPatientSearchTxt").val(results.result)
  285. getPatientInfo();
  286. } else {
  287. console.log("readBarcode : failed");
  288. self.alert( "readBarcode APP function 호출 오류 " );
  289. }
  290. };
  291. this.deviceBarcodeCallBackCheck = function( returnCode){
  292. var results = new Object();
  293. if( typeof returnCode === "string" ){
  294. results = self.util.parseJson( returnCode );
  295. } else {
  296. results = returnCode;
  297. }
  298. if( results.success != undefined && results.success == "true" ) {
  299. console.log("readBarcode : success");
  300. console.log( results.result);
  301. checkBarcodeNum(results.result);
  302. } else {
  303. console.log("readBarcode : failed");
  304. self.alert( "readBarcode APP function 호출 오류 " );
  305. }
  306. };
  307. this.readBarcodeCallBackCheck = function( returnCode){
  308. var results = new Object();
  309. if( typeof returnCode === "string" ){
  310. results = self.util.parseJson( returnCode );
  311. } else {
  312. results = returnCode;
  313. }
  314. if( results.success != undefined && results.success == "true" ) {
  315. console.log("readBarcode : success");
  316. console.log( results.result);
  317. checkBarcodeNum(results.result);
  318. } else {
  319. console.log("readBarcode : failed");
  320. self.alert( "readBarcode APP function 호출 오류 " );
  321. }
  322. };
  323. this.readBarcodeCallBackNumber = function( returnCode){
  324. var results = new Object();
  325. if( typeof returnCode === "string" ){
  326. results = self.util.parseJson( returnCode );
  327. } else {
  328. results = returnCode;
  329. }
  330. if( results.success != undefined && results.success == "true" ) {
  331. console.log("readBarcode : success");
  332. console.log( results.result);
  333. $("#txtInjectionNumberSearchTxt").val(results.result);
  334. $("#txtInjectionNumberSearchTxt").trigger("keydown");
  335. } else {
  336. console.log("readBarcode : failed");
  337. self.alert( "readBarcode APP function 호출 오류 " );
  338. }
  339. };
  340. //검색 페이지 뒤로가기 막기
  341. var eventBackBlock = function(){
  342. $(window).off("pageshow");
  343. $(window).bind("pageshow", function(event) {
  344. if (event.originalEvent.persisted) {
  345. document.location.reload();
  346. }
  347. });
  348. };
  349. var eventColumnClick = function(){
  350. /*
  351. $("#divResultHeaderColumn1").off("click");
  352. $("#divResultHeaderColumn1").on("click", function(){
  353. //alert("column1 clicked!!");
  354. sortColumn( 1, "patientId");
  355. });
  356. $("#divResultHeaderColumn2").off("click");
  357. $("#divResultHeaderColumn2").on("click", function(){
  358. //alert("column2 clicked!!");
  359. sortColumn( 2, "patientNm");
  360. });
  361. $("#divResultHeaderColumn3").off("click");
  362. $("#divResultHeaderColumn3").on("click", function(){
  363. //alert("column3 clicked!!");
  364. sortColumn( 3, "roomNm");
  365. });
  366. $("#divResultHeaderColumn4").off("click");
  367. $("#divResultHeaderColumn4").on("click", function(){
  368. //alert("column4 clicked!!");
  369. sortColumn( 4, "age");
  370. });
  371. $("#divResultHeaderColumn5").off("click");
  372. $("#divResultHeaderColumn5").on("click", function(){
  373. //alert("column5 clicked!!");
  374. sortColumn( 5, "operationDt");
  375. });
  376. $("#divResultHeaderColumn6").off("click");
  377. $("#divResultHeaderColumn6").on("click", function(){
  378. //alert("column6 clicked!!");
  379. sortColumn( 6, "anesthesiaTy");
  380. });
  381. $("#divResultHeaderColumn7").off("click");
  382. $("#divResultHeaderColumn7").on("click", function(){
  383. //alert("column7 clicked!!");
  384. sortColumn( 7, "deptNm");
  385. });
  386. $("#divResultHeaderColumn8").off("click");
  387. $("#divResultHeaderColumn8").on("click", function(){
  388. //alert("column8 clicked!!");
  389. sortColumn( 8, "operationStatNm");
  390. });
  391. */
  392. };
  393. var eventRowClick = function(){
  394. };
  395. var eventCondition = function(){
  396. ///////////////////////////////////////////////////////////////////////////////// 2019.09.04 추가 Start
  397. //데이터 전체길이 입력시 검색
  398. $("#txtInjectionPatientSearchTxt").off("keydown");
  399. $("#txtInjectionPatientSearchTxt").on("keydown" , function(e){
  400. if (e.keyCode == 13 && $("#txtInjectionPatientSearchTxt").val().length != 0) {
  401. initPatientInfo();
  402. getPatientInfo();
  403. }else if(e.keyCode == 13 && $("#txtInjectionPatientSearchTxt").val().length == 0){
  404. self.alert("환자번호를 입력해주세요.");
  405. $("#txtInjectionPatientSearchTxt").focus();
  406. }
  407. });
  408. //포커스 초기화
  409. $("#txtInjectionPatientSearchTxt").off("focus");
  410. $("#txtInjectionPatientSearchTxt").on("focus" , function(){
  411. $(this).val("");
  412. });
  413. //데이터 전체길이 입력시 검색
  414. $("#txtInjectionNumberSearchTxt").off("keydown");
  415. $("#txtInjectionNumberSearchTxt").on("keydown" , function(e){
  416. if (e.keyCode == 13 && varResultLists.length != 0) {
  417. if(!initBarcodeInputInjection($(this).val())){
  418. self.alert("처방되지 않은 투약번호를 입력하셨습니다.");
  419. return;
  420. }
  421. settingSetInputInjection();
  422. $("#mplusAlertInjectionAction").modal("show");
  423. $(this).val("");
  424. }else if(e.keyCode == 13 && varResultLists.length == 0){
  425. self.alert("환자번호를 검색해주세요.");
  426. $("#txtInjectionPatientSearchTxt").focus();
  427. }
  428. });
  429. //포커스 초기화
  430. $("#txtInjectionNumberSearchTxt").off("focus");
  431. $("#txtInjectionNumberSearchTxt").on("focus" , function(){
  432. $(this).val("");
  433. $(this).prop("placeholder" , "투약바코드를 스캔해주세요.");
  434. });
  435. // 투약번호 선택 처리
  436. $("#btnBarcodeSearchSelect").off("click");
  437. $("#btnBarcodeSearchSelect").on("click", function(){
  438. $("#txtInjectionNumberSearchTxt").val("");
  439. $("#txtInjectionNumberSearchTxt").focus();
  440. });
  441. // 바코드 검색
  442. $("#btnBarcodeSearch").off("click");
  443. $("#btnBarcodeSearch").on("click", function(){
  444. $("#txtInjectionNumberSearchTxt").val("");
  445. readBarcode("number");
  446. });
  447. $("#mplusAlert").off("hidden.bs.modal");
  448. $("#mplusAlert").on("hidden.bs.modal", function () {
  449. $("#txtInjectionNumberSearchTxt").focus();
  450. });
  451. ///////////////////////////////////////////////////////////////////////////////// 2019.09.04 추가 End
  452. // 환자 조회 이벤트 처리
  453. $("#btnInjectionSearch").off("click");
  454. $("#btnInjectionSearch").on("click", function(){
  455. var searchTxt = $("#txtInjectionPatientSearchTxt").val();
  456. if(searchTxt == ""){
  457. self.alert("환자번호를 입력해주세요.");
  458. return;
  459. }
  460. initPatientInfo();
  461. getPatientInfo();
  462. });
  463. // 바코드 검색
  464. $("#btnBarcodeSearch").off("click");
  465. $("#btnBarcodeSearch").on("click", function(){
  466. $("#txtInjectionPatientSearchTxt").val("");
  467. readBarcode("search");
  468. });
  469. // 투약처리
  470. $("#btnInputInjectionAct").off("click");
  471. $("#btnInputInjectionAct").on("click", function(){
  472. initInputInjection();
  473. settingSetInputInjection();
  474. $("#mplusAlertInjectionAction").modal("show");
  475. });
  476. // 투약실시 선택
  477. $("#checkInjectionAll").off("change");
  478. $("#checkInjectionAll").on("change", function(){
  479. if($("#checkInjectionAll").is(":checked")){
  480. $(".checkClassInjectionSel").prop("checked" , true);
  481. $(".checkClassInjectionSel").trigger("change");
  482. }else{
  483. $(".checkClassInjectionSel").prop("checked" , false);
  484. $(".checkClassInjectionSel").trigger("change");
  485. }
  486. });
  487. // 투약실시
  488. $("#btnInjectionAct").off("click");
  489. $("#btnInjectionAct").on("click", function(){
  490. if(checkInputInjectionData()){
  491. inputInjection();
  492. }
  493. });
  494. // 투약취소
  495. $("#btnInjectionCancel").off("click");
  496. $("#btnInjectionCancel").on("click", function(){
  497. $("#mplusAlertInjectionAction").modal("hide");
  498. $("#txtInjectionNumberSearchTxt").focus();
  499. });
  500. };
  501. var eventMakeCondition = function() {
  502. $(".checkClassInjectionSel").off("change");
  503. $(".checkClassInjectionSel").on("change", function(){
  504. var checkSelected = false;
  505. for(var fCnt = 0 ; fCnt < varResultLists.length ; fCnt++){
  506. if($("#checkInjectionSel" + fCnt).is(":checked")){
  507. checkSelected = true;
  508. break;
  509. }
  510. }
  511. if(checkSelected){
  512. $("#btnInputInjectionAct").attr("disabled" , false);
  513. }else{
  514. $("#btnInputInjectionAct").attr("disabled" , true);
  515. }
  516. });
  517. };
  518. var eventMakeBarcodeCondition = function() {
  519. $(".classBtnInPutActBarcode").off("click");
  520. $(".classBtnInPutActBarcode").on("click", function(){
  521. //readBarcode("check");
  522. //TEST 삭제
  523. for(var fCnt = 0 ; fCnt < inputInjectionLength ; fCnt++){
  524. checkBarcodeNum($("#spanInputInjectionNum"+fCnt).text());
  525. }
  526. });
  527. };
  528. //==== 이벤트 설정 } ====
  529. //==== 환자 정보 조회 처리 { ====
  530. //==== 환자 정보 조회 처리 } ====
  531. //==== 컬럼 정렬 프로세스 { ====
  532. // 컬럼 상태를 초기화 처리
  533. var initColumnStatus = function(){
  534. varToggleCol1 = 0;
  535. varToggleCol2 = 0;
  536. varToggleCol3 = 0;
  537. varToggleCol4 = 0;
  538. varToggleCol5 = 0;
  539. varToggleCol6 = 0;
  540. varToggleCol7 = 0;
  541. varToggleCol8 = 0;
  542. // 컬럼 정렬 아이콘 초기화 : ▼ ▲
  543. $("#spanSortColumn1").text("");
  544. $("#spanSortColumn2").text("");
  545. $("#spanSortColumn3").text("");
  546. $("#spanSortColumn4").text("");
  547. $("#spanSortColumn5").text("");
  548. $("#spanSortColumn6").text("");
  549. $("#spanSortColumn7").text("");
  550. $("#spanSortColumn8").text("");
  551. };
  552. // 컬럼 상태를 설정(정렬 조건 적용)
  553. var setColumnStatus = function( columnNo){
  554. // 클릭된 column의 현재 상태를 백업
  555. var copyToggleStatus = 0;
  556. if( columnNo == 1)
  557. copyToggleStatus = varToggleCol1;
  558. else if( columnNo == 2)
  559. copyToggleStatus = varToggleCol2;
  560. else if( columnNo == 3)
  561. copyToggleStatus = varToggleCol3;
  562. else if( columnNo == 4)
  563. copyToggleStatus = varToggleCol4;
  564. else if( columnNo == 5)
  565. copyToggleStatus = varToggleCol5;
  566. else if( columnNo == 6)
  567. copyToggleStatus = varToggleCol6;
  568. else if( columnNo == 7)
  569. copyToggleStatus = varToggleCol7;
  570. else if( columnNo == 8)
  571. copyToggleStatus = varToggleCol8;
  572. // column 상태를 초기화
  573. initColumnStatus();
  574. // 클릭된 column의 백업된 상태에서 한단계 진핸된 상태로 변경
  575. if( columnNo == 1)
  576. copyToggleStatus == 0 ? varToggleCol1 = 1 : copyToggleStatus == 1 ? varToggleCol1 = 2 : varToggleCol1 = 1;
  577. else if( columnNo == 2)
  578. copyToggleStatus == 0 ? varToggleCol2 = 1 : copyToggleStatus == 1 ? varToggleCol2 = 2 : varToggleCol2 = 1;
  579. else if( columnNo == 3)
  580. copyToggleStatus == 0 ? varToggleCol3 = 1 : copyToggleStatus == 1 ? varToggleCol3 = 2 : varToggleCol3 = 1;
  581. else if( columnNo == 4)
  582. copyToggleStatus == 0 ? varToggleCol4 = 1 : copyToggleStatus == 1 ? varToggleCol4 = 2 : varToggleCol4 = 1;
  583. else if( columnNo == 5)
  584. copyToggleStatus == 0 ? varToggleCol5 = 1 : copyToggleStatus == 1 ? varToggleCol5 = 2 : varToggleCol5 = 1;
  585. else if( columnNo == 6)
  586. copyToggleStatus == 0 ? varToggleCol6 = 1 : copyToggleStatus == 1 ? varToggleCol6 = 2 : varToggleCol6 = 1;
  587. else if( columnNo == 7)
  588. copyToggleStatus == 0 ? varToggleCol7 = 1 : copyToggleStatus == 1 ? varToggleCol7 = 2 : varToggleCol7 = 1;
  589. else if( columnNo == 8)
  590. copyToggleStatus == 0 ? varToggleCol8 = 1 : copyToggleStatus == 1 ? varToggleCol8 = 2 : varToggleCol8 = 1;
  591. // 정렬 상태 화면에 그리기
  592. varToggleCol1 == 1 ? $("#spanSortColumn1").text("▲") : varToggleCol1 == 2 ? $("#spanSortColumn1").text("▼") : $("#spanSortColumn1").text("");
  593. varToggleCol2 == 1 ? $("#spanSortColumn2").text("▲") : varToggleCol2 == 2 ? $("#spanSortColumn2").text("▼") : $("#spanSortColumn2").text("");
  594. varToggleCol3 == 1 ? $("#spanSortColumn3").text("▲") : varToggleCol3 == 2 ? $("#spanSortColumn3").text("▼") : $("#spanSortColumn3").text("");
  595. varToggleCol4 == 1 ? $("#spanSortColumn4").text("▲") : varToggleCol4 == 2 ? $("#spanSortColumn4").text("▼") : $("#spanSortColumn4").text("");
  596. varToggleCol5 == 1 ? $("#spanSortColumn5").text("▲") : varToggleCol5 == 2 ? $("#spanSortColumn5").text("▼") : $("#spanSortColumn5").text("");
  597. varToggleCol6 == 1 ? $("#spanSortColumn6").text("▲") : varToggleCol6 == 2 ? $("#spanSortColumn6").text("▼") : $("#spanSortColumn6").text("");
  598. varToggleCol7 == 1 ? $("#spanSortColumn7").text("▲") : varToggleCol7 == 2 ? $("#spanSortColumn7").text("▼") : $("#spanSortColumn7").text("");
  599. varToggleCol8 == 1 ? $("#spanSortColumn8").text("▲") : varToggleCol8 == 2 ? $("#spanSortColumn8").text("▼") : $("#spanSortColumn8").text("");
  600. };
  601. // 컬럼 상태를 조회(정렬 조건 적용)
  602. var getColumnStatus = function( columnNo){
  603. if( columnNo == 1)
  604. return varToggleCol1;
  605. else if( columnNo == 2)
  606. return varToggleCol2;
  607. else if( columnNo == 3)
  608. return varToggleCol3;
  609. else if( columnNo == 4)
  610. return varToggleCol4;
  611. else if( columnNo == 5)
  612. return varToggleCol5;
  613. else if( columnNo == 6)
  614. return varToggleCol6;
  615. else if( columnNo == 7)
  616. return varToggleCol7;
  617. else if( columnNo == 8)
  618. return varToggleCol8;
  619. };
  620. // 컬럼의 정렬을 실행
  621. var sortColumn = function( columnNo, fieldName){
  622. // 컬럼 상태 설정
  623. setColumnStatus( columnNo);
  624. // 오름차순, 내림차순 선택
  625. var isAscending = true;
  626. getColumnStatus( columnNo) == 1 ? isAscending = true : getColumnStatus( columnNo) == 2 ? isAscending = false : isAscending = true;
  627. // 정렬 실행
  628. self.common.sortArrayObject( varResultLists, fieldName, isAscending);
  629. // 환자 정보 다시 그리기
  630. drawPatientList();
  631. };
  632. //==== 컬럼 정렬 프로세스 } ====
  633. };