bleeding.js 27 KB

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