middleware('auth'); } /** * Show the application dashboard. * */ public function index() { /* * -check if it is the first time of using this system then go through the the process of setting up else show the home page */ $setup_steps = StreamlineSetupStep::where('completion_status', 1)->orderBy('id')->get(); $last_setup_step = $setup_steps->last(); if (is_null($last_setup_step)){ session()->put(['streamline_setup' => 1]); return redirect('hospital_information/create'); } elseif ($last_setup_step->step == "hospital registration") { session()->put(['streamline_setup' => 1]); return redirect('clinics/create'); } elseif ($last_setup_step->step == "clinics registration") { session()->put(['streamline_setup' => 1]); return redirect('wards/create'); } elseif ($last_setup_step->step == "wards registration") { session()->put(['streamline_setup' => 1]); return redirect('service_items/create'); } elseif ($last_setup_step->step == "services registration") { session()->put(['streamline_setup' => 1]); return redirect('investigations/create'); } elseif ($last_setup_step->step == "investigations registration") { session()->put(['streamline_setup' => 1]); return redirect('drugs/create'); } elseif ($last_setup_step->step == "drugs registration") { session()->put(['streamline_setup' => 1]); return redirect('procedures/create'); } elseif ($last_setup_step->step == "procedures registration") { session()->put(['streamline_setup' => 1]); return redirect('sundries/create'); } elseif ($last_setup_step->step == "general settings configuration") { session()->forget('streamline_setup'); $messages = MessageBoard::orderBy('created_at', 'desc')->paginate(3); return view('home', compact('messages')); } else { $messages = MessageBoard::orderBy('created_at', 'desc')->paginate(3); return view('home', compact('messages')); } } public function quick_analysis_reports() { $insurance_members_array = InsuranceMember::pluck('patient_id')->toArray(); $patient_registered_per_month_under_insurance = Patient::whereIn('id',$insurance_members_array)->whereBetween('created_at', ['2018-01-01', '2022-12-31'])->select(DB::raw('count(id) as `data`'),DB::raw("DATE_FORMAT(created_at, '%Y-%m') episodes_year_month")) ->groupBy('episodes_year_month')->orderBy('episodes_year_month')->get(); return $patient_registered_per_month_under_insurance; /* set_time_limit(0); $patient_visits_per_month = PatientEpisode::select(DB::raw('count(id) as `data`'),DB::raw("DATE_FORMAT(created_at, '%Y-%m') episodes_year_month")) ->groupBy('episodes_year_month')->orderBy('episodes_year_month')->get(); //return $patient_visits_per_month; $patient_visits_per_month_for_insured = PatientEpisode::whereIn('patient_id',$insurance_members_array)->whereBetween('created_at', ['2019-01-01', '2022-12-31'])->select(DB::raw('count(id) as `data`'),DB::raw("DATE_FORMAT(created_at, '%Y-%m') episodes_year_month")) ->groupBy('episodes_year_month')->orderBy('episodes_year_month')->get(); foreach ($patient_visits_per_month_for_insured as $record) { $year_month_array = explode("-", $record->episodes_year_month); $families_array = []; $per_month_records = PatientEpisode::whereIn('patient_id',$insurance_members_array)->whereYear('created_at', '=', $year_month_array[0])->whereMonth('created_at', '=', $year_month_array[1])->get(); foreach ($per_month_records as $single_record) { $family_id = get_name($single_record->patient_id, 'patient_id', 'family_id', 'insurance_members'); if (!in_array($family_id, $families_array)) { $families_array[] = $family_id; } } $total[$record->episodes_year_month] = count($families_array); } //return $total; //mode of co_payments $service_deposits = DB::select("SELECT patient_amount_paid, occurs FROM (SELECT patient_amount_paid,count(*) as occurs FROM service_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 AND items_ids != 'Inpatient_Deposit' GROUP BY `patient_amount_paid` LIMIT 1) T1 "); $treatment_deposits = DB::select("SELECT patient_amount_paid, occurs FROM (SELECT patient_amount_paid,count(*) as occurs FROM treatment_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 GROUP BY `patient_amount_paid` LIMIT 1) T1 "); $investigation_deposits = DB::select("SELECT patient_amount_paid, occurs FROM (SELECT patient_amount_paid,count(*) as occurs FROM investigation_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 GROUP BY `patient_amount_paid` LIMIT 1) T1 "); $procedure_deposits = DB::select("SELECT patient_amount_paid, occurs FROM (SELECT patient_amount_paid,count(*) as occurs FROM procedure_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 GROUP BY `patient_amount_paid` LIMIT 1) T1 "); $sundry_deposits = DB::select("SELECT patient_amount_paid, occurs FROM (SELECT patient_amount_paid,count(*) as occurs FROM sundries_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 GROUP BY `patient_amount_paid` LIMIT 1) T1 "); return [$service_deposits, $treatment_deposits, $investigation_deposits, $procedure_deposits, $sundry_deposits]; //average co_payments $service_deposits_average = DB::select("SELECT AVG(patient_amount_paid) as average_co_payment FROM service_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 AND items_ids != 'Inpatient_Deposit' "); $treatment_deposits_average = DB::select("SELECT AVG(patient_amount_paid) as average_co_payment FROM treatment_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 "); $investigation_deposits_average = DB::select("SELECT AVG(patient_amount_paid) as average_co_payment FROM investigation_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 "); $procedure_deposits_average = DB::select("SELECT AVG(patient_amount_paid) as average_co_payment FROM procedure_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 "); $sundries_deposits_average = DB::select("SELECT AVG(patient_amount_paid) as average_co_payment FROM sundries_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid != 0 "); return [$service_deposits_average,$treatment_deposits_average,$investigation_deposits_average,$procedure_deposits_average,$sundries_deposits_average]; //average family size stuff $family_numbers = DB::select("SELECT family_id, occurs FROM (SELECT family_id,count(*) as occurs FROM insurance_members GROUP BY `family_id`) T1 "); $number_of_occurances = []; foreach ($family_numbers as $record) { $number_of_occurances[] = $record->occurs; } $counts = array_count_values($number_of_occurances); arsort($counts); return $counts; */ //mode of co_payments percentages $number_of_insured_patients_in_service_deposits = DB::select("SELECT id FROM service_deposits WHERE patient_id IN(SELECT patient_id FROM insurance_members) AND patient_amount_paid ='2000'"); return (count($number_of_insured_patients_in_service_deposits)); } }