382 lines
18 KiB
PHP
Executable File
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 */
|