File: /var/www/html/sarvodayahospital/app/Http/Controllers/CPSController.php
<?php
namespace App\Http\Controllers;
use App\Models\CPSDoctor;
use App\Models\Doctor;
use Illuminate\Http\Request;
class CPSController extends Controller
{
public function index()
{
$doctors = Doctor::query()
->orderByRaw('ISNULL(Weight), Weight ASC')
->orderBy('Surname', 'asc')
->paginate(21);
return view('pages.cps-doctor', compact('doctors'));
}
public function getDoctorByTreatment($treatment = null, $location, $slug) {
if($treatment && $treatment == 'treatment') {
$treatment = 'Condition';
}
$cpsDoctor = CPSDoctor::query()
->with('cpsLocation')
->where('Slug', $slug)
->where('PageType', $treatment)
->firstOrFail();
$specialities = $cpsDoctor->specialities()->get();
$cpsLocations = $cpsDoctor->cpsLocation()->first()->load('hospitals');
if(!is_null($cpsLocations)) {
$hospitals = $cpsLocations->hospitals->map(function($query) {
return $hospitalID[] = $query->id;
});
}
$doctors = Doctor::getDoctorBySpecialityAndHospital($specialities->pluck('id'), $hospitals);
$commonTreatmentDoctors = CPSDoctor::query()
->with('cpsLocation')
->whereHas('cpsLocation', function($query) use($location) {
$query->where('Slug', $location);
})
->where('Slug', '!=' ,$slug)
->where('PageType', $treatment)
->get();
$sameSpecialityWithDiffLocationDoctors = CPSDoctor::query()
->with('cpsLocation')
->where('Title', $cpsDoctor->Title)
->where('Slug', '!=', $slug)
->where('PageType', $treatment)
->get();
$data = [
'cpsDoctors' => $cpsDoctor,
'specialities' => $specialities,
'doctors' => $doctors,
'commonTreatmentDoctors' => $commonTreatmentDoctors,
'sameSpecialityWithDiffLocationDoctors' => $sameSpecialityWithDiffLocationDoctors
];
return view('pages.cps-doctor', compact('data'));
}
}