health2.jsp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  3. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  4. <jsp:include page="${data._INCLUDE}/header.jsp"></jsp:include>
  5. <script type="text/javascript" src="/resources/js/mobile/health.js"></script>
  6. <script>
  7. $.validator.addMethod( "rangePulseRate", function( value, element ) {
  8. var result = true;
  9. if( value > 999 || value < 0 ) {
  10. result = false;
  11. }
  12. return this.optional(element) || result;
  13. }, "맥박수는 [0 ~ 999] 사이의 숫자만 입력해주세요" );
  14. $.validator.addMethod( "rangeBloodPressure", function( value, element ) {
  15. var result = true;
  16. if( value > 999 || value < 0 ) {
  17. result = false;
  18. }
  19. return this.optional(element) || result;
  20. }, "혈압은 [0 ~ 999] 사이의 숫자만 입력해주세요" );
  21. $( function(){
  22. $( "#healthForm" ).validate({
  23. rules : {
  24. pulseRate : {
  25. floatNum : true,
  26. floatNumOne : true,
  27. rangePulseRate : true
  28. },
  29. bloodPressure : {
  30. floatNum : true,
  31. floatNumOne : true,
  32. rangeBloodPressure : true
  33. },
  34. bloodPressure2 : {
  35. floatNum : true,
  36. floatNumOne : true,
  37. rangeBloodPressure : true
  38. }
  39. },
  40. onkeyup: function( element, event ) {
  41. // $( "div.error-msg" ).text( "" );
  42. $( element ).valid();
  43. },
  44. onfocusout: function (element) {
  45. // $( "div.error-msg" ).text( "" );
  46. $( element ).valid();
  47. },
  48. errorPlacement: function(error, element) {
  49. $( "div.error-msg" ).empty().append( error );
  50. },
  51. submitHandler: function(form) {
  52. /*
  53. * 혈압과 맥박은 둘중 하나만 입력하면 입력한 항목은 입력되도록 처리 (둘중하나만 입력하거나, 모두입력하거나)
  54. */
  55. $( "div.error-msg" ).text( "" );
  56. //맥박수
  57. var pulseRate = $.trim( $( "input[name='pulseRate']" ).val() );
  58. //혈압
  59. var bloodPressure = $.trim( $( "input[name='bloodPressure']" ).val() );
  60. var bloodPressure2 = $.trim( $( "input[name='bloodPressure2']" ).val() );
  61. var flag = true;
  62. //혈압
  63. if( pulseRate.length == 0 && bloodPressure.length == 0 && bloodPressure.length == 0 ) {
  64. $( "div.error-msg" ).text( "혈압과 맥박수를 입력해주세요 (Please enter your blood pressure and heart rate)" );
  65. flag = false;
  66. }
  67. // if( pulseRate.length == 0 ) {
  68. // $( "div.error-msg" ).text( "맥박수를 입력해주세요 (Please enter your heart rate)" );
  69. // } else if( bloodPressure.length == 0 ) {
  70. // $( "div.error-msg" ).text( "수축기 혈압을 입력해주세요 (Please enter your systolic blood pressure)" );
  71. // } else if( bloodPressure2.length == 0 ) {
  72. // $( "div.error-msg" ).text( "이완기 혈압을 입력해주세요 (Please enter your diastole blood pressure)" );
  73. // }
  74. $( "#phrValue" ).val( "" );
  75. $( "#phrValueAnother1" ).val( "" );
  76. $( "#phrValueAnother2" ).val( "" );
  77. $( "#phrType" ).val( "" );
  78. $( "#phrTypeAnother" ).val( "" );
  79. $( "#phrTypeAnother2" ).val( "" );
  80. if( pulseRate.length > 0 ) {
  81. $( "#phrType" ).val( "pulseRate" );
  82. $( "#phrValue" ).val( pulseRate );
  83. }
  84. if( bloodPressure.length > 0 ) {
  85. if( bloodPressure2.length == 0 ){
  86. $( "div.error-msg" ).text( "이완기 혈압을 입력해주세요 (Please enter your diastole blood pressure)" );
  87. flag = false;
  88. } else {
  89. $( "#phrValueAnother" ).val( bloodPressure );
  90. }
  91. }
  92. if( bloodPressure2.length > 0 ) {
  93. if( bloodPressure.length == 0 ) {
  94. $( "div.error-msg" ).text( "수축기 혈압을 입력해주세요 (Please enter your systolic blood pressure)" );
  95. flag = false;
  96. } else {
  97. $( "#phrValueAnother2" ).val( bloodPressure2 );
  98. }
  99. }
  100. if( bloodPressure.length > 0 && bloodPressure2.length > 0 ){
  101. if( Number( bloodPressure2 ) >= Number( bloodPressure ) ) {
  102. $( "div.error-msg" ).text( "수축기 혈압값은 이완기 혈압값 보다 높아야합니다 (The systolic blood pressure value must be higher than the diastolic blood pressure value)" );
  103. flag = false;
  104. }
  105. $( "#phrTypeAnother" ).val( "bloodPressure" );
  106. }
  107. if( flag ){
  108. $( "button[type='submit'].confirm" ).prop( "disabled", true ).css("background", "#DBDBDB");
  109. form.submit();
  110. }
  111. }
  112. });
  113. })
  114. /*
  115. * 블루투스 기기연동 이벤트 처리를 위한 변수 정의
  116. * 공통 이벤트 처리는 -> health.js
  117. */
  118. var phrLocalStorageName = "bluetoothHealth2";
  119. var phrCallBackType = "bloodpressure";
  120. </script>
  121. <style>
  122. /* Rounded sliders */
  123. .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; -webkit-transition: .4s; transition: .4s;}
  124. .slider:before { position: absolute; content: ""; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; -webkit-transition: .4s; transition: .4s;}
  125. input:checked + .slider { background-color: #2196F3;}
  126. input:focus + .slider { box-shadow: 0 0 1px #2196F3;}
  127. input:checked + .slider:before { -webkit-transform: translateX(26px); -ms-transform: translateX(26px); transform: translateX(26px);}
  128. .slider.round {border-radius: 34px;}
  129. .slider.round:before {border-radius: 50%;}
  130. div.bluetooth{font-size:18px;font-weight:600;padding:20px 0;border-bottom:1px solid #dddddd;text-align:center;}
  131. div.bluetooth .switch {position: relative;display: inline-block;width: 60px;height: 34px;margin:0 10px;}
  132. div.bluetooth .switch input {opacity: 0;width: 0;height: 0;}
  133. div.bluetooth span.insert-type{cursor:pointer;vertical-align:middle;font-weight:600;}
  134. div.bluetooth span.readonly{color:#999999;font-weight:500;}
  135. .examination .history {text-align: center;
  136. padding-bottom: 15px;
  137. border-bottom: 1px solid #ddd;
  138. margin-top: 15px;}
  139. .examination .history a {padding: 10px 15px}
  140. </style>
  141. </head>
  142. <body>
  143. <div id="sub">
  144. <div class="container">
  145. <div class="header">
  146. <div class="previous">
  147. <a href="/mobile/menu">이전</a>
  148. </div>
  149. <div class="title">건강정보기록</div>
  150. </div>
  151. <div class="device_tab">
  152. <ul>
  153. <li>
  154. <a href="./1" class="one">체온<span class="eng">body temperature</span></a>
  155. </li>
  156. <li>
  157. <a href="./2" class="two active">혈압/맥박수<span class="eng">blood pressure/heart rate</span></a>
  158. </li>
  159. <li>
  160. <a href="./3" class="three">산소포화도<span class="eng">oxygen</span></a>
  161. </li>
  162. <li>
  163. <a href="./4" class="four">혈당<span class="eng">blood sugar</span></a>
  164. </li>
  165. <li>
  166. <a href="./5" class="five">임상증상<span class="eng">symptom</span></a>
  167. </li>
  168. </ul>
  169. </div>
  170. <div id="bluetoothBtn" class="examination">
  171. <div class="history">
  172. <a href="javascript:;" onclick="phrValue( 'getPhrValue', phrCallBackType );">블루투스 기기 연동</a>
  173. </div>
  174. </div>
  175. <!-- <div class="bluetooth"> -->
  176. <!-- <span class="insert-type direct">직접입력</span> -->
  177. <!-- <label class="switch"> -->
  178. <!-- <input type="checkbox" class="checkbt" id="bluetooth-checkbox"> -->
  179. <!-- <span class="slider round"></span> -->
  180. <!-- </label> -->
  181. <!-- <span class="insert-type device">기기연동</span> -->
  182. <!-- </div> -->
  183. <form id="healthForm" method="post" action="./insert">
  184. <div class="health">
  185. <div class="part">
  186. <div class="title">날짜(Date)</div>
  187. <div class="input day">
  188. <!-- <a href="javascript:;" data-popup-open="popup-calendar">d</a> -->
  189. <input type="text" class="datePicker form-control" placeholder="현재 날짜" readonly>
  190. </div>
  191. </div>
  192. <div class="part">
  193. <div class="title">측정시간(Time)</div>
  194. <div class="input time">
  195. <!-- <a href="javascript:;" data-popup-open="popup-time">d</a> -->
  196. <input type="text" class="timePicker" placeholder="현재 시간" readonly>
  197. </div>
  198. </div>
  199. <div class="part tac mt30">
  200. <div class="title">혈압과 맥박수를 입력해주세요</div>
  201. <div class="title">(Please enter your blood pressure and heart rate)</div>
  202. <div class="input time">
  203. </div>
  204. </div>
  205. <div class="data link">
  206. <div class="table">
  207. <table>
  208. <thead>
  209. <tr>
  210. <th>수축기/최고 혈압</br>(Systolic)</th>
  211. <th>이완기/최저 혈압</br>(Diastole)</th>
  212. </tr>
  213. </thead>
  214. <tbody>
  215. <tr>
  216. <td><input type="number" name="bloodPressure" placeholder="--"><span class="mini">mmHg</span></td>
  217. <td><input type="number" name="bloodPressure2" placeholder="--"><span class="mini">mmHg</span></td>
  218. </tr>
  219. </tbody>
  220. </table>
  221. </div>
  222. <div class="point">
  223. <div style="font-size:13px;color:#8EB8FF;font-weight:600;">맥박수 (heart rate)</div>
  224. <input type="number" name="pulseRate" placeholder="--"><span class="mini">bpm</span>
  225. </div>
  226. </div>
  227. <div class="error-msg tac mt20 error"></div>
  228. </div>
  229. <div class="btn_group">
  230. <ul>
  231. <li>
  232. <!-- 맥박 pulseRate -->
  233. <input type="hidden" id="phrType" name="phrType" value="">
  234. <input type="hidden" id="phrValue" name="phrValue" value="">
  235. <!-- 혈압 bloodPressure -->
  236. <input type="hidden" id="phrTypeAnother" name="phrTypeAnother" value="">
  237. <input type="hidden" id="phrValueAnother" name="phrValueAnother" value="">
  238. <input type="hidden" id="phrValueAnother2" name="phrValueAnother2" value="">
  239. <button type="submit" class="confirm"><span class="check">기록하기(Submit)</span></button>
  240. </li>
  241. </ul>
  242. </div>
  243. </form>
  244. </div>
  245. </div>
  246. </body>
  247. </html>