382 lines
18 KiB
PHP
Executable File

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Home extends MX_Controller {
function __construct() {
parent::__construct();
$this->load->model('finance/finance_model');
$this->load->model('appointment/appointment_model');
$this->load->model('notice/notice_model');
$this->load->model('home_model');
$this->load->model('caregivers/Caregiver_model');
//$this->load->helper(menu);
}
public function index() {
$data=array();
$data=menu_array();
// pre($data);
// die;
// echo '<pre>'; print_r($this->ion_auth); echo '</pre>';die;
// die;
// $user_id=$this->session->userdata('user_id');
// $data=$this->home_model->get_menu($user_id);
if ($this->ion_auth->in_group(array('Caregiver')))
{
redirect('/CaregiversDashboard');
}
else if ($this->ion_auth->in_group(array('Physician')))
{
redirect('/physicianDashboard');
}
else if($this->ion_auth->in_group(array('Patient')))
{
redirect('/patientDashboard');
// die("1");
}
$this->load->view('dashboard',$data); // just the header file
$this->load->view('home', $data);
$this->load->view('footer', $data);
}
public function permission() {
$this->load->view('permission');
}
public function getCaregiverInfo(){
$_GET['caregiver_id'];
$caregiver=$this->home_model->getCargiverInfo($_GET['caregiver_id']);
$data['modalCaregiver']=$this->home_model->getCargiverInfo($_GET['caregiver_id']);
//echo '<pre>';print_r($caregiver);echo '</pre>'; die;
$this->load->view('home/common_modal_caregiver',$data);
}
public function getSchedule(){
// _die($_GET);
$sed=$this->home_model->getSchedule($_GET['patientId'],$_GET['caregiverId'],$_GET['start'],$_GET['end']);
// $sed=$this->home_model->getSchedule($_GET['patientId'],394,$_GET['start'],$_GET['end']);
//$this->load->view('home/common_calendar',$data);
//print_r($scheduleData);
// pre($sed);die;
echo json_encode($sed,true);
}
public function getIcdList()
{
$icdCode = $this->input->get('code');
$data=get_ICD_Info($icdCode);
//echo '<pre>';print_r($url_arr); echo '<pre>';die();
for($i=0; $i<count($data); $i++)
{
$url_arr=explode('/', $data[$i]['id']);
$title=strip_tags($data[$i]['title']);
$code=$url_arr[5];
$code_title=$code.'`'.$title;
$options .= '<option value="'.$code_title.'">'.$title.'</option>';
}
echo $options;
}
#admin dashboard
public function hmsDashboardDynamicInfo(){
try{
$user_id=$this->session->userdata('user_id');
$request=(object)($this->input->get('params'));
$info_type=isset($request->info_type)?trim($request->info_type):'';
if($info_type=='open_cases'){
$this->load->model('patient/Patient_model');
$openCases=$this->Patient_model->model_get_open_cases([]);
$quickData=(object)[
'new'=>isset($openCases->data->total_count)?intval($openCases->data->total_count):0,
'old'=>0,
'rate'=>0,
'growth'=>'none',
];
$openCases->data=$quickData;
$response=$openCases;
}else if($info_type=='available_caregivers'){
$this->load->model('caregivers/Caregiver_model');
$availableCaregivers=$this->Caregiver_model->model_get_available_caregivers([]);
$quickData=(object)[
'new'=>isset($availableCaregivers->data->total_count)?intval($availableCaregivers->data->total_count):0,
'old'=>0,
'rate'=>0,
'growth'=>'none',
];
$availableCaregivers->data=$quickData;
$response=$availableCaregivers;
}else if($info_type=='total_patients'){
$this->load->model('patient/Patient_model');
$filter=isset($request->filter)?trim($request->filter):'year';
$periods=isset($request->periods)?$request->periods:[];
foreach($periods as $period){
list($start_date,$end_date)=explode(" ~ ", $period);
$patients=$this->Patient_model->model_get_patients([
'filter'=>$filter,
'start_date'=>$start_date,
'end_date'=>$end_date
]);
$patients_count[]=isset($patients->data->total_count)?intval($patients->data->total_count):0;
}
$quickData=calc_rate_prcntg(end($patients_count),prev($patients_count));
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$quickData
];
}else if($info_type=='scheduled_visits'){
$this->load->model('patient/Patient_model');
$filter=isset($request->filter)?trim($request->filter):'year';
$periods=isset($request->periods)?$request->periods:[];
foreach($periods as $period){
list($start_date,$end_date)=explode(" ~ ", $period);
$schedules=$this->Patient_model->model_get_schedules([
'filter'=>$filter,
'start_date'=>$start_date,
'end_date'=>$end_date
]);
$schedules_count[]=isset($schedules->data->total_count)?intval($schedules->data->total_count):0;
}
$quickData=calc_rate_prcntg(end($schedules_count),prev($schedules_count));
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$quickData
];
}else if($info_type=='revenues'){
$this->load->model('bills/Bills_model');
$filter=isset($request->filter)?trim($request->filter):'week';
$periods=isset($request->periods)?$request->periods:[];
$revenuesData=$this->Bills_model->model_calc_revenue($periods);
$quickData=calc_rate_prcntg(end($revenuesData['weekly_revenues']),prev($revenuesData['weekly_revenues']));
$quickData->total_revenues=$revenuesData['total_revenues'];
$quickData->weekly_revenues=$revenuesData['weekly_revenues'];
$quickData->weekly_services=$revenuesData['weekly_services'];
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$quickData
];
}else if($info_type=='vendors_overview'){
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$request
];
}else if($info_type=='daily_scheduled'){
$startDate=isset($request->start_date)?trim($request->start_date):'0000-00-00';
$endDate=isset($request->end_date)?trim($request->end_date):'0000-00-00';
$resData=$this->home_model->getDailyBasisSchedule([
'limit'=>100,
'start_date'=>$startDate,
'end_date'=>$endDate
]);
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$resData->data->schedules
];
}else if($info_type=='financial_overview'){
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$request
];
}else if($info_type=='monthly_activity'){
$this->load->model('patient/Patient_model');
$filter=isset($request->filter)?trim($request->filter):'month';
$periods=isset($request->periods)?$request->periods:[];
$period=isset($periods[0])?trim($periods[0]):'';
if($period!=''){
list($start_date,$end_date)=explode(" ~ ", $period);
$patientsNew=$this->Patient_model->model_get_patients([
'filter'=>$filter,
'start_date'=>$start_date,
'end_date'=>$end_date
]);
$patients_count['month']=isset($patientsNew->data->total_count)?intval($patientsNew->data->total_count):0;
}
$patients=$this->Patient_model->model_get_patients([]);
$patients_count['all']=isset($patients->data->total_count)?intval($patients->data->total_count):0;
$totalCompleteVisit=$this->home_model->getTotalSchedule('month');
$totalScheduleRequest=$this->home_model->getTotalScheduleRequest();
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>[
'total_patients'=>isset($patients_count['all'])?intval($patients_count['all']):0,
'new_patients'=>isset($patients_count['month'])?intval($patients_count['month']):0,
'total_caregivers'=>$this->home_model->getAllCaregiversData('all'),
'new_caregivers'=>$this->home_model->getAllCaregiversData('month'),
'missed_visits'=>($totalScheduleRequest - $totalCompleteVisit),
'total_completed_visits'=>$totalCompleteVisit
]
];
}else if($info_type=='total_patients_click'){
$this->load->model('patient/Patient_model');
$filter=isset($request->filter)?trim($request->filter):'year';
$periods=isset($request->periods)?$request->periods:[];
foreach($periods as $period){
list($start_date,$end_date)=explode(" ~ ", $period);
$patients=$this->Patient_model->model_get_patients([
'filter'=>$filter,
'start_date'=>$start_date,
'end_date'=>$end_date
]);
$patients_count[]=isset($patients->data->total_count)?intval($patients->data->total_count):0;
}
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$patients_count
];
}else if($info_type=='scheduled_visits_click'){
$this->load->model('patient/Patient_model');
$filter=isset($request->filter)?trim($request->filter):'year';
$periods=isset($request->periods)?$request->periods:[];
foreach($periods as $period){
list($start_date,$end_date)=explode(" ~ ", $period);
$schedules=$this->Patient_model->model_get_schedules([
'filter'=>$filter,
'start_date'=>$start_date,
'end_date'=>$end_date
]);
$schedules_count[]=isset($schedules->data->total_count)?intval($schedules->data->total_count):0;
}
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$schedules_count
];
}else if($info_type=='revenues_click'){
$this->load->model('bills/Bills_model');
$periods=isset($request->periods)?$request->periods:[];
$chartData=$this->Bills_model->model_calc_revenue($periods);
$response=[
'status'=>200,
'msg'=>'fetched successfully',
'data'=>$chartData
];
}else{
$response=json_encode([
'status'=>400,
'msg'=>'invalid info type'
]);
}
echo json_encode($response);
}catch(Exception $e){
$getMsg="Home - hmsDashboardDynamicInfo: ".$e->getMessage();
echo $getMsg;
}
}
public function hmsVendorsOverviewList(){
try{
$request=(object)($this->input->post());
$data_list=[
'start'=>$request->start,
'limit'=>$request->length,
'search'=>(isset($request->search['value'])&&!empty($request->search['value']))?($request->search['value']):"",
'order_column'=>$request->order[0]['column'],
'order_type'=>$request->order[0]['dir'],
'filter'=>$request->params['filter']
];
$data_list['require']="data";
$patientsData=$this->home_model->hms_get_adb_vendors_overview($data_list);
$data_list['require']="count";
$patientsCount=$this->home_model->hms_get_adb_vendors_overview($data_list);
$info=[];
$i=1;
foreach($patientsData as $data){
$address = '';
if ($data['address'] != '' || $data['address'] != null) {
$address_obj=json_decode($data['address']);
if ($address_obj->City != '') {
$address=$address_obj->City;
}
}
$vendor_view = '<a href="'.base_url().'master_vendor">' . $data['vedor_name'] . '</a>';
$patient_view = '<a href="'.base_url().'patient/viewPatient?id='.$data['id'].'">' . $data['first_name']." ".$data['last_name'] . '</a>';
$info[] = [
$i,
$vendor_view,
$patient_view,
$data['service_type'],
$address,
$data['live_status']
];
$i++;
}
$response=json_encode([
"draw"=>intval($request->draw),
"recordsTotal"=>$patientsCount,
"recordsFiltered"=>$patientsCount,
"data"=>$info
]);
echo $response;
}catch(Exception $e){
$getMsg="Home - hmsVendorsOverviewList: ".$e->getMessage();
echo $getMsg;
}
}
public function hmsFinancialOverviewList(){
try{
$request=(object)($this->input->post());
$data_list=[
'start'=>$request->start,
'limit'=>$request->length,
'search'=>(isset($request->search['value'])&&!empty($request->search['value']))?($request->search['value']):"",
'order_column'=>$request->order[0]['column'],
'order_type'=>$request->order[0]['dir'],
'filter'=>$request->params['filter']
];
$data_list['require']="data";
$financialData=$this->home_model->hms_get_adb_financial_overview($data_list);
$data_list['require']="count";
$financialCount=$this->home_model->hms_get_adb_financial_overview($data_list);
$info=[];
$i=1;
foreach($financialData as $data){
$vendor_view='<a href="'.base_url().'master_vendor">' . $data['vedor_name'] . '</a>';
$patient_view='<a href="'.base_url().'patient/viewPatient?id='.$data['patient_id'].'">' . $data['patient_name']. '</a>';
$info[]=[
$i,
$data['live_status'],
$vendor_view,
$patient_view,
$data['service_type'],
$data['main_city']
];
$i++;
}
$response=json_encode([
"draw"=>intval($request->draw),
"recordsTotal"=>$financialCount,
"recordsFiltered"=>$financialCount,
"data"=>$info
]);
echo $response;
}catch(Exception $e){
$getMsg="Home - hmsFinancialOverviewList: ".$e->getMessage();
echo $getMsg;
}
}
#admin dashboard
}
/* End of file home.php */
/* Location: ./application/controllers/home.php */