|
@@ -8,6 +8,39 @@
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"></script>
|
|
|
<script>
|
|
|
|
|
|
+var PHR_VALUE_DEFAULT = {
|
|
|
+ TEMPERATURE: {
|
|
|
+ VALUE: 36.5,
|
|
|
+ MIN: 20,
|
|
|
+ MAX: 50
|
|
|
+ },
|
|
|
+ BLOOD_PRESSURE_SYSTOLIC: {
|
|
|
+ VALUE: 120,
|
|
|
+ MIN: 50,
|
|
|
+ MAX: 250
|
|
|
+ },
|
|
|
+ BLOOD_PRESSURE_DIASTOLIC: {
|
|
|
+ VALUE: 80,
|
|
|
+ MIN: 20,
|
|
|
+ MAX: 160
|
|
|
+ },
|
|
|
+ OXYGEN_SATURATION: {
|
|
|
+ VALUE: 95,
|
|
|
+ MIN: 60,
|
|
|
+ MAX: 100
|
|
|
+ },
|
|
|
+ PULSE_RATE: {
|
|
|
+ VALUE: 65,
|
|
|
+ MIN: 30,
|
|
|
+ MAX: 200
|
|
|
+ },
|
|
|
+ BLOOD_SUGAR: {
|
|
|
+ VALUE: 120,
|
|
|
+ MIN: 10,
|
|
|
+ MAX: 600
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
function dateFormatter(date) {
|
|
|
return moment(date).format("YYYY-MM-DD HH:mm:ss");
|
|
|
}
|
|
@@ -43,6 +76,52 @@ function nonFaceStart() {
|
|
|
/*
|
|
|
* 건강정보이력 탭 처리
|
|
|
*/
|
|
|
+
|
|
|
+function checkValidForPhrData(phrType, phrValue) {
|
|
|
+
|
|
|
+ var errorMessage = null;
|
|
|
+
|
|
|
+ var errorMessagePrefix = null;
|
|
|
+ var phrValueDefault = null;
|
|
|
+
|
|
|
+ if (phrType === "temperature") {
|
|
|
+ errorMessagePrefix = "체온을";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.TEMPERATURE;
|
|
|
+ }
|
|
|
+ else if (phrType === "bloodPressureSystolic") {
|
|
|
+ errorMessagePrefix = "수축기 혈압을";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.BLOOD_PRESSURE_SYSTOLIC;
|
|
|
+ }
|
|
|
+ else if (phrType === "bloodPressureDiastolic") {
|
|
|
+ errorMessagePrefix = "이완기 혈압을";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.BLOOD_PRESSURE_DIASTOLIC;
|
|
|
+ }
|
|
|
+ else if (phrType === "oxygenSaturation") {
|
|
|
+ errorMessagePrefix = "산소포화도를";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.OXYGEN_SATURATION;
|
|
|
+ }
|
|
|
+ else if (phrType === "pulseRate") {
|
|
|
+ errorMessagePrefix = "맥박을";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.PULSE_RATE;
|
|
|
+ }
|
|
|
+ else if (phrType === "bloodSugar") {
|
|
|
+ errorMessagePrefix = "혈당을";
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.BLOOD_SUGAR;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 널 체크, 숫자 체크, 최대/최소 체크
|
|
|
+ if (!phrValue || phrValue.length === 0) {
|
|
|
+ errorMessage = errorMessagePrefix+" 입력해 주세요.";
|
|
|
+ }
|
|
|
+ else if (isNaN(phrValue)) {
|
|
|
+ errorMessage = errorMessagePrefix+" 숫자로 입력해 주세요.";
|
|
|
+ }
|
|
|
+ else if (phrValue < phrValueDefault.MIN || phrValue > phrValueDefault.MAX) {
|
|
|
+ errorMessage = errorMessagePrefix+" "+phrValueDefault.MIN+"~"+phrValueDefault.MAX+" 범위 내로 입력해 주세요.";
|
|
|
+ }
|
|
|
+
|
|
|
+ return errorMessage;
|
|
|
+}
|
|
|
|
|
|
function handlePhrData() {
|
|
|
var phrType = $("#phrTypeSelect option:selected").val();
|
|
@@ -51,31 +130,55 @@ function handlePhrData() {
|
|
|
phrValueSystolic = $("#phrValueSystolic").val();
|
|
|
phrValueDiastolic = $("#phrValueDiastolic").val();
|
|
|
|
|
|
- if (!phrValueSystolic || phrValueSystolic.length === 0) {
|
|
|
- alert("수축기 혈압을 입력해 주세요.");
|
|
|
+ // 유효성 체크
|
|
|
+ var errorMessage = checkValidForPhrData("bloodPressureSystolic", phrValueSystolic);
|
|
|
+ if (errorMessage) {
|
|
|
+ alert(errorMessage);
|
|
|
+ $("#phrValueSystolic").focus();
|
|
|
return;
|
|
|
}
|
|
|
- if (!phrValueDiastolic || phrValueDiastolic.length === 0) {
|
|
|
- alert("이완기 혈압을 입력해 주세요.");
|
|
|
+
|
|
|
+ errorMessage = checkValidForPhrData("bloodPressureDiastolic", phrValueDiastolic);
|
|
|
+ if (errorMessage) {
|
|
|
+ alert(errorMessage);
|
|
|
+ $("#phrValueDiastolic").focus();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ // 저장 진행
|
|
|
createPhrData(${patientIdx}, "bloodPressure", phrValueSystolic, phrValueDiastolic);
|
|
|
|
|
|
- $("#phrValueSystolic").val("");
|
|
|
- $("#phrValueDiastolic").val("");
|
|
|
+ $("#phrValueSystolic").val(PHR_VALUE_DEFAULT.BLOOD_PRESSURE_SYSTOLIC.VALUE);
|
|
|
+ $("#phrValueDiastolic").val(PHR_VALUE_DEFAULT.BLOOD_PRESSURE_DIASTOLIC.VALUE);
|
|
|
}
|
|
|
else {
|
|
|
phrValue = $("#phrValue").val();
|
|
|
|
|
|
- if (!phrValue || phrValue.length === 0) {
|
|
|
- alert("값을 입력해 주세요.");
|
|
|
+ // 유효성 체크
|
|
|
+ var errorMessage = checkValidForPhrData(phrType, phrValue);
|
|
|
+ if (errorMessage) {
|
|
|
+ alert(errorMessage);
|
|
|
+ $("#phrValue").focus();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ // 저장 진행
|
|
|
createPhrData(${patientIdx}, phrType, phrValue);
|
|
|
|
|
|
- $("#phrValue").val("");
|
|
|
+ var phrValueDefault = "";
|
|
|
+ if (phrType === "temperature") {
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.TEMPERATURE;
|
|
|
+ }
|
|
|
+ else if (phrType === "oxygenSaturation") {
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.OXYGEN_SATURATION;
|
|
|
+ }
|
|
|
+ else if (phrType === "pulseRate") {
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.PULSE_RATE;
|
|
|
+ }
|
|
|
+ else if (phrType === "bloodSugar") {
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.BLOOD_SUGAR;
|
|
|
+ }
|
|
|
+ $("#phrValue").val(phrValueDefault);
|
|
|
}
|
|
|
|
|
|
$("#defaultModalPrimary_1").modal("hide");
|
|
@@ -470,44 +573,51 @@ $(document).ready(function() {
|
|
|
$(document).on('click','[data-target="#defaultModalPrimary_1"]',function(){
|
|
|
var selectData = $('#phrTypeSelect').find('option:selected').val();
|
|
|
var healthInfoHTML = '';
|
|
|
+ var phrValueDefault = null;
|
|
|
if(selectData == 'temperature'){
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.TEMPERATURE;
|
|
|
healthInfoHTML += '<th>체온</th>';
|
|
|
healthInfoHTML += '<td>';
|
|
|
healthInfoHTML += ' <div class="form-group mb-xl-0">';
|
|
|
- healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="체온 입력" value="36.5" step="0.1">';
|
|
|
+ healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="체온 입력" min="'+phrValueDefault.MIN+'" max="'+phrValueDefault.MAX+'" value="'+phrValueDefault.VALUE+'" step="0.1">';
|
|
|
healthInfoHTML += ' </div>';
|
|
|
healthInfoHTML += '</td>';
|
|
|
}
|
|
|
else if(selectData == 'bloodPressure'){
|
|
|
+ phrValueDefault1 = PHR_VALUE_DEFAULT.BLOOD_PRESSURE_SYSTOLIC;
|
|
|
+ phrValueDefault2 = PHR_VALUE_DEFAULT.BLOOD_PRESSURE_DIASTOLIC;
|
|
|
healthInfoHTML += '<th>혈압</th>';
|
|
|
healthInfoHTML += '<td>';
|
|
|
healthInfoHTML += ' <div class="form-group mb-xl-0">';
|
|
|
- healthInfoHTML += ' <input id="phrValueSystolic" class="form-control mb-2" type="number" placeholder="수축기 혈압 입력" value="120">';
|
|
|
- healthInfoHTML += ' <input id="phrValueDiastolic" class="form-control mb-2" type="number" placeholder="이완기 혈압 입력" value="80">';
|
|
|
+ healthInfoHTML += ' <input id="phrValueSystolic" class="form-control mb-2" type="number" placeholder="수축기 혈압 입력" min="'+phrValueDefault1.MIN+'" max="'+phrValueDefault1.MAX+'" value="'+phrValueDefault1.VALUE+'">';
|
|
|
+ healthInfoHTML += ' <input id="phrValueDiastolic" class="form-control mb-2" type="number" placeholder="이완기 혈압 입력" min="'+phrValueDefault2.MIN+'" max="'+phrValueDefault2.MAX+'" value="'+phrValueDefault2.VALUE+'">';
|
|
|
healthInfoHTML += ' </div>';
|
|
|
healthInfoHTML += '</td>';
|
|
|
}
|
|
|
else if(selectData == 'pulseRate'){
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.PULSE_RATE;
|
|
|
healthInfoHTML += '<th>맥박</th>';
|
|
|
healthInfoHTML += '<td>';
|
|
|
healthInfoHTML += ' <div class="form-group mb-xl-0">';
|
|
|
- healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="맥박 입력" value="65">';
|
|
|
+ healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="맥박 입력"min="'+phrValueDefault.MIN+'" max="'+phrValueDefault.MAX+'" value="'+phrValueDefault.VALUE+'">';
|
|
|
healthInfoHTML += ' </div>';
|
|
|
healthInfoHTML += '</td>';
|
|
|
}
|
|
|
else if(selectData == 'oxygenSaturation'){
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.OXYGEN_SATURATION;
|
|
|
healthInfoHTML += '<th>산소포화도</th>';
|
|
|
healthInfoHTML += '<td>';
|
|
|
healthInfoHTML += ' <div class="form-group mb-xl-0">';
|
|
|
- healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="산소포화도 입력" value="95">';
|
|
|
+ healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="산소포화도 입력" min="'+phrValueDefault.MIN+'" max="'+phrValueDefault.MAX+'" value="'+phrValueDefault.VALUE+'">';
|
|
|
healthInfoHTML += ' </div>';
|
|
|
healthInfoHTML += '</td>';
|
|
|
}
|
|
|
else if(selectData == 'bloodSugar'){
|
|
|
+ phrValueDefault = PHR_VALUE_DEFAULT.BLOOD_SUGAR;
|
|
|
healthInfoHTML += '<th>혈당</th>';
|
|
|
healthInfoHTML += '<td>';
|
|
|
healthInfoHTML += ' <div class="form-group mb-xl-0">';
|
|
|
- healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="혈당 입력" value="120"">';
|
|
|
+ healthInfoHTML += ' <input id="phrValue" class="form-control" type="number" placeholder="혈당 입력" min="'+phrValueDefault.MIN+'" max="'+phrValueDefault.MAX+'" value="'+phrValueDefault.VALUE+'"">';
|
|
|
healthInfoHTML += ' </div>';
|
|
|
healthInfoHTML += '</td>';
|
|
|
}
|