|  |  |  | @ -29,6 +29,8 @@ import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:hmg_patient_app_new/widgets/transitions/fade_page.dart'; | 
		
	
		
			
				|  |  |  |  | import 'package:location/location.dart' show Location; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | import 'models/resp_models/get_livecare_clinics_response_model.dart'; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |   int selectedTabIndex = 0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -37,6 +39,8 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |   bool isDoctorProfileLoading = false; | 
		
	
		
			
				|  |  |  |  |   bool isDoctorSearchByNameStarted = false; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   bool isLiveCareSchedule = false; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   int initialSlotDuration = 0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   LocationUtils locationUtils; | 
		
	
	
		
			
				
					|  |  |  | @ -44,12 +48,17 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |   List<GetClinicsListResponseModel> clinicsList = []; | 
		
	
		
			
				|  |  |  |  |   List<GetClinicsListResponseModel> _filteredClinicsList = []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   List<GetLiveCareClinicsResponseModel> liveCareClinicsList = []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   List<GetClinicsListResponseModel> get filteredClinicsList => _filteredClinicsList; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   List<DoctorsListResponseModel> doctorsList = []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   List<DoctorsListResponseModel> liveCareDoctorsList = []; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   GetClinicsListResponseModel selectedClinic = GetClinicsListResponseModel(); | 
		
	
		
			
				|  |  |  |  |   DoctorsListResponseModel selectedDoctor = DoctorsListResponseModel(); | 
		
	
		
			
				|  |  |  |  |   GetLiveCareClinicsResponseModel selectedLiveCareClinic = GetLiveCareClinicsResponseModel(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   late DoctorsProfileResponseModel doctorsProfileResponseModel; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -78,7 +87,9 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |   bool shouldLoadSpecificClinic = false; | 
		
	
		
			
				|  |  |  |  |   String? currentlySelectedHospitalFromRegionFlow; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   BookAppointmentsViewModel({required this.bookAppointmentsRepo, required this.errorHandlerService, required this.navigationService, required this.myAppointmentsViewModel, required this.locationUtils}) {; | 
		
	
		
			
				|  |  |  |  |   BookAppointmentsViewModel( | 
		
	
		
			
				|  |  |  |  |       {required this.bookAppointmentsRepo, required this.errorHandlerService, required this.navigationService, required this.myAppointmentsViewModel, required this.locationUtils}) { | 
		
	
		
			
				|  |  |  |  |     ; | 
		
	
		
			
				|  |  |  |  |     initBookAppointmentViewModel(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -101,8 +112,10 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     isClinicsListLoading = true; | 
		
	
		
			
				|  |  |  |  |     isDoctorsListLoading = true; | 
		
	
		
			
				|  |  |  |  |     isDoctorProfileLoading = true; | 
		
	
		
			
				|  |  |  |  |     isLiveCareSchedule = false; | 
		
	
		
			
				|  |  |  |  |     clinicsList.clear(); | 
		
	
		
			
				|  |  |  |  |     doctorsList.clear(); | 
		
	
		
			
				|  |  |  |  |     liveCareClinicsList.clear(); | 
		
	
		
			
				|  |  |  |  |     // getLocation(); | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
	
		
			
				
					|  |  |  | @ -154,6 +167,16 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   setIsLiveCareSchedule(bool value) { | 
		
	
		
			
				|  |  |  |  |     isLiveCareSchedule = value; | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   setLiveCareSelectedClinic(GetLiveCareClinicsResponseModel clinic) { | 
		
	
		
			
				|  |  |  |  |     selectedLiveCareClinic = clinic; | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void onTabChanged(int index) { | 
		
	
		
			
				|  |  |  |  |     selectedTabIndex = index; | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
	
		
			
				
					|  |  |  | @ -161,10 +184,11 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   /// this function will decide which clinic api to be called | 
		
	
		
			
				|  |  |  |  |   /// either api for region flow or the select clinic api | 
		
	
		
			
				|  |  |  |  |   Future<void> getClinics() async | 
		
	
		
			
				|  |  |  |  |   { | 
		
	
		
			
				|  |  |  |  |   Future<void> getClinics() async { | 
		
	
		
			
				|  |  |  |  |     if (shouldLoadSpecificClinic) { | 
		
	
		
			
				|  |  |  |  |       getRegionSelectedClinics(); | 
		
	
		
			
				|  |  |  |  |     } else if (isLiveCareSchedule) { | 
		
	
		
			
				|  |  |  |  |       getLiveCareScheduleClinics(); | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |       getAllClinics(); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | @ -191,6 +215,53 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> getLiveCareScheduleClinics({Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
		
			
				|  |  |  |  |     liveCareClinicsList.clear(); | 
		
	
		
			
				|  |  |  |  |     final result = await bookAppointmentsRepo.getLiveCareScheduleClinics(_appState.getAuthenticatedUser()!.age!, _appState.getAuthenticatedUser()!.gender!); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     result.fold( | 
		
	
		
			
				|  |  |  |  |       (failure) async => await errorHandlerService.handleError(failure: failure), | 
		
	
		
			
				|  |  |  |  |       (apiResponse) { | 
		
	
		
			
				|  |  |  |  |         if (apiResponse.messageStatus == 2) { | 
		
	
		
			
				|  |  |  |  |           // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); | 
		
	
		
			
				|  |  |  |  |         } else if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |           liveCareClinicsList = apiResponse.data!; | 
		
	
		
			
				|  |  |  |  |           isClinicsListLoading = false; | 
		
	
		
			
				|  |  |  |  |           initializeFilteredList(); | 
		
	
		
			
				|  |  |  |  |           notifyListeners(); | 
		
	
		
			
				|  |  |  |  |           if (onSuccess != null) { | 
		
	
		
			
				|  |  |  |  |             onSuccess(apiResponse); | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> getLiveCareDoctorsList({Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
		
			
				|  |  |  |  |     doctorsList.clear(); | 
		
	
		
			
				|  |  |  |  |     final result = | 
		
	
		
			
				|  |  |  |  |         await bookAppointmentsRepo.getLiveCareDoctorsList(selectedLiveCareClinic.serviceID!, _appState.getAuthenticatedUser()!.age!, _appState.getAuthenticatedUser()!.gender!, onError: onError); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     result.fold( | 
		
	
		
			
				|  |  |  |  |       (failure) async { | 
		
	
		
			
				|  |  |  |  |         onError!("No doctors found for the search criteria".needTranslation); | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |       (apiResponse) { | 
		
	
		
			
				|  |  |  |  |         if (apiResponse.messageStatus == 2) { | 
		
	
		
			
				|  |  |  |  |           // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); | 
		
	
		
			
				|  |  |  |  |         } else if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |           liveCareDoctorsList = apiResponse.data!; | 
		
	
		
			
				|  |  |  |  |           isDoctorsListLoading = false; | 
		
	
		
			
				|  |  |  |  |           // initializeFilteredList(); | 
		
	
		
			
				|  |  |  |  |           notifyListeners(); | 
		
	
		
			
				|  |  |  |  |           if (onSuccess != null) { | 
		
	
		
			
				|  |  |  |  |             onSuccess(apiResponse); | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   //TODO: Make the API dynamic with parameters for ProjectID, isNearest, languageID, doctorId, doctorName | 
		
	
		
			
				|  |  |  |  |   Future<void> getDoctorsList( | 
		
	
		
			
				|  |  |  |  |       {int projectID = 0, bool isNearest = false, int doctorId = 0, String doctorName = "", isContinueDentalPlan = false, Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
	
		
			
				
					|  |  |  | @ -238,7 +309,6 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   //TODO: Handle the cases for LiveCare Schedule | 
		
	
		
			
				|  |  |  |  |   Future<void> getDoctorFreeSlots({bool isBookingForLiveCare = false, Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
		
			
				|  |  |  |  |     docFreeSlots.clear(); | 
		
	
		
			
				|  |  |  |  |     DateTime date; | 
		
	
	
		
			
				
					|  |  |  | @ -281,6 +351,50 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> getLiveCareDoctorFreeSlots({bool isBookingForLiveCare = false, Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
		
			
				|  |  |  |  |     docFreeSlots.clear(); | 
		
	
		
			
				|  |  |  |  |     DateTime date; | 
		
	
		
			
				|  |  |  |  |     final DateFormat formatter = DateFormat('HH:mm'); | 
		
	
		
			
				|  |  |  |  |     final DateFormat dateFormatter = DateFormat('yyyy-MM-dd'); | 
		
	
		
			
				|  |  |  |  |     Map<DateTime, List> _eventsParsed; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     final result = await bookAppointmentsRepo.getLiveCareDoctorFreeSlots( | 
		
	
		
			
				|  |  |  |  |         selectedDoctor.clinicID ?? 0, selectedLiveCareClinic.serviceID ?? 0, selectedDoctor.projectID ?? 0, selectedDoctor.doctorID ?? 0, isBookingForLiveCare, | 
		
	
		
			
				|  |  |  |  |         onError: onError); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     result.fold( | 
		
	
		
			
				|  |  |  |  |       (failure) async { | 
		
	
		
			
				|  |  |  |  |         print(failure); | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |       (apiResponse) { | 
		
	
		
			
				|  |  |  |  |         if (apiResponse.messageStatus == 2) { | 
		
	
		
			
				|  |  |  |  |           onError!(apiResponse.errorMessage ?? "Unknown error occurred"); | 
		
	
		
			
				|  |  |  |  |           // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); | 
		
	
		
			
				|  |  |  |  |         } else if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |           if (apiResponse.data['PatientER_DoctorFreeSlots'] == null || apiResponse.data['PatientER_DoctorFreeSlots'].isEmpty) { | 
		
	
		
			
				|  |  |  |  |             onError!("No free slots available".tr()); | 
		
	
		
			
				|  |  |  |  |             return; | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |           initialSlotDuration = apiResponse.data["InitialSlotDuration"]; | 
		
	
		
			
				|  |  |  |  |           freeSlotsResponse = apiResponse.data['PatientER_DoctorFreeSlots']; | 
		
	
		
			
				|  |  |  |  |           freeSlotsResponse.forEach((element) { | 
		
	
		
			
				|  |  |  |  |             // date = (isLiveCareSchedule != null && isLiveCareSchedule) | 
		
	
		
			
				|  |  |  |  |             //     ? DateUtil.convertStringToDate(element) | 
		
	
		
			
				|  |  |  |  |             //     : | 
		
	
		
			
				|  |  |  |  |             date = DateUtil.convertStringToDateSaudiTimezone(element, int.parse(selectedDoctor.projectID.toString())); | 
		
	
		
			
				|  |  |  |  |             slotsList.add(FreeSlot(date, ['slot'])); | 
		
	
		
			
				|  |  |  |  |             docFreeSlots.add(TimeSlot(isoTime: formatter.format(date), start: new DateTime(date.year, date.month, date.day, 0, 0, 0, 0), end: date, vidaDate: element)); | 
		
	
		
			
				|  |  |  |  |           }); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           notifyListeners(); | 
		
	
		
			
				|  |  |  |  |           if (onSuccess != null) { | 
		
	
		
			
				|  |  |  |  |             onSuccess(apiResponse); | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   Future<void> cancelAppointment({required PatientAppointmentHistoryResponseModel patientAppointmentHistoryResponseModel, Function(dynamic)? onSuccess, Function(String)? onError}) async { | 
		
	
		
			
				|  |  |  |  |     final result = await bookAppointmentsRepo.cancelAppointment(patientAppointmentHistoryResponseModel: patientAppointmentHistoryResponseModel); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -419,22 +533,21 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     final result = await bookAppointmentsRepo.getProjectList(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     result.fold( | 
		
	
		
			
				|  |  |  |  |           (failure) async => | 
		
	
		
			
				|  |  |  |  |       await errorHandlerService.handleError(failure: failure), | 
		
	
		
			
				|  |  |  |  |       (failure) async => await errorHandlerService.handleError(failure: failure), | 
		
	
		
			
				|  |  |  |  |       (apiResponse) async { | 
		
	
		
			
				|  |  |  |  |         if (apiResponse.messageStatus == 2) { | 
		
	
		
			
				|  |  |  |  |           // dialogService.showErrorDialog(message: apiResponse.errorMessage!, onOkPressed: () {}); | 
		
	
		
			
				|  |  |  |  |         } else if (apiResponse.messageStatus == 1) { | 
		
	
		
			
				|  |  |  |  |           var projectList = apiResponse.data!; | 
		
	
		
			
				|  |  |  |  |           hospitalList = await DoctorMapper.getMappedHospitals(projectList, | 
		
	
		
			
				|  |  |  |  |           hospitalList = await DoctorMapper.getMappedHospitals( | 
		
	
		
			
				|  |  |  |  |             projectList, | 
		
	
		
			
				|  |  |  |  |             isArabic: _appState.isArabic(), | 
		
	
		
			
				|  |  |  |  |             lat: _appState.userLat, | 
		
	
		
			
				|  |  |  |  |             lng: _appState.userLong, | 
		
	
		
			
				|  |  |  |  |           ); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           var isLocationEnabled = (_appState.userLat != 0) && (_appState.userLong != 0); | 
		
	
		
			
				|  |  |  |  |           hospitalList = | 
		
	
		
			
				|  |  |  |  |           await DoctorMapper.sortList(isLocationEnabled, hospitalList!); | 
		
	
		
			
				|  |  |  |  |           hospitalList = await DoctorMapper.sortList(isLocationEnabled, hospitalList!); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |           isRegionListLoading = false; | 
		
	
		
			
				|  |  |  |  |           filteredHospitalList = hospitalList; | 
		
	
	
		
			
				
					|  |  |  | @ -455,15 +568,14 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |     } else { | 
		
	
		
			
				|  |  |  |  |       filteredHospitalList = RegionList(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       var list = isHMG | 
		
	
		
			
				|  |  |  |  |           ? hospitalList?.registeredDoctorMap![selectedRegionId]!.hmgDoctorList | 
		
	
		
			
				|  |  |  |  |           : hospitalList?.registeredDoctorMap![selectedRegionId]!.hmcDoctorList; | 
		
	
		
			
				|  |  |  |  |       var list = isHMG ? hospitalList?.registeredDoctorMap![selectedRegionId]!.hmgDoctorList : hospitalList?.registeredDoctorMap![selectedRegionId]!.hmcDoctorList; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       if(list != null && list.isEmpty){ notifyListeners(); return;} | 
		
	
		
			
				|  |  |  |  |       if (list != null && list.isEmpty) { | 
		
	
		
			
				|  |  |  |  |         notifyListeners(); | 
		
	
		
			
				|  |  |  |  |         return; | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       var filteredList = list!.where((element) => | 
		
	
		
			
				|  |  |  |  |           element.filterName!.toLowerCase().contains(value.toLowerCase()) | 
		
	
		
			
				|  |  |  |  |       ).toList(); | 
		
	
		
			
				|  |  |  |  |       var filteredList = list!.where((element) => element.filterName!.toLowerCase().contains(value.toLowerCase())).toList(); | 
		
	
		
			
				|  |  |  |  |       var regionData = PatientDoctorAppointmentListByRegion(); | 
		
	
		
			
				|  |  |  |  |       if (isHMG) { | 
		
	
		
			
				|  |  |  |  |         regionData.hmgDoctorList = filteredList; | 
		
	
	
		
			
				
					|  |  |  | @ -473,9 +585,7 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |         regionData.hmcSize = filteredList.length; | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       filteredHospitalList?.registeredDoctorMap = { | 
		
	
		
			
				|  |  |  |  |         selectedRegionId! : regionData | 
		
	
		
			
				|  |  |  |  |       }; | 
		
	
		
			
				|  |  |  |  |       filteredHospitalList?.registeredDoctorMap = {selectedRegionId!: regionData}; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     notifyListeners(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
	
		
			
				
					|  |  |  | @ -515,11 +625,11 @@ class BookAppointmentsViewModel extends ChangeNotifier { | 
		
	
		
			
				|  |  |  |  |       }, | 
		
	
		
			
				|  |  |  |  |     ); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void resetFilterList() { | 
		
	
		
			
				|  |  |  |  |     filteredHospitalList = hospitalList; | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |   void getLocation() { | 
		
	
		
			
				|  |  |  |  |     locationUtils.getLocation(); | 
		
	
		
			
				|  |  |  |  |   } | 
		
	
	
		
			
				
					|  |  |  | 
 |