ESH/chart_employee_blood_pressure.php

158 lines
5.1 KiB
PHP
Raw Normal View History

2024-10-23 18:28:06 +05:30
<?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 != ''
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 ".sizeof($bp_arr));
if(sizeof($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 != ''
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 1 ".$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 ".sizeof($bp_arr));
if(sizeof($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 < sizeof($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>