<?php $bp_dbp = array(); $bp_sbp = array(); $medical_date = array(); $sbp_new = array(); $dbp_new = array(); $query = "SELECT bp_sbp as sbp, date(appointment_date) as dat FROM employee_appointment where emp_id='$id'and bp_sbp != '' or bp_sbp !=0 UNION SELECT cf.checkup_form_value as sbp ,date(c.checkup_date) as dat from checkup_form c left join checkup_form_key_value cf on c.checkup_id=cf.checkup_form_id left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key where c.emp_id='$id' and (cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='sbp') or cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='sbp/dbp')) order by dat desc limit 25"; error_log("sbp query " . $query); $result = @mysqli_query($conn, $query); if (mysqli_num_rows($result) > 0) { while ($row = @mysqli_fetch_array($result)) { array_push($medical_date, $row[1]); $bp_arr = explode("/", $row[0]); error_log("size " . count($bp_arr)); if (count($bp_arr) > 1) { $bp_sbp['sbp'][$row[1]] = $bp_arr[0]; // array_push($bp_sbp, $bp_arr[0]); } else { $bp_sbp['sbp'][$row[1]] = $bp_arr[0]; // array_push($bp_sbp, $bp_arr[0]); } } } $query = "SELECT bp_dbp as dbp, date(appointment_date) as dat FROM employee_appointment where emp_id='$id'and bp_dbp != '' or bp_dbp !=0 UNION SELECT cf.checkup_form_value as dbp ,date(c.checkup_date) as dat from checkup_form c left join checkup_form_key_value cf on c.checkup_id=cf.checkup_form_id left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key where c.emp_id='$id' and (cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='dbp') or cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='sbp/dbp')) order by dat desc limit 25"; error_log("dbp query " . $query); $result = @mysqli_query($conn, $query); if (mysqli_num_rows($result) > 0) { while ($row = @mysqli_fetch_array($result)) { array_push($medical_date, $row[1]); $bp_arr = explode("/", $row[0]); error_log("size " . count($bp_arr)); if (count($bp_arr) > 1) { $bp_dbp['dbp'][$row[1]] = $bp_arr[1]; // array_push($bp_dbp, $bp_arr[1]); } else { $bp_dbp['dbp'][$row[1]] = $bp_arr[0]; // array_push($bp_dbp, $bp_arr[0]); } } } $medical_date = array_values(array_unique($medical_date)); for ($i = 0; $i < count($medical_date); $i++) { error_log("inside loop value" . $bp_sbp['sbp'][$medical_date[$i]]); error_log("inside loop value" . $bp_dbp['dbp'][$medical_date[$i]]); if ($bp_sbp['sbp'][$medical_date[$i]] == '') { array_push($sbp_new, 0); } else { array_push($sbp_new, $bp_sbp['sbp'][$medical_date[$i]]); } if ($bp_dbp['dbp'][$medical_date[$i]] == '') { array_push($dbp_new, 0); } else { array_push($dbp_new, $bp_dbp['dbp'][$medical_date[$i]]); } } error_log("final sbp " . print_r($sbp_new, true)); error_log("final dbp " . print_r($dbp_new, true)); ?> <script> var ctx = document.getElementById('patient_bp').getContext('2d'); var bp_dbp = [<?php echo join(',', $dbp_new); ?>]; var bp_sbp = [<?php echo join(',', $sbp_new); ?>]; var xaxis = [<?php echo json_encode($medical_date); ?>]; function formatDateBP(input) { var datePart = input.match(/\d+/g), year = datePart[0], month = datePart[1], day = datePart[2]; return day + '-' + month + '-' + year; } for (let i = 0; i < xaxis[0].length; i++) { xaxis[0][i] = formatDateBP(xaxis[0][i]); } var myChart = new Chart(ctx, { type: 'line', options: { title: { display: true, text: "BP Graph" }, legend: { position: "bottom" }, scales: { yAxes: [{ ticks: { precision: 0 } }] } }, data: { labels: xaxis[0], datasets: [{ data: bp_dbp, label: "DBP", borderColor: "#d45087", backgroundColor: "#d45087", fill: false, pointBackgroundColor: function(context) { var index = context.dataIndex; var value = context.dataset.data[index]; return value < 85 ? 'red' : // draw negative values in red index % 2 ? 'blue' : // else, alternate values in blue and green 'green'; } }, { data: bp_sbp, label: "SBP", borderColor: "#ff7c43", backgroundColor: "#ffa500", fill: false, pointBackgroundColor: function(context) { var index = context.dataIndex; var value = context.dataset.data[index]; return value < 124 ? 'red' : // draw negative values in red index % 2 ? 'blue' : // else, alternate values in blue and green 'green'; } }] }, }); </script>