vitallist.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. "use strict";
  2. /**
  3. * mplus_modal_vitallist
  4. */
  5. var mplus_modal_vitallist = 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. var varResultLists = [];
  15. //==== 변수 } ====
  16. /**
  17. * 초기화
  18. */
  19. this.init = function(){ //여기서 모든화면 콤보박스데이터를 집어넣자!!! 그래야지 화면이동할때 속도가 오래걸리지않음!!!
  20. //데이터
  21. initData();
  22. // 초기 화면 조건 구성
  23. initCondition();
  24. // 이벤트 초기화
  25. addEvent();
  26. };
  27. //==== 초기화 설정 { ====
  28. var initData = function(){
  29. if($("#sltVitalListSearch").val() != "1"){
  30. $("#sltVitalListSearch").val("1");//임상관찰조회
  31. divVitalListHeaderChange();
  32. }
  33. $("#divVitalListRows").empty();
  34. };
  35. var initCondition = function(){
  36. // 초기 화면 조건 구성
  37. // 일자 설정
  38. initStartEndDate();
  39. searchVitallist();
  40. };
  41. var searchVitallist= function(){
  42. //임상관찰조회 검색기간이 7일 이상 차이 날 경우 return
  43. if($("#sltVitalListSearch").val() == 1){//임상관찰조회
  44. //7일 이상 차이 날 경우 처리
  45. var varVitalListStartDt = moment($("#txtVitalListStartDt").val() , "YYYY-MM-DD");
  46. var varVitalListEndDt = moment($("#txtVitalListEndDt").val() , "YYYY-MM-DD");
  47. //console.log("날짜이동 : " + moment.duration(varVitalListStartDt.diff(varVitalListEndDt , "day")));
  48. /*
  49. if(moment.duration(varVitalListStartDt.diff(varVitalListEndDt , "day")) >= 1 || moment.duration(varVitalListStartDt.diff(varVitalListEndDt , "day")) <= -7){
  50. self.alert("1주 이상 검색할 수 없습니다.");
  51. initStartEndDate();
  52. return;
  53. }
  54. */
  55. var param = {
  56. userId:gLoginUserId,
  57. patientId:gPatientId,
  58. hospitalizationDt:moment(gPatientHospitalizationDt).format("YYYYMMDD"),
  59. startDt:moment($("#txtVitalListStartDt").val()).format("YYYYMMDD"),
  60. endDt:moment($("#txtVitalListEndDt").val()).format("YYYYMMDD")
  61. };
  62. //console.log("TEST : " + JSON.stringify(param));
  63. self.medical.getVitalList(param, processSearchVitalList);
  64. }else if($("#sltVitalListSearch").val() == 2){//I/O합계조회
  65. var param = {
  66. userId:gLoginUserId,
  67. patientId:gPatientId,
  68. hospitalizationDt:moment(gPatientHospitalizationDt).format("YYYYMMDD"),
  69. searchDt:moment($("#txtVitalListSumEndDt").val()).format("YYYYMMDD")
  70. };
  71. //console.log("TEST : " + JSON.stringify(param));
  72. self.medical.getVitalListSum2(param, processSearchVitalListSum);
  73. }
  74. };
  75. var processSearchVitalList = function(lists){
  76. //header 초기화
  77. divVitalListHeaderChange();
  78. //console.log(JSON.stringify(lists));
  79. varResultLists = lists;
  80. var strDisplayTemp = "";
  81. $("#divVitalListRows").empty();
  82. for( var i = 0; i < lists.length; i++){
  83. //임상관찰 데이터 H 높음 , N 평균 , L 낮음
  84. var pulseEvalCdCSS = "";
  85. var respirationEvalCdCSS = "";
  86. var bodyTemperatureEvalCdCSS = "";
  87. var systolicBpEvalCdCSS = "";
  88. var diastolicBpEvalCdCSS = "";
  89. var bloodOxySaturationEvalCdCSS = "";
  90. if(lists[i].pulseEvalCd == "H"){
  91. pulseEvalCdCSS = "background:#c2d4de;";
  92. } else if(lists[i].pulseEvalCd == "L"){
  93. pulseEvalCdCSS = "background:#e2b49a;";
  94. }
  95. if(lists[i].respirationEvalCd == "H"){
  96. respirationEvalCdCSS = "background:#c2d4de;";
  97. } else if(lists[i].respirationEvalCd == "L"){
  98. respirationEvalCdCSS = "background:#e2b49a;";
  99. }
  100. if(lists[i].bodyTemperatureEvalCd == "H"){
  101. bodyTemperatureEvalCdCSS = "background:#c2d4de;";
  102. } else if(lists[i].bodyTemperatureEvalCd == "L"){
  103. bodyTemperatureEvalCdCSS = "background:#e2b49a;";
  104. }
  105. if(lists[i].systolicBpEvalCd == "H"){
  106. systolicBpEvalCdCSS = "background:#c2d4de;";
  107. } else if(lists[i].systolicBpEvalCd == "L"){
  108. systolicBpEvalCdCSS = "background:#e2b49a;";
  109. }
  110. if(lists[i].diastolicBpEvalCd == "H"){
  111. diastolicBpEvalCdCSS = "background:#c2d4de;";
  112. } else if(lists[i].diastolicBpEvalCd == "L"){
  113. diastolicBpEvalCdCSS = "background:#e2b49a;";
  114. }
  115. if(lists[i].bloodOxySaturationEvalCd == "H"){
  116. bloodOxySaturationEvalCdCSS = "background:#c2d4de;";
  117. } else if(lists[i].bloodOxySaturationEvalCd == "L"){
  118. bloodOxySaturationEvalCdCSS = "background:#e2b49a;";
  119. }
  120. strDisplayTemp += "<div class=\"row list-group-item\" rowNo=\"" + i + "\" medicalRecordSeq=\"" + lists[i].medicalRecordSeq + "\" style=\"overflow: hidden; padding:0 0 0 0;\">"
  121. + " <div class=\"col-xs-12\" style=\"padding: 0px; align-items: center; display: flex;\">"
  122. + " <div id=\"vitalPTagSize" + i + "\" class=\"col-xs-3 text-center\" style=\"padding: 0px; border-right:1px solid #999999;\">" + ((moment(lists[i].executionDtTm , "YYYYMMDDHHmmss").format("YYYY-MM-DD HH:mm:ss") != "Invalid date") ? (moment(lists[i].executionDtTm , "YYYYMMDDHHmmss").format("MM-DD HH:mm")) : "-") + "</div>"
  123. + " <div class=\"col-xs-9 text-center\" style=\"padding: 0px\">"
  124. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + pulseEvalCdCSS + "border-right:1px solid #999999; color:red;\">" + ((lists[i].pulse != null ) ? lists[i].pulse : "") + "</div>"
  125. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + respirationEvalCdCSS + "border-right:1px solid #999999; color:green;\">" + ((lists[i].respiration != null ) ? lists[i].respiration : "") + "</div>"
  126. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + bodyTemperatureEvalCdCSS + "border-right:1px solid #999999; color:blue;\">" + ((lists[i].bodyTemperature != null ) ? lists[i].bodyTemperature : "") + "</div>"
  127. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + systolicBpEvalCdCSS + "border-right:1px solid #999999;\">" + ((lists[i].systolicBp != null ) ? lists[i].systolicBp : "") + "</div>"
  128. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + diastolicBpEvalCdCSS + "border-right:1px solid #999999;\">" + ((lists[i].diastolicBp != null ) ? lists[i].diastolicBp : "") + "</div>"
  129. + " <div class=\"col-xs-2 text-center vitalptag\" style=\"padding: 0px; " + bloodOxySaturationEvalCdCSS + "\">" + ((lists[i].bloodOxySaturation != null ) ? lists[i].bloodOxySaturation : "") + "</div>"
  130. + " </div>"
  131. + " </div>"
  132. + "</div>"
  133. ;
  134. //console.log( i + " : " + lists[i].deptNm);
  135. }
  136. $("#divVitalListRows").append(strDisplayTemp); // element 추가
  137. if($("#vitalPTagSize0") !== undefined && $("#vitalPTagSize0").height() != null){
  138. //P 사이즈 수정
  139. $(".vitalptag").height($("#vitalPTagSize0").height());
  140. //$(".vitalptag").css("padding-top",($("#vitalPTagSize0").height()/4));
  141. }
  142. //addEventSearchMediRecord(); // row click event 추가
  143. };
  144. var processSearchVitalListSum = function(lists){
  145. //header 초기화
  146. divVitalListSumHeaderChange();
  147. //console.log(JSON.stringify(lists));
  148. varResultLists = lists;
  149. var strDisplayTemp = "";
  150. $("#divVitalListRows").empty();
  151. for( var i = 0; i < lists.length; i++){
  152. strDisplayTemp += "<div class=\"row list-group-item\" rowNo=\"" + i + "\" medicalRecordSeq=\"" + lists[i].medicalRecordSeq + "\" style=\"overflow: hidden; padding:0 0 0 0;\">"
  153. + " <div id=\"vitalPlusPTagSize" + i + "\" class=\"col-xs-12\" style=\"padding: 0px; align-items: center; display: flex;\">"
  154. + " <div class=\"col-xs-3 text-center\" style=\"padding: 0px; border-right:1px solid #999999;\">" + lists[i].item + "</div>"
  155. + " <div class=\"col-xs-3 text-center\" style=\"padding: 0px; border-right:1px solid #999999;\">" + ((lists[i].total2DaysAgo != null ) ? lists[i].total2DaysAgo : "") + "</div>"
  156. + " <div class=\"col-xs-3 text-center\" style=\"padding: 0px; border-right:1px solid #999999;\">" + ((lists[i].total1DayAgo != null ) ? lists[i].total1DayAgo : "") + "</div>"
  157. + " <div class=\"col-xs-3 text-center\" style=\"padding: 0px;\">" + ((lists[i].totalBaseDay != null ) ? lists[i].totalBaseDay : "") + "</div>"
  158. + " </div>"
  159. + "</div>"
  160. ;
  161. //console.log( i + " : " + lists[i].deptNm);
  162. }
  163. $("#divVitalListRows").append(strDisplayTemp); // element 추가
  164. /*
  165. if($("#vitalPlusPTagSize0") !== undefined && $("#vitalPlusPTagSize0").height() != null){
  166. //P 사이즈 수정
  167. $(".vitalplusptag").height($("#vitalPlusPTagSize0").height());
  168. $(".vitalplusptag").css("padding-top",($("#vitalPlusPTagSize0").height()/4));
  169. }*/
  170. //addEventSearchMediRecord(); // row click event 추가
  171. };
  172. var initStartEndDate = function(){
  173. //오늘일자 로드
  174. var varToday = new Date();
  175. //일요일이면 차주 가져오기
  176. //다른 요일이면 해당 요일 처리
  177. /*
  178. $("#txtVitalListStartDt").val( moment(varToday).format("YYYY-MM-DD") );
  179. $("#txtVitalListEndDt").val( moment(varToday).format("YYYY-MM-DD") );
  180. */
  181. $("#txtVitalListEndDt").val( moment(varToday).format("YYYY-MM-DD") );
  182. $("#txtVitalListStartDt").val( moment().subtract(1, 'months').format("YYYY-MM-DD") );
  183. //I/O합계 일자
  184. $("#txtVitalListSumEndDt").val( moment(varToday).format("YYYY-MM-DD") );
  185. };
  186. //==== 초기화 설정 } ====
  187. //==== 이벤트 설정 { ====
  188. var addEvent = function(){
  189. //$("#btnLogout").on("click", function(){
  190. // logout();
  191. //});
  192. eventColumnClick();
  193. eventRowClick();
  194. eventConditionClick();
  195. };
  196. var eventConditionClick = function(){
  197. // 1일 버튼클릭
  198. $("#btnVitalListOneDaySearch").off('click'); // 기존 이벤트 해제
  199. $("#btnVitalListOneDaySearch").on('click', function(e){
  200. $("#txtVitalListStartDt").val( moment().subtract(1, 'days').format("YYYY-MM-DD") );
  201. searchVitallist();
  202. });
  203. /*
  204. // 3일 버튼클릭
  205. $("#btnVitalListThreeDaySearch").off('click'); // 기존 이벤트 해제
  206. $("#btnVitalListThreeDaySearch").on('click', function(e){
  207. var varSelDate = new Date($("#txtVitalListEndDt").val());
  208. varSelDate.setDate(varSelDate.getDate() - 2);
  209. $("#txtVitalListStartDt").val( moment(varSelDate).format("YYYY-MM-DD") );
  210. });
  211. // 1주 버튼클릭
  212. $("#btnVitalListOneWeekSearch").off('click'); // 기존 이벤트 해제
  213. $("#btnVitalListOneWeekSearch").on('click', function(e){
  214. var varSelDate = new Date($("#txtVitalListEndDt").val());
  215. varSelDate.setDate(varSelDate.getDate() - 6);
  216. $("#txtVitalListStartDt").val( moment(varSelDate).format("YYYY-MM-DD") );
  217. });
  218. */
  219. // 1달 버튼클릭
  220. $("#btnVitalListOneMonthSearch").off("click"); // 기존 이벤트 해제
  221. $("#btnVitalListOneMonthSearch").on("click", function(e){
  222. $("#txtVitalListStartDt").val( moment().subtract(1, 'months').format("YYYY-MM-DD") );
  223. searchVitallist();
  224. });
  225. // 3달 버튼클릭
  226. $("#btnVitalListThreeMonthSearch").off('click'); // 기존 이벤트 해제
  227. $("#btnVitalListThreeMonthSearch").on('click', function(e){
  228. $("#txtVitalListStartDt").val( moment().subtract(3, 'months').format("YYYY-MM-DD") );
  229. searchVitallist();
  230. });
  231. // 조회버튼
  232. $("#btnVitalListSearch").off('click'); // 기존 이벤트 해제
  233. $("#btnVitalListSearch").on('click', function(e){
  234. searchVitallist();
  235. });
  236. $("#sltVitalListSearch").off("change");
  237. $("#sltVitalListSearch").on("change", function(){
  238. searchVitallist();
  239. });
  240. };
  241. var divVitalListHeaderChange = function(){
  242. $(".divVitalListSumView").hide();
  243. $(".divVitalListView").show();
  244. var strDisplayTemp = "";
  245. $("#divVitalListResultHeader").empty();
  246. strDisplayTemp = "<div class=\"chart-title well\">"
  247. + "<div class=\"row\">"
  248. + " <div class=\"col-xs-3 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  249. + " <p>기록일시</p>"
  250. + " </div>"
  251. + " <div class=\"col-xs-9 text-center\" style=\"padding: 0px\">"
  252. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999; color:red;\">"
  253. + " <p>맥박</p>"
  254. + " </div>"
  255. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999; color:green;\">"
  256. + " <p>호흡</p>"
  257. + " </div>"
  258. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999; color:blue;\">"
  259. + " <p>체온</p>"
  260. + " </div>"
  261. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  262. + " <p>SBP</p>"
  263. + " </div>"
  264. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  265. + " <p>DBP</p>"
  266. + " </div>"
  267. + " <div class=\"col-xs-2 text-center\" style=\"padding: 4px 0px;\">"
  268. + " <p>SpO2</p>"
  269. + " </div>"
  270. + "</div>"
  271. + "</div>"
  272. + "</div>"
  273. ;
  274. $("#divVitalListResultHeader").append(strDisplayTemp);
  275. };
  276. var divVitalListSumHeaderChange = function(){
  277. $(".divVitalListView").hide();
  278. $(".divVitalListSumView").show();
  279. var strDisplayTemp = "";
  280. //날짜정보 확인
  281. var varVitalListSumEndDt = new Date($("#txtVitalListSumEndDt").val());
  282. varVitalListSumEndDt.setDate(varVitalListSumEndDt.getDate() - 2);
  283. $("#divVitalListResultHeader").empty();
  284. strDisplayTemp = "<div class=\"chart-title well\">"
  285. + "<div class=\"row\">"
  286. + " <div class=\"col-xs-3 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  287. + " <p>항목</p>"
  288. + " </div>"
  289. + " <div class=\"col-xs-3 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  290. + " <p>"+ moment(varVitalListSumEndDt).format("MM월 DD일") +"</p>"
  291. + " </div>";
  292. varVitalListSumEndDt.setDate(varVitalListSumEndDt.getDate() + 1);
  293. strDisplayTemp += " <div class=\"col-xs-3 text-center\" style=\"padding: 4px 0px; border-right:1px solid #999999;\">"
  294. + " <p>"+ moment(varVitalListSumEndDt).format("MM월 DD일") +"</p>"
  295. + " </div>";
  296. varVitalListSumEndDt.setDate(varVitalListSumEndDt.getDate() + 1);
  297. strDisplayTemp += " <div class=\"col-xs-3 text-center\" style=\"padding: 4px 0px; color:red;\">"
  298. + " <p>"+ moment(varVitalListSumEndDt).format("MM월 DD일") +"</p>"
  299. + " </div>"
  300. + " </div>"
  301. + "</div>"
  302. ;
  303. $("#divVitalListResultHeader").append(strDisplayTemp);
  304. };
  305. var eventColumnClick = function(){
  306. };
  307. var eventRowClick = function(){
  308. };
  309. //==== 이벤트 설정 } ====
  310. //==== 서비스 실행 { ====
  311. //==== 서비스 실행 { ====
  312. };