bloodmanagement.js 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260
  1. "use strict";
  2. /**
  3. * mplus_safety_bloodManagement
  4. * 수혈 탭으로 변경 예정 -- jmRyu
  5. */
  6. var mplus_safety_bloodManagement = function(){
  7. // 상속
  8. mplus_common.call(this);
  9. // 상위 객체 생성
  10. //var mplusPatient = new mplus_mobile_patient();
  11. //var mplusNursing = new mplus_nursing();
  12. //super
  13. var self = this;
  14. //==== 변수 { ====
  15. // column 정렬의 토글 상태 제어용 : 0: not selected, 1:오름차순, 2:내림차순
  16. var varToggleCol1 = 0;
  17. var varToggleCol2 = 0;
  18. var varToggleCol3 = 0;
  19. var varToggleCol4 = 0;
  20. var varToggleCol5 = 0;
  21. var varToggleCol6 = 0;
  22. var varToggleCol7 = 0;
  23. var varToggleCol8 = 0;
  24. var varResultLists = [];
  25. var varSearchCls = "OP";// 조회구분(I:입원, O:외래, E:응급, OP:수술, T:시술, C:협진)
  26. var varSearchDateGap = 2; // 날짜검색 간격
  27. var varPationNumLength = 8;
  28. // TODO : 환자정보에 혈액정보 넣어야함 테스트용으로 변수로 처리
  29. var pationBloodGroup = "";
  30. //투약번호 Length처리
  31. //단일 한건처리로 1로 초기화
  32. var inputBloodManagementLength = 1;
  33. //==== 변수 } ====
  34. /**
  35. * 초기화
  36. */
  37. this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
  38. // 접근 권한 체크
  39. checkAccessPermission();
  40. // 초기 화면 조건 구성
  41. initCondition();
  42. // 이벤트 초기화
  43. addEvent();
  44. // 환자 검색 실행 및 환자 정보 화면 출력
  45. //searchPatient();
  46. $("#txtBloodManagementPatientSearchTxt").focus();
  47. };
  48. //==== 접근 권한 체크 { ====
  49. var checkAccessPermission = function(){
  50. //if( !self.common.checkAccessJobKind( "1000")){
  51. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  52. //}
  53. //if( !self.common.checkAccessUserAuth( "01")){
  54. // self.alertTrue("접근 권한이 없습니다.", self.common.gotoDefaultHomePage);
  55. //}
  56. //self.common.disableElements( $("#myModalBtn"));
  57. };
  58. //==== 접근 권한 체크 } ====
  59. //==== 초기화 설정 { ====
  60. var initCondition = function(){
  61. // 초기 화면 조건 구성
  62. //환자정보 초기화
  63. initPatientInfo();
  64. //환자번호 길이 제한
  65. //$("#txtBloodManagementPatientSearchTxt").prop("maxLength" , varPationNumLength);
  66. // 종료 날짜를 현재 날짜로 등록
  67. var varCurDate = new Date();
  68. var strCurDate = self.util.toDate( new Date());
  69. $("#dateBloodManagementEndDt").val( strCurDate);
  70. // 시작 날짜를 날짜 검색 간격 전 날짜를 등록
  71. var var2DaysAgo = varCurDate;
  72. var2DaysAgo.setDate( varCurDate.getDate() - varSearchDateGap);
  73. var str2DaysAgo = self.util.toDate( var2DaysAgo);
  74. //$("#dateOppatientStartDt").val( str2DaysAgo);
  75. $("#dateBloodManagementStartDt").val( str2DaysAgo);
  76. };
  77. //환자 정보 초기화
  78. var initPatientInfo = function(){
  79. //$("#divResultRows").empty();
  80. //수혈 실행 버튼
  81. $("#btnInputBloodManagementAct").attr("disabled" , true);
  82. $(".modal-patient-name").text("-");
  83. $(".modal-patient-id").text("-");
  84. $(".modal-patient-age-gender").text("-");
  85. $(".modal-patient-treat-cls").text("-");
  86. };
  87. //수혈실시 초기화
  88. /*
  89. var initInputBloodManagement = function(){
  90. $("#bloodManagementActionNum").empty();
  91. //CheckBoxLength 초기화
  92. inputBloodManagementLength = 0;
  93. //처방번호 체크
  94. for(var fCnt = 0 ; fCnt < varResultLists.length ; fCnt++){
  95. if($("#checkBloodManagementSel" + fCnt).is(":checked")){
  96. var tempSpan = "<p>"
  97. + "<span id=\"spanInputBloodManagementNum" + inputBloodManagementLength +"\" style=\"color:red;\">" + varResultLists[fCnt].col6 + "</span>"
  98. + "&nbsp;&nbsp;<button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"" + inputBloodManagementLength + "\" id=\"btnInPutActBarcode" + inputBloodManagementLength + "\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  99. + "<span style=\"color:white;\">⊙</span>"
  100. + "</button><p/>";
  101. $("#bloodManagementActionNum").append(tempSpan);
  102. inputBloodManagementLength++;
  103. }
  104. }
  105. eventMakeBarcodeCondition();
  106. };
  107. */
  108. // 환자정보 요청
  109. var getPatientInfo = function(){
  110. var param = {
  111. userId: $("#txtBloodManagementPatientSearchTxt").val(),
  112. patientId: "",
  113. receiptNo: "",
  114. treatCls: "I"
  115. };
  116. self.medical.getPatientInfo(param, processGetPatientInfo);
  117. };
  118. // 수혈 목록을 처리
  119. var processGetPatientInfo = function( lists){
  120. $(".modal-patient-name").text(lists[0].patientNm);
  121. $(".modal-patient-id").text(lists[0].patientId);
  122. $(".modal-patient-age-gender").text(lists[0].age + " / " + lists[0].gender);
  123. $(".modal-patient-treat-cls").text("입원");
  124. pationBloodGroup = lists[0].bloodGroup;
  125. switchGetBloodManagementList($("#sltBloodManagementCd").val());
  126. };
  127. //화면별 분기 처리
  128. //데이터 조회 분기
  129. var switchGetBloodManagementList = function(mode){
  130. var param;
  131. switch (mode) {
  132. case "1" :
  133. //혈액신청리스트
  134. param = {
  135. userId: "",
  136. patientId: "",
  137. receiptNo: "",
  138. treatCls: ""
  139. };
  140. self.safety.getBloodRequestList(param, processGetBloodRequestList);
  141. break;
  142. case "2" :
  143. //혈액수령리스트
  144. param = {
  145. userId: "",
  146. patientId: "",
  147. receiptNo: "",
  148. treatCls: ""
  149. };
  150. self.safety.getBloodReceiveList(param, processGetBloodReceiveList);
  151. break;
  152. case "3" :
  153. //수혈확인리스트
  154. param = {
  155. userId: "",
  156. patientId: "",
  157. receiptNo: "",
  158. treatCls: ""
  159. };
  160. self.safety.getBloodCheckList(param, processGetBloodCheckList);
  161. break;
  162. case "4" :
  163. //혈액반납리스트
  164. param = {
  165. userId: "",
  166. patientId: "",
  167. receiptNo: "",
  168. treatCls: ""
  169. };
  170. self.safety.getBloodCancelList(param, processGetBloodCancelList);
  171. break;
  172. default:
  173. return;
  174. }
  175. };
  176. //혈액신청리스트
  177. var processGetBloodRequestList = function(lists){
  178. varResultLists = lists;
  179. var strDisplayTemp = "";
  180. $("#divResultRows").empty();
  181. if( lists.length == 0){
  182. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  183. + "<div style=\"height: 55vh;\"></div>";
  184. }
  185. for( var i = 0; i < lists.length; i++){
  186. strDisplayTemp += "<div class=\"chart-content well\">"
  187. + " <div class=\"row patient-row\" rowNo=\"" + i + "\">"
  188. + " <div class=\"col-xs-12\">"
  189. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col1 + "</div>"
  190. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col2 + "</div>"
  191. + " <div class=\"col-xs-4 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col3 + "</div>"
  192. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col4 + "</div>"
  193. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + moment(lists[i].col5).format("MM-DD") + "</div>"
  194. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col6 + "</div>"
  195. + " </div>"
  196. + "</div>"
  197. + "</div>";
  198. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  199. }
  200. $("#divResultRows").append(strDisplayTemp); // element 추가
  201. eventRowClick();
  202. };
  203. //혈액수령리스트
  204. var processGetBloodReceiveList = function(lists){
  205. varResultLists = lists;
  206. var strDisplayTemp = "";
  207. $("#divResultRows").empty();
  208. if( lists.length == 0){
  209. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  210. + "<div style=\"height: 55vh;\"></div>";
  211. }
  212. for( var i = 0; i < lists.length; i++){
  213. strDisplayTemp += "<div class=\"chart-content well\">"
  214. + " <div class=\"row patient-row\" rowNo=\"" + i + "\">"
  215. + " <div class=\"col-xs-12\">"
  216. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col1 + "</div>"
  217. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col2 + "</div>"
  218. + " <div class=\"col-xs-4 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col3 + "</div>"
  219. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col4 + "</div>"
  220. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + moment(lists[i].col5).format("MM-DD") + "</div>"
  221. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col6 + "</div>"
  222. + " </div>"
  223. + "</div>"
  224. + "</div>";
  225. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  226. }
  227. $("#divResultRows").append(strDisplayTemp); // element 추가
  228. eventRowClick();
  229. };
  230. //수혈확인리스트
  231. var processGetBloodCheckList = function(lists){
  232. varResultLists = lists;
  233. var strDisplayTemp = "";
  234. $("#divResultRows").empty();
  235. if( lists.length == 0){
  236. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  237. + "<div style=\"height: 55vh;\"></div>";
  238. }
  239. for( var i = 0; i < lists.length; i++){
  240. strDisplayTemp += "<div class=\"chart-content well\">"
  241. + " <div class=\"row patient-row\" rowNo=\"" + i + "\">"
  242. + " <div class=\"col-xs-12\">"
  243. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col1 + "</div>"
  244. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col2 + "</div>"
  245. + " <div class=\"col-xs-4 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col3 + "</div>"
  246. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col4 + "</div>"
  247. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + moment(lists[i].col5).format("MM-DD") + "</div>"
  248. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col6 + "</div>"
  249. + " </div>"
  250. + "</div>"
  251. + "</div>";
  252. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  253. }
  254. $("#divResultRows").append(strDisplayTemp); // element 추가
  255. eventRowClick();
  256. };
  257. //혈액반납리스트
  258. var processGetBloodCancelList = function(lists){
  259. varResultLists = lists;
  260. var strDisplayTemp = "";
  261. $("#divResultRows").empty();
  262. if( lists.length == 0){
  263. strDisplayTemp = "<div class=\"row text-center\" style=\"line-height: 60px; vertical-align: middle;\"> 검색 결과가 없습니다. </div>"
  264. + "<div style=\"height: 55vh;\"></div>";
  265. }
  266. for( var i = 0; i < lists.length; i++){
  267. strDisplayTemp += "<div class=\"chart-content well\">"
  268. + " <div class=\"row patient-row\" rowNo=\"" + i + "\">"
  269. + " <div class=\"col-xs-12\">"
  270. + " <div class=\"col-xs-2 text-center\" style=\"padding:0px;word-break: break-word;\">" + moment(lists[i].col1).format("MM-DD") + "</div>"
  271. + " <div class=\"col-xs-4 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col2 + "</div>"
  272. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col3 + "</div>"
  273. + " <div class=\"col-xs-4 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col4 + "</div>"
  274. + " <div class=\"col-xs-1 text-center\" style=\"padding:0px;word-break: break-word;\">" + lists[i].col5 + "</div>"
  275. + " </div>"
  276. + "</div>"
  277. + "</div>";
  278. //console.log( i + " : " + lists[i].patientId + " : " + lists[i].patientNm);
  279. }
  280. $("#divResultRows").append(strDisplayTemp); // element 추가
  281. eventRowClick();
  282. };
  283. // 투약실시
  284. var switchInputBloodManagement = function(mode){
  285. var params = {param: []};
  286. switch (mode) {
  287. case "1" :
  288. //혈액신청리스트
  289. params.param.push({
  290. userId: "",
  291. patientId: "",
  292. receiptNo: "",
  293. treatCls: ""
  294. });
  295. self.safety.inputBloodRequest(params, processInputBloodManagement);
  296. break;
  297. case "2" :
  298. //혈액수령리스트
  299. params.param.push({
  300. userId: "",
  301. patientId: "",
  302. receiptNo: "",
  303. treatCls: ""
  304. });
  305. self.safety.inputBloodReceive(params, processInputBloodManagement);
  306. break;
  307. case "3" :
  308. //수혈확인리스트
  309. params.param.push({
  310. userId: "",
  311. patientId: "",
  312. receiptNo: "",
  313. treatCls: ""
  314. });
  315. self.safety.inputBloodCheck(params, processInputBloodManagement);
  316. break;
  317. case "4" :
  318. //혈액반납리스트
  319. params.param.push({
  320. userId: "",
  321. patientId: "",
  322. receiptNo: "",
  323. treatCls: ""
  324. });
  325. self.safety.inputBloodCancel(params, processInputBloodManagement);
  326. break;
  327. default:
  328. return;
  329. }
  330. };
  331. var processInputBloodManagement = function(lists){
  332. if(lists != undefined && lists.length > 0){
  333. var inputCnt = 0;
  334. for(var fCnt = 0 ; fCnt < lists.length ; fCnt++){
  335. if(lists[fCnt].returnCd == "0000"){
  336. inputCnt++;
  337. }
  338. }
  339. self.alert(inputCnt + "건 처리되었습니다.");
  340. //데이터 초기화
  341. $("#mplusAlertBloodManagementAction").modal("hide");
  342. initPatientInfo();
  343. getPatientInfo();
  344. }else{
  345. self.alert("처리중 오류가 발생했습니다.");
  346. }
  347. };
  348. var changeResultHeader = function(mode){
  349. //초기화
  350. //투약 실행 버튼
  351. $("#btnInputBloodManagementAct").attr("disabled" , true);
  352. //inputBloodManagementLength = 0;
  353. varResultLists = [];
  354. $("#divResultHeaderInfo").empty();
  355. var resultHeaderInfo = "";
  356. switch (mode) {
  357. case "1" :
  358. //혈액신청리스트
  359. resultHeaderInfo =
  360. "<div id=\"divResultHeaderColumn1\" class=\"col-xs-1 text-center\">ABO<p/>Rh</div>" +
  361. "<div id=\"divResultHeaderColumn2\" class=\"col-xs-1 text-center\">IPO<span id=\"spanSortColumn2\"></span></div>" +
  362. "<div id=\"divResultHeaderColumn3\" class=\"col-xs-4 text-center\">성분제제<span id=\"spanSortColumn3\"></span></div>" +
  363. "<div id=\"divResultHeaderColumn4\" class=\"col-xs-2 text-center\">처방량<p/>(ml)<span id=\"spanSortColumn4\"></span></div>" +
  364. "<div id=\"divResultHeaderColumn5\" class=\"col-xs-2 text-center\">처방일<span id=\"spanSortColumn5\"></span></div>" +
  365. "<div id=\"divResultHeaderColumn6\" class=\"col-xs-2 text-center\">신청가능<p/>수량<span id=\"spanSortColumn6\"></span></div>";
  366. $("#divResultHeaderInfo").append(resultHeaderInfo);
  367. break;
  368. case "2" :
  369. //혈액수령리스트
  370. resultHeaderInfo =
  371. "<div id=\"divResultHeaderColumn1\" class=\"col-xs-1 text-center\">ABO<p/>Rh</div>" +
  372. "<div id=\"divResultHeaderColumn2\" class=\"col-xs-1 text-center\">IPO<span id=\"spanSortColumn2\"></span></div>" +
  373. "<div id=\"divResultHeaderColumn3\" class=\"col-xs-4 text-center\">성분제제<span id=\"spanSortColumn3\"></span></div>" +
  374. "<div id=\"divResultHeaderColumn4\" class=\"col-xs-2 text-center\">처방량<p/>(ml)<span id=\"spanSortColumn4\"></span></div>" +
  375. "<div id=\"divResultHeaderColumn5\" class=\"col-xs-2 text-center\">처방일<span id=\"spanSortColumn5\"></span></div>" +
  376. "<div id=\"divResultHeaderColumn6\" class=\"col-xs-2 text-center\">신청<p/>수량<span id=\"spanSortColumn6\"></span></div>";
  377. $("#divResultHeaderInfo").append(resultHeaderInfo);
  378. break;
  379. case "3" :
  380. //수혈확인리스트
  381. resultHeaderInfo =
  382. "<div id=\"divResultHeaderColumn1\" class=\"col-xs-1 text-center\">ABO<p/>Rh</div>" +
  383. "<div id=\"divResultHeaderColumn2\" class=\"col-xs-1 text-center\">IPO<span id=\"spanSortColumn2\"></span></div>" +
  384. "<div id=\"divResultHeaderColumn3\" class=\"col-xs-4 text-center\">성분제제<span id=\"spanSortColumn3\"></span></div>" +
  385. "<div id=\"divResultHeaderColumn4\" class=\"col-xs-2 text-center\">처방량<p/>(ml)<span id=\"spanSortColumn4\"></span></div>" +
  386. "<div id=\"divResultHeaderColumn5\" class=\"col-xs-2 text-center\">처방일<span id=\"spanSortColumn5\"></span></div>" +
  387. "<div id=\"divResultHeaderColumn6\" class=\"col-xs-2 text-center\">처방의<span id=\"spanSortColumn6\"></span></div>";
  388. $("#divResultHeaderInfo").append(resultHeaderInfo);
  389. break;
  390. case "4" :
  391. //혈액반납리스트
  392. resultHeaderInfo =
  393. "<div id=\"divResultHeaderColumn1\" class=\"col-xs-2 text-center\">출고일자</div>" +
  394. "<div id=\"divResultHeaderColumn2\" class=\"col-xs-4 text-center\">혈액번호<span id=\"spanSortColumn2\"></span></div>" +
  395. "<div id=\"divResultHeaderColumn3\" class=\"col-xs-1 text-center\">항변<span id=\"spanSortColumn3\"></span></div>" +
  396. "<div id=\"divResultHeaderColumn4\" class=\"col-xs-4 text-center\">성분제제<span id=\"spanSortColumn4\"></span></div>" +
  397. "<div id=\"divResultHeaderColumn5\" class=\"col-xs-1 text-center\">수령<p/>여부<span id=\"spanSortColumn5\"></span></div>";
  398. $("#divResultHeaderInfo").append(resultHeaderInfo);
  399. break;
  400. default:
  401. return;
  402. }
  403. };
  404. var checkInputBloodManagementData = function(mode){
  405. return false;
  406. switch (mode) {
  407. case "1":
  408. return true;
  409. break;
  410. case "2":
  411. break;
  412. case "3":
  413. break;
  414. case "4":
  415. break;
  416. default :
  417. return;
  418. }
  419. if($("#dateBloodManagementActionDate").val() == ""){
  420. self.alert("투약일을 입력해주세요.");
  421. return false;
  422. } else if($("#dateBloodManagementActionTime").val() == "") {
  423. self.alert("투약시간을 입력해주세요.");
  424. return false;
  425. }
  426. //바코드 체크
  427. var btnInPutActBarcodeCheck = false;
  428. for(var fCnt = 0 ; fCnt < inputBloodManagementLength ; fCnt++){
  429. //console.log("TEST : " + $("#btnInPutActBarcode" + fCnt).is("[disabled]"));
  430. if(!$("#btnInPutActBarcode" + fCnt).is("[disabled]")){
  431. btnInPutActBarcodeCheck = true;
  432. }
  433. }
  434. if(btnInPutActBarcodeCheck){
  435. self.alert("투약번호 바코드를 확인해주세요.");
  436. return false;
  437. }
  438. return true;
  439. };
  440. var settingSetInputBloodManagement = function(){
  441. $("#dateBloodManagementActionDate").val(moment(new Date()).format("YYYY-MM-DD"));
  442. $("#dateBloodManagementActionTime").val(moment(new Date()).format("HH:mm:ss"));
  443. };
  444. /*
  445. var checkBarcodeNum = function(barcodeNum){
  446. for(var fCnt = 0 ; fCnt < inputBloodManagementLength ; fCnt++){
  447. if(barcodeNum == $("#spanInputBloodManagementNum" + fCnt).text()){
  448. $("#spanInputBloodManagementNum" + fCnt).css("color" , "blue");
  449. $("#btnInPutActBarcode" + fCnt).attr("disabled" , true);
  450. }
  451. }
  452. };
  453. */
  454. //==== 초기화 설정 } ====
  455. //==== 이벤트 설정 { ====
  456. var addEvent = function(){
  457. // 컬럼 클릭의 정렬 이벤트
  458. eventColumnClick();
  459. eventCondition();
  460. eventBackBlock();
  461. };
  462. // 20190228 shinsunwoo 환자의 바코드 추출 toNative 호출
  463. var readBarcode = function(barMode){
  464. var callbackFn = "window.activeObj.readBarcodeCallBack";
  465. if(barMode == "search"){
  466. callbackFn = "window.activeObj.readBarcodeCallBack";
  467. }else if(barMode == "check"){
  468. callbackFn = "window.activeObj.readBarcodeCallBackCheck";
  469. }else{
  470. callbackFn = "window.activeObj.readBarcodeCallBack";
  471. }
  472. console.log('call readBarcode');
  473. var msg = {
  474. type : "command",
  475. functionType : "readBarcode",
  476. value : {
  477. callbackFn : callbackFn
  478. }
  479. };
  480. self.toNative( msg );
  481. };
  482. // 20190228 shinsunwoo 환자의 바코드 추출 callback 처리
  483. this.readBarcodeCallBack = function( returnCode){
  484. var results = new Object();
  485. if( typeof returnCode === "string" ){
  486. results = self.util.parseJson( returnCode );
  487. } else {
  488. results = returnCode;
  489. }
  490. if( results.success != undefined && results.success == "true" ) {
  491. console.log("readBarcode : success");
  492. console.log( results.result);
  493. $("#txtBloodManagementPatientSearchTxt").val(results.result)
  494. getPatientInfo();
  495. } else {
  496. console.log("readBarcode : failed");
  497. self.alert( "readBarcode APP function 호출 오류 " );
  498. }
  499. };
  500. this.readBarcodeCallBackCheck = function( returnCode){
  501. var results = new Object();
  502. if( typeof returnCode === "string" ){
  503. results = self.util.parseJson( returnCode );
  504. } else {
  505. results = returnCode;
  506. }
  507. if( results.success != undefined && results.success == "true" ) {
  508. console.log("readBarcode : success");
  509. console.log( results.result);
  510. checkBarcodeNum(results.result);
  511. } else {
  512. console.log("readBarcode : failed");
  513. self.alert( "readBarcode APP function 호출 오류 " );
  514. }
  515. };
  516. this.deviceBarcodeCallBackCheck = function( returnCode){
  517. var results = new Object();
  518. if( typeof returnCode === "string" ){
  519. results = self.util.parseJson( returnCode );
  520. } else {
  521. results = returnCode;
  522. }
  523. if( results.success != undefined && results.success == "true" ) {
  524. console.log("readBarcode : success");
  525. console.log( results.result);
  526. checkBarcodeNum(results.result);
  527. } else {
  528. console.log("readBarcode : failed");
  529. self.alert( "readBarcode APP function 호출 오류 " );
  530. }
  531. };
  532. //검색 페이지 뒤로가기 막기
  533. var eventBackBlock = function(){
  534. $(window).off("pageshow");
  535. $(window).bind("pageshow", function(event) {
  536. if (event.originalEvent.persisted) {
  537. document.location.reload();
  538. }
  539. });
  540. };
  541. var eventColumnClick = function(){
  542. /*
  543. $("#divResultHeaderColumn1").off("click");
  544. $("#divResultHeaderColumn1").on("click", function(){
  545. //alert("column1 clicked!!");
  546. sortColumn( 1, "patientId");
  547. });
  548. $("#divResultHeaderColumn2").off("click");
  549. $("#divResultHeaderColumn2").on("click", function(){
  550. //alert("column2 clicked!!");
  551. sortColumn( 2, "patientNm");
  552. });
  553. $("#divResultHeaderColumn3").off("click");
  554. $("#divResultHeaderColumn3").on("click", function(){
  555. //alert("column3 clicked!!");
  556. sortColumn( 3, "roomNm");
  557. });
  558. $("#divResultHeaderColumn4").off("click");
  559. $("#divResultHeaderColumn4").on("click", function(){
  560. //alert("column4 clicked!!");
  561. sortColumn( 4, "age");
  562. });
  563. $("#divResultHeaderColumn5").off("click");
  564. $("#divResultHeaderColumn5").on("click", function(){
  565. //alert("column5 clicked!!");
  566. sortColumn( 5, "operationDt");
  567. });
  568. $("#divResultHeaderColumn6").off("click");
  569. $("#divResultHeaderColumn6").on("click", function(){
  570. //alert("column6 clicked!!");
  571. sortColumn( 6, "anesthesiaTy");
  572. });
  573. $("#divResultHeaderColumn7").off("click");
  574. $("#divResultHeaderColumn7").on("click", function(){
  575. //alert("column7 clicked!!");
  576. sortColumn( 7, "deptNm");
  577. });
  578. $("#divResultHeaderColumn8").off("click");
  579. $("#divResultHeaderColumn8").on("click", function(){
  580. //alert("column8 clicked!!");
  581. sortColumn( 8, "operationStatNm");
  582. });
  583. */
  584. };
  585. var eventRowClick = function(){
  586. // 환자 선택 이벤트 처리
  587. $("#divResultRows .patient-row").off("click"); // 기존 이벤트 해제
  588. $("#divResultRows .patient-row").on("click", function(e){
  589. var rowCnt = e.currentTarget.attributes.rowNo.value;
  590. switchCallModal($("#sltBloodManagementCd").val() , rowCnt);
  591. switchModalInit($("#sltBloodManagementCd").val() , rowCnt);
  592. });
  593. };
  594. var switchCallModal = function(mode , listCnt){
  595. //바코드 초기화
  596. $("#bloodRequestActionNum").empty();
  597. $("#bloodReceiveActionNum").empty();
  598. $("#bloodCheckActionNum").empty();
  599. $("#bloodCancelActionNum").empty();
  600. var spanBarID = "";
  601. switch (mode) {
  602. case "1":
  603. //init
  604. $("#bloodRequestActionNum").text(varResultLists[listCnt].col11);
  605. $("#dataBloodRequestGroup").text(varResultLists[listCnt].col1);
  606. $("#dataBloodRequestConstituent").text(varResultLists[listCnt].col3);
  607. $("#dataBloodRequestQuantity").empty();
  608. for(var fCnt = 1 ; fCnt <= Number(varResultLists[listCnt].col6) ; fCnt++){
  609. var appendTemp = "<option var=\"" +fCnt+ "\">"+fCnt+"</option>";
  610. $("#dataBloodRequestQuantity").append(appendTemp);
  611. }
  612. //dataBloodRequestQuantity
  613. $("#mplusAlertBloodRequestAction").modal("show");
  614. break;
  615. case "2":
  616. var tempSpan = ""
  617. //+ "<span id=\"spanInputBloodReceive0\" style=\"color:red;\">" + varResultLists[listCnt].col11 + "</span>"
  618. + "<div class=\"col-xs-8\" style=\"padding: 0;\"><input id=\"inputBloodReceive\" class=\"form-control bloodReceiveNum\"></div>"
  619. + "<div class=\"col-xs-4\" style=\"padding: 0;\"><button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"0\" id=\"btnInPutActBarcode0\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  620. + "<span style=\"color:white;\">X</span>"
  621. + "</button></div>";
  622. $("#bloodReceiveActionNum").append(tempSpan);
  623. //spanBarID = "spanInputBloodReceive";
  624. //eventMakeBarcodeCondition(spanBarID);
  625. $("#dateBloodReceiveActionDate").val(moment(new Date()).format("YYYY-MM-DD"));
  626. $("#dateBloodReceiveActionTime").val(moment(new Date()).format("HH:mm:ss"));
  627. $("#dataBloodReceiveConstituent").text(varResultLists[listCnt].col3);
  628. $("#dataBloodReceiveABO").text(varResultLists[listCnt].col1);
  629. $("#dataBloodReceiveIPO").text(varResultLists[listCnt].col2);
  630. $("#dataBloodReceiveQuantity").text(varResultLists[listCnt].col6);
  631. $("#mplusAlertBloodReceiveAction").modal("show");
  632. break;
  633. case "3":
  634. //console.log("varResultLists : " + JSON.stringify(varResultLists[listCnt]));
  635. var tempSpan = ""
  636. //+ "<span id=\"spanInputBloodCheck0\" style=\"color:red;\">" + varResultLists[listCnt].col11 + "</span>"
  637. + "<div class=\"col-xs-8\" style=\"padding: 0;\"><input id=\"inputBloodCheck\" class=\"form-control bloodReceiveNum\"></div>"
  638. + "<div class=\"col-xs-4\" style=\"padding: 0;\"><button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"0\" id=\"btnInPutActBarcode0\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  639. + "<span style=\"color:white;\">X</span>"
  640. + "</button></div>";
  641. $("#bloodCheckActionNum").append(tempSpan);
  642. //spanBarID = "spanInputBloodCheck";
  643. //eventMakeBarcodeCondition(spanBarID);
  644. $("#dateBloodCheckActionDate").val(moment(new Date()).format("YYYY-MM-DD"));
  645. $("#dataBloodCheckConstituent").text(varResultLists[listCnt].col3);
  646. $("#dataBloodCheckABO").text(varResultLists[listCnt].col1);
  647. $("#dataBloodCheckIPO").text(varResultLists[listCnt].col2);
  648. $("#dataBloodCheckQuantity").text(varResultLists[listCnt].col4);
  649. //$("#bloodCheckActionDoc").text(varResultLists[listCnt].col6);
  650. //$("#bloodCheckActionUser").text(varResultLists[listCnt].col10);
  651. $("#inputBloodCheckActionDoc").prop("placeholder" , varResultLists[listCnt].col6);
  652. $("#inputBloodCheckActionUser").prop("placeholder" , varResultLists[listCnt].col10);
  653. $("#mplusAlertBloodCheckAction").modal("show");
  654. break;
  655. case "4":
  656. var tempSpan = ""
  657. //+ "<span id=\"spanInputBloodCancel0\" style=\"color:red;\">" + varResultLists[listCnt].col10 + "</span>"
  658. + "<div class=\"col-xs-8\" style=\"padding: 0;\"><input id=\"inputBloodCancel\" class=\"form-control bloodReceiveNum\"></div>"
  659. + "<div class=\"col-xs-4\" style=\"padding: 0;\"><button type=\"button\" name=\"button\" class=\"btn btn-primary classBtnInPutActBarcode\" btnLength=\"0\" id=\"btnInPutActBarcode0\" style=\"color: #ffffff;background: #0067a1;text-align: center;\">"
  660. + "<span style=\"color:white;\">X</span>"
  661. + "</button></div>";
  662. $("#bloodCancelActionNum").append(tempSpan);
  663. //spanBarID = "spanInputBloodCancel";
  664. //eventMakeBarcodeCondition(spanBarID);
  665. $("#dateBloodCancelOutDate").val(moment(varResultLists[listCnt].col1).format("YYYY-MM-DD"));
  666. $("#dateBloodCancelActionDate").val(moment(new Date()).format("YYYY-MM-DD"));
  667. $("#dataBloodCancelConstituent").text(varResultLists[listCnt].col4);
  668. //$("#bloodCancelActionUser").text(varResultLists[listCnt].col9);
  669. $("#inputBloodCancelActionUser").prop("placeholder" , varResultLists[listCnt].col9);
  670. $("#mplusAlertBloodCancelAction").modal("show");
  671. break;
  672. default :
  673. return;
  674. }
  675. };
  676. var switchModalInit = function(mode , listCnt){
  677. switch(mode){
  678. case "1":
  679. break;
  680. case "2":
  681. $("#inputBloodReceive").prop("placeholder" , varResultLists[listCnt].col11);
  682. $("#inputBloodReceive").off("keydown");
  683. $("#inputBloodReceive").on("keydown" , function(e){
  684. if (e.keyCode == 13 && varResultLists.length != 0) {
  685. if(varResultLists[listCnt].col11 != $(this).val()){
  686. $("#btnInPutActBarcode0").text("X");
  687. $(this).val("");
  688. $(this).focus();
  689. self.alert("혈액번호를 확인해주세요.");
  690. return;
  691. }
  692. $("#btnInPutActBarcode0").text("O");
  693. $(this).prop("disabled" , true);
  694. }
  695. });
  696. $("#inputBloodReceive").focus();
  697. break;
  698. case "3":
  699. $("#inputBloodCheck").prop("placeholder" , varResultLists[listCnt].col11);
  700. $("#inputBloodCheck").off("keydown");
  701. $("#inputBloodCheck").on("keydown" , function(e){
  702. if (e.keyCode == 13 && varResultLists.length != 0) {
  703. if(varResultLists[listCnt].col11 != $(this).val()){
  704. $("#btnInPutActBarcode0").text("X");
  705. $(this).val("");
  706. $(this).focus();
  707. self.alert("혈액번호를 확인해주세요.");
  708. return;
  709. }
  710. $("#btnInPutActBarcode0").text("O");
  711. $(this).prop("disabled" , true);
  712. $("#inputBloodCheckActionDoc").focus();
  713. }
  714. });
  715. $("#inputBloodCheckActionDoc").off("keydown");
  716. $("#inputBloodCheckActionDoc").on("keydown" , function(e){
  717. if (e.keyCode == 13 && varResultLists.length != 0) {
  718. if(varResultLists[listCnt].col6 != $(this).val()){
  719. $("#btnBloodCheckActionDoc").text("X");
  720. $(this).val("");
  721. $(this).focus();
  722. self.alert("의사번호를 확인해주세요.");
  723. return;
  724. }
  725. $("#btnBloodCheckActionDoc").text("O");
  726. $(this).prop("disabled" , true);
  727. $("#inputBloodCheckActionUser").focus();
  728. }
  729. });
  730. $("#inputBloodCheckActionUser").off("keydown");
  731. $("#inputBloodCheckActionUser").on("keydown" , function(e){
  732. if (e.keyCode == 13 && varResultLists.length != 0) {
  733. if(varResultLists[listCnt].col10 != $(this).val()){
  734. $("#btnBloodCheckActionUser").text("X");
  735. $(this).val("");
  736. $(this).focus();
  737. self.alert("의료진번호를 확인해주세요.");
  738. return;
  739. }
  740. $("#btnBloodCheckActionUser").text("O");
  741. $(this).prop("disabled" , true);
  742. }
  743. });
  744. $("#inputBloodCheck").focus();
  745. break;
  746. case "4":
  747. $("#inputBloodCancel").prop("placeholder" , varResultLists[listCnt].col10);
  748. $("#inputBloodCancel").off("keydown");
  749. $("#inputBloodCancel").on("keydown" , function(e){
  750. if (e.keyCode == 13 && varResultLists.length != 0) {
  751. if(varResultLists[listCnt].col10 != $(this).val()){
  752. $("#btnInPutActBarcode0").text("X");
  753. $(this).val("");
  754. $(this).focus();
  755. self.alert("혈액번호를 확인해주세요.");
  756. return;
  757. }
  758. $("#btnInPutActBarcode0").text("O");
  759. $(this).prop("disabled" , true);
  760. $("#inputBloodCancelActionUser").focus();
  761. }
  762. });
  763. $("#inputBloodCancelActionUser").off("keydown");
  764. $("#inputBloodCancelActionUser").on("keydown" , function(e){
  765. if (e.keyCode == 13 && varResultLists.length != 0) {
  766. if(varResultLists[listCnt].col9 != $(this).val()){
  767. $("#btnBloodCancelActionUser").text("X");
  768. $(this).val("");
  769. $(this).focus();
  770. self.alert("의사번호를 확인해주세요.");
  771. return;
  772. }
  773. $("#btnBloodCancelActionUser").text("O");
  774. $(this).prop("disabled" , true);
  775. }
  776. });
  777. $("#inputBloodCancel").focus();
  778. break;
  779. default:
  780. return;
  781. }
  782. }
  783. var switchCheckBarcodeNum = function(mode , barcodeNum){
  784. var spanID = "";
  785. switch(mode){
  786. case "1":
  787. spanID = "spanInputBloodRequest";
  788. break;
  789. case "2":
  790. spanID = "spanInputBloodReceive";
  791. break;
  792. case "3":
  793. spanID = "spanInputBloodCheck";
  794. break;
  795. case "4":
  796. spanID = "spanInputBloodCancel";
  797. break;
  798. default:
  799. return;
  800. }
  801. for(var fCnt = 0 ; fCnt < inputBloodManagementLength ; fCnt++){
  802. if(barcodeNum == $("#" + spanID + fCnt).text()){
  803. $("#" + spanID + fCnt).css("color" , "blue");
  804. $("#btnInPutActBarcode" + fCnt).attr("disabled" , true);
  805. }
  806. }
  807. };
  808. var switchCheckInputFocus = function(mode){
  809. var spanID = "";
  810. switch(mode){
  811. case "1":
  812. break;
  813. case "2":
  814. if($("#inputBloodReceive").is(":disabled") == false){
  815. $("#inputBloodReceive").focus();
  816. }
  817. break;
  818. case "3":
  819. if($("#inputBloodCheck").is(":disabled") == false){
  820. $("#inputBloodCheck").focus();
  821. }else if($("#inputBloodCheckActionDoc").is(":disabled") == false){
  822. $("#inputBloodCheckActionDoc").focus();
  823. }else if($("#inputBloodCheckActionUser").is(":disabled") == false){
  824. $("#inputBloodCheckActionUser").focus();
  825. }
  826. break;
  827. case "4":
  828. if($("#inputBloodCancel").is(":disabled") == false){
  829. $("#inputBloodCancel").focus();
  830. }else if($("#inputBloodCancelActionUser").is(":disabled") == false){
  831. $("#inputBloodCancelActionUser").focus();
  832. }
  833. break;
  834. default:
  835. return;
  836. }
  837. };
  838. var eventCondition = function(){
  839. ///////////////////////////////////////////////////////////////////////////////// 2019.09.04 추가 Start
  840. //데이터 전체길이 입력시 검색
  841. $("#txtBloodManagementPatientSearchTxt").off("keydown");
  842. $("#txtBloodManagementPatientSearchTxt").on("keydown" , function(e){
  843. if (e.keyCode == 13 && $("#txtBloodManagementPatientSearchTxt").val().length != 0) {
  844. initPatientInfo();
  845. getPatientInfo();
  846. }else if(e.keyCode == 13 && $("#txtBloodManagementPatientSearchTxt").val().length == 0){
  847. self.alert("환자번호를 입력해주세요.");
  848. $("#txtBloodManagementPatientSearchTxt").focus();
  849. }
  850. });
  851. //포커스 초기화
  852. $("#txtBloodManagementPatientSearchTxt").off("focus");
  853. $("#txtBloodManagementPatientSearchTxt").on("focus" , function(){
  854. $(this).val("");
  855. });
  856. $("#mplusAlert").off("hidden.bs.modal");
  857. $("#mplusAlert").on("hidden.bs.modal", function () {
  858. switchCheckInputFocus($("#sltBloodManagementCd").val());
  859. });
  860. ///////////////////////////////////////////////////////////////////////////////// 2019.09.04 추가 End
  861. // 환자 조회 이벤트 처리
  862. $("#btnBloodManagementSearch").off("click");
  863. $("#btnBloodManagementSearch").on("click", function(){
  864. var searchTxt = $("#txtBloodManagementPatientSearchTxt").val();
  865. if(searchTxt == ""){
  866. self.alert("환자번호를 입력해주세요.");
  867. return;
  868. }
  869. initPatientInfo();
  870. getPatientInfo();
  871. });
  872. // 바코드 검색
  873. $("#btnBarcodeSearch").off("click");
  874. $("#btnBarcodeSearch").on("click", function(){
  875. $("#txtBloodManagementPatientSearchTxt").val("");
  876. readBarcode("search");
  877. });
  878. // 투약처리
  879. /*
  880. $("#btnInputBloodManagementAct").off("click");
  881. $("#btnInputBloodManagementAct").on("click", function(){
  882. initInputBloodManagement();
  883. settingSetInputBloodManagement();
  884. $("#mplusAlertBloodManagementAction").modal("show");
  885. });
  886. */
  887. // 투약실시 선택
  888. $("#checkBloodManagementAll").off("change");
  889. $("#checkBloodManagementAll").on("change", function(){
  890. if($("#checkBloodManagementAll").is(":checked")){
  891. $(".checkClassBloodManagementSel").prop("checked" , true);
  892. $(".checkClassBloodManagementSel").trigger("change");
  893. }else{
  894. $(".checkClassBloodManagementSel").prop("checked" , false);
  895. $(".checkClassBloodManagementSel").trigger("change");
  896. }
  897. });
  898. //mode변경
  899. $("#sltBloodManagementCd").off("change");
  900. $("#sltBloodManagementCd").on("change", function(){
  901. $("#divResultRows").empty();
  902. changeResultHeader($("#sltBloodManagementCd").val());
  903. var searchTxt = $("#txtBloodManagementPatientSearchTxt").val();
  904. if(searchTxt != ""){
  905. switchGetBloodManagementList($("#sltBloodManagementCd").val());
  906. return;
  907. }
  908. });
  909. // 혈액신청
  910. $("#btnBloodRequestAct").off("click");
  911. $("#btnBloodRequestAct").on("click", function(){
  912. //TEST
  913. $("#mplusAlertBloodRequestAction").modal("hide");
  914. self.alert("혈액신청되었습니다.");
  915. return;
  916. switchInputBloodManagement($("#sltBloodManagementCd").val());
  917. });
  918. // 취소
  919. $("#btnBloodRequestCancel").off("click");
  920. $("#btnBloodRequestCancel").on("click", function(){
  921. $("#mplusAlertBloodRequestAction").modal("hide");
  922. });
  923. // 혈액확인
  924. $("#btnBBloodReceiveAct").off("click");
  925. $("#btnBBloodReceiveAct").on("click", function(){
  926. if($("#btnInPutActBarcode0").text() == "O"){
  927. //TEST
  928. $("#mplusAlertBloodReceiveAction").modal("hide");
  929. self.alert("혈액확인되었습니다.");
  930. return;
  931. switchInputBloodManagement($("#sltBloodManagementCd").val());
  932. }else{
  933. self.alert("혈액번호를 확인해주세요.");
  934. }
  935. });
  936. // 취소
  937. $("#btnBloodReceiveCancel").off("click");
  938. $("#btnBloodReceiveCancel").on("click", function(){
  939. $("#mplusAlertBloodReceiveAction").modal("hide");
  940. });
  941. // 수혈확인
  942. $("#btnBloodCheckAct").off("click");
  943. $("#btnBloodCheckAct").on("click", function(){
  944. //TEST
  945. $("#mplusAlertBloodCheckAction").modal("hide");
  946. self.alert("수혈확인되었습니다.");
  947. return;
  948. if(checkInputBloodManagementData()){
  949. switchInputBloodManagement($("#sltBloodManagementCd").val());
  950. }
  951. });
  952. // 취소
  953. $("#btnBloodCheckCancel").off("click");
  954. $("#btnBloodCheckCancel").on("click", function(){
  955. $("#mplusAlertBloodCheckAction").modal("hide");
  956. });
  957. // 혈액반환
  958. $("#btnBloodCancelAct").off("click");
  959. $("#btnBloodCancelAct").on("click", function(){
  960. //TEST
  961. $("#mplusAlertBloodCancelAction").modal("hide");
  962. self.alert("혈액반환되었습니다.");
  963. return;
  964. if(checkInputBloodManagementData()){
  965. switchInputBloodManagement($("#sltBloodManagementCd").val());
  966. }
  967. });
  968. // 취소
  969. $("#btnBloodCancelCancel").off("click");
  970. $("#btnBloodCancelCancel").on("click", function(){
  971. $("#mplusAlertBloodCancelAction").modal("hide");
  972. });
  973. };
  974. var eventMakeCondition = function() {
  975. /*
  976. $(".checkClassBloodManagementSel").off("change");
  977. $(".checkClassBloodManagementSel").on("change", function(){
  978. var checkSelected = false;
  979. for(var fCnt = 0 ; fCnt < varResultLists.length ; fCnt++){
  980. if($("#checkBloodManagementSel" + fCnt).is(":checked")){
  981. checkSelected = true;
  982. break;
  983. }
  984. }
  985. if(checkSelected){
  986. $("#btnInputBloodManagementAct").attr("disabled" , false);
  987. }else{
  988. $("#btnInputBloodManagementAct").attr("disabled" , true);
  989. }
  990. });*/
  991. //div 선택 이벤트
  992. };
  993. var eventMakeBarcodeCondition = function(spanInputID) {
  994. $(".classBtnInPutActBarcode").off("click");
  995. $(".classBtnInPutActBarcode").on("click", function(){
  996. //readBarcode("check");
  997. console.log("classBtnInPutActBarcode click!");
  998. //TEST 삭제
  999. for(var fCnt = 0 ; fCnt < inputBloodManagementLength ; fCnt++){
  1000. switchCheckBarcodeNum($("#sltBloodManagementCd").val() , $("#" + spanInputID +fCnt).text());
  1001. }
  1002. });
  1003. };
  1004. //==== 이벤트 설정 } ====
  1005. //==== 환자 정보 조회 처리 { ====
  1006. //==== 환자 정보 조회 처리 } ====
  1007. //==== 컬럼 정렬 프로세스 { ====
  1008. // 컬럼 상태를 초기화 처리
  1009. var initColumnStatus = function(){
  1010. varToggleCol1 = 0;
  1011. varToggleCol2 = 0;
  1012. varToggleCol3 = 0;
  1013. varToggleCol4 = 0;
  1014. varToggleCol5 = 0;
  1015. varToggleCol6 = 0;
  1016. varToggleCol7 = 0;
  1017. varToggleCol8 = 0;
  1018. // 컬럼 정렬 아이콘 초기화 : ▼ ▲
  1019. $("#spanSortColumn1").text("");
  1020. $("#spanSortColumn2").text("");
  1021. $("#spanSortColumn3").text("");
  1022. $("#spanSortColumn4").text("");
  1023. $("#spanSortColumn5").text("");
  1024. $("#spanSortColumn6").text("");
  1025. $("#spanSortColumn7").text("");
  1026. $("#spanSortColumn8").text("");
  1027. };
  1028. // 컬럼 상태를 설정(정렬 조건 적용)
  1029. var setColumnStatus = function( columnNo){
  1030. // 클릭된 column의 현재 상태를 백업
  1031. var copyToggleStatus = 0;
  1032. if( columnNo == 1)
  1033. copyToggleStatus = varToggleCol1;
  1034. else if( columnNo == 2)
  1035. copyToggleStatus = varToggleCol2;
  1036. else if( columnNo == 3)
  1037. copyToggleStatus = varToggleCol3;
  1038. else if( columnNo == 4)
  1039. copyToggleStatus = varToggleCol4;
  1040. else if( columnNo == 5)
  1041. copyToggleStatus = varToggleCol5;
  1042. else if( columnNo == 6)
  1043. copyToggleStatus = varToggleCol6;
  1044. else if( columnNo == 7)
  1045. copyToggleStatus = varToggleCol7;
  1046. else if( columnNo == 8)
  1047. copyToggleStatus = varToggleCol8;
  1048. // column 상태를 초기화
  1049. initColumnStatus();
  1050. // 클릭된 column의 백업된 상태에서 한단계 진핸된 상태로 변경
  1051. if( columnNo == 1)
  1052. copyToggleStatus == 0 ? varToggleCol1 = 1 : copyToggleStatus == 1 ? varToggleCol1 = 2 : varToggleCol1 = 1;
  1053. else if( columnNo == 2)
  1054. copyToggleStatus == 0 ? varToggleCol2 = 1 : copyToggleStatus == 1 ? varToggleCol2 = 2 : varToggleCol2 = 1;
  1055. else if( columnNo == 3)
  1056. copyToggleStatus == 0 ? varToggleCol3 = 1 : copyToggleStatus == 1 ? varToggleCol3 = 2 : varToggleCol3 = 1;
  1057. else if( columnNo == 4)
  1058. copyToggleStatus == 0 ? varToggleCol4 = 1 : copyToggleStatus == 1 ? varToggleCol4 = 2 : varToggleCol4 = 1;
  1059. else if( columnNo == 5)
  1060. copyToggleStatus == 0 ? varToggleCol5 = 1 : copyToggleStatus == 1 ? varToggleCol5 = 2 : varToggleCol5 = 1;
  1061. else if( columnNo == 6)
  1062. copyToggleStatus == 0 ? varToggleCol6 = 1 : copyToggleStatus == 1 ? varToggleCol6 = 2 : varToggleCol6 = 1;
  1063. else if( columnNo == 7)
  1064. copyToggleStatus == 0 ? varToggleCol7 = 1 : copyToggleStatus == 1 ? varToggleCol7 = 2 : varToggleCol7 = 1;
  1065. else if( columnNo == 8)
  1066. copyToggleStatus == 0 ? varToggleCol8 = 1 : copyToggleStatus == 1 ? varToggleCol8 = 2 : varToggleCol8 = 1;
  1067. // 정렬 상태 화면에 그리기
  1068. varToggleCol1 == 1 ? $("#spanSortColumn1").text("▲") : varToggleCol1 == 2 ? $("#spanSortColumn1").text("▼") : $("#spanSortColumn1").text("");
  1069. varToggleCol2 == 1 ? $("#spanSortColumn2").text("▲") : varToggleCol2 == 2 ? $("#spanSortColumn2").text("▼") : $("#spanSortColumn2").text("");
  1070. varToggleCol3 == 1 ? $("#spanSortColumn3").text("▲") : varToggleCol3 == 2 ? $("#spanSortColumn3").text("▼") : $("#spanSortColumn3").text("");
  1071. varToggleCol4 == 1 ? $("#spanSortColumn4").text("▲") : varToggleCol4 == 2 ? $("#spanSortColumn4").text("▼") : $("#spanSortColumn4").text("");
  1072. varToggleCol5 == 1 ? $("#spanSortColumn5").text("▲") : varToggleCol5 == 2 ? $("#spanSortColumn5").text("▼") : $("#spanSortColumn5").text("");
  1073. varToggleCol6 == 1 ? $("#spanSortColumn6").text("▲") : varToggleCol6 == 2 ? $("#spanSortColumn6").text("▼") : $("#spanSortColumn6").text("");
  1074. varToggleCol7 == 1 ? $("#spanSortColumn7").text("▲") : varToggleCol7 == 2 ? $("#spanSortColumn7").text("▼") : $("#spanSortColumn7").text("");
  1075. varToggleCol8 == 1 ? $("#spanSortColumn8").text("▲") : varToggleCol8 == 2 ? $("#spanSortColumn8").text("▼") : $("#spanSortColumn8").text("");
  1076. };
  1077. // 컬럼 상태를 조회(정렬 조건 적용)
  1078. var getColumnStatus = function( columnNo){
  1079. if( columnNo == 1)
  1080. return varToggleCol1;
  1081. else if( columnNo == 2)
  1082. return varToggleCol2;
  1083. else if( columnNo == 3)
  1084. return varToggleCol3;
  1085. else if( columnNo == 4)
  1086. return varToggleCol4;
  1087. else if( columnNo == 5)
  1088. return varToggleCol5;
  1089. else if( columnNo == 6)
  1090. return varToggleCol6;
  1091. else if( columnNo == 7)
  1092. return varToggleCol7;
  1093. else if( columnNo == 8)
  1094. return varToggleCol8;
  1095. };
  1096. // 컬럼의 정렬을 실행
  1097. var sortColumn = function( columnNo, fieldName){
  1098. // 컬럼 상태 설정
  1099. setColumnStatus( columnNo);
  1100. // 오름차순, 내림차순 선택
  1101. var isAscending = true;
  1102. getColumnStatus( columnNo) == 1 ? isAscending = true : getColumnStatus( columnNo) == 2 ? isAscending = false : isAscending = true;
  1103. // 정렬 실행
  1104. self.common.sortArrayObject( varResultLists, fieldName, isAscending);
  1105. // 환자 정보 다시 그리기
  1106. drawPatientList();
  1107. };
  1108. //==== 컬럼 정렬 프로세스 } ====
  1109. };