ESH/chart_OSI_weekly_report.php
2024-10-23 18:28:06 +05:30

119 lines
3.0 KiB
PHP

<?php
$sickness=array();
$opd=array();
$injury=array();
$xaxis = array();
for($i=6; $i>=0; $i--){
$query="SELECT COUNT(appointment_id),DATE(NOW()-INTERVAL $i DAY) FROM employee_appointment employee_appointment WHERE DATE(appointment_date) = date(NOW()-INTERVAL $i DAY) AND APPOINTMENT_TYPE='O'; ";
// echo $query;
if (!$result = @mysqli_query($conn,$query)) {
exit(mysqli_error($conn));
}
if(mysqli_num_rows($result) > 0) {
while ($row = @mysqli_fetch_array($result)) {
array_push($xaxis,$row[1]);
array_push($opd,$row[0]);
}
} else {
echo '0';
}
}
for($i=6; $i>=0; $i--){
$query="SELECT COUNT(appointment_id) FROM employee_appointment WHERE DATE(appointment_date) = date(NOW()-INTERVAL $i DAY) AND APPOINTMENT_TYPE='I'; ";
// echo $query;
if (!$result = @mysqli_query($conn,$query)) {
exit(mysqli_error($conn));
}
if(mysqli_num_rows($result) > 0) {
while ($row = @mysqli_fetch_array($result)) {
array_push($injury,$row[0]);
}
} else {
echo '0';
}
}
for($i=6; $i>=0; $i--){
$query="SELECT COUNT(sickness_id) FROM sickness WHERE DATE(sickness_date) = date(NOW()-INTERVAL $i DAY); ";
// echo $query;
if (!$result = @mysqli_query($conn,$query)) {
exit(mysqli_error($conn));
}
if(mysqli_num_rows($result) > 0) {
while ($row = @mysqli_fetch_array($result)) {
array_push($sickness,$row[0]);
}
} else {
echo '0';
}
}
// print_r($xaxis);
// print_r($injury);
// print_r($sickness);
?>
<script>
var ctx = document.getElementById('patienDetailsChart').getContext('2d');
var opd = [<?php echo join(',',$opd); ?>];
var injury = [<?php echo join(',',$injury); ?>];
var sickness = [<?php echo join(',',$sickness); ?>];
var xaxis = [<?php echo json_encode($xaxis); ?>];
function formatDate (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 < 7; i++) {
xaxis[0][i] = formatDate (xaxis[0][i]);
}
var myChart = new Chart(ctx, {
type: 'line',
options: {
title:{
display: true,
text: "OSI Weekly Report"
},
legend:{
position:"bottom"
},
scales: {
yAxes: [{
ticks: {
precision: 0
}
}]
}
},
data: {
labels: xaxis[0],
datasets: [{
data: opd,
label: "OPD",
borderColor: "#3e95cd",
backgroundColor: "#7bb6dd",
fill: false,
}, {
data: injury,
label: "Injury",
borderColor: "#3cba9f",
backgroundColor: "#71d1bd",
fill: false,
}, {
data: sickness,
label: "Sickness",
borderColor: "#ffa500",
backgroundColor:"#ffc04d",
fill: false,
}
]
},
});
</script>