/** 
  * Method used to retrieve the doctors list
  *
  * @param float : $latitude
  * @param float : $longitude
  * @param integer : $start
  * @param integer : $limit
  * @param array : $query
  * @return Collection
  */
 public function getDoctorsList($latitude = 0, $longitude = 0, $start = 0, $limit = 25, $query = array())
 {
     // $this->data     = DB::table('doctors')
     //                     ->leftJoin('doctors_details AS dhospital', 'doctors.id', '=', 'dhospital.doctor_id')
     //                     ->leftJoin('listing_hospitals', 'doctors.id', '=', 'listing_hospitals.id')
     //                     ->leftJoin('doctors_details AS dhmo', 'dhospital.detail_id', '=', 'dhmo.doctor_id')
     //                     ->leftJoin('listing_hmo', 'dhmo.detail_id', '=', 'listing_hmo.id')
     //                     ->select(array('doctors.*','dhospital.detail_id as hospital_id', 'listing_hospitals.listing_title as hospital_title', 'dhmo.detail_id as hmo_id', 'listing_hmo.listing_title as hmo_title'))
     //                     ->where('dhospital.detail_type', '=', 1)
     //                     ->where('dhmo.detail_type', '=', 4)
     //                     ->groupBy('doctors.id')
     //                     ->take($limit)
     //                     ->get();
     // $this->data     = DB::select(DB::raw('SELECT doctors.*, dhospital.detail_id as hospital_id, listing_hospitals.listing_title as hospital_title, dhmo.detail_id as hmo_id, listing_hmo.listing_title as hmo_title FROM doctors LEFT JOIN doctors_details dhospital ON doctors.id = dhospital.doctor_id LEFT JOIN listing_hospitals ON dhospital.detail_id = listing_hospitals.id LEFT JOIN doctors_details dhmo ON doctors.id = dhmo.doctor_id LEFT JOIN listing_hmo ON dhmo.detail_id = listing_hmo.id WHERE dhospital.detail_type = 1 AND dhmo.detail_type = 4 GROUP BY doctors.id LIMIT '.$limit));
     // $this->data     = DB::table('doctors');
     // $this->data->leftJoin('doctors_details AS dhospital', 'doctors.id', '=', 'dhospital.doctor_id');
     // $this->data->leftJoin('listing_hospitals', 'dhospital.detail_id', '=', 'listing_hospitals.id');
     // $this->data->leftJoin('doctors_details AS dhmo', 'doctors.id', '=', 'dhmo.doctor_id');
     // $this->data->leftJoin('listing_hmo', 'dhmo.detail_id', '=', 'listing_hmo.id');
     // $this->data->leftJoin('doctors_specialization', 'doctors.id', '=', 'doctors_specialization.doctor_id');
     // $this->data->select(array('doctors.*', 'dhospital.detail_id as hospital_id', 'listing_hospitals.listing_title as hospital_title', 'dhmo.detail_id as hmo_id', 'listing_hmo.listing_title as hmo_title', 'doctors_specialization.specialization_id'));
     // $this->data->where('dhospital.detail_type', '=', 1);
     // $this->data->where('dhmo.detail_type', '=', 4);
     // $this->data->groupBy('doctors.id');
     // $this->data->take($limit);
     // $this->data->get();
     // $this->data     = DB::select(DB::raw('SELECT doctors.*, dhospital.detail_id as hospital_id, listing_hospitals.listing_title as hospital_title, listing_hospitals.latitude, listing_hospitals.longitude, listing_hospitals.street, location_cities.city_name, location_provinces.province_name, dhmo.detail_id as hmo_id, listing_hmo.listing_title as hmo_title, (6371 * acos (cos ( radians('.$latitude.') ) * cos( radians( listing_hospitals.latitude ) ) * cos( radians( listing_hospitals.longitude ) - radians('.$longitude.') ) + sin ( radians('.$latitude.') ) * sin( radians( listing_hospitals.latitude ) ))) AS distance FROM doctors LEFT JOIN doctors_details dhospital ON doctors.id = dhospital.doctor_id LEFT JOIN listing_hospitals ON dhospital.detail_id = listing_hospitals.id LEFT JOIN doctors_details dhmo ON doctors.id = dhmo.doctor_id LEFT JOIN listing_hmo ON dhmo.detail_id = listing_hmo.id LEFT JOIN location_cities ON location_cities.id = listing_hospitals.city LEFT JOIN location_provinces ON location_provinces.id = listing_hospitals.province WHERE dhospital.detail_type = 1 AND dhmo.detail_type = 4 GROUP BY doctors.id HAVING distance < 25 ORDER BY distance ASC LIMIT 20'));
     // if ($query) {
     $this->data = DB::table('doctors');
     $this->data->leftJoin('doctors_details AS dhospital', 'doctors.id', '=', 'dhospital.doctor_id');
     $this->data->leftJoin('listing_hospitals', 'dhospital.detail_id', '=', 'listing_hospitals.id');
     $this->data->leftJoin('doctors_details AS dhmo', 'doctors.id', '=', 'dhmo.doctor_id');
     $this->data->leftJoin('listing_hmo', 'dhmo.detail_id', '=', 'listing_hmo.id');
     $this->data->leftJoin('doctors_specialization', 'doctors.id', '=', 'doctors_specialization.doctor_id');
     $this->data->leftJoin('location_cities', 'listing_hospitals.city', '=', 'location_cities.id');
     $this->data->leftJoin('location_provinces', 'listing_hospitals.province', '=', 'location_provinces.id');
     $this->data->select(DB::raw("doctors.*, dhospital.detail_id as hospital_id, listing_hospitals.listing_title as hospital_title, listing_hospitals.latitude, listing_hospitals.longitude, listing_hospitals.street, location_cities.city_name, location_provinces.province_name, dhmo.detail_id as hmo_id, listing_hmo.listing_title as hmo_title, doctors_specialization.specialization_id, (6371 * acos (cos ( radians(?) ) * cos( radians( listing_hospitals.latitude ) ) * cos( radians( listing_hospitals.longitude ) - radians(?) ) + sin ( radians(?) ) * sin( radians( listing_hospitals.latitude ) ))) AS distance"))->setBindings([$latitude, $longitude, $latitude]);
     // $this->data->select(array('doctors.*', 'dhospital.detail_id as hospital_id', 'listing_hospitals.listing_title as hospital_title', 'listing_hospitals.latitude', 'listing_hospitals.longitude', 'listing_hospitals.street', 'location_cities.city_name', 'location_provinces.province_name', 'dhmo.detail_id as hmo_id', 'listing_hmo.listing_title as hmo_title', 'doctors_specialization.specialization_id'), DB::raw('(6371 * acos (cos ( radians('.$latitude.') ) * cos( radians( listing_hospitals.latitude ) ) * cos( radians( listing_hospitals.longitude ) - radians('.$longitude.') ) + sin ( radians('.$latitude.') ) * sin( radians( listing_hospitals.latitude ) ))) AS distance'));
     $this->data->where('dhospital.detail_type', '=', 1);
     $this->data->where('dhmo.detail_type', '=', 4);
     if (isset($query['specializations'])) {
         $this->data->whereIn('doctors_specialization.specialization_id', $query['specializations']);
     }
     if (isset($query['locations'])) {
         $this->data->whereIn('listing_hospitals.city', $query['locations']);
     }
     $this->data->groupBy('doctors.id');
     if ($start) {
         $this->data->skip($start);
     }
     $this->data->take($limit);
     // }
     $this->result = $this->data->get();
     return $this->result;
 }