Example #1
0
 public static function totalMonthlyCoverage()
 {
     $visitClass = Customer::select('class')->where('mr_id', \Auth::user()->id)->get()->toArray();
     $totalVisitsCount = VisitClass::whereIn('name', $visitClass)->sum('visits_count');
     $actualVisitsCount = Report::where('mr_id', \Auth::user()->id)->where('month', date('M') . '-' . date('Y'))->count();
     return number_format($actualVisitsCount / $totalVisitsCount * 100, 2);
 }
Example #2
0
 public function search()
 {
     $classes = VisitClass::all();
     $specialties = Customer::select('specialty')->distinct()->get();
     $MRs = Employee::where('level_id', 7)->get();
     $dataView = ['classes' => $classes, 'specialties' => $specialties, 'MRs' => $MRs];
     return view('admin.search.coverage.search', $dataView);
 }
Example #3
0
 public function search()
 {
     $classes = VisitClass::all();
     $employees = Employee::select('id')->where('manager_id', \Auth::user()->id)->get();
     $specialties = Customer::select('specialty')->whereIn('mr_id', $employees)->distinct()->get();
     $MRs = Employee::where('manager_id', \Auth::user()->id)->get();
     $dataView = ['classes' => $classes, 'specialties' => $specialties, 'MRs' => $MRs];
     return view('am.search.coverage.search', $dataView);
 }
Example #4
0
 public function doDelete($id)
 {
     $visitClass = VisitClass::findOrFail($id);
     try {
         $visitClass->delete();
         return redirect()->back()->with('message', 'VisitClass has been deleted successfully !');
     } catch (ParseException $ex) {
         echo 'Failed to create new meal , with error message: ' . $ex->getMessage();
     }
 }
Example #5
0
 public function specialtyCoverageStats($mrId)
 {
     $totalVisits = [];
     $actualVisits = [];
     $specialtyCoverage = [];
     $specialty = NULL;
     $counter = 0;
     $allSpecialties = Customer::select('specialty')->where('mr_id', $mrId)->get()->toArray();
     $allCustomersSpecialties = Customer::whereIn('specialty', $allSpecialties)->get()->toArray();
     // Get all medical rep customers specialties
     foreach ($allCustomersSpecialties as $singleCustomer) {
         $allSpecialtyClasses[$singleCustomer['specialty']] = Customer::select('class')->where('specialty', $singleCustomer['specialty'])->get()->toArray();
     }
     // Get all customer classes based on specialty
     foreach ($allSpecialtyClasses as $specialty => $specialtyClasses) {
         // Calculate total visits based on classes and specialty
         foreach ($specialtyClasses as $singleSpecialtyClass) {
             if (isset($totalVisits[$specialty])) {
                 $totalVisits[$specialty] += VisitClass::where('name', $singleSpecialtyClass)->first()->visits_count;
             } else {
                 $totalVisits[$specialty] = VisitClass::where('name', $singleSpecialtyClass)->first()->visits_count;
             }
         }
     }
     // Get all doctors visited
     $doctorsVisited = Report::select('doctor_id')->where('month', date('M-Y'))->where('mr_id', $mrId)->get()->toArray();
     foreach ($doctorsVisited as $singleDoctor) {
         // calculate actual visits
         $specialty = Customer::select('specialty')->findOrFail($singleDoctor)->first()->specialty;
         if (isset($actualVisits[$specialty])) {
             $actualVisits[$specialty] += 1;
         } else {
             $actualVisits[$specialty] = 1;
         }
     }
     foreach ($allCustomersSpecialties as $singleCustomerSpecialty) {
         $specialty = $singleCustomerSpecialty['specialty'];
         $specialtyCoverage[$specialty] = 0;
         if (isset($specialtyCoverage[$specialty]) && isset($actualVisits[$specialty]) && isset($totalVisits[$specialty])) {
             $specialtyCoverage[$specialty] = number_format($actualVisits[$specialty] / $totalVisits[$specialty] * 100, 2);
         }
     }
     foreach ($specialtyCoverage as $specialty => $percentage) {
         if (isset($specialtyCoverage[$specialty])) {
             $stats[$counter]['label'] = $specialty;
             $stats[$counter]['data'] = $percentage;
         }
         $counter++;
     }
     return $stats;
 }