250 lines
13 KiB
PHP
250 lines
13 KiB
PHP
|
<?php
|
||
|
include('includes/config/config.php');
|
||
|
include('includes/functions.php');
|
||
|
include('log_entry.php');
|
||
|
error_reporting(E_ERROR | E_PARSE);
|
||
|
error_log("inside abnormality category wise distribution");
|
||
|
// $year = implode(',', $_REQUEST['year']);
|
||
|
$year2 = $_REQUEST['year'];
|
||
|
// $year1 = explode(',', $year);
|
||
|
$qry_filter = "";
|
||
|
$query_date = "";
|
||
|
|
||
|
$start_date = $_REQUEST['startDate'];
|
||
|
$end_date = $_REQUEST['endDate'];
|
||
|
|
||
|
|
||
|
$ohc_id = $_REQUEST['ohc'];
|
||
|
|
||
|
error_log("ohc id " . $ohc_id);
|
||
|
|
||
|
if (isset($ohc_id) && $ohc_id != '') {
|
||
|
$qry_filter .= " and ohc_type_id = '" . $ohc_id . "' ";
|
||
|
}
|
||
|
|
||
|
if (isset($start_date) && $start_date != '') {
|
||
|
$qry_date .= " and date(checkup_date) >=str_to_date('" . $start_date . "','%d-%m-%Y') ";
|
||
|
}
|
||
|
if (isset($end_date) && $end_date != '') {
|
||
|
$qry_date .= " and date(checkup_date) <=str_to_date('" . $end_date . "','%d-%m-%Y') ";
|
||
|
}
|
||
|
|
||
|
|
||
|
$abnormality_id = $_POST['abnormality_type'];
|
||
|
$abnormality_name = getFieldFromTable('abnormality_name', 'abnormality', 'abnormality_id', $abnormality_id);
|
||
|
if (isset($year2) && $year2 != '') {
|
||
|
$qry_filter .= " and year(checkup_date) ='" . $year2 . "'";
|
||
|
}
|
||
|
|
||
|
|
||
|
// selecting different age groups
|
||
|
$query_age_part = "";
|
||
|
$data_age_bmi = [];
|
||
|
$data_gender_bmi = [];
|
||
|
$data_age_bmiwise_total = [];
|
||
|
$data_gender_bmi_total = [];
|
||
|
|
||
|
$query_age = "select * from rule_age_range";
|
||
|
|
||
|
if (!$result_age = mysqli_query($conn, $query_age)) {
|
||
|
error_log("error in age range query for bmi " . $query_age . " query " . $query_age);
|
||
|
} else {
|
||
|
while ($row_age = mysqli_fetch_assoc($result_age)) {
|
||
|
$start_age = $row_age['rule_age_start'];
|
||
|
$end_age = $row_age['rule_age_end'];
|
||
|
if ($end_age == 0) {
|
||
|
$start_age = $row_age['rule_age_start'];
|
||
|
$query_age_part = "year(CURDATE())-year(dob)>='" . $start_age . "'";
|
||
|
} else {
|
||
|
$query_age_part = "year(CURDATE())-year(dob)>='" . $start_age . "' and year(CURDATE())-year(dob)<'" . $end_age . "'";
|
||
|
}
|
||
|
|
||
|
$query = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value<25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and $query_age_part order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table );
|
||
|
";
|
||
|
|
||
|
error_log("query for abnormality count bmi < 25" . $query);
|
||
|
if (!$result = mysqli_query($conn, $query)) {
|
||
|
error_log("error " . mysqli_error($conn) . " query " . $query);
|
||
|
} else {
|
||
|
$count = mysqli_num_rows($result);
|
||
|
if ($count > 0) {
|
||
|
$data_age_bmi['bmi<25'][$abnormality_id][$start_age] = $count;
|
||
|
} else {
|
||
|
$data_age_bmi['bmi<25'][$abnormality_id][$start_age] = 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
$query2 = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value>=25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and $query_age_part order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table );
|
||
|
";
|
||
|
|
||
|
error_log("query for abnormality count bmi >= 25 " . $query2);
|
||
|
if (!$result2 = mysqli_query($conn, $query2)) {
|
||
|
error_log("error " . mysqli_error($conn) . " query2 " . $query2);
|
||
|
} else {
|
||
|
$count = mysqli_num_rows($result2);
|
||
|
if ($count > 0) {
|
||
|
$data_age_bmi['bmi>=25'][$abnormality_id][$start_age] = $count;
|
||
|
} else {
|
||
|
$data_age_bmi['bmi>=25'][$abnormality_id][$start_age] = 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
// for gender distribution
|
||
|
// for bmi < 25
|
||
|
$query_gender = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value<25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and gender='M' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table )";
|
||
|
|
||
|
if (!$result_gender = mysqli_query($conn, $query_gender)) {
|
||
|
error_log("error in query for male count bmi < 25 " . mysqli_error($conn));
|
||
|
}
|
||
|
$count = mysqli_num_rows($result_gender);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi['bmi<25'][$abnormality_id]['male'] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi['bmi<25'][$abnormality_id]['male'] = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
error_log("query for male count bmi < 25" . $query_gender);
|
||
|
|
||
|
|
||
|
$query_gender_2 = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value>=25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and gender='M' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table )";
|
||
|
|
||
|
if (!$result_gender_2 = mysqli_query($conn, $query_gender_2)) {
|
||
|
error_log("error in query for male count bmi >= 25 " . mysqli_error($conn));
|
||
|
}
|
||
|
$count = mysqli_num_rows($result_gender_2);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi['bmi>=25'][$abnormality_id]['male'] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi['bmi>=25'][$abnormality_id]['male'] = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
$query_gender_female = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value<25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and gender='F' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table )";
|
||
|
|
||
|
if (!$result_gender_female = mysqli_query($conn, $query_gender_female)) {
|
||
|
error_log("error in female count query bmi < 25 " . mysqli_error($conn));
|
||
|
}
|
||
|
$count = mysqli_num_rows($result_gender_female);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi['bmi<25'][$abnormality_id]['female'] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi['bmi<25'][$abnormality_id]['female'] = 0;
|
||
|
}
|
||
|
|
||
|
error_log("query for female count bmi < 25" . $query2);
|
||
|
|
||
|
|
||
|
|
||
|
$query_gender_female_2 = "select distinct(cf.checkup_form_id),cf.* from checkup_form_key_value cf left join checkup_parameter cp on cp.`column_name` = cf.checkup_form_key
|
||
|
where cp.key_health_map_name=(select key_param_id from key_health_reportable_parameter_master where key_param_name='bmi')
|
||
|
and cf.checkup_form_value>=25 and cf.checkup_form_value!='' and cf.checkup_form_id in (select new_table.id from (select max(checkup_id) as id from checkup_form where emp_id in
|
||
|
(select id from patient_master where status='Active' and gender='F' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id) as new_table )";
|
||
|
|
||
|
if (!$result_gender_female_2 = mysqli_query($conn, $query_gender_female_2)) {
|
||
|
error_log("error in female count query bmi >= 25 " . mysqli_error($conn));
|
||
|
}
|
||
|
$count = mysqli_num_rows($result_gender_female_2);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi['bmi>=25'][$abnormality_id]['female'] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi['bmi>=25'][$abnormality_id]['female'] = 0;
|
||
|
}
|
||
|
|
||
|
error_log("query for female count bmi >= 25" . $query2);
|
||
|
|
||
|
|
||
|
$query_age = "select * from rule_age_range";
|
||
|
|
||
|
if (!$result_age = mysqli_query($conn, $query_age)) {
|
||
|
error_log("error in age range query " . $query_age . " query " . $query_age);
|
||
|
} else {
|
||
|
while ($row_age = mysqli_fetch_assoc($result_age)) {
|
||
|
$start_age = $row_age['rule_age_start'];
|
||
|
$end_age = $row_age['rule_age_end'];
|
||
|
if ($end_age == 0) {
|
||
|
$start_age = $row_age['rule_age_start'];
|
||
|
$query_age_part = "year(CURDATE())-year(dob)>='" . $start_age . "'";
|
||
|
} else {
|
||
|
$query_age_part = "year(CURDATE())-year(dob)>='" . $start_age . "' and year(CURDATE())-year(dob)<'" . $end_age . "'";
|
||
|
}
|
||
|
|
||
|
|
||
|
$query1 = "select max(checkup_id) from checkup_form where emp_id in (select id from patient_master where status='Active' and $query_age_part order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id ";
|
||
|
|
||
|
if (!$result1 = mysqli_query($conn, $query1)) {
|
||
|
error_log("error in query for total count " . $start_age . " " . mysqli_error($conn));
|
||
|
}
|
||
|
|
||
|
$count = mysqli_num_rows($result1);
|
||
|
if ($count > 0) {
|
||
|
$data_age_bmiwise_total[$abnormality_id][$start_age] = $count;
|
||
|
} else {
|
||
|
$data_age_bmiwise_total[$abnormality_id][$start_age] = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
error_log("query for total count agewise " . $start_age . " " . $query1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
$query_gender_male = "select max(checkup_id) from checkup_form where emp_id in (select id from patient_master where status='Active' and gender='M' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id ";
|
||
|
|
||
|
if (!$result_gender_male = mysqli_query($conn, $query_gender_male)) {
|
||
|
error_log("error in query for male count " . mysqli_error($conn));
|
||
|
}
|
||
|
error_log("query to get total male count " . $query_gender_male);
|
||
|
$count = mysqli_num_rows($result_gender_male);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi_total[$abnormality_id]["male"] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi_total[$abnormality_id]["male"] = 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
$query_gender_female = "select max(checkup_id) from checkup_form where emp_id in (select id from patient_master where status='Active' and gender='F' order by id asc) $qry_filter $qry_date and (abnormality_ids ='" . $abnormality_id . "' or abnormality_ids like '%," . $abnormality_id . "' or abnormality_ids like '" . $abnormality_id . ",%' or abnormality_ids like '%," . $abnormality_id . ",%') group by emp_id order by emp_id ";
|
||
|
|
||
|
if (!$result_gender_female = mysqli_query($conn, $query_gender_female)) {
|
||
|
error_log("error in query for male count " . mysqli_error($conn));
|
||
|
}
|
||
|
error_log("query to get total female count " . $query_gender_female);
|
||
|
$count = mysqli_num_rows($result_gender_female);
|
||
|
if ($count > 0) {
|
||
|
$data_gender_bmi_total[$abnormality_id]["female"] = $count;
|
||
|
} else {
|
||
|
$data_gender_bmi_total[$abnormality_id]["female"] = 0;
|
||
|
}
|
||
|
|
||
|
$data_abnormality = array($abnormality_id, $abnormality_name);
|
||
|
$data = array(
|
||
|
'abnormality' => $data_abnormality,
|
||
|
'age' => $data_age_bmi,
|
||
|
'gender' => $data_gender_bmi,
|
||
|
'agewise_total' => $data_age_bmiwise_total,
|
||
|
'gender_total' => $data_gender_bmi_total
|
||
|
|
||
|
);
|
||
|
error_log("data " . print_r($data, true));
|
||
|
echo json_encode($data);
|