From abcf82346e3afc81bc475415d55a6976c520f926 Mon Sep 17 00:00:00 2001 From: Sultan khan <> Date: Thu, 21 Sep 2023 16:44:58 +0300 Subject: [PATCH 01/18] Excluded change --- lib/config/config.dart | 2 +- .../send_activation_request.dart | 8 +- .../DrawerPages/family/add-family-member.dart | 41 +++++-- lib/pages/DrawerPages/family/my-family.dart | 8 +- .../family_files/family_files_provider.dart | 3 +- lib/uitl/LocalNotification.dart | 114 +++++++++--------- lib/uitl/push-notification-handler.dart | 12 +- 7 files changed, 105 insertions(+), 83 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index e93af7c8..d5482cb8 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -19,7 +19,7 @@ var PACKAGES_SHOPPING_CART = '/api/shopping_cart_items'; var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; -// var BASE_URL = 'http://10.50.100.198:2018/'; +// var BASE_URL = 'http://10.50.100.198:4422/'; var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'https://orash.cloudsolutions.com.sa/'; diff --git a/lib/models/Authentication/send_activation_request.dart b/lib/models/Authentication/send_activation_request.dart index 9c9c7804..fbaa744c 100644 --- a/lib/models/Authentication/send_activation_request.dart +++ b/lib/models/Authentication/send_activation_request.dart @@ -28,7 +28,7 @@ class SendActivationRequest { int responseID; int status; int familyRegionID; - + bool isPatientExcluded; SendActivationRequest( {this.patientMobileNumber, this.mobileNo, @@ -58,7 +58,9 @@ class SendActivationRequest { this.healthId, this.responseID, this.status, - this.familyRegionID}); + this.familyRegionID, + this.isPatientExcluded + }); SendActivationRequest.fromJson(Map json) { patientMobileNumber = json['PatientMobileNumber']; @@ -90,6 +92,7 @@ class SendActivationRequest { responseID = json['ReponseID']; status = json['Status']; familyRegionID = json['FamilyRegionID']; + isPatientExcluded = json['IsPatientExcluded']; } Map toJson() { @@ -123,6 +126,7 @@ class SendActivationRequest { data['ResponseID'] = responseID; data['Status'] = status; data['FamilyRegionID'] = familyRegionID; + data['IsPatientExcluded'] = isPatientExcluded; return data; } } diff --git a/lib/pages/DrawerPages/family/add-family-member.dart b/lib/pages/DrawerPages/family/add-family-member.dart index 6d9064d7..c3d79918 100644 --- a/lib/pages/DrawerPages/family/add-family-member.dart +++ b/lib/pages/DrawerPages/family/add-family-member.dart @@ -161,7 +161,8 @@ class _AddMember extends State { } insertFamilyData(addMemberResult) { - sendActivationCode(addMemberResult); + + sendActivationCode(addMemberResult, addMemberResult['ShareFamilyFileObj']['IsPatientExcluded']); // var request = InsertSharePatientFileReq(); // request.responseID = addMemberResult['ShareFamilyFileObj']['ReponseID']; // request.shareFamilyPatientName = addMemberResult['ShareFamilyFileObj']['SharedPatientName']; @@ -178,13 +179,21 @@ class _AddMember extends State { // }); } - sendActivationCode(result) { + sendActivationCode(result, bool isExcluded) { // var request = this.getCommonRequest(); loading(true); patientShareResponseID = result['ShareFamilyFileObj']['ReponseID']; - familyFileProvider.sendActivationCode(mobileNo, countryCode, nationalIDorFile.text, patientShareResponseID).then((res) => { - patientShareRequestID = res['PatientShareRequestID'], - if (res != null && res['isSMSSent'] == true) {this.startSMSService(1, res)} + familyFileProvider.sendActivationCode(mobileNo, countryCode, nationalIDorFile.text, patientShareResponseID, isExcluded).then((res) { + patientShareRequestID = res['PatientShareRequestID']; + if (res != null && res['isSMSSent'] == true) + { + this.startSMSService(1, res); + + }else + { + this.checkActivationCodeExcluded('0000', res); + } + }); } @@ -206,12 +215,19 @@ class _AddMember extends State { ).displayDialog(context); } + checkActivationCodeExcluded(value, result){ + familyFileProvider.checkActivationCode(result['LogInTokenID'], value, nationalIDorFile.text, mobileNo, patientShareRequestID, patientShareResponseID).then((result) { + SMSOTP.hideSMSBox(context); + handleFamilyRequests(); + }); + } + checkActivationCode(value, result) { Navigator.pop(context); GifLoaderDialogUtils.showMyDialog(context); familyFileProvider.checkActivationCode(result['LogInTokenID'], value, nationalIDorFile.text, mobileNo, patientShareRequestID, patientShareResponseID).then((result) { SMSOTP.hideSMSBox(context); - handleFamilyRequests(this.patientShareRequestID, 3); + handleFamilyRequests(); }).catchError((err) { Future.delayed(Duration(seconds: 1), () { AppToast.showErrorToast(message: err); @@ -220,13 +236,12 @@ class _AddMember extends State { }); } - handleFamilyRequests(id, stauts) { - // familyFileProvider.acceptAndRejectRecievedRequests(id, stauts).then((result) => { - sharedPref.remove(FAMILY_FILE); - Navigator.of(context).pushNamed( - MY_FAMILIY, - ); - // }); + handleFamilyRequests() { + Navigator.pop(context); + sharedPref.remove(FAMILY_FILE); + Navigator.of(context).pushNamed( + MY_FAMILIY + ); } loading(flag) { diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index fa7d4a6a..0eedf483 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -443,7 +443,11 @@ class _MyFamily extends State with TickerProviderStateMixin { Map request = {}; request['ID'] = this.userID; request['IsActive'] = false; - this.familyFileProvider.deativateActivateMemberFile(request).then((value) => refreshFamily(context)); + this.familyFileProvider.deativateActivateMemberFile(request).then((value) { + refreshFamily(context); + GifLoaderDialogUtils.hideDialog(context); + }); + } refreshFamily(context) async { @@ -541,6 +545,7 @@ class _MyFamily extends State with TickerProviderStateMixin { setState(() { }); + } } @@ -561,6 +566,7 @@ class _MyFamily extends State with TickerProviderStateMixin { familySharedRecords = await familyFileProvider.getSharedRecordByStatus(); } sentRecordsList =[]; + familySharedRecordsList =[]; familySharedRecords.getAllSharedRecordsByStatusList.forEach((element) { if (element.status == 3) { familySharedRecordsList.add(element); diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index 7a41f6b9..901d3b42 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -138,7 +138,7 @@ class FamilyFilesProvider with ChangeNotifier { } } - Future sendActivationCode(cellNumber, zipCode, patientIdentificationID, responseID) async { + Future sendActivationCode(cellNumber, zipCode, patientIdentificationID, responseID, bool isExcluded) async { try { dynamic localRes; var request = SendActivationRequest(); @@ -152,6 +152,7 @@ class FamilyFilesProvider with ChangeNotifier { request.responseID = responseID; request.status = 2; request.familyRegionID = zipCode == '966' ? 1 : 2; + request.isPatientExcluded = isExcluded; await new BaseAppClient().post(SEND_FAMILY_FILE_ACTIVATION, onSuccess: (dynamic response, int statusCode) { localRes = response; }, onFailure: (String error, int statusCode) { diff --git a/lib/uitl/LocalNotification.dart b/lib/uitl/LocalNotification.dart index d7afaa90..9e0cd11b 100644 --- a/lib/uitl/LocalNotification.dart +++ b/lib/uitl/LocalNotification.dart @@ -31,24 +31,24 @@ class LocalNotification { _initialize() async { try { var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon'); - var initializationSettingsIOS = DarwinInitializationSettings(onDidReceiveLocalNotification: null); - var initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS); - await flutterLocalNotificationsPlugin.initialize( - initializationSettings, - onDidReceiveNotificationResponse: (NotificationResponse notificationResponse) { - switch (notificationResponse.notificationResponseType) { - case NotificationResponseType.selectedNotification: - // selectNotificationStream.add(notificationResponse.payload); - break; - case NotificationResponseType.selectedNotificationAction: - // if (notificationResponse.actionId == navigationActionId) { - // selectNotificationStream.add(notificationResponse.payload); - // } - break; - } - }, - onDidReceiveBackgroundNotificationResponse: notificationTapBackground, - ); + // var initializationSettingsIOS = DarwinInitializationSettings(onDidReceiveLocalNotification: null); + // var initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS); + // await flutterLocalNotificationsPlugin.initialize( + // initializationSettings, + // onDidReceiveNotificationResponse: (NotificationResponse notificationResponse) { + // switch (notificationResponse.notificationResponseType) { + // case NotificationResponseType.selectedNotification: + // // selectNotificationStream.add(notificationResponse.payload); + // break; + // case NotificationResponseType.selectedNotificationAction: + // // if (notificationResponse.actionId == navigationActionId) { + // // selectNotificationStream.add(notificationResponse.payload); + // // } + // break; + // } + // }, + // onDidReceiveBackgroundNotificationResponse: notificationTapBackground, + // ); } catch (ex) {} // flutterLocalNotificationsPlugin.initialize(initializationSettings, onDidReceiveNotificationResponse: (NotificationResponse notificationResponse) // { @@ -68,16 +68,16 @@ class LocalNotification { // ); } - void notificationTapBackground(NotificationResponse notificationResponse) { - // ignore: avoid_print - print('notification(${notificationResponse.id}) action tapped: ' - '${notificationResponse.actionId} with' - ' payload: ${notificationResponse.payload}'); - if (notificationResponse.input?.isNotEmpty ?? false) { - // ignore: avoid_print - print('notification action tapped with input: ${notificationResponse.input}'); - } - } + // void notificationTapBackground(NotificationResponse notificationResponse) { + // // ignore: avoid_print + // print('notification(${notificationResponse.id}) action tapped: ' + // '${notificationResponse.actionId} with' + // ' payload: ${notificationResponse.payload}'); + // if (notificationResponse.input?.isNotEmpty ?? false) { + // // ignore: avoid_print + // print('notification action tapped with input: ${notificationResponse.input}'); + // } + // } var _random = new Random(); @@ -96,15 +96,15 @@ class LocalNotification { } Future showNow({@required String title, @required String subtitle, String payload}) { - Future.delayed(Duration(seconds: 1)).then((result) async { - var androidPlatformChannelSpecifics = AndroidNotificationDetails('com.hmg.local_notification', 'HMG', - channelDescription: 'HMG', importance: Importance.max, priority: Priority.high, ticker: 'ticker', vibrationPattern: _vibrationPattern()); - var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); - var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); - await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err) { - print(err); - }); - }); + // Future.delayed(Duration(seconds: 1)).then((result) async { + // var androidPlatformChannelSpecifics = AndroidNotificationDetails('com.hmg.local_notification', 'HMG', + // channelDescription: 'HMG', importance: Importance.max, priority: Priority.high, ticker: 'ticker', vibrationPattern: _vibrationPattern()); + // var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); + // var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); + // await flutterLocalNotificationsPlugin.show(_randomNumber(), title, subtitle, platformChannelSpecifics, payload: payload).catchError((err) { + // print(err); + // }); + // }); } Future scheduleNotification({@required DateTime scheduledNotificationDateTime, @required String title, @required String description}) async { @@ -115,31 +115,31 @@ class LocalNotification { vibrationPattern[2] = 5000; vibrationPattern[3] = 2000; - var androidPlatformChannelSpecifics = AndroidNotificationDetails('active-prescriptions', 'ActivePrescriptions', - channelDescription: 'ActivePrescriptionsDescription', - // icon: 'secondary_icon', - sound: RawResourceAndroidNotificationSound('slow_spring_board'), - - ///change it to be as ionic - // largeIcon: DrawableResourceAndroidBitmap('sample_large_icon'),///change it to be as ionic - vibrationPattern: vibrationPattern, - enableLights: true, - color: const Color.fromARGB(255, 255, 0, 0), - ledColor: const Color.fromARGB(255, 255, 0, 0), - ledOnMs: 1000, - ledOffMs: 500); - var iOSPlatformChannelSpecifics = DarwinNotificationDetails(sound: 'slow_spring_board.aiff'); + // var androidPlatformChannelSpecifics = AndroidNotificationDetails('active-prescriptions', 'ActivePrescriptions', + // channelDescription: 'ActivePrescriptionsDescription', + // // icon: 'secondary_icon', + // sound: RawResourceAndroidNotificationSound('slow_spring_board'), + // + // ///change it to be as ionic + // // largeIcon: DrawableResourceAndroidBitmap('sample_large_icon'),///change it to be as ionic + // vibrationPattern: vibrationPattern, + // enableLights: true, + // color: const Color.fromARGB(255, 255, 0, 0), + // ledColor: const Color.fromARGB(255, 255, 0, 0), + // ledOnMs: 1000, + // ledOffMs: 500); + // var iOSPlatformChannelSpecifics = DarwinNotificationDetails(sound: 'slow_spring_board.aiff'); // /change it to be as ionic - var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); - await flutterLocalNotificationsPlugin.schedule(0, title, description, scheduledNotificationDateTime, platformChannelSpecifics); + // var platformChannelSpecifics = NotificationDetails(android: androidPlatformChannelSpecifics, iOS: iOSPlatformChannelSpecifics); + // await flutterLocalNotificationsPlugin.schedule(0, title, description, scheduledNotificationDateTime, platformChannelSpecifics); } ///Repeat notification every day at approximately 10:00:00 am Future showDailyAtTime() async { var time = Time(10, 0, 0); - var androidPlatformChannelSpecifics = AndroidNotificationDetails('repeatDailyAtTime channel id', 'repeatDailyAtTime channel name', channelDescription: 'repeatDailyAtTime description'); - var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); + // var androidPlatformChannelSpecifics = AndroidNotificationDetails('repeatDailyAtTime channel id', 'repeatDailyAtTime channel name', channelDescription: 'repeatDailyAtTime description'); + // var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); // var platformChannelSpecifics = NotificationDetails( // androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); // await flutterLocalNotificationsPlugin.showDailyAtTime( @@ -153,8 +153,8 @@ class LocalNotification { ///Repeat notification weekly on Monday at approximately 10:00:00 am Future showWeeklyAtDayAndTime() async { var time = Time(10, 0, 0); - var androidPlatformChannelSpecifics = AndroidNotificationDetails('show weekly channel id', 'show weekly channel name', channelDescription: 'show weekly description'); - var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); + // var androidPlatformChannelSpecifics = AndroidNotificationDetails('show weekly channel id', 'show weekly channel name', channelDescription: 'show weekly description'); + // var iOSPlatformChannelSpecifics = DarwinNotificationDetails(); // var platformChannelSpecifics = NotificationDetails( // androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics); // await flutterLocalNotificationsPlugin.showWeeklyAtDayAndTime( diff --git a/lib/uitl/push-notification-handler.dart b/lib/uitl/push-notification-handler.dart index 3e765c17..7ae1ba43 100644 --- a/lib/uitl/push-notification-handler.dart +++ b/lib/uitl/push-notification-handler.dart @@ -303,10 +303,6 @@ class PushNotificationHandler { onToken(token); }); - FirebaseMessaging.instance.getAPNSToken().then((value) { - print("Push APNS getToken: " + value); - }); - FirebaseMessaging.onBackgroundMessage(backgroundMessageHandler); } @@ -349,10 +345,10 @@ class PushNotificationHandler { Future isAndroidPermissionGranted() async { if (Platform.isAndroid) { - final bool granted = await flutterLocalNotificationsPlugin.resolvePlatformSpecificImplementation()?.areNotificationsEnabled() ?? false; - if (!granted) { - await requestPermissions(); - } + // final bool granted = await flutterLocalNotificationsPlugin.resolvePlatfxormSpecificImplementation()?.areNotificationsEnabled() ?? false; + // if (!granted) { + // await requestPermissions(); + // } } } From 4ac11b21697314c1ca5df4ce8013214f3600b8ee Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 20 Dec 2023 23:23:31 +0300 Subject: [PATCH 02/18] LanguageID Fixes --- lib/config/config.dart | 2 +- lib/core/service/hospital_service.dart | 3 +- lib/core/viewModels/er/EdOnlineViewModel.dart | 4 +- .../viewModels/er/am_request_view_model.dart | 8 +- lib/core/viewModels/hospital_view_model.dart | 4 +- .../medical/my_balance_view_model.dart | 4 +- .../NewCMC/new_cmc_step_three_page.dart | 6 +- .../new_e_referral_step_three_page.dart | 5 +- .../bmi_calculator/bariatrics-screen.dart | 6 +- .../bmi_calculator/result_page.dart | 6 +- .../BookAppointment/DentalComplaints.dart | 16 +- .../components/LaserClinic.dart | 3 +- .../components/SearchByClinic.dart | 6 +- .../components/SearchByDoctor.dart | 3 +- .../widgets/DentalComplaintCard.dart | 5 +- .../BookAppointment/widgets/DoctorView.dart | 3 +- lib/pages/ErService/AmbulanceReq.dart | 2 +- .../EdOnlineSelectedHospitalPage.dart | 2 +- .../medical/balance/advance_payment_page.dart | 2 +- .../appointment_services/GetDoctorsList.dart | 11 +- .../clinic_services/get_clinic_service.dart | 36 ++--- lib/widgets/others/bottom_bar.dart | 140 +++++++----------- .../others/floating_button_search.dart | 6 +- pubspec.yaml | 2 +- 24 files changed, 138 insertions(+), 147 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index f0dd61b1..f9296273 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -339,7 +339,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnari var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 11.5; +var VERSION_ID = 11.6; var SETUP_ID = '91877'; var LANGUAGE = 2; // var PATIENT_OUT_SA = 0; diff --git a/lib/core/service/hospital_service.dart b/lib/core/service/hospital_service.dart index be0024ab..e6dc7727 100644 --- a/lib/core/service/hospital_service.dart +++ b/lib/core/service/hospital_service.dart @@ -51,13 +51,14 @@ class HospitalService extends BaseService { } } - Future getHospitals({bool isResBasedOnLoc = true, bool isAdvancePayment = false}) async { + Future getHospitals(int languageID, {bool isResBasedOnLoc = true, bool isAdvancePayment = false}) async { if (isResBasedOnLoc) await _getCurrentLocation(); Map body = Map(); body['Latitude'] = await this.sharedPref.getDouble(USER_LAT); body['Longitude'] = await this.sharedPref.getDouble(USER_LONG); body['IsOnlineCheckIn'] = isResBasedOnLoc; body['IsAdvancePayment'] = isAdvancePayment; + body['LanguageID'] = languageID; await baseAppClient.post(GET_PROJECT, onSuccess: (dynamic response, int statusCode) { _hospitals.clear(); diff --git a/lib/core/viewModels/er/EdOnlineViewModel.dart b/lib/core/viewModels/er/EdOnlineViewModel.dart index 1970a965..00be41b2 100644 --- a/lib/core/viewModels/er/EdOnlineViewModel.dart +++ b/lib/core/viewModels/er/EdOnlineViewModel.dart @@ -20,10 +20,10 @@ class EdOnlineViewModel extends BaseViewModel { ErPatientShareModel get erPatientShareModel => _edOnlineServices.erPatientShareModel; - Future getHospitals() async { + Future getHospitals(int languageID) async { if(_hospitalService.hospitals.isEmpty){ setState(ViewState.Busy); - await _hospitalService.getHospitals(); + await _hospitalService.getHospitals(languageID); if (_hospitalService.hasError) { error = _hospitalService.error; setState(ViewState.Error); diff --git a/lib/core/viewModels/er/am_request_view_model.dart b/lib/core/viewModels/er/am_request_view_model.dart index aff532d7..53eb477a 100644 --- a/lib/core/viewModels/er/am_request_view_model.dart +++ b/lib/core/viewModels/er/am_request_view_model.dart @@ -50,19 +50,19 @@ class AmRequestViewModel extends BaseViewModel { setState(ViewState.Idle); } - Future getAmRequestOrders() async { + Future getAmRequestOrders(int languageID) async { setState(ViewState.Busy); await _amService.getAllTransportationOrders(); if (_amService.hasError) { error = _amService.error; setState(ViewState.Error); } else - getHospitals(); + getHospitals(languageID); } - Future getHospitals() async { + Future getHospitals(int languageID) async { setState(ViewState.Busy); - await _hospitalService.getHospitals(isResBasedOnLoc: false); + await _hospitalService.getHospitals(languageID, isResBasedOnLoc: false); if (_hospitalService.hasError) { error = _hospitalService.error; setState(ViewState.Error); diff --git a/lib/core/viewModels/hospital_view_model.dart b/lib/core/viewModels/hospital_view_model.dart index 66ad4b01..c406c3dc 100644 --- a/lib/core/viewModels/hospital_view_model.dart +++ b/lib/core/viewModels/hospital_view_model.dart @@ -10,9 +10,9 @@ class HospitalViewModel extends BaseViewModel { List get hospitals => _hospitalService.hospitals; - Future getHospitals() async { + Future getHospitals(int languageID) async { setState(ViewState.Busy); - await _hospitalService.getHospitals(); + await _hospitalService.getHospitals(languageID); if (_hospitalService.hasError) { error = _hospitalService.error; setState(ViewState.Error); diff --git a/lib/core/viewModels/medical/my_balance_view_model.dart b/lib/core/viewModels/medical/my_balance_view_model.dart index 4166a4b3..47289b81 100644 --- a/lib/core/viewModels/medical/my_balance_view_model.dart +++ b/lib/core/viewModels/medical/my_balance_view_model.dart @@ -70,9 +70,9 @@ class MyBalanceViewModel extends BaseViewModel { } } - Future getHospitals({bool isAdvancePayment = false}) async { + Future getHospitals(int languageID, {bool isAdvancePayment = false}) async { setState(ViewState.Busy); - await _hospitalService.getHospitals(isAdvancePayment: isAdvancePayment); + await _hospitalService.getHospitals(languageID, isAdvancePayment: isAdvancePayment); if (_hospitalService.hasError) { error = _hospitalService.error; setState(ViewState.Error); diff --git a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart index ec020f49..154dbe19 100644 --- a/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart +++ b/lib/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/NewCMC/new_cmc_step_three_page.dart @@ -41,6 +41,7 @@ class _NewCMCStepThreePageState extends State { HospitalsModel selectedHospital; final GlobalKey projectDropdownKey = GlobalKey(); bool isLocationSelected = false; + ProjectViewModel projectViewModel; static CameraPosition _kGooglePlex = CameraPosition( target: LatLng(37.42796133580664, -122.085749655962), @@ -74,7 +75,7 @@ class _NewCMCStepThreePageState extends State { @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); return AppScaffold( isShowAppBar: true, description: TranslationBase.of(context).infoCMC, @@ -360,10 +361,11 @@ class _NewCMCStepThreePageState extends State { } getProjectsList() { + int languageID = projectViewModel.isArabic ? 1 : 2; ClinicListService service = new ClinicListService(); GifLoaderDialogUtils.showMyDialog(context); List projectsListLocal = []; - service.getProjectsList(context).then((res) { + service.getProjectsList(languageID, context).then((res) { if (res['MessageStatus'] == 1) { setState(() { res['ListProject'].forEach((v) { diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart index 7bacad65..e5ed6ff4 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_three_page.dart @@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/get_all_cities_response_model.dart'; import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_dialog.dart'; @@ -22,6 +23,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../dialogs/select_city_dialog.dart'; @@ -436,9 +438,10 @@ class _NewEReferralStepThreePageState extends State { } void getAllProjects() { + int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; ClinicListService service = new ClinicListService(); List projectsListLocal = []; - service.getProjectsList(context).then((res) { + service.getProjectsList(languageID, context).then((res) { if (res['MessageStatus'] == 1) { setState(() { res['ListProject'].forEach((v) { diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart index 13de0140..48ef57ff 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart @@ -32,10 +32,11 @@ class BariatricsPage extends StatefulWidget { class _BariatricsPageState extends State { DiseasesByClinic _selectedDisease; + ProjectViewModel projectProvider; @override Widget build(BuildContext context) { - ProjectViewModel projectProvider = Provider.of(context); + projectProvider = Provider.of(context); return BaseView( onModelReady: (model) => model.getClinicCategory(), @@ -139,6 +140,7 @@ class _BariatricsPageState extends State { } callDoctorsSearchAPI() { + int languageID = projectProvider.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; List arr = []; @@ -148,7 +150,7 @@ class _BariatricsPageState extends State { List _patientDoctorAppointmentListHospital = List(); DoctorsListService service = new DoctorsListService(); - service.getDoctorsList(108, 0, false, context).then((res) { + service.getDoctorsList(108, 0, false, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart index fa12a9fe..d4a4f5fc 100644 --- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart +++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.dart @@ -1,8 +1,8 @@ import 'dart:collection'; import 'package:auto_size_text/auto_size_text.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bariatrics-screen.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; @@ -15,6 +15,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; +import 'package:provider/provider.dart'; class ResultPage extends StatefulWidget { final double finalResult; @@ -137,6 +138,7 @@ class _ResultPageState extends State { } callDoctorsSearchAPI() { + int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; List arr = []; @@ -146,7 +148,7 @@ class _ResultPageState extends State { List _patientDoctorAppointmentListHospital = List(); DoctorsListService service = new DoctorsListService(); - service.getDoctorsList(108, 0, false, context).then((res) { + service.getDoctorsList(108, 0, false, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/BookAppointment/DentalComplaints.dart b/lib/pages/BookAppointment/DentalComplaints.dart index 27cb951e..487fbab4 100644 --- a/lib/pages/BookAppointment/DentalComplaints.dart +++ b/lib/pages/BookAppointment/DentalComplaints.dart @@ -75,10 +75,12 @@ class _DentalComplaintsState extends State { languageID: languageID, isDoctorNameSearch: widget.isDoctorNameSearch, onSelectedMethod: widget.onSelectedMethod, - )..logAnalytics = (){ - final info = widget.searchInfo; - locator().appointment.book_appointment_chief_complaints(appointment_type: 'regular', hospital: info.hospital, clinic: info.clinic, treatment: complaintsList[index]); - }, + )..logAnalytics = () { + final info = widget.searchInfo; + locator() + .appointment + .book_appointment_chief_complaints(appointment_type: 'regular', hospital: info.hospital, clinic: info.clinic, treatment: complaintsList[index]); + }, ); }, separatorBuilder: (BuildContext context, int index) { @@ -207,11 +209,12 @@ class _DentalComplaintsState extends State { } continueDentalPlan() { + int languageID = projectViewModel.isArabic ? 1 : 2; DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); int appoTime = 0; - service.getDoctorsList(int.parse("17"), widget.searchInfo.ProjectID, false, context, isContinueDentalPlan: true).then((res) { + service.getDoctorsList(int.parse("17"), widget.searchInfo.ProjectID, false, languageID, context, isContinueDentalPlan: true).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { dentalProceduresModel = DentalProceduresModel.fromJson(res); @@ -254,10 +257,11 @@ class _DentalComplaintsState extends State { } getChiefComplaintsList() { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); getLanguageID(); ClinicListService service = new ClinicListService(); - service.getChiefComplaintsList(widget.searchInfo.ClinicID, widget.searchInfo.ProjectID, context).then((res) { + service.getChiefComplaintsList(widget.searchInfo.ClinicID, widget.searchInfo.ProjectID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/BookAppointment/components/LaserClinic.dart b/lib/pages/BookAppointment/components/LaserClinic.dart index 918ca9ad..c7e32565 100644 --- a/lib/pages/BookAppointment/components/LaserClinic.dart +++ b/lib/pages/BookAppointment/components/LaserClinic.dart @@ -204,6 +204,7 @@ class _LaserClinicState extends State with SingleTickerProviderStat } callDoctorsSearchAPI() { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; List arr = []; @@ -214,7 +215,7 @@ class _LaserClinicState extends State with SingleTickerProviderStat DoctorsListService service = new DoctorsListService(); projectViewModel.selectedBodyPartList = _selectedBodyPartList; - service.getDoctorsList(253, 0, false, context).then((res) { + service.getDoctorsList(253, 0, false, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart index 26deb0f8..a0fed504 100644 --- a/lib/pages/BookAppointment/components/SearchByClinic.dart +++ b/lib/pages/BookAppointment/components/SearchByClinic.dart @@ -499,10 +499,11 @@ class _SearchByClinicState extends State { } getProjectsList() { + int languageID = projectViewModel.isArabic ? 1 : 2; ClinicListService service = new ClinicListService(); List projectsListLocal = []; service - .getProjectsList(context) + .getProjectsList(languageID, context) .then((res) { if (res['MessageStatus'] == 1) { setState(() { @@ -572,6 +573,7 @@ class _SearchByClinicState extends State { } callDoctorsSearchAPI(int clinicID) { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; List arr = []; @@ -581,7 +583,7 @@ class _SearchByClinicState extends State { List _patientDoctorAppointmentListHospital = List(); DoctorsListService service = new DoctorsListService(); - service.getDoctorsList(clinicID, projectDropdownValue != "" ? int.parse(projectDropdownValue) : 0, nearestAppo, context).then((res) { + service.getDoctorsList(clinicID, projectDropdownValue != "" ? int.parse(projectDropdownValue) : 0, nearestAppo, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/BookAppointment/components/SearchByDoctor.dart b/lib/pages/BookAppointment/components/SearchByDoctor.dart index 4425d926..a37f45e1 100644 --- a/lib/pages/BookAppointment/components/SearchByDoctor.dart +++ b/lib/pages/BookAppointment/components/SearchByDoctor.dart @@ -90,13 +90,14 @@ class _SearchByDoctorState extends State { } getDoctorsList(BuildContext context) { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List doctorsList = []; DoctorsListService service = new DoctorsListService(); List _patientDoctorAppointmentListHospital = List(); - service.getDoctorsListByName(doctorNameController.text, context).then((res) { + service.getDoctorsListByName(doctorNameController.text, languageID, context).then((res) { // GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/BookAppointment/widgets/DentalComplaintCard.dart b/lib/pages/BookAppointment/widgets/DentalComplaintCard.dart index 83b298f2..7e93dc9f 100644 --- a/lib/pages/BookAppointment/widgets/DentalComplaintCard.dart +++ b/lib/pages/BookAppointment/widgets/DentalComplaintCard.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DentalChiefComplaintsModel.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/SearchResults.dart'; @@ -6,6 +7,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; // ignore: must_be_immutable class DentalComplaintCard extends StatefulWidget { @@ -60,12 +62,13 @@ class _DentalComplaintCardState extends State { } getChiefComplaintsList() { + int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; List doctorsList = []; List _patientDoctorAppointmentListHospital = List(); GifLoaderDialogUtils.showMyDialog(context); ClinicListService service = new ClinicListService(); - service.getChiefComplaintDoctorList(widget.listDentalChiefComplain.iD, widget.listDentalChiefComplain.projectID, context).then((res) { + service.getChiefComplaintDoctorList(widget.listDentalChiefComplain.iD, widget.listDentalChiefComplain.projectID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { print(res['List_DentalDoctorChiefComplaintMapping']); diff --git a/lib/pages/BookAppointment/widgets/DoctorView.dart b/lib/pages/BookAppointment/widgets/DoctorView.dart index 32aff5ac..6969302f 100644 --- a/lib/pages/BookAppointment/widgets/DoctorView.dart +++ b/lib/pages/BookAppointment/widgets/DoctorView.dart @@ -183,10 +183,11 @@ class DoctorView extends StatelessWidget { } getDoctorsProfile(context, DoctorList docObject, {isAppo}) { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); List docProfileList = []; DoctorsListService service = new DoctorsListService(); - service.getDoctorsProfile(docObject.doctorID, docObject.clinicID, docObject.projectID, context).then((res) { + service.getDoctorsProfile(docObject.doctorID, docObject.clinicID, docObject.projectID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { if (res['DoctorProfileList'].length != 0) { diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart index 3803bcd4..29abc3fc 100644 --- a/lib/pages/ErService/AmbulanceReq.dart +++ b/lib/pages/ErService/AmbulanceReq.dart @@ -40,7 +40,7 @@ class _AmbulanceReqState extends State with SingleTickerProviderSt imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/Ambulance/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/Ambulance/ar/0.png')); return BaseView( - onModelReady: (model) => model.getAmRequestOrders(), + onModelReady: (model) => model.getAmRequestOrders(projectViewModel.isArabic ? 1 : 2), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, showNewAppBarTitle: true, diff --git a/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart b/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart index 76eace88..ca933f42 100644 --- a/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart +++ b/lib/pages/ErService/EdOnline/EdOnlineSelectedHospitalPage.dart @@ -33,7 +33,7 @@ class _EdOnlineSelectedHospitalPageState extends State( - onModelReady: (model) => model.getHospitals(), + onModelReady: (model) => model.getHospitals(projectViewModel.isArabic ? 1 : 2), builder: (_, model, w) => AppScaffold( baseViewModel: model, body: SingleChildScrollView( diff --git a/lib/pages/medical/balance/advance_payment_page.dart b/lib/pages/medical/balance/advance_payment_page.dart index a07944f1..f2a9c79a 100644 --- a/lib/pages/medical/balance/advance_payment_page.dart +++ b/lib/pages/medical/balance/advance_payment_page.dart @@ -67,7 +67,7 @@ class _AdvancePaymentPageState extends State { projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) { - model.getHospitals(isAdvancePayment: true); + model.getHospitals(projectViewModel.isArabic ? 1 : 2, isAdvancePayment: true); model.getFamilyFiles(); }, builder: (_, model, w) => AppScaffold( diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index f3b7670c..94766e3c 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -34,7 +34,7 @@ class DoctorsListService extends BaseService { String tokenID; List selectedBodyPartList = []; - Future getDoctorsList(int clinicID, int projectID, bool isNearest, BuildContext context, {doctorId, doctorName, isContinueDentalPlan = false}) async { + Future getDoctorsList(int clinicID, int projectID, bool isNearest, int languageID, BuildContext context, {doctorId, doctorName, isContinueDentalPlan = false}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -74,6 +74,7 @@ class DoctorsListService extends BaseService { "Longitude": long != null ? long.toString() : 0, "isDentalAllowedBackend": clinicID == 17 ? true : isContinueDentalPlan, "IsGetNearAppointment": isNearest, + "LanguageID": languageID, if (isNearest) "SelectedDate": DateUtil.convertDateToString(DateTime.now()), "License": true }; @@ -88,7 +89,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getDoctorsListByName(String docName, BuildContext context) async { + Future getDoctorsListByName(String docName, int languageID, BuildContext context) async { Map request; double lat; @@ -126,6 +127,7 @@ class DoctorsListService extends BaseService { "IsGetNearAppointment": false, "Latitude": lat == null ? 0.0 : lat, "Longitude": long == null ? 0.0 : long, + "LanguageID": languageID, "License": true }; @@ -139,7 +141,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getDoctorsProfile(int docID, int clinicID, int projectID, context) async { + Future getDoctorsProfile(int docID, int clinicID, int projectID, int languageID, context) async { Map request; Request req = appGlobal.getPublicRequest(); @@ -158,7 +160,8 @@ class DoctorsListService extends BaseService { "License": true, "IsRegistered": true, "ProjectID": projectID, - "isDentalAllowedBackend": false + "isDentalAllowedBackend": false, + "LanguageID": languageID, }; dynamic localRes; diff --git a/lib/services/clinic_services/get_clinic_service.dart b/lib/services/clinic_services/get_clinic_service.dart index 469ac404..80032015 100644 --- a/lib/services/clinic_services/get_clinic_service.dart +++ b/lib/services/clinic_services/get_clinic_service.dart @@ -34,10 +34,7 @@ class ClinicListService extends BaseService { Future getActiveAppointmentNo(context) async { Map request = {}; - request = { - "IsActiveAppointment": true, - "LanguageID": 1 - }; + request = {"IsActiveAppointment": true, "LanguageID": 1}; dynamic localRes; @@ -49,12 +46,10 @@ class ClinicListService extends BaseService { return Future.value(localRes); } - Future getProjectsList(context) async { + Future getProjectsList(int languageID, context) async { Map request = {}; - request = { - "LanguageID": null - }; + request = {"LanguageID": languageID}; dynamic localRes; @@ -66,7 +61,7 @@ class ClinicListService extends BaseService { return Future.value(localRes); } - Future getChiefComplaintsList(int clinicID, int projectID, BuildContext context, {doctorId}) async { + Future getChiefComplaintsList(int clinicID, int projectID, int languageID, BuildContext context, {doctorId}) async { //Utils.showProgressDialog(context); Map request; @@ -85,7 +80,7 @@ class ClinicListService extends BaseService { "License": true, // "VersionID": 5.6, // "Channel": 3, - // "LanguageID": languageID == 'ar' ? 1 : 2, + "LanguageID": languageID, "IPAdress": "10.20.10.20", "generalid": "Cs2020@2016\$2958", "SessionID": null, @@ -107,7 +102,7 @@ class ClinicListService extends BaseService { return Future.value(localRes); } - Future getChiefComplaintDoctorList(int chiefComplaintID, int projectID, BuildContext context, {doctorId}) async { + Future getChiefComplaintDoctorList(int chiefComplaintID, int projectID, int languageID, BuildContext context, {doctorId}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -127,7 +122,7 @@ class ClinicListService extends BaseService { "ProjectID": projectID, // "VersionID": 5.6, // "Channel": 3, - // "LanguageID": languageID == 'ar' ? 1 : 2, + "LanguageID": languageID, // "IPAdress": req.IPAdress, // "generalid": req.generalid, "SessionID": null, @@ -147,14 +142,15 @@ class ClinicListService extends BaseService { }, body: request); return Future.value(localRes); } + Future getCountries() async { - Map request ={}; + Map request = {}; dynamic localRes; - await baseAppClient.post(GET_NATIONALITY, onSuccess: (response, statusCode) async { - localRes = response; - }, onFailure: (String error, int statusCode) { - throw error; - }, body: request); - return Future.value(localRes); -} + await baseAppClient.post(GET_NATIONALITY, onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); + return Future.value(localRes); + } } diff --git a/lib/widgets/others/bottom_bar.dart b/lib/widgets/others/bottom_bar.dart index 04f4f851..ab747e64 100644 --- a/lib/widgets/others/bottom_bar.dart +++ b/lib/widgets/others/bottom_bar.dart @@ -2,6 +2,7 @@ import 'dart:collection'; import 'dart:math'; import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorProfile.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/DoctorProfile.dart'; @@ -33,6 +34,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_tts/flutter_tts.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:provider/provider.dart'; + // import 'package:speech_to_text/speech_recognition_error.dart'; // import 'package:speech_to_text/speech_recognition_result.dart'; // import 'package:speech_to_text/speech_to_text.dart'; @@ -44,9 +47,10 @@ class BottomBarSearch extends StatefulWidget { class _SearchBot extends State { SearchProvider searchProvider = new SearchProvider(); - RobotProvider Provider = RobotProvider(); + RobotProvider robotProvider = RobotProvider(); bool isLoading = false; bool isError = false; + // final SpeechToText speech = SpeechToText(); String error = ''; String _currentLocaleId = ""; @@ -64,6 +68,7 @@ class _SearchBot extends State { bool _isInit = true; TextEditingController searchController = TextEditingController(); + ProjectViewModel projectProvider; @override void initState() { @@ -74,40 +79,37 @@ class _SearchBot extends State { @override Widget build(BuildContext context) { + projectProvider = Provider.of(context); return BottomAppBar( - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Expanded( - child: SizedBox( - height: 64, - child: Material( - type: MaterialType.transparency, - child: TextField( - keyboardType: TextInputType.multiline, - maxLines: null, - controller: searchController, - decoration: InputDecoration( - hintText: TranslationBase.of(context).textToSpeech, - suffixIcon: IconButton( - icon: Icon(Icons.mic), - onPressed: () async { - setState(() { - searchController.text = ''; - }); - // await flutterTts.speak("Hello!"); - //Future.delayed(const Duration(seconds: 1), () { - initSpeechState() - .then((value) => startVoiceSearch()); - //}); - }, - )), - ), - ), + child: Row(mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ + Expanded( + child: SizedBox( + height: 64, + child: Material( + type: MaterialType.transparency, + child: TextField( + keyboardType: TextInputType.multiline, + maxLines: null, + controller: searchController, + decoration: InputDecoration( + hintText: TranslationBase.of(context).textToSpeech, + suffixIcon: IconButton( + icon: Icon(Icons.mic), + onPressed: () async { + setState(() { + searchController.text = ''; + }); + // await flutterTts.speak("Hello!"); + //Future.delayed(const Duration(seconds: 1), () { + initSpeechState().then((value) => startVoiceSearch()); + //}); + }, + )), ), ), - ]), + ), + ), + ]), ); } @@ -164,10 +166,7 @@ class _SearchBot extends State { Future initSpeechState() async { // await speech.initialize(onError: errorListener, onStatus: statusListener); - _currentLocaleId = - TranslationBase.of(AppGlobal.context).locale.languageCode == 'en' - ? 'en-GB' - : 'ar-SA'; // systemLocale.localeId; + _currentLocaleId = TranslationBase.of(AppGlobal.context).locale.languageCode == 'en' ? 'en-GB' : 'ar-SA'; // systemLocale.localeId; flutterTts.setLanguage(_currentLocaleId); // if (!mounted) return; @@ -187,16 +186,9 @@ class _SearchBot extends State { } getPages(text) { - var request = { - 'VoiceMessage': text, - 'Lang': TranslationBase.of(AppGlobal.context).locale.languageCode == 'en' - ? 'En' - : 'Ar' - }; - - searchProvider - .getBotPages(request) - .then((value) => {getCommands(value['Understand'])}); + var request = {'VoiceMessage': text, 'Lang': TranslationBase.of(AppGlobal.context).locale.languageCode == 'en' ? 'En' : 'Ar'}; + + searchProvider.getBotPages(request).then((value) => {getCommands(value['Understand'])}); } getCommands(result) async { @@ -207,9 +199,7 @@ class _SearchBot extends State { case '100': { List clnicID = unique(result['ClinicId']); - if (result['ProjectId'] != 0 && - clnicID.length > 0 && - result['DoctorId'].length > 0) { + if (result['ProjectId'] != 0 && clnicID.length > 0 && result['DoctorId'].length > 0) { if (clnicID.length == 1) { getDoctorsList( result['ProjectId'], @@ -221,9 +211,7 @@ class _SearchBot extends State { } else { goToClinic(clnicID); } - } else if (result['ProjectId'] != 0 && - clnicID.length > 0 && - result['DoctorId'].length == 0) { + } else if (result['ProjectId'] != 0 && clnicID.length > 0 && result['DoctorId'].length == 0) { if (clnicID.length == 1) { getDoctorsList( result['ProjectId'], @@ -233,9 +221,7 @@ class _SearchBot extends State { } else { goToClinic(clnicID); } - } else if (result['ProjectId'] == 0 && - clnicID.length > 0 && - result['DoctorId'].length == 0) { + } else if (result['ProjectId'] == 0 && clnicID.length > 0 && result['DoctorId'].length == 0) { if (clnicID.length == 1) { getDoctorsList( result['ProjectId'], @@ -245,9 +231,7 @@ class _SearchBot extends State { } else { goToClinic(clnicID); } - } else if (result['ProjectId'] == 0 && - clnicID.length > 0 && - result['DoctorId'].length > 0) { + } else if (result['ProjectId'] == 0 && clnicID.length > 0 && result['DoctorId'].length > 0) { if (clnicID.length == 1) { getDoctorsList( result['ProjectId'], @@ -394,12 +378,11 @@ class _SearchBot extends State { } getDoctorProfile(projectId, clinicId, doctorId, context, doctorData) { + int languageID = projectProvider.isArabic ? 1 : 2; List docProfileList = []; DoctorsListService service = new DoctorsListService(); - service - .getDoctorsProfile(doctorId, clinicId, projectId, context) - .then((res) { + service.getDoctorsProfile(doctorId, clinicId, projectId, languageID, context).then((res) { if (res['MessageStatus'] == 1) { if (res['DoctorProfileList'].length != 0) { res['DoctorProfileList'].forEach((v) { @@ -407,8 +390,7 @@ class _SearchBot extends State { }); } - navigateToDoctorProfile(context, doctorData[0], docProfileList[0], - isAppo: true); + navigateToDoctorProfile(context, doctorData[0], docProfileList[0], isAppo: true); //speak(); } }).catchError((err) { @@ -417,33 +399,27 @@ class _SearchBot extends State { } getDoctorsList(projectId, clinicId, context, {doctorId, doctorName}) { + int languageID = projectProvider.isArabic ? 1 : 2; List doctorsList = []; List arr = []; List arrDistance = []; DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); - service - .getDoctorsList(clinicId, projectId, false, context, - doctorId: doctorId, doctorName: doctorName) - .then((res) { + service.getDoctorsList(clinicId, projectId, false, languageID, context, doctorId: doctorId, doctorName: doctorName).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { - if (res['SearchDoctorsByTime_IsVoiceCommandList'] != null && - res['SearchDoctorsByTime_IsVoiceCommandList'].length != 0) { + if (res['SearchDoctorsByTime_IsVoiceCommandList'] != null && res['SearchDoctorsByTime_IsVoiceCommandList'].length != 0) { doctorsList.clear(); res['SearchDoctorsByTime_IsVoiceCommandList'].forEach((v1) { v1['DoctorList'].forEach((v) { doctorsList.add(new DoctorList.fromJson(v)); arr.add(new DoctorList.fromJson(v).projectName); - arrDistance.add(new DoctorList.fromJson(v) - .projectDistanceInKiloMeters - .toString()); + arrDistance.add(new DoctorList.fromJson(v).projectDistanceInKiloMeters.toString()); }); }); if (doctorsList.length == 1) { - getDoctorProfile( - projectId, clinicId, doctorId[0], context, doctorsList); + getDoctorProfile(projectId, clinicId, doctorId[0], context, doctorsList); //speak(); } else { @@ -455,14 +431,11 @@ class _SearchBot extends State { res['DoctorList'].forEach((v) { doctorsList.add(new DoctorList.fromJson(v)); arr.add(new DoctorList.fromJson(v).projectName); - arrDistance.add(new DoctorList.fromJson(v) - .projectDistanceInKiloMeters - .toString()); + arrDistance.add(new DoctorList.fromJson(v).projectDistanceInKiloMeters.toString()); }); if (doctorsList.length == 1) { - getDoctorProfile( - projectId, clinicId, doctorId[0], context, doctorsList); + getDoctorProfile(projectId, clinicId, doctorId[0], context, doctorsList); //speak(); } else { @@ -479,8 +452,7 @@ class _SearchBot extends State { }); } - Future navigateToDoctorProfile(context, docObject, docProfile, - {isAppo}) async { + Future navigateToDoctorProfile(context, docObject, docProfile, {isAppo}) async { Navigator.push( context, FadePage( @@ -497,11 +469,7 @@ class _SearchBot extends State { Navigator.push( context, FadePage( - page: BranchView( - doctorsList: docList, - result: result, - num: numAll, - resultDistance: arrDistance), + page: BranchView(doctorsList: docList, result: result, num: numAll, resultDistance: arrDistance), ), ); } diff --git a/lib/widgets/others/floating_button_search.dart b/lib/widgets/others/floating_button_search.dart index 8e5c16b5..41f6f6cb 100644 --- a/lib/widgets/others/floating_button_search.dart +++ b/lib/widgets/others/floating_button_search.dart @@ -729,10 +729,11 @@ class _FloatingSearchButton extends State with TickerProvi } getDoctorProfile(projectId, clinicId, doctorId, context, doctorData) { + int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; List docProfileList = []; DoctorsListService service = new DoctorsListService(); - service.getDoctorsProfile(doctorId, clinicId, projectId, context).then((res) { + service.getDoctorsProfile(doctorId, clinicId, projectId, languageID, context).then((res) { if (res['MessageStatus'] == 1) { if (res['DoctorProfileList'].length != 0) { res['DoctorProfileList'].forEach((v) { @@ -749,12 +750,13 @@ class _FloatingSearchButton extends State with TickerProvi } getDoctorsList(projectId, clinicId, context, {doctorId, doctorName, isNearest = false}) { + int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; List doctorsList = []; List arr = []; List arrDistance = []; DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); - service.getDoctorsList(clinicId, projectId, isNearest, context, doctorId: doctorId, doctorName: doctorName).then((res) { + service.getDoctorsList(clinicId, projectId, isNearest, languageID, context, doctorId: doctorId, doctorName: doctorName).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/pubspec.yaml b/pubspec.yaml index 4e49ef9d..58c83fe0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: diplomaticquarterapp description: A new Flutter application. -version: 4.5.035+4050035 +version: 4.5.037+4050037 environment: sdk: ">=2.7.0 <3.0.0" From aa04e943efb13160898a1206f6ad31fc84cba4c8 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 31 Dec 2023 17:03:08 +0300 Subject: [PATCH 03/18] updates & fixes --- lib/config/config.dart | 2 +- .../service/appointment_rate_service.dart | 3 +- lib/core/service/client/base_app_client.dart | 4 +- .../appointment_rate_view_model.dart | 4 +- lib/pages/BookAppointment/QRCode.dart | 36 ++++----- lib/pages/MyAppointments/MyAppointments.dart | 5 +- lib/pages/MyAppointments/VisitTicket.dart | 7 +- .../widgets/AppointmentActions.dart | 6 +- lib/pages/ToDoList/ToDo.dart | 3 +- lib/pages/feedback/send_feedback_page.dart | 7 +- lib/pages/landing/landing_page.dart | 32 ++++---- lib/pages/livecare/widgets/clinic_card.dart | 4 +- lib/pages/livecare/widgets/clinic_list.dart | 2 +- lib/pages/login/confirm-login.dart | 56 ++++++++++---- lib/pages/login/login.dart | 75 +++++++++---------- .../rate_appointment_clinic.dart | 37 +++++---- .../rate_appointment_doctor.dart | 36 +++++---- .../appointment_services/GetDoctorsList.dart | 11 ++- .../livecare_services/livecare_provider.dart | 13 +++- lib/widgets/drawer/app_drawer_widget.dart | 1 + 20 files changed, 207 insertions(+), 137 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 6666141f..e7635e5b 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -342,7 +342,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnari var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 11.6; +var VERSION_ID = 11.7; var SETUP_ID = '91877'; var LANGUAGE = 2; // var PATIENT_OUT_SA = 0; diff --git a/lib/core/service/appointment_rate_service.dart b/lib/core/service/appointment_rate_service.dart index 848aeb48..446b5d6b 100644 --- a/lib/core/service/appointment_rate_service.dart +++ b/lib/core/service/appointment_rate_service.dart @@ -36,7 +36,7 @@ class AppointmentRateService extends BaseService { }, body: bodyData); } - Future sendAppointmentRate(int rate, int appointmentNo, int projectID, int doctorID, int clinicID, String note) async { + Future sendAppointmentRate(int rate, int appointmentNo, int projectID, int doctorID, int clinicID, String note, int languageID) async { hasError = false; AppointmentRate appointmentRate = AppointmentRate(); appointmentRate.rate = rate; @@ -47,6 +47,7 @@ class AppointmentRateService extends BaseService { appointmentRate.note = note; appointmentRate.createdBy = 2; appointmentRate.editedBy = 2; + appointmentRate.languageID = languageID; await baseAppClient.post(NEW_RATE_APPOINTMENT_URL, onSuccess: (dynamic response, int statusCode) {}, onFailure: (String error, int statusCode) { hasError = true; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 54235646..26bacebe 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -77,7 +77,7 @@ class BaseAppClient { if (body.containsKey('LanguageID')) { if(body['LanguageID'] != null) { //change this line because language issue happened on dental - body['LanguageID'] = body['LanguageID'] =='ar' ? "1" : body['LanguageID'] =='en' ? '2' : body['LanguageID']; + body['LanguageID'] = body['LanguageID'] =='ar' ? 1 : body['LanguageID'] =='en' ? 2 : body['LanguageID']; } else { body['LanguageID'] = Provider.of(AppGlobal.context, listen: false).isArabic ? 1 : 2; } @@ -170,7 +170,7 @@ class BaseAppClient { // body['IdentificationNo'] = 1023854217; // body['MobileNo'] = "531940021"; - // body['PatientID'] = 1231755; //3844083 + // body['PatientID'] = 1014144; //3844083 // body['TokenID'] = "@dm!n"; // Patient ID: 3027574 diff --git a/lib/core/viewModels/appointment_rate_view_model.dart b/lib/core/viewModels/appointment_rate_view_model.dart index 9396c2f5..1817c23d 100644 --- a/lib/core/viewModels/appointment_rate_view_model.dart +++ b/lib/core/viewModels/appointment_rate_view_model.dart @@ -35,9 +35,9 @@ class AppointmentRateViewModel extends BaseViewModel { } } - Future sendAppointmentRate(int rate, int appointmentNo, int projectID, int doctorID, int clinicID, String note) async { + Future sendAppointmentRate(int rate, int appointmentNo, int projectID, int doctorID, int clinicID, String note, int languageID) async { setState(ViewState.Busy); - await _appointmentRateService.sendAppointmentRate(rate, appointmentNo, projectID, doctorID, clinicID, note); + await _appointmentRateService.sendAppointmentRate(rate, appointmentNo, projectID, doctorID, clinicID, note, languageID); if (_appointmentRateService.hasError) { error = _appointmentRateService.error; setState(ViewState.ErrorLocal); diff --git a/lib/pages/BookAppointment/QRCode.dart b/lib/pages/BookAppointment/QRCode.dart index 3b7e6300..90e39767 100644 --- a/lib/pages/BookAppointment/QRCode.dart +++ b/lib/pages/BookAppointment/QRCode.dart @@ -11,6 +11,7 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/header_model.dart'; +import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; @@ -63,7 +64,7 @@ class _QRCodeState extends State { widget.authUser = new AuthenticatedUser(); // WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - // startNFCScan(); + // startNFCScan(); // }); super.initState(); @@ -213,19 +214,17 @@ class _QRCodeState extends State { optionsList.add( InkWell( onTap: () { - if (projectViewModel.havePrivilege(80) && _supportsNFC) { - startNFCScan(); - } else { - Utils.showErrorToast(TranslationBase.of(context).NFCNotSupported); + if (projectViewModel.havePrivilege(102)) { + startLocationCheckIn(); } }, child: MedicalProfileItem( - title: TranslationBase.of(context).scanNFC, - imagePath: 'contactless.svg', + title: TranslationBase.of(context).checkInViaLocation, + imagePath: 'location.svg', subTitle: "", - isEnable: projectViewModel.havePrivilege(80), - width: 80.0, - height: 80.0, + isEnable: projectViewModel.havePrivilege(102), + width: 70.0, + height: 70.0, ), ), ); @@ -251,17 +250,19 @@ class _QRCodeState extends State { optionsList.add( InkWell( onTap: () { - if (projectViewModel.havePrivilege(102)) { - startLocationCheckIn(); + if (projectViewModel.havePrivilege(80) && _supportsNFC) { + startNFCScan(); + } else { + Utils.showErrorToast(TranslationBase.of(context).NFCNotSupported); } }, child: MedicalProfileItem( - title: TranslationBase.of(context).checkInViaLocation, - imagePath: 'location.svg', + title: TranslationBase.of(context).scanNFC, + imagePath: 'contactless.svg', subTitle: "", - isEnable: projectViewModel.havePrivilege(102), - width: 70.0, - height: 70.0, + isEnable: projectViewModel.havePrivilege(80), + width: 80.0, + height: 80.0, ), ), ); @@ -378,6 +379,7 @@ class _QRCodeState extends State { child: const Text('OK'), onPressed: () { Navigator.of(context).pop(); + Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => LandingPage()), (Route r) => false); }, ), ], diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index 31b8f85b..a53b231f 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -55,6 +55,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid int _currentPage = 0; ToDoCountProviderModel toDoProvider; + ProjectViewModel projectViewModel; @override void initState() { @@ -76,6 +77,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); toDoProvider = Provider.of(context); return AppScaffold( appBarTitle: TranslationBase.of(context).myAppointmentsList, @@ -135,6 +137,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid } getPatientAppointmentHistory() { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); widget.appoList.clear(); @@ -150,7 +153,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid widget._patientConfirmedAppointmentListClinic.clear(); widget._patientArrivedAppointmentListClinic.clear(); - service.getPatientAppointmentHistory(false, context).then((res) { + service.getPatientAppointmentHistory(false, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); setState(() { if (res['MessageStatus'] == 1) { diff --git a/lib/pages/MyAppointments/VisitTicket.dart b/lib/pages/MyAppointments/VisitTicket.dart index c2f5c6ed..a1b44b7a 100644 --- a/lib/pages/MyAppointments/VisitTicket.dart +++ b/lib/pages/MyAppointments/VisitTicket.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; @@ -7,6 +8,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class VisitTicket extends StatefulWidget { List appoList = []; @@ -17,6 +19,7 @@ class VisitTicket extends StatefulWidget { class _VisitTicketState extends State { bool isLoading = false; + ProjectViewModel projectViewModel; @override void initState() { @@ -26,6 +29,7 @@ class _VisitTicketState extends State { @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); return AppScaffold( appBarTitle: TranslationBase.of(context).todoList, body: isLoading == false @@ -48,9 +52,10 @@ class _VisitTicketState extends State { } getPatientAppointmentCurfewHistory(BuildContext context) { + int languageID = projectViewModel.isArabic ? 1 : 2; DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); - service.getPatientAppointmentHistory(true, context).then((res) { + service.getPatientAppointmentHistory(true, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/MyAppointments/widgets/AppointmentActions.dart b/lib/pages/MyAppointments/widgets/AppointmentActions.dart index b7083b7c..86a80be2 100644 --- a/lib/pages/MyAppointments/widgets/AppointmentActions.dart +++ b/lib/pages/MyAppointments/widgets/AppointmentActions.dart @@ -365,10 +365,11 @@ class _AppointmentActionsState extends State { // } openAppointmentLabResults() { + int languageID = widget.projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); PatientLabOrders patientLabOrders = new PatientLabOrders(); - service.getPatientLabOrdersByAppoNo(widget.appo.appointmentNo, widget.appo.projectID, widget.appo.clinicID, context).then((res) { + service.getPatientLabOrdersByAppoNo(widget.appo.appointmentNo, widget.appo.projectID, widget.appo.clinicID, languageID, context).then((res) { print(res['ListLabResultsByAppNo']); GifLoaderDialogUtils.hideDialog(context); if (res['ListLabResultsByAppNo'] != null) { @@ -400,10 +401,11 @@ class _AppointmentActionsState extends State { } openAppointmentRadiology() { + int languageID = widget.projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); FinalRadiology finalRadiology = new FinalRadiology(); - service.getPatientRadOrders(widget.appo.appointmentNo.toString(), context).then((res) { + service.getPatientRadOrders(widget.appo.appointmentNo.toString(), languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['FinalRadiologyList'] != null) { print(res['FinalRadiologyList']); diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 30c043e5..9a2d73bc 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -823,9 +823,10 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { } getPatientAppointmentHistory() { + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getPatientAppointmentHistory(true, context).then((res) { + service.getPatientAppointmentHistory(true, languageID, context).then((res) { widget.appoList.clear(); GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index 06e9560b..cc24d511 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -56,6 +56,8 @@ class _SendFeedbackPageState extends State { List appoList = []; + ProjectViewModel projectViewModel; + String getSelected(BuildContext context) { switch (messageType) { case MessageType.ComplaintOnAnAppointment: @@ -106,7 +108,7 @@ class _SendFeedbackPageState extends State { @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); return BaseView( allowAny: true, builder: (_, model, widget) => AppScaffold( @@ -466,6 +468,7 @@ class _SendFeedbackPageState extends State { listData: list, selectedIndex: selectedStatusIndex, onValueSelected: (index) { + int languageID = projectViewModel.isArabic ? 1 : 2; selectedStatusIndex = index; if (index == 1) { @@ -485,7 +488,7 @@ class _SendFeedbackPageState extends State { if (messageType == MessageType.ComplaintOnAnAppointment) { appoList.clear(); GifLoaderDialogUtils.showMyDialog(context); - service.getPatientAppointmentHistory(false, context, isForCOC: true).then((res) { + service.getPatientAppointmentHistory(false, languageID, context, isForCOC: true).then((res) { GifLoaderDialogUtils.hideDialog(context); setState(() { if (res['MessageStatus'] == 1) { diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 7e56896f..1cebe35d 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -655,22 +655,22 @@ class _LandingPageState extends State with WidgetsBindingObserver { FlutterAppIconBadge.updateBadge(num.parse(notificationCount)); } }); - if (await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN) == null || !await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN)) { - int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; - appointmentRateViewModel.getIsLastAppointmentRatedList(languageID).then((value) async { - if (appointmentRateViewModel.isHaveAppointmentNotRate) { - await AppSharedPreferences().setBool(IS_LAST_APPOINTMENT_RATE_SHOWN, true); - Navigator.push( - context, - FadePage( - page: RateAppointmentDoctor(), - ), - ); - } - }).catchError((err) { - print(err); - }); - } + // if (await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN) == null || !await AppSharedPreferences().getBool(IS_LAST_APPOINTMENT_RATE_SHOWN)) { + // int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; + // appointmentRateViewModel.getIsLastAppointmentRatedList(languageID).then((value) async { + // if (appointmentRateViewModel.isHaveAppointmentNotRate) { + // await AppSharedPreferences().setBool(IS_LAST_APPOINTMENT_RATE_SHOWN, true); + // Navigator.push( + // context, + // FadePage( + // page: RateAppointmentDoctor(), + // ), + // ); + // } + // }).catchError((err) { + // print(err); + // }); + // } }); } projectViewModel.analytics.setUser(data); diff --git a/lib/pages/livecare/widgets/clinic_card.dart b/lib/pages/livecare/widgets/clinic_card.dart index d6fb745a..e79037fe 100644 --- a/lib/pages/livecare/widgets/clinic_card.dart +++ b/lib/pages/livecare/widgets/clinic_card.dart @@ -163,10 +163,10 @@ class _State extends State { } getClinicTimings(PatientERGetClinicsList patientERGetClinicsList) { - + int languageID = widget.languageID == 'ar' ? 1 : 2; LiveCareService service = new LiveCareService(); GifLoaderDialogUtils.showMyDialog(context); - service.getLivecareClinicTiming(patientERGetClinicsList.serviceID, context).then((res) { + service.getLivecareClinicTiming(patientERGetClinicsList.serviceID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index bbf7a159..437e93c9 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -513,7 +513,7 @@ class _clinic_listState extends State { isDataLoaded = false; LiveCareService service = new LiveCareService(); GifLoaderDialogUtils.showMyDialog(context); - service.getLivecareClinics(context).then((res) { + service.getLivecareClinics(languageID == 'ar' ? 1: 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res['PatientER_GetClinicsList'].length); if (res['MessageStatus'] == 1) { diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index b99e7c07..d4c8b17f 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -663,11 +663,11 @@ class _ConfirmLogin extends State { } checkIfUserAgreedBefore(CheckActivationCode result) { - if (result.isNeedUserAgreement == true) { - //move to agreement page. - } else { - goToHome(); - } + // if (result.isNeedUserAgreement == true) { + //move to agreement page. + // } else { + goToHome(); + // } } insertIMEI() { @@ -695,17 +695,45 @@ class _ConfirmLogin extends State { projectViewModel.user = authenticatedUserObject.user; await authenticatedUserObject.getUser(getUser: true); - GifLoaderDialogUtils.hideDialog(context); - + // GifLoaderDialogUtils.hideDialog(context); getToDoCount(); + appointmentRateViewModel + .getIsLastAppointmentRatedList(projectViewModel.isArabic ? 1 : 2) + .then((value) => { + GifLoaderDialogUtils.hideDialog(AppGlobal.context), + if (appointmentRateViewModel.isHaveAppointmentNotRate) + { + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: RateAppointmentDoctor(), + ), + (r) => false) + } + else + { + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: LandingPage(), + ), + (r) => false) + }, + insertIMEI() + }) + .catchError((err) { + print(err); + }); - Navigator.pushAndRemoveUntil( - context, - FadePage( - page: LandingPage(), - ), - (r) => false); - insertIMEI(); + // getToDoCount(); + + // Navigator.pushAndRemoveUntil( + // context, + // FadePage( + // page: LandingPage(), + // ), + // (r) => false); + // insertIMEI(); } loading(flag) { diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 107db2c3..69ff8dbb 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -345,45 +345,44 @@ class _Login extends State { authenticatedUserObject.user = result.list; projectViewModel.user = authenticatedUserObject.user; - GifLoaderDialogUtils.hideDialog(context); - + // GifLoaderDialogUtils.hideDialog(context); + // + // getToDoCount(); + // + // Navigator.pushAndRemoveUntil( + // context, + // FadePage( + // page: LandingPage(), + // ), + // (r) => false); getToDoCount(); - - Navigator.pushAndRemoveUntil( - context, - FadePage( - page: LandingPage(), - ), - (r) => false); - - // appointmentRateViewModel - // .getIsLastAppointmentRatedList() - // .then((value) => { - // getToDoCount(), - // GifLoaderDialogUtils.hideDialog(context), - // if (appointmentRateViewModel.isHaveAppointmentNotRate) - // { - // Navigator.pushAndRemoveUntil( - // context, - // FadePage( - // page: RateAppointmentDoctor(), - // ), - // (r) => false) - // } - // else - // { - // Navigator.pushAndRemoveUntil( - // context, - // FadePage( - // page: LandingPage(), - // ), - // (r) => false) - // } - // }) - // .catchError((err) { - // print(err); - // GifLoaderDialogUtils.hideDialog(context); - // }); + appointmentRateViewModel + .getIsLastAppointmentRatedList(projectViewModel.isArabic ? 1 : 2) + .then((value) => { + GifLoaderDialogUtils.hideDialog(context), + if (appointmentRateViewModel.isHaveAppointmentNotRate) + { + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: RateAppointmentDoctor(), + ), + (r) => false) + } + else + { + Navigator.pushAndRemoveUntil( + context, + FadePage( + page: LandingPage(), + ), + (r) => false) + } + }) + .catchError((err) { + print(err); + GifLoaderDialogUtils.hideDialog(context); + }); }); } diff --git a/lib/pages/rateAppointment/rate_appointment_clinic.dart b/lib/pages/rateAppointment/rate_appointment_clinic.dart index 09b083cc..eabe9528 100644 --- a/lib/pages/rateAppointment/rate_appointment_clinic.dart +++ b/lib/pages/rateAppointment/rate_appointment_clinic.dart @@ -32,10 +32,11 @@ class _RateAppointmentClinicState extends State { final formKey = GlobalKey(); String note = ""; int rating = 0; + ProjectViewModel projectViewModel; @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); return BaseView( builder: (_, model, w) => AppScaffold( isShowAppBar: true, @@ -191,18 +192,27 @@ class _RateAppointmentClinicState extends State { child: DefaultButton( TranslationBase.of(context).later, () { - // Navigator.pushReplacement( - // context, - // FadePage( - // page: LandingPage(), - // ), - // ); - Navigator.pop( - context, - ); - Navigator.pop( + Navigator.pushReplacement( context, + FadePage( + page: LandingPage(), + ), ); + // if (projectViewModel.isLoginChild) { + // Navigator.pushReplacement( + // context, + // FadePage( + // page: LandingPage(), + // ), + // ); + // } else { + // Navigator.pop( + // context, + // // FadePage( + // // page: LandingPage(), + // // ), + // ); + // } }, color: CustomColors.accentColor, textColor: Colors.white, @@ -215,9 +225,10 @@ class _RateAppointmentClinicState extends State { rating <= 0 ? null : () { + int languageID = projectViewModel.isArabic ? 1 : 2; model - .sendAppointmentRate( - rating, widget.appointmentDetails.appointmentNo, widget.appointmentDetails.projectID, widget.appointmentDetails.doctorID, widget.appointmentDetails.clinicID, note) + .sendAppointmentRate(rating, widget.appointmentDetails.appointmentNo, widget.appointmentDetails.projectID, widget.appointmentDetails.doctorID, + widget.appointmentDetails.clinicID, note, languageID) .then( (value) => { model diff --git a/lib/pages/rateAppointment/rate_appointment_doctor.dart b/lib/pages/rateAppointment/rate_appointment_doctor.dart index aa49d15a..6aa627f8 100644 --- a/lib/pages/rateAppointment/rate_appointment_doctor.dart +++ b/lib/pages/rateAppointment/rate_appointment_doctor.dart @@ -193,21 +193,27 @@ class _RateAppointmentDoctorState extends State { }); dialog.showAlertDialog(context); } else { - if(projectViewModel.isLoginChild) { - Navigator.pushReplacement( - context, - FadePage( - page: LandingPage(), - ), - ); - } else { - Navigator.pop( - context, - // FadePage( - // page: LandingPage(), - // ), - ); - } + Navigator.pushReplacement( + context, + FadePage( + page: LandingPage(), + ), + ); + // if(projectViewModel.isLoginChild) { + // Navigator.pushReplacement( + // context, + // FadePage( + // page: LandingPage(), + // ), + // ); + // } else { + // Navigator.pop( + // context, + // // FadePage( + // // page: LandingPage(), + // // ), + // ); + // } } }, color: CustomColors.accentColor, diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 94766e3c..910c2680 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -604,7 +604,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientAppointmentHistory(bool isActiveAppointment, BuildContext context, {bool isForCOC = false}) async { + Future getPatientAppointmentHistory(bool isActiveAppointment, int languageID, BuildContext context, {bool isForCOC = false}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -626,7 +626,8 @@ class DoctorsListService extends BaseService { "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, "IsComingFromCOC": isForCOC, - "PatientType": authUser.patientType + "PatientType": authUser.patientType, + "LanguageID": languageID }; dynamic localRes; @@ -1162,7 +1163,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientRadOrders(String appoNo, BuildContext context) async { + Future getPatientRadOrders(String appoNo, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); @@ -1182,6 +1183,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; @@ -1194,7 +1196,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientLabOrdersByAppoNo(dynamic appoNo, dynamic projID, dynamic clinicID, BuildContext context) async { + Future getPatientLabOrdersByAppoNo(dynamic appoNo, dynamic projID, dynamic clinicID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); @@ -1216,6 +1218,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; diff --git a/lib/services/livecare_services/livecare_provider.dart b/lib/services/livecare_services/livecare_provider.dart index 126f5a73..b0262ea5 100644 --- a/lib/services/livecare_services/livecare_provider.dart +++ b/lib/services/livecare_services/livecare_provider.dart @@ -17,7 +17,7 @@ class LiveCareService extends BaseService { AuthenticatedUser authUser = new AuthenticatedUser(); AuthProvider authProvider = new AuthProvider(); - Future getLivecareClinics(BuildContext context) async { + Future getLivecareClinics(int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -25,7 +25,12 @@ class LiveCareService extends BaseService { authUser = data; } - request = {"Age": authUser.age != null ? authUser.age : 0, "PatientID": authUser.patientID != null ? authUser.patientID : 0, "Gender": authUser.gender != null ? authUser.gender : 0}; + request = { + "Age": authUser.age != null ? authUser.age : 0, + "PatientID": authUser.patientID != null ? authUser.patientID : 0, + "Gender": authUser.gender != null ? authUser.gender : 0, + "LanguageID": languageID + }; dynamic localRes; @@ -122,7 +127,7 @@ class LiveCareService extends BaseService { return Future.value(localRes); } - Future getLivecareClinicTiming(int serviceID, BuildContext context) async { + Future getLivecareClinicTiming(int serviceID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -132,6 +137,7 @@ class LiveCareService extends BaseService { request = { "ServiceID": serviceID, + "LanguageID": languageID, "Age": authUser.age != null ? authUser.age : 0, "PatientID": authUser.patientID != null ? authUser.patientID : 0, "Gender": authUser.gender != null ? authUser.gender : 0 @@ -354,5 +360,4 @@ class LiveCareService extends BaseService { }, body: request); return Future.value(localRes); } - } diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 408b0afc..28ff1833 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -42,6 +42,7 @@ import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + // import 'package:flutter_amazonpaymentservices/environment_type.dart'; // import 'package:flutter_amazonpaymentservices/flutter_amazonpaymentservices.dart'; From fddb4234517c5f39e2d1199c8aaee11f5c250fc1 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 1 Jan 2024 18:01:39 +0300 Subject: [PATCH 04/18] Updates & fixes --- lib/config/config.dart | 8 +- lib/config/localized_values.dart | 2 + lib/core/service/client/base_app_client.dart | 4 +- .../viewModels/notifications_view_model.dart | 2 +- .../Appointments/toDoCountProviderModel.dart | 6 +- lib/pages/BookAppointment/BookConfirm.dart | 8 +- .../Covid-DriveThru/Covid-TimeSlots.dart | 8 +- lib/pages/DrawerPages/family/my-family.dart | 5 +- .../MyAppointments/AppointmentDetails.dart | 27 +++- lib/pages/MyAppointments/MyAppointments.dart | 117 ++++++++++++------ .../ToDoList/ObGyne/ObGyne-TimeSlots.dart | 5 +- lib/pages/ToDoList/ToDo.dart | 7 +- .../fragments/home_page_fragment2.dart | 2 +- lib/pages/landing/landing_page.dart | 9 +- lib/pages/livecare/widgets/clinic_list.dart | 3 +- lib/pages/login/confirm-login.dart | 5 +- lib/pages/login/login.dart | 5 +- lib/pages/login/register-info.dart | 5 +- .../appointment_services/GetDoctorsList.dart | 9 +- .../authentication/auth_provider.dart | 2 +- .../livecare_services/livecare_provider.dart | 3 +- lib/uitl/translations_delegate_base.dart | 2 + .../bottom_navigation_item.dart | 2 +- lib/widgets/drawer/app_drawer_widget.dart | 5 +- 24 files changed, 169 insertions(+), 82 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index e7635e5b..7652d6f0 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -21,10 +21,10 @@ var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; //var BASE_URL = 'https://uat.hmgwebservices.com/'; -// var BASE_URL = 'https://hmgwebservices.com/'; - // var BASE_URL = 'http://10.20.200.111:1010/'; - // var BASE_URL = 'https://uat.hmgwebservices.com/'; var BASE_URL = 'https://hmgwebservices.com/'; +// var BASE_URL = 'http://10.20.200.111:1010/'; + // var BASE_URL = 'https://uat.hmgwebservices.com/'; +// var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'https://orash.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidauat.cloudsolutions.com.sa/'; // var BASE_URL = 'https://vidamergeuat.cloudsolutions.com.sa/'; @@ -342,7 +342,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnari var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 11.7; +var VERSION_ID = 11.8; var SETUP_ID = '91877'; var LANGUAGE = 2; // var PATIENT_OUT_SA = 0; diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index ba17f2ec..cc45dfeb 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1903,4 +1903,6 @@ const Map localizedValues = { "validInsurance": {"en": "Do you have a valid insurance?", "ar": "هل لديك تأمين صالح؟"}, "checkInViaLocation": {"en": "Check-In Via Location", "ar": "تسجيل الوصول عبر الموقع"}, "locationCheckInError": {"en": "Please make sure that you're within the hospital location to perform online check-in.", "ar": "يرجى التأكد من تواجدك داخل موقع المستشفى لإجراء تسجيل الوصول عبر الإنترنت."}, + "upcoming": {"en": "Upcoming", "ar": "المواعيد القادمة"}, + "noUpcomingAppointment": {"en": "No upcoming appointments", "ar": "لا توجد مواعيد القادمة"}, }; \ No newline at end of file diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 26bacebe..c234304f 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -170,7 +170,7 @@ class BaseAppClient { // body['IdentificationNo'] = 1023854217; // body['MobileNo'] = "531940021"; - // body['PatientID'] = 1014144; //3844083 + // body['PatientID'] = 291367; //3844083 // body['TokenID'] = "@dm!n"; // Patient ID: 3027574 @@ -710,7 +710,7 @@ class BaseAppClient { var model = Provider.of(AppGlobal.context, listen: false); _vitalSignService.weightKg = ""; _vitalSignService.heightCm = ""; - model.setState(0, false, null); + model.setState(0, 0, false, null); Navigator.of(AppGlobal.context).pushReplacementNamed(HOME); } diff --git a/lib/core/viewModels/notifications_view_model.dart b/lib/core/viewModels/notifications_view_model.dart index 80e89edb..a520f36e 100644 --- a/lib/core/viewModels/notifications_view_model.dart +++ b/lib/core/viewModels/notifications_view_model.dart @@ -39,7 +39,7 @@ class NotificationViewModel extends BaseViewModel { await authService.getDashboard().then((value) { var notificationCount = ''; notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); - model.setState(model.count, true, notificationCount); + model.setState(model.count, 0, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); }); diff --git a/lib/models/Appointments/toDoCountProviderModel.dart b/lib/models/Appointments/toDoCountProviderModel.dart index 3363471f..cf2c0ca4 100644 --- a/lib/models/Appointments/toDoCountProviderModel.dart +++ b/lib/models/Appointments/toDoCountProviderModel.dart @@ -2,19 +2,23 @@ import 'package:flutter/cupertino.dart'; class ToDoCountProviderModel with ChangeNotifier { int _count; + int _ancillaryCount; String _notificationsCount; bool _isShowBadge = false; int get count => _count == null ? 0 : _count; + int get ancillaryCount => _ancillaryCount == null ? 0 : _ancillaryCount; + String get notificationsCount => _notificationsCount == null ? "0" : _notificationsCount; bool get isShowBadge => _isShowBadge; - void setState(int count, bool isShowBadge, String notifCount) { + void setState(int count, int ancillaryCount, bool isShowBadge, String notifCount) { _count = count; _isShowBadge = isShowBadge; _notificationsCount = notifCount; + _ancillaryCount = ancillaryCount; notifyListeners(); } } \ No newline at end of file diff --git a/lib/pages/BookAppointment/BookConfirm.dart b/lib/pages/BookAppointment/BookConfirm.dart index bb4d153a..74f7c142 100644 --- a/lib/pages/BookAppointment/BookConfirm.dart +++ b/lib/pages/BookAppointment/BookConfirm.dart @@ -428,12 +428,13 @@ class _BookConfirmState extends State { } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); @@ -441,9 +442,10 @@ class _BookConfirmState extends State { } getPatientShare(context, String appointmentNo, int clinicID, int projectID, DoctorList docObject) { + int languageID = projectViewModel.isArabic ? 1 : 2; String errorMsg = ""; GifLoaderDialogUtils.showMyDialog(context); - widget.service.getPatientShare(appointmentNo, clinicID, projectID, context).then((res) { + widget.service.getPatientShare(appointmentNo, clinicID, projectID, languageID, context).then((res) { projectViewModel.selectedBodyPartList.clear(); projectViewModel.laserSelectionDuration = 0; if(res['OnlineCheckInAppointments'].length != 0) { diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart index 9b5c47a7..d5c60b20 100644 --- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart +++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart @@ -468,12 +468,13 @@ class _CovidTimeSlotsState extends State with TickerProviderStat } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); @@ -499,8 +500,9 @@ class _CovidTimeSlotsState extends State with TickerProviderStat } getPatientShare(context, String appointmentNo, int clinicID, int projectID, DoctorList docObject) { + int languageID = projectViewModel.isArabic ? 1 : 2; DoctorsListService service = new DoctorsListService(); - service.getPatientShare(appointmentNo, clinicID, projectID, context).then((res) { + service.getPatientShare(appointmentNo, clinicID, projectID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res); widget.patientShareResponse = new PatientShareResponse.fromJson(res); diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index eedf36fc..9feb62ec 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -600,13 +600,14 @@ class _MyFamily extends State with TickerProviderStateMixin { } getToDoCount() async { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = ClinicListService(); try { var res = await service.getActiveAppointmentNo(context); print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1 && res['AppointmentActiveNumber'] != null) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} } catch (ex) { print("getToDoCount:$ex"); diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index ceee266b..67b165b8 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -11,6 +11,7 @@ import 'package:diplomaticquarterapp/models/header_model.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/BookConfirm.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/components/DocAvailableAppointments.dart'; import 'package:diplomaticquarterapp/pages/MyAppointments/SchedulePage.dart'; +import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/theme/colors.dart'; @@ -260,6 +261,19 @@ class _AppointmentDetailsState extends State with SingleTick ), ), ); + list.add( + SizedBox(width: 8), + ); + if (AppointmentType.isBooked(widget.appo)) + list.add( + Expanded( + child: DefaultButton( + TranslationBase.of(context).confirm, + confirmAppointment, + color: Color(0xff359846), + ), + ), + ); } else if (_tabController.index == 1) { list.add( Expanded( @@ -489,10 +503,10 @@ class _AppointmentDetailsState extends State with SingleTick minWidth: MediaQuery.of(context).size.width, height: 40.0, child: CustomTextButton( - elevation: 0.0, - backgroundColor: Colors.white, - disabledForegroundColor: new Color(0xFFbcc2c4).withOpacity(0.38), - disabledBackgroundColor: new Color(0xFFbcc2c4).withOpacity(0.12), + elevation: 0.0, + backgroundColor: Colors.white, + disabledForegroundColor: new Color(0xFFbcc2c4).withOpacity(0.38), + disabledBackgroundColor: new Color(0xFFbcc2c4).withOpacity(0.12), onPressed: () { Navigator.of(context).pop(); }, @@ -627,11 +641,12 @@ class _AppointmentDetailsState extends State with SingleTick } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index a53b231f..072c622e 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -25,7 +25,8 @@ import 'package:provider/provider.dart'; import 'AppointmentDetails.dart'; class MyAppointments extends StatefulWidget { - List appoList = []; + List upcomingAppoList = []; + List arrivedAppoListNew = []; List bookedAppoList = []; List confirmedAppoList = []; @@ -39,6 +40,9 @@ class MyAppointments extends StatefulWidget { List _patientConfirmedAppointmentListClinic = List(); List _patientArrivedAppointmentListClinic = List(); + List _patientBookedAndConfirmedAppointmentListHospital = List(); + List _patientBookedAndConfirmedAppointmentListClinic = List(); + @override _MyAppointmentsState createState() => _MyAppointmentsState(); } @@ -52,7 +56,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid FilterType filterType; - int _currentPage = 0; + int _currentPage = 1; ToDoCountProviderModel toDoProvider; ProjectViewModel projectViewModel; @@ -61,7 +65,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid void initState() { filterType = FilterType.Clinic; WidgetsBinding.instance.addPostFrameCallback((_) { - if (Provider.of(context, listen: false).isLogin) getPatientAppointmentHistory(); + if (Provider.of(context, listen: false).isLogin) getPatientAppointmentHistory(true, false); }); imagesInfo.add(ImagesInfo( imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-appointment/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-appointment/ar/0.png')); @@ -86,7 +90,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid showNewAppBar: true, backgroundColor: Color(0xffF8F8F8), showNewAppBarTitle: true, - showDropDown: true, + showDropDown: false, dropdownIndexValue: _currentPage, dropDownIndexChange: (index) { setState(() { @@ -94,8 +98,8 @@ class _MyAppointmentsState extends State with SingleTickerProvid }); }, dropDownList: [ - TranslationBase.of(context).booked, - TranslationBase.of(context).confirmed, + // TranslationBase.of(context).booked, + TranslationBase.of(context).upcoming, TranslationBase.of(context).arrived, ], description: TranslationBase.of(context).infoMyAppointments, @@ -115,10 +119,10 @@ class _MyAppointmentsState extends State with SingleTickerProvid Padding( padding: EdgeInsets.only(left: 21, right: 21), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - myRadioButton(TranslationBase.of(context).booked, 0), - myRadioButton(TranslationBase.of(context).confirmed, 1), + myRadioButton(TranslationBase.of(context).upcoming, 1), + // myRadioButton(TranslationBase.of(context).upcoming, 1), myRadioButton(TranslationBase.of(context).arrived, 2), ], ), @@ -127,7 +131,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid ? Expanded( child: IndexedStack( index: _currentPage, - children: [getBookedAppointments(), getConfirmedAppointments(), getArrivedAppointments()], + children: [getBookedAppointments(), getBookedAndConfirmedAppointments(), getArrivedAppointments()], ), ) : Container(), @@ -136,11 +140,14 @@ class _MyAppointmentsState extends State with SingleTickerProvid ); } - getPatientAppointmentHistory() { + getPatientAppointmentHistory(bool isForUpcoming, bool isForArrived) { int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - widget.appoList.clear(); + + widget.upcomingAppoList.clear(); + widget.arrivedAppoListNew.clear(); + widget.bookedAppoList.clear(); widget.confirmedAppoList.clear(); widget.arrivedAppoList.clear(); @@ -153,19 +160,23 @@ class _MyAppointmentsState extends State with SingleTickerProvid widget._patientConfirmedAppointmentListClinic.clear(); widget._patientArrivedAppointmentListClinic.clear(); - service.getPatientAppointmentHistory(false, languageID, context).then((res) { + widget._patientBookedAndConfirmedAppointmentListHospital.clear(); + widget._patientBookedAndConfirmedAppointmentListClinic.clear(); + + service.getPatientAppointmentHistory(false, languageID, context, isForUpcomming: isForUpcoming, IsForArrived: isForArrived).then((res) { GifLoaderDialogUtils.hideDialog(context); setState(() { if (res['MessageStatus'] == 1) { - // setState(() { if (res['AppoimentAllHistoryResultList'].length != 0) { - // isDataLoaded = true; res['AppoimentAllHistoryResultList'].forEach((v) { - widget.appoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); + if (isForArrived) { + widget.arrivedAppoListNew.add(new AppoitmentAllHistoryResultList.fromJson(v)); + } else { + widget.upcomingAppoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); + } }); - sortAppointmentList(); + sortAppointmentList(isForUpcoming, isForArrived); } else {} - // }); } else { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } @@ -180,11 +191,12 @@ class _MyAppointmentsState extends State with SingleTickerProvid } getToDoCount() { - toDoProvider.setState(0, true, "0"); + toDoProvider.setState(0, 0, true, "0"); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, "0"); } else {} }).catchError((err) { print(err); @@ -203,20 +215,36 @@ class _MyAppointmentsState extends State with SingleTickerProvid return AppointmentType.isBooked(appo); } - sortAppointmentList() { - widget.appoList.forEach((v) { - if (isBooked(v)) { - widget.bookedAppoList.add(v); - } + sortAppointmentList(bool isForUpcoming, bool isForArrived) { + if (isForArrived) { + widget.arrivedAppoListNew.forEach((v) { + if (isBooked(v)) { + widget.bookedAppoList.add(v); + } - if (isConfirmed(v)) { - widget.confirmedAppoList.add(v); - } + if (isConfirmed(v)) { + widget.confirmedAppoList.add(v); + } - if (isArrived(v)) { - widget.arrivedAppoList.add(v); - } - }); + if (isArrived(v)) { + widget.arrivedAppoList.add(v); + } + }); + } else { + widget.upcomingAppoList.forEach((v) { + if (isBooked(v)) { + widget.bookedAppoList.add(v); + } + + if (isConfirmed(v)) { + widget.confirmedAppoList.add(v); + } + + if (isArrived(v)) { + widget.arrivedAppoList.add(v); + } + }); + } widget.bookedAppoList.forEach((element) { List doctorByClinic = widget._patientBookedAppointmentListClinic @@ -242,6 +270,10 @@ class _MyAppointmentsState extends State with SingleTickerProvid } else { widget._patientBookedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } + + //Merging Booked & Confirmed Appointments into Upcoming Tab + widget._patientBookedAndConfirmedAppointmentListHospital.addAll(widget._patientBookedAppointmentListHospital); + widget._patientBookedAndConfirmedAppointmentListClinic.addAll(widget._patientBookedAppointmentListClinic); }); widget.confirmedAppoList.forEach((element) { @@ -268,6 +300,10 @@ class _MyAppointmentsState extends State with SingleTickerProvid } else { widget._patientConfirmedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } + + //Merging Booked & Confirmed Appointments into Upcoming Tab + widget._patientBookedAndConfirmedAppointmentListHospital.addAll(widget._patientConfirmedAppointmentListHospital); + widget._patientBookedAndConfirmedAppointmentListClinic.addAll(widget._patientConfirmedAppointmentListClinic); }); widget.arrivedAppoList.forEach((element) { @@ -295,7 +331,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid widget._patientArrivedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } - openAppointmentsTab(); + // openAppointmentsTab(); }); } @@ -326,6 +362,11 @@ class _MyAppointmentsState extends State with SingleTickerProvid return _getAppointment(widget.bookedAppoList.length, (filterType == FilterType.Clinic) ? widget._patientBookedAppointmentListClinic : widget._patientBookedAppointmentListHospital); } + Widget getBookedAndConfirmedAppointments() { + return _getAppointment((widget.bookedAppoList.length + widget.confirmedAppoList.length), + (filterType == FilterType.Clinic) ? widget._patientBookedAndConfirmedAppointmentListClinic : widget._patientBookedAndConfirmedAppointmentListHospital); + } + Widget _getAppointment(int _listLength, List _list) { return Container( child: Container( @@ -341,7 +382,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid Container( margin: EdgeInsets.only(top: 10.0), child: Text( - _currentPage == 0 ? TranslationBase.of(context).noBookedAppo : (_currentPage == 1 ? TranslationBase.of(context).noConfirmedAppo : TranslationBase.of(context).noArrivedAppo), + _currentPage == 0 ? TranslationBase.of(context).noBookedAppo : (_currentPage == 1 ? TranslationBase.of(context).noUpcomingAppointment : TranslationBase.of(context).noArrivedAppo), style: TextStyle( fontSize: 16.0, ), @@ -388,7 +429,7 @@ class _MyAppointmentsState extends State with SingleTickerProvid ), ), ).then((value) { - getPatientAppointmentHistory(); + getPatientAppointmentHistory(true, false); }), isInOutPatient: _appointmentResult.isInOutPatient, name: _appointmentResult.doctorTitle + " " + _appointmentResult.doctorNameObj, @@ -453,6 +494,12 @@ class _MyAppointmentsState extends State with SingleTickerProvid onChanged: (index) { setState(() { _currentPage = index; + if (_value == 1) { + getPatientAppointmentHistory(true, false); + } + if (_value == 2) { + getPatientAppointmentHistory(false, true); + } }); //_pageController.animateToPage(index, duration: Duration(milliseconds: 250), curve: Curves.easeInOut); }, diff --git a/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart b/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart index 970d31c7..ff3bc13c 100644 --- a/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart +++ b/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart @@ -402,13 +402,14 @@ class _CovidTimeSlotsState extends State with TickerProviderSta } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} Navigator.pushAndRemoveUntil( context, diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 9a2d73bc..b5f417e2 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -860,11 +860,11 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { } getToDoCount() { - toDoProvider.setState(0, true, "0"); + toDoProvider.setState(0, 0, true, "0"); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, "0"); } else {} }).catchError((err) { print(err); @@ -919,13 +919,14 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { } getPatientShare(context, AppoitmentAllHistoryResultList appo) { + int languageID = projectViewModel.isArabic ? 1 : 2; String errorMsg = ""; DoctorsListService service = new DoctorsListService(); if (appo.isLiveCareAppointment) { getLiveCareAppointmentPatientShare(context, service, appo); } else { GifLoaderDialogUtils.showMyDialog(context); - service.getPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, context).then((res) { + service.getPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, languageID, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['OnlineCheckInAppointments'].length != 0) { widget.patientShareResponse = new PatientShareResponse.fromJson(res['OnlineCheckInAppointments'][0]); diff --git a/lib/pages/landing/fragments/home_page_fragment2.dart b/lib/pages/landing/fragments/home_page_fragment2.dart index c25e9fd0..6d013e8b 100644 --- a/lib/pages/landing/fragments/home_page_fragment2.dart +++ b/lib/pages/landing/fragments/home_page_fragment2.dart @@ -67,7 +67,7 @@ class _HomePageFragment2State extends State { projectViewModel = Provider.of(context); initialiseHmgServices(false); var appoCountProvider = Provider.of(context); - var userProvider = Provider.of(context); + // var userProvider = Provider.of(context); List myMedicalList = Utils.myMedicalListHomePage(projectViewModel: projectViewModel, context: context, count: appoCountProvider.count, isLogin: projectViewModel.isLogin); return Container( width: double.infinity, diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 1cebe35d..601e7303 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -253,13 +253,14 @@ class _LandingPageState extends State with WidgetsBindingObserver { } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); @@ -453,7 +454,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { setState(() { notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); - model.setState(model.count, true, notificationCount); + model.setState(model.count, 0, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); }) } @@ -650,7 +651,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { setState(() { if (value != null) { notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); - model.setState(model.count, true, notificationCount); + model.setState(model.count, 0, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); FlutterAppIconBadge.updateBadge(num.parse(notificationCount)); } diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart index 437e93c9..d47e5117 100644 --- a/lib/pages/livecare/widgets/clinic_list.dart +++ b/lib/pages/livecare/widgets/clinic_list.dart @@ -492,8 +492,9 @@ class _clinic_listState extends State { addNewCallForPatientER(String clientRequestID) { LiveCareService service = new LiveCareService(); + int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); - service.addNewCallForPatientER(selectedClinicID, clientRequestID, widget.isPharmacyLiveCare, context).then((res) { + service.addNewCallForPatientER(selectedClinicID, clientRequestID, languageID, widget.isPharmacyLiveCare, context).then((res) { GifLoaderDialogUtils.hideDialog(context); AppToast.showSuccessToast(message: "New Call has been added successfully"); widget.getLiveCareHistory(); diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index d4c8b17f..7497856d 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -677,11 +677,12 @@ class _ConfirmLogin extends State { } getToDoCount() { - toDoProvider.setState(0, true, "0"); + toDoProvider.setState(0, 0, true, "0"); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, "0"); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index 69ff8dbb..d55c4017 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -387,12 +387,13 @@ class _Login extends State { } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/login/register-info.dart b/lib/pages/login/register-info.dart index e004663e..8b60295a 100644 --- a/lib/pages/login/register-info.dart +++ b/lib/pages/login/register-info.dart @@ -748,11 +748,12 @@ class _RegisterInfo extends State { } getToDoCount() { - toDoProvider.setState(0, true, "0"); + toDoProvider.setState(0, 0, true, "0"); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, "0"); } else {} }).catchError((err) { print(err); diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 910c2680..02559d95 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -443,7 +443,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientShare(String appoID, int clinicID, int projectID, BuildContext context) async { + Future getPatientShare(String appoID, int clinicID, int projectID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -468,6 +468,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; @@ -604,7 +605,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientAppointmentHistory(bool isActiveAppointment, int languageID, BuildContext context, {bool isForCOC = false}) async { + Future getPatientAppointmentHistory(bool isActiveAppointment, int languageID, BuildContext context, {bool isForCOC = false, isForUpcomming = false, IsForArrived = false}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -627,7 +628,9 @@ class DoctorsListService extends BaseService { "PatientTypeID": authUser.patientType, "IsComingFromCOC": isForCOC, "PatientType": authUser.patientType, - "LanguageID": languageID + "LanguageID": languageID, + "isForUpcomming": isForUpcomming, + "IsForArrived": IsForArrived }; dynamic localRes; diff --git a/lib/services/authentication/auth_provider.dart b/lib/services/authentication/auth_provider.dart index ff8abbdc..9b1f1e3b 100644 --- a/lib/services/authentication/auth_provider.dart +++ b/lib/services/authentication/auth_provider.dart @@ -565,7 +565,7 @@ class AuthProvider with ChangeNotifier { await authenticatedUserObject.getUser(); Provider.of(AppGlobal.context, listen: false).isLogin = false; var model = Provider.of(AppGlobal.context, listen: false); - model.setState(0, false, null); + model.setState(0, 0, false, null); Navigator.of(AppGlobal.context).pushReplacementNamed(HOME); } } diff --git a/lib/services/livecare_services/livecare_provider.dart b/lib/services/livecare_services/livecare_provider.dart index b0262ea5..25df930d 100644 --- a/lib/services/livecare_services/livecare_provider.dart +++ b/lib/services/livecare_services/livecare_provider.dart @@ -209,7 +209,7 @@ class LiveCareService extends BaseService { return Future.value(localRes); } - Future addNewCallForPatientER(int serviceID, String clientRequestID, bool isPharma, BuildContext context) async { + Future addNewCallForPatientER(int serviceID, String clientRequestID, int languageID, bool isPharma, BuildContext context) async { Map request; String deviceToken; @@ -237,6 +237,7 @@ class LiveCareService extends BaseService { "Age": authUser.age != null ? authUser.age : 0, "PatientID": authUser.patientID != null ? authUser.patientID : 0, "Gender": authUser.gender != null ? authUser.gender : 0, + "LanguageID": languageID, "IsVoip": Platform.isIOS ? true : false }; diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index e1f1ac74..03a76dc1 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -2912,6 +2912,8 @@ class TranslationBase { String get validInsurance => localizedValues["validInsurance"][locale.languageCode]; String get checkInViaLocation => localizedValues["checkInViaLocation"][locale.languageCode]; String get locationCheckInError => localizedValues["locationCheckInError"][locale.languageCode]; + String get upcoming => localizedValues["upcoming"][locale.languageCode]; + String get noUpcomingAppointment => localizedValues["noUpcomingAppointment"][locale.languageCode]; } diff --git a/lib/widgets/bottom_navigation/bottom_navigation_item.dart b/lib/widgets/bottom_navigation/bottom_navigation_item.dart index f7cdafce..db5d0979 100644 --- a/lib/widgets/bottom_navigation/bottom_navigation_item.dart +++ b/lib/widgets/bottom_navigation/bottom_navigation_item.dart @@ -114,7 +114,7 @@ class BottomNavigationItem extends StatelessWidget { borderRadius: BorderRadius.circular(8), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(model.count.toString(), style: TextStyle(color: Colors.white, fontSize: 14.0)), + child: Text((model.count + model.ancillaryCount).toString(), style: TextStyle(color: Colors.white, fontSize: 14.0)), ), ), ), diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 28ff1833..8f3cf40c 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -752,12 +752,13 @@ class _AppDrawerState extends State { } getToDoCount() { - toDoProvider.setState(0, true, toDoProvider.notificationsCount); + toDoProvider.setState(0, 0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1 && res['AppointmentActiveNumber'] != null) { - toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + // toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); + toDoProvider.setState(res['AppointmentActiveNumber'], res['AncillaryOrderListCount'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); From 3401496739a30c4f1b0797c55ce0468c04dd714c Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 2 Jan 2024 14:16:10 +0300 Subject: [PATCH 05/18] Updates & fixes --- .../xcshareddata/xcschemes/Runner.xcscheme | 97 ------------------- lib/core/service/client/base_app_client.dart | 10 +- .../medical/ask_doctor_view_model.dart | 12 ++- lib/pages/DrawerPages/family/my-family.dart | 51 +++++----- lib/pages/MyAppointments/MyAppointments.dart | 1 - .../family_files/family_files_provider.dart | 2 +- lib/widgets/drawer/app_drawer_widget.dart | 2 +- 7 files changed, 40 insertions(+), 135 deletions(-) delete mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index ea96fe5f..00000000 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index c234304f..43b0a9b1 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -75,9 +75,13 @@ class BaseAppClient { body['Channel'] = CHANNEL; if (body.containsKey('LanguageID')) { - if(body['LanguageID'] != null) { + if (body['LanguageID'] != null) { //change this line because language issue happened on dental - body['LanguageID'] = body['LanguageID'] =='ar' ? 1 : body['LanguageID'] =='en' ? 2 : body['LanguageID']; + body['LanguageID'] = body['LanguageID'] == 'ar' + ? 1 + : body['LanguageID'] == 'en' + ? 2 + : body['LanguageID']; } else { body['LanguageID'] = Provider.of(AppGlobal.context, listen: false).isArabic ? 1 : 2; } @@ -716,7 +720,7 @@ class BaseAppClient { String getSessionId(String id) { ///return id.replaceAll(RegExp('/[^\w\s]/'), ''); - return id.replaceAll(RegExp('/[^a-zA-Z]'), ''); + if (id != null) return id.replaceAll(RegExp('/[^a-zA-Z]'), ''); } static defaultHttpParameters() async { diff --git a/lib/core/viewModels/medical/ask_doctor_view_model.dart b/lib/core/viewModels/medical/ask_doctor_view_model.dart index abe2220c..9f8d9862 100644 --- a/lib/core/viewModels/medical/ask_doctor_view_model.dart +++ b/lib/core/viewModels/medical/ask_doctor_view_model.dart @@ -28,12 +28,14 @@ class AskDoctorViewModel extends BaseViewModel { setState(ViewState.Error); } else if (_myDoctorService.patientDoctorAppointmentList.length != 0) { _myDoctorService.patientDoctorAppointmentList.forEach((element) { - List doctorByClinic = patientDoctorAppointmentListHospital.where((elementClinic) => elementClinic.filterName == element.projectName).toList(); + if (!element.isLiveCareClinic) { + List doctorByClinic = patientDoctorAppointmentListHospital.where((elementClinic) => elementClinic.filterName == element.projectName).toList(); - if (doctorByClinic.length != 0) { - patientDoctorAppointmentListHospital[patientDoctorAppointmentListHospital.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); - } else { - patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); + if (doctorByClinic.length != 0) { + patientDoctorAppointmentListHospital[patientDoctorAppointmentListHospital.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); + } else { + patientDoctorAppointmentListHospital.add(PatientDoctorAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); + } } setState(ViewState.Idle); }); diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index 9feb62ec..ef6f5e3d 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -341,8 +341,8 @@ class _MyFamily extends State with TickerProviderStateMixin { return requestDecoratedContainerWithExpandable( TranslationBase.of(context).sentRequest, [ - Expanded(flex: 4, child: columnText(TranslationBase.of(context).name)), - Expanded(flex: 2, child: columnText(TranslationBase.of(context).status)), + Expanded(flex: 3, child: columnText(TranslationBase.of(context).name)), + Expanded(flex: 1, child: columnText(TranslationBase.of(context).status)), ], sentRecordsList.map((result) { return sentItemView(result); @@ -351,29 +351,26 @@ class _MyFamily extends State with TickerProviderStateMixin { Widget sentItemView(GetAllSharedRecordsByStatusList result) { return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Expanded(flex: 2, child: rowText(result.patientName)), + Expanded(flex: 3, child: rowText(result.patientName)), Expanded( flex: 1, - child: Row( - children: [ - Container( - padding: EdgeInsets.only(top: 3, bottom: 3, left: 8, right: 8), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(50), - color: result.status == 3 ? Color(0xff349745) : Color(0xffD02127), - ), - child: Text( - result.statusDescription != null ? result.statusDescription : "", - style: TextStyle( - fontSize: 10, - color: Colors.white, - letterSpacing: -0.4, - fontWeight: FontWeight.w600, - ), - ), + child: Container( + padding: EdgeInsets.only(top: 3, bottom: 3, left: 8, right: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(50), + color: result.status == 3 ? Color(0xff349745) : Color(0xffD02127), + ), + child: Text( + result.statusDescription != null ? result.statusDescription : "", + style: TextStyle( + fontSize: 10, + color: Colors.white, + letterSpacing: -0.4, + fontWeight: FontWeight.w600, ), - ], + ), ), ), ], @@ -553,6 +550,7 @@ class _MyFamily extends State with TickerProviderStateMixin { List sentRecordsList = []; Future getFamilyFiles() async { + int languageID = projectViewModel.isArabic ? 1 : 2; GetAllSharedRecordsByStatusResponse familySharedRecords; if (await sharedPref.getObject(FAMILY_FILE) != null) { familySharedRecords = GetAllSharedRecordsByStatusResponse.fromJson(await sharedPref.getObject(FAMILY_FILE)); @@ -560,7 +558,6 @@ class _MyFamily extends State with TickerProviderStateMixin { GifLoaderDialogUtils.showMyDialog(context); try { if (familySharedRecords == null) { - int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; familySharedRecords = await familyFileProvider.getSharedRecordByStatus(languageID); } familySharedRecordsList =[]; @@ -573,7 +570,7 @@ class _MyFamily extends State with TickerProviderStateMixin { }); approvedRecordsList = []; pendingRecordsList = []; - GetAllSharedRecordsByStatusResponse pendingAndApprovedRecords = await getUserViewRequest(); + GetAllSharedRecordsByStatusResponse pendingAndApprovedRecords = await getUserViewRequest(languageID); pendingAndApprovedRecords.getAllSharedRecordsByStatusList.forEach((element) { print(element.toJson()); @@ -589,9 +586,9 @@ class _MyFamily extends State with TickerProviderStateMixin { GifLoaderDialogUtils.hideDialog(context); } - Future getUserViewRequest() async { + Future getUserViewRequest(int languageID) async { var user = await sharedPref.getObject(USER_PROFILE); - return familyFileProvider.getUserViewRequest(user['PatientID']); + return familyFileProvider.getUserViewRequest(user['PatientID'], languageID); } Future getSentRequest() async { @@ -617,7 +614,7 @@ class _MyFamily extends State with TickerProviderStateMixin { Widget columnText(String title) { return Text( title, - textAlign: TextAlign.left, + // textAlign: TextAlign.left, style: TextStyle( fontSize: 12, color: CustomColors.textDarkColor, @@ -630,7 +627,7 @@ class _MyFamily extends State with TickerProviderStateMixin { Widget rowText(String title) { return Text( title, - textAlign: TextAlign.left, + // textAlign: TextAlign.left, style: TextStyle( fontSize: 10, color: CustomColors.textColor, diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index 072c622e..b1477b77 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -501,7 +501,6 @@ class _MyAppointmentsState extends State with SingleTickerProvid getPatientAppointmentHistory(false, true); } }); - //_pageController.animateToPage(index, duration: Duration(milliseconds: 250), curve: Curves.easeInOut); }, ), ), diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index 4b8b31ad..f209812e 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -61,7 +61,7 @@ class FamilyFilesProvider with ChangeNotifier { } } - Future getUserViewRequest(responseID) async { + Future getUserViewRequest(responseID, int languageID) async { try { dynamic localRes; Map request = {}; diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 8f3cf40c..af6cd03f 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -669,7 +669,7 @@ class _AppDrawerState extends State { }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); print(err); - AppToast.showErrorToast(message: err.toString()); + // AppToast.showErrorToast(message: err.toString()); Navigator.of(context).pop(); }); } From 27b6e04d33421823191cb5839c3f0f8766b49df9 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 2 Jan 2024 14:35:26 +0300 Subject: [PATCH 06/18] updates --- ios/Runner.xcodeproj/project.pbxproj | 6 +++--- lib/config/config.dart | 4 ++-- pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index c3e46b58..db84daa7 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -540,7 +540,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.5.75; + MARKETING_VERSION = 4.5.77; PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -684,7 +684,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.5.75; + MARKETING_VERSION = 4.5.77; PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -722,7 +722,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.5.75; + MARKETING_VERSION = 4.5.77; PRODUCT_BUNDLE_IDENTIFIER = "com.HMG.HMG-Smartphone"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/lib/config/config.dart b/lib/config/config.dart index 7652d6f0..128264a2 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; -//var BASE_URL = 'https://uat.hmgwebservices.com/'; -var BASE_URL = 'https://hmgwebservices.com/'; +var BASE_URL = 'https://uat.hmgwebservices.com/'; +// var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'http://10.20.200.111:1010/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; diff --git a/pubspec.yaml b/pubspec.yaml index 58c83fe0..8fb7faae 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: diplomaticquarterapp description: A new Flutter application. -version: 4.5.037+4050037 +version: 4.5.040+4050040 environment: sdk: ">=2.7.0 <3.0.0" From 75bfeaa71656b890003df5bb48c92855d4c0b4bb Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 2 Jan 2024 17:00:05 +0300 Subject: [PATCH 07/18] My appointment fixes --- lib/core/service/client/base_app_client.dart | 6 +- lib/pages/MyAppointments/MyAppointments.dart | 132 ++++++++++--------- lib/widgets/drawer/app_drawer_widget.dart | 2 +- 3 files changed, 75 insertions(+), 65 deletions(-) diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 43b0a9b1..d6b88e33 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -158,7 +158,8 @@ class BaseAppClient { ? body['PatientOutSA'] : user['OutSA'] : user['OutSA']; - body['SessionID'] = getSessionId(body['TokenID']); //getSe + body['SessionID'] = getSessionId(body['TokenID'] != null ? body['TokenID'] : ""); //getSe + // body['SessionID'] = body['TokenID']; //getSe headers = { 'Content-Type': 'application/json', @@ -720,7 +721,8 @@ class BaseAppClient { String getSessionId(String id) { ///return id.replaceAll(RegExp('/[^\w\s]/'), ''); - if (id != null) return id.replaceAll(RegExp('/[^a-zA-Z]'), ''); + // if (id != null) return id.replaceAll(RegExp('/[^a-zA-Z]'), ''); + return id.replaceAll(RegExp('/[^a-zA-Z]'), ''); } static defaultHttpParameters() async { diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index b1477b77..3d0eb15f 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -25,6 +25,11 @@ import 'package:provider/provider.dart'; import 'AppointmentDetails.dart'; class MyAppointments extends StatefulWidget { + @override + _MyAppointmentsState createState() => _MyAppointmentsState(); +} + +class _MyAppointmentsState extends State with SingleTickerProviderStateMixin { List upcomingAppoList = []; List arrivedAppoListNew = []; @@ -43,11 +48,6 @@ class MyAppointments extends StatefulWidget { List _patientBookedAndConfirmedAppointmentListHospital = List(); List _patientBookedAndConfirmedAppointmentListClinic = List(); - @override - _MyAppointmentsState createState() => _MyAppointmentsState(); -} - -class _MyAppointmentsState extends State with SingleTickerProviderStateMixin { bool isDataLoaded = false; var sharedPref = new AppSharedPreferences(); AuthenticatedUserObject authenticatedUserObject = locator(); @@ -145,23 +145,23 @@ class _MyAppointmentsState extends State with SingleTickerProvid GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - widget.upcomingAppoList.clear(); - widget.arrivedAppoListNew.clear(); + upcomingAppoList.clear(); + arrivedAppoListNew.clear(); - widget.bookedAppoList.clear(); - widget.confirmedAppoList.clear(); - widget.arrivedAppoList.clear(); + bookedAppoList.clear(); + confirmedAppoList.clear(); + arrivedAppoList.clear(); - widget._patientBookedAppointmentListHospital.clear(); - widget._patientConfirmedAppointmentListHospital.clear(); - widget._patientArrivedAppointmentListHospital.clear(); + _patientBookedAppointmentListHospital.clear(); + _patientConfirmedAppointmentListHospital.clear(); + _patientArrivedAppointmentListHospital.clear(); - widget._patientBookedAppointmentListClinic.clear(); - widget._patientConfirmedAppointmentListClinic.clear(); - widget._patientArrivedAppointmentListClinic.clear(); + _patientBookedAppointmentListClinic.clear(); + _patientConfirmedAppointmentListClinic.clear(); + _patientArrivedAppointmentListClinic.clear(); - widget._patientBookedAndConfirmedAppointmentListHospital.clear(); - widget._patientBookedAndConfirmedAppointmentListClinic.clear(); + _patientBookedAndConfirmedAppointmentListHospital.clear(); + _patientBookedAndConfirmedAppointmentListClinic.clear(); service.getPatientAppointmentHistory(false, languageID, context, isForUpcomming: isForUpcoming, IsForArrived: isForArrived).then((res) { GifLoaderDialogUtils.hideDialog(context); @@ -170,9 +170,9 @@ class _MyAppointmentsState extends State with SingleTickerProvid if (res['AppoimentAllHistoryResultList'].length != 0) { res['AppoimentAllHistoryResultList'].forEach((v) { if (isForArrived) { - widget.arrivedAppoListNew.add(new AppoitmentAllHistoryResultList.fromJson(v)); + arrivedAppoListNew.add(new AppoitmentAllHistoryResultList.fromJson(v)); } else { - widget.upcomingAppoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); + upcomingAppoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); } }); sortAppointmentList(isForUpcoming, isForArrived); @@ -217,118 +217,118 @@ class _MyAppointmentsState extends State with SingleTickerProvid sortAppointmentList(bool isForUpcoming, bool isForArrived) { if (isForArrived) { - widget.arrivedAppoListNew.forEach((v) { + arrivedAppoListNew.forEach((v) { if (isBooked(v)) { - widget.bookedAppoList.add(v); + bookedAppoList.add(v); } if (isConfirmed(v)) { - widget.confirmedAppoList.add(v); + confirmedAppoList.add(v); } if (isArrived(v)) { - widget.arrivedAppoList.add(v); + arrivedAppoList.add(v); } }); } else { - widget.upcomingAppoList.forEach((v) { + upcomingAppoList.forEach((v) { if (isBooked(v)) { - widget.bookedAppoList.add(v); + bookedAppoList.add(v); } if (isConfirmed(v)) { - widget.confirmedAppoList.add(v); + confirmedAppoList.add(v); } if (isArrived(v)) { - widget.arrivedAppoList.add(v); + arrivedAppoList.add(v); } }); } - widget.bookedAppoList.forEach((element) { - List doctorByClinic = widget._patientBookedAppointmentListClinic + bookedAppoList.forEach((element) { + List doctorByClinic = _patientBookedAppointmentListClinic .where( (elementClinic) => elementClinic.filterName == element.clinicName, ) .toList(); if (doctorByClinic.length != 0) { - widget._patientBookedAppointmentListClinic[widget._patientBookedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); + _patientBookedAppointmentListClinic[_patientBookedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientBookedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); + _patientBookedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); } - List doctorByHospital = widget._patientBookedAppointmentListHospital + List doctorByHospital = _patientBookedAppointmentListHospital .where( (elementClinic) => elementClinic.filterName == element.projectName, ) .toList(); if (doctorByHospital.length != 0) { - widget._patientBookedAppointmentListHospital[widget._patientBookedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); + _patientBookedAppointmentListHospital[_patientBookedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientBookedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); + _patientBookedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } //Merging Booked & Confirmed Appointments into Upcoming Tab - widget._patientBookedAndConfirmedAppointmentListHospital.addAll(widget._patientBookedAppointmentListHospital); - widget._patientBookedAndConfirmedAppointmentListClinic.addAll(widget._patientBookedAppointmentListClinic); + _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientBookedAppointmentListHospital); + _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientBookedAppointmentListClinic); }); - widget.confirmedAppoList.forEach((element) { - List doctorByClinic = widget._patientConfirmedAppointmentListClinic + confirmedAppoList.forEach((element) { + List doctorByClinic = _patientConfirmedAppointmentListClinic .where( (elementClinic) => elementClinic.filterName == element.clinicName, ) .toList(); if (doctorByClinic.length != 0) { - widget._patientConfirmedAppointmentListClinic[widget._patientConfirmedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); + _patientConfirmedAppointmentListClinic[_patientConfirmedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientConfirmedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); + _patientConfirmedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); } - List doctorByHospital = widget._patientConfirmedAppointmentListHospital + List doctorByHospital = _patientConfirmedAppointmentListHospital .where( (elementClinic) => elementClinic.filterName == element.projectName, ) .toList(); if (doctorByHospital.length != 0) { - widget._patientConfirmedAppointmentListHospital[widget._patientConfirmedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); + _patientConfirmedAppointmentListHospital[_patientConfirmedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientConfirmedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); + _patientConfirmedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } //Merging Booked & Confirmed Appointments into Upcoming Tab - widget._patientBookedAndConfirmedAppointmentListHospital.addAll(widget._patientConfirmedAppointmentListHospital); - widget._patientBookedAndConfirmedAppointmentListClinic.addAll(widget._patientConfirmedAppointmentListClinic); + _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientConfirmedAppointmentListHospital); + _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientConfirmedAppointmentListClinic); }); - widget.arrivedAppoList.forEach((element) { - List doctorByClinic = widget._patientArrivedAppointmentListClinic + arrivedAppoList.forEach((element) { + List doctorByClinic = _patientArrivedAppointmentListClinic .where( (elementClinic) => elementClinic.filterName == element.clinicName, ) .toList(); if (doctorByClinic.length != 0) { - widget._patientArrivedAppointmentListClinic[widget._patientArrivedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); + _patientArrivedAppointmentListClinic[_patientArrivedAppointmentListClinic.indexOf(doctorByClinic[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientArrivedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); + _patientArrivedAppointmentListClinic.add(PatientAppointmentList(filterName: element.clinicName, patientDoctorAppointment: element)); } - List doctorByHospital = widget._patientArrivedAppointmentListHospital + List doctorByHospital = _patientArrivedAppointmentListHospital .where( (elementClinic) => elementClinic.filterName == element.projectName, ) .toList(); if (doctorByHospital.length != 0) { - widget._patientArrivedAppointmentListHospital[widget._patientArrivedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); + _patientArrivedAppointmentListHospital[_patientArrivedAppointmentListHospital.indexOf(doctorByHospital[0])].patientDoctorAppointmentList.add(element); } else { - widget._patientArrivedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); + _patientArrivedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } // openAppointmentsTab(); @@ -345,11 +345,11 @@ class _MyAppointmentsState extends State with SingleTickerProvid } else if (flag == 3) { index = 2; } else { - if (widget._patientBookedAppointmentListClinic.length != 0) { + if (_patientBookedAppointmentListClinic.length != 0) { index = 0; - } else if (widget._patientConfirmedAppointmentListClinic.length != 0) { + } else if (_patientConfirmedAppointmentListClinic.length != 0) { index = 1; - } else if (widget._patientArrivedAppointmentListClinic.length != 0) { + } else if (_patientArrivedAppointmentListClinic.length != 0) { index = 2; // return; } @@ -359,12 +359,12 @@ class _MyAppointmentsState extends State with SingleTickerProvid } Widget getBookedAppointments() { - return _getAppointment(widget.bookedAppoList.length, (filterType == FilterType.Clinic) ? widget._patientBookedAppointmentListClinic : widget._patientBookedAppointmentListHospital); + return _getAppointment(bookedAppoList.length, (filterType == FilterType.Clinic) ? _patientBookedAppointmentListClinic : _patientBookedAppointmentListHospital); } Widget getBookedAndConfirmedAppointments() { - return _getAppointment((widget.bookedAppoList.length + widget.confirmedAppoList.length), - (filterType == FilterType.Clinic) ? widget._patientBookedAndConfirmedAppointmentListClinic : widget._patientBookedAndConfirmedAppointmentListHospital); + return _getAppointment( + (bookedAppoList.length + confirmedAppoList.length), (filterType == FilterType.Clinic) ? _patientBookedAndConfirmedAppointmentListClinic : _patientBookedAndConfirmedAppointmentListHospital); } Widget _getAppointment(int _listLength, List _list) { @@ -382,7 +382,9 @@ class _MyAppointmentsState extends State with SingleTickerProvid Container( margin: EdgeInsets.only(top: 10.0), child: Text( - _currentPage == 0 ? TranslationBase.of(context).noBookedAppo : (_currentPage == 1 ? TranslationBase.of(context).noUpcomingAppointment : TranslationBase.of(context).noArrivedAppo), + _currentPage == 0 + ? TranslationBase.of(context).noBookedAppo + : (_currentPage == 1 ? TranslationBase.of(context).noUpcomingAppointment : TranslationBase.of(context).noArrivedAppo), style: TextStyle( fontSize: 16.0, ), @@ -461,11 +463,11 @@ class _MyAppointmentsState extends State with SingleTickerProvid } Widget getConfirmedAppointments() { - return _getAppointment(widget.confirmedAppoList.length, (filterType == FilterType.Clinic) ? widget._patientConfirmedAppointmentListClinic : widget._patientConfirmedAppointmentListHospital); + return _getAppointment(confirmedAppoList.length, (filterType == FilterType.Clinic) ? _patientConfirmedAppointmentListClinic : _patientConfirmedAppointmentListHospital); } Widget getArrivedAppointments() { - return _getAppointment(widget.arrivedAppoList.length, (filterType == FilterType.Clinic) ? widget._patientArrivedAppointmentListClinic : widget._patientArrivedAppointmentListHospital); + return _getAppointment(arrivedAppoList.length, (filterType == FilterType.Clinic) ? _patientArrivedAppointmentListClinic : _patientArrivedAppointmentListHospital); } setFilterType(FilterType filterType) { @@ -479,6 +481,12 @@ class _MyAppointmentsState extends State with SingleTickerProvid onTap: () { setState(() { _currentPage = _value; + if (_value == 1) { + getPatientAppointmentHistory(true, false); + } + if (_value == 2) { + getPatientAppointmentHistory(false, true); + } }); }, child: Row( diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index af6cd03f..89d35885 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -706,7 +706,7 @@ class _AppDrawerState extends State { _vitalSignService.heightCm = ""; _vitalSignService.weightKg = ""; - if (pharmacyModuleViewModel.error.isNotEmpty) await pharmacyModuleViewModel.createUser(); + // if (pharmacyModuleViewModel.error.isNotEmpty) await pharmacyModuleViewModel.createUser(); int languageID = Provider.of(context, listen: false).isArabic ? 1 : 2; From e5d8505c2d4791f69a405a6c1e42aabe7ed4f8c6 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 3 Jan 2024 11:08:00 +0300 Subject: [PATCH 08/18] Updates & fixes --- lib/core/service/medical/labs_service.dart | 3 + lib/core/viewModels/er/rrt-view-model.dart | 8 +-- lib/pages/BookAppointment/BookConfirm.dart | 6 +- lib/pages/BookAppointment/BookSuccess.dart | 4 +- lib/pages/BookAppointment/DoctorProfile.dart | 4 +- .../components/LaserClinic.dart | 2 +- .../Covid-DriveThru/Covid-TimeSlots.dart | 4 +- .../rapid-response-team/rrt-main-screen.dart | 2 +- .../rapid-response-team/rrt-request-page.dart | 7 +- .../MyAppointments/AppointmentDetails.dart | 2 +- .../widgets/PrescriptionReport.dart | 8 ++- .../ToDoList/ObGyne/ObGyne-TimeSlots.dart | 4 +- lib/pages/ToDoList/ToDo.dart | 8 +-- lib/pages/medical/eye/EyeHomePage.dart | 5 +- .../appointment_services/GetDoctorsList.dart | 70 +++++++++++++------ lib/widgets/new_design/doctor_header.dart | 2 +- 16 files changed, 90 insertions(+), 49 deletions(-) diff --git a/lib/core/service/medical/labs_service.dart b/lib/core/service/medical/labs_service.dart index 1d635c69..8e5ac3b4 100644 --- a/lib/core/service/medical/labs_service.dart +++ b/lib/core/service/medical/labs_service.dart @@ -191,6 +191,8 @@ class LabsService extends BaseService { body['ProjectID'] = patientLabOrder.projectID; body['ClinicID'] = patientLabOrder.clinicID; body['Procedure'] = procedure; + body['Procedure'] = procedure; + body['LanguageID'] = 1; await baseAppClient.post(GET_Patient_LAB_ORDERS_RESULT, onSuccess: (dynamic response, int statusCode) { labOrdersResultsList.clear(); response['ListPLR'].forEach((lab) { @@ -223,6 +225,7 @@ class LabsService extends BaseService { _requestSendLabReportEmail.orderNo = patientLabOrder.orderNo; _requestSendLabReportEmail.isDownload = isDownload; _requestSendLabReportEmail.doctorID = patientLabOrder.doctorID; + _requestSendLabReportEmail.languageID = 1; await baseAppClient.post(SEND_LAB_RESULT_EMAIL, onSuccess: (dynamic response, int statusCode) { if (isDownload) { diff --git a/lib/core/viewModels/er/rrt-view-model.dart b/lib/core/viewModels/er/rrt-view-model.dart index d615ef98..0ed0cf55 100644 --- a/lib/core/viewModels/er/rrt-view-model.dart +++ b/lib/core/viewModels/er/rrt-view-model.dart @@ -38,10 +38,10 @@ class RRTViewModel extends BaseViewModel { _RRTServiceData rrtServiceData = _RRTServiceData(); - Future<_RRTServiceData> loadRequiredData() async { + Future<_RRTServiceData> loadRequiredData(int languageID) async { // await getServicePrice(); // await getAllOrders(); - await getProcedureDetails(); + await getProcedureDetails(languageID); await getAllOrdersRC(); // getProcedureDetails(); return rrtServiceData; @@ -120,9 +120,9 @@ class RRTViewModel extends BaseViewModel { return rrtServiceData; } - Future<_RRTServiceData> getProcedureDetails() async { + Future<_RRTServiceData> getProcedureDetails(int languageID) async { DoctorsListService service = new DoctorsListService(); - await service.getRRTProcedures(15).then((res) { + await service.getRRTProcedures(15, languageID).then((res) { rrtProcedureList.clear(); var data = res["Vida_ProcedureList"]; data.forEach((json) { diff --git a/lib/pages/BookAppointment/BookConfirm.dart b/lib/pages/BookAppointment/BookConfirm.dart index 74f7c142..63f58910 100644 --- a/lib/pages/BookAppointment/BookConfirm.dart +++ b/lib/pages/BookAppointment/BookConfirm.dart @@ -329,7 +329,7 @@ class _BookConfirmState extends State { GifLoaderDialogUtils.showMyDialog(context); AppoitmentAllHistoryResultList appo; widget.service - .insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, widget.selectedTime, widget.selectedDate, initialSlotDuration, context, null, null, null, projectViewModel) + .insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, widget.selectedTime, widget.selectedDate, initialSlotDuration, projectViewModel.isArabic ? 1 : 2, context, null, null, null, projectViewModel) .then((res) { if (res['MessageStatus'] == 1) { AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess); @@ -385,7 +385,7 @@ class _BookConfirmState extends State { widget.selectedTime = timeSlot.toUtc().add(Duration(hours: 3)).toString().split(" ")[1].substring(0, 5); GifLoaderDialogUtils.showMyDialog(context); AppoitmentAllHistoryResultList appo; - widget.service.insertLiveCareScheduleAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, docObject.serviceID, widget.selectedTime, widget.selectedDate, context).then((res) { + widget.service.insertLiveCareScheduleAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, docObject.serviceID, widget.selectedTime, widget.selectedDate, projectViewModel.isArabic ? 1 : 2, context).then((res) { if (res['MessageStatus'] == 1) { AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess); print(res['AppointmentNo']); @@ -489,7 +489,7 @@ class _BookConfirmState extends State { } getLiveCareAppointmentPatientShare(context, String appointmentNo, int clinicID, int projectID, DoctorList docObject) { - widget.service.getLiveCareAppointmentPatientShare(appointmentNo, clinicID, projectID, context).then((res) { + widget.service.getLiveCareAppointmentPatientShare(appointmentNo, clinicID, projectID, projectViewModel.isArabic ? 1 : 2, context).then((res) { widget.patientShareResponse = new PatientShareResponse.fromJson(res); GifLoaderDialogUtils.hideDialog(context); navigateToBookSuccess(context, docObject, widget.patientShareResponse, false); diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart index ea0f186b..52113d74 100644 --- a/lib/pages/BookAppointment/BookSuccess.dart +++ b/lib/pages/BookAppointment/BookSuccess.dart @@ -493,7 +493,7 @@ class _BookSuccessState extends State { setOnlineCheckInForAppointment() { DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); - service.setOnlineCheckInForAppointment(widget.patientShareResponse.appointmentNo.toString(), widget.patientShareResponse.projectID, context).then((res) { + service.setOnlineCheckInForAppointment(widget.patientShareResponse.appointmentNo.toString(), widget.patientShareResponse.projectID, projectViewModel.isArabic ? 1 : 2, context).then((res) { AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList(); appo.clinicID = widget.docObject.clinicID; appo.projectID = widget.docObject.projectID; @@ -538,7 +538,7 @@ class _BookSuccessState extends State { GifLoaderDialogUtils.showMyDialog(context); service .insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID, appo.serviceID, appo.doctorID, appo.appointmentDate, - Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), context) + Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), projectViewModel.isArabic ? 1 : 2, context) .then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart index 426df212..1ad0bf67 100644 --- a/lib/pages/BookAppointment/DoctorProfile.dart +++ b/lib/pages/BookAppointment/DoctorProfile.dart @@ -234,7 +234,7 @@ class _DoctorProfileState extends State with TickerProviderStateM getDoctorRatings() { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getDoctorsRating(widget.doctor.doctorID, context).then((res) { + service.getDoctorsRating(widget.doctor.doctorID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { print(res['NotesDoctorRatingList']); @@ -251,7 +251,7 @@ class _DoctorProfileState extends State with TickerProviderStateM getDoctorRatingsDetails() { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getDoctorsRatingDetails(widget.doctor.doctorID, context).then((res) { + service.getDoctorsRatingDetails(widget.doctor.doctorID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { doctorDetailsList.clear(); diff --git a/lib/pages/BookAppointment/components/LaserClinic.dart b/lib/pages/BookAppointment/components/LaserClinic.dart index c7e32565..61ca55d7 100644 --- a/lib/pages/BookAppointment/components/LaserClinic.dart +++ b/lib/pages/BookAppointment/components/LaserClinic.dart @@ -69,7 +69,7 @@ class _LaserClinicState extends State with SingleTickerProviderStat GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getLaserBodyPartsList(laserCategoryId, widget.selectedHospital.iD).then((res) { + service.getLaserBodyPartsList(laserCategoryId, widget.selectedHospital.iD, projectViewModel.isArabic ? 1 : 2).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { if (res['Laser_GetBodyPartsByCategoryList'].length != 0) { diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart index d5c60b20..8acf6efe 100644 --- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart +++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart @@ -412,7 +412,7 @@ class _CovidTimeSlotsState extends State with TickerProviderStat insertCovidQuestionnaire(context, DoctorList docObject) async { DoctorsListService service = new DoctorsListService(); List qa = await sharedPref.getObject(COVID_QA_LIST); - service.insertCovidQuestionnaire(qa, widget.projectID, widget.selectedProject.testTypeEnum, widget.selectedProject.testProcedureEnum).then((res) { + service.insertCovidQuestionnaire(qa, widget.projectID, widget.selectedProject.testTypeEnum, projectViewModel.isArabic ? 1 : 2, widget.selectedProject.testProcedureEnum).then((res) { insertAppointmentCovidTest(context, docObject); }).catchError((err) { print(err); @@ -430,7 +430,7 @@ class _CovidTimeSlotsState extends State with TickerProviderStat DoctorsListService service = new DoctorsListService(); AppoitmentAllHistoryResultList appo; service - .insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, 0, context, widget.selectedProcedure.procedureID, + .insertAppointment(docObject.doctorID, docObject.clinicID, docObject.projectID, CovidTimeSlots.selectedTime, CovidTimeSlots.selectedDate, 0, projectViewModel.isArabic ? 1 : 2, context, widget.selectedProcedure.procedureID, widget.selectedProject.testTypeEnum, widget.selectedProject.testProcedureEnum) .then((res) { if (res['MessageStatus'] == 1) { diff --git a/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart index b56e28d5..ec1d5a23 100644 --- a/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-main-screen.dart @@ -56,7 +56,7 @@ class RRTMainScreenState extends State with SingleTickerProviderS onModelReady: (vm) async { viewModel = vm; loadingData = true; - await vm.loadRequiredData().then((value) {}).whenComplete(() => setState(() => loadingData = false)); + await vm.loadRequiredData(projectViewModel.isArabic ? 1 : 2).then((value) {}).whenComplete(() => setState(() => loadingData = false)); }, builder: (ctx, vm, widget) => content(), )); diff --git a/lib/pages/ErService/rapid-response-team/rrt-request-page.dart b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart index 8541b859..beada490 100644 --- a/lib/pages/ErService/rapid-response-team/rrt-request-page.dart +++ b/lib/pages/ErService/rapid-response-team/rrt-request-page.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/er/rrt-view-model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/rrt/RRTProcedureList.dart'; import 'package:diplomaticquarterapp/models/rrt/service_price.dart'; import 'package:diplomaticquarterapp/pages/ErService/rapid-response-team/rrt-order-list-item.dart'; @@ -16,6 +17,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class RRTRequestPage extends StatefulWidget { final List pendingOrders; @@ -32,6 +34,8 @@ class RRTRequestPageState extends State { bool acceptTerms = false; VidaProcedureList selectedProcedure; + ProjectViewModel projectViewModel; + @override void initState() { // getProcedureDetails(); @@ -40,6 +44,7 @@ class RRTRequestPageState extends State { @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); return BaseView( onModelReady: (vm) { // viewModel = vm; @@ -272,7 +277,7 @@ class RRTRequestPageState extends State { getProcedureDetails() { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getRRTProcedures(15).then((res) { + service.getRRTProcedures(15, projectViewModel.isArabic ? 1 : 2).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res['Vida_ProcedureList']); }).catchError((err) { diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index 67b165b8..cd5597db 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -328,7 +328,7 @@ class _AppointmentDetailsState extends State with SingleTick void getDoctorRatingsDetails() { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getDoctorsRatingDetails(widget.appo.doctorID, context).then((res) { + service.getDoctorsRatingDetails(widget.appo.doctorID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { doctorDetailsList.clear(); diff --git a/lib/pages/MyAppointments/widgets/PrescriptionReport.dart b/lib/pages/MyAppointments/widgets/PrescriptionReport.dart index 33c55ddd..69470f23 100644 --- a/lib/pages/MyAppointments/widgets/PrescriptionReport.dart +++ b/lib/pages/MyAppointments/widgets/PrescriptionReport.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; @@ -10,6 +11,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class PrescriptionReportPage extends StatefulWidget { List prescriptionReportEnhList; @@ -26,6 +28,9 @@ class PrescriptionReportPage extends StatefulWidget { } class _PrescriptionReportState extends State { + + ProjectViewModel projectViewModel; + @override void initState() { super.initState(); @@ -33,6 +38,7 @@ class _PrescriptionReportState extends State { @override Widget build(BuildContext context) { + projectViewModel = Provider.of(context); return AppScaffold( isShowAppBar: true, appBarTitle: 'Items', @@ -117,7 +123,7 @@ class _PrescriptionReportState extends State { DoctorsListService service = new DoctorsListService(); GifLoaderDialogUtils.showMyDialog(context); service - .sendPrescriptionEmail(widget.appo.appointmentDate, widget.appo.setupID, + .sendPrescriptionEmail(widget.appo.appointmentDate, widget.appo.setupID, projectViewModel.isArabic ? 1 : 2, widget.listPres, context) .then((res) { GifLoaderDialogUtils.hideDialog(context); diff --git a/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart b/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart index ff3bc13c..242a072f 100644 --- a/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart +++ b/lib/pages/ToDoList/ObGyne/ObGyne-TimeSlots.dart @@ -353,7 +353,7 @@ class _CovidTimeSlotsState extends State with TickerProviderSta AppoitmentAllHistoryResultList appo; service .insertAppointment( - docObject.doctorID, docObject.clinicID, docObject.projectID, ObGyneTimeSlots.selectedTime, ObGyneTimeSlots.selectedDate, 0, context, widget.obGyneProcedureListResponse.procedureId) + docObject.doctorID, docObject.clinicID, docObject.projectID, ObGyneTimeSlots.selectedTime, ObGyneTimeSlots.selectedDate, 0, projectViewModel.isArabic ? 1 : 2, context, widget.obGyneProcedureListResponse.procedureId) .then((res) { if (res['MessageStatus'] == 1) { AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess); @@ -394,7 +394,7 @@ class _CovidTimeSlotsState extends State with TickerProviderSta DoctorsListService service = new DoctorsListService(); service .updateObGyneAppointment(widget.obGyneProcedureListResponse.episodeID, int.parse(appoNo), widget.obGyneProcedureListResponse.orderNo, widget.obGyneProcedureListResponse.procedureId, - widget.obGyneProcedureListResponse.lineItemNo, widget.obGyneProcedureListResponse.uniqueRowID) + widget.obGyneProcedureListResponse.lineItemNo, widget.obGyneProcedureListResponse.uniqueRowID, projectViewModel.isArabic ? 1 : 2) .then((res) {}) .catchError((err) { print(err); diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index b5f417e2..5fb46243 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -776,7 +776,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { DoctorsListService service = new DoctorsListService(); List doctorsList = []; List _patientDoctorAppointmentListHospital = []; - service.getOBGyneDoctorsList(projectID, setupID, context).then((res) { + service.getOBGyneDoctorsList(projectID, setupID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); print(res['HIS_ObgyneUltrasoundDoctorsList'][0]); if (res['MessageStatus'] == 1) { @@ -967,7 +967,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { getLiveCareAppointmentPatientShare(context, DoctorsListService service, AppoitmentAllHistoryResultList appo) { GifLoaderDialogUtils.showMyDialog(context); - service.getLiveCareAppointmentPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, context).then((res) { + service.getLiveCareAppointmentPatientShare(appo.appointmentNo.toString(), appo.clinicID, appo.projectID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); widget.patientShareResponse = new PatientShareResponse.fromJson(res); openPaymentDialog(appo, widget.patientShareResponse); @@ -1274,7 +1274,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { DoctorsListService service = new DoctorsListService(); service .insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID, appo.serviceID, appo.doctorID, appo.appointmentDate, - Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), context) + Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), projectViewModel.isArabic ? 1 : 2, context) .then((res) { GifLoaderDialogUtils.hideDialog(context); getPatientAppointmentHistory(); @@ -1334,7 +1334,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { DoctorsListService service = new DoctorsListService(); service .insertVIDARequest(appo.appointmentNo, appo.clinicID, appo.projectID, appo.serviceID, appo.doctorID, appo.appointmentDate, - Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), context) + Utils.getAppointmentTransID(appo.projectID, appo.clinicID, appo.appointmentNo), projectViewModel.isArabic ? 1 : 2, context) .then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { diff --git a/lib/pages/medical/eye/EyeHomePage.dart b/lib/pages/medical/eye/EyeHomePage.dart index 901ce187..288689fb 100644 --- a/lib/pages/medical/eye/EyeHomePage.dart +++ b/lib/pages/medical/eye/EyeHomePage.dart @@ -36,6 +36,7 @@ class EyeHomePage extends StatefulWidget { class _EyeHomePageState extends State with SingleTickerProviderStateMixin { TabController _tabController; List doctorDetailsList = List(); + ProjectViewModel projectViewModel; @override void initState() { @@ -54,7 +55,7 @@ class _EyeHomePageState extends State with SingleTickerProviderStat @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); return BaseView( builder: (_, model, w) => AppScaffold( isShowAppBar: true, @@ -180,7 +181,7 @@ class _EyeHomePageState extends State with SingleTickerProviderStat void getDoctorRatingsDetails() { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); - service.getDoctorsRatingDetails(widget.appointmentAllHistoryResultList.doctorID, context).then((res) { + service.getDoctorsRatingDetails(widget.appointmentAllHistoryResultList.doctorID, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { doctorDetailsList.clear(); diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 02559d95..8f47063c 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -14,6 +14,7 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da import 'package:diplomaticquarterapp/models/Request.dart'; import 'package:diplomaticquarterapp/models/anicllary-orders/ancillary_orders_proc_list.dart'; import 'package:diplomaticquarterapp/models/apple_pay_request.dart'; +import 'package:diplomaticquarterapp/pages/final_products_page.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; @@ -174,7 +175,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getDoctorsRating(int docID, context) async { + Future getDoctorsRating(int docID,int languageID, context) async { Map request; Request req = appGlobal.getPublicRequest(); @@ -191,6 +192,7 @@ class DoctorsListService extends BaseService { "PatientID": 0, "License": true, "IsRegistered": true, + "LanguageID": languageID, "isDentalAllowedBackend": false }; @@ -224,7 +226,7 @@ class DoctorsListService extends BaseService { return Future.value(images); } - Future getDoctorsRatingDetails(int docID, context) async { + Future getDoctorsRatingDetails(int docID,int languageID, context) async { Map request; Request req = appGlobal.getPublicRequest(); @@ -241,6 +243,7 @@ class DoctorsListService extends BaseService { "PatientID": 0, "License": true, "IsRegistered": true, + "LanguageID": languageID, "isDentalAllowedBackend": false }; @@ -273,6 +276,7 @@ class DoctorsListService extends BaseService { "PatientOutSA": authProvider.isLogin ? authUser.outSA : 0, "SessionID": null, "isDentalAllowedBackend": false, + "LanguageID": 1, "DeviceTypeID": 1 }; @@ -316,6 +320,7 @@ class DoctorsListService extends BaseService { "PatientOutSA": authUser.outSA, "SessionID": null, "isDentalAllowedBackend": false, + "LanguageID": 1, "DeviceTypeID": 1 }; @@ -329,7 +334,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future insertAppointment(int docID, int clinicID, int projectID, String selectedTime, String selectedDate, int initialSlotDuration, BuildContext context, + Future insertAppointment(int docID, int clinicID, int projectID, String selectedTime, String selectedDate, int initialSlotDuration, int languageID, BuildContext context, [String procedureID, num testTypeEnum, num testProcedureEnum, ProjectViewModel projectViewModel]) async { Map request; @@ -392,7 +397,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future insertLiveCareScheduleAppointment(int docID, int clinicID, int projectID, int serviceID, String selectedTime, String selectedDate, BuildContext context) async { + Future insertLiveCareScheduleAppointment(int docID, int clinicID, int projectID, int serviceID, String selectedTime, String selectedDate, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -482,14 +487,14 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future setOnlineCheckInForAppointment(String appoID, int projectID, BuildContext context) async { + Future setOnlineCheckInForAppointment(String appoID, int projectID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); authUser = data; } - request = {"ProjectID": projectID, "AppointmentNo": appoID}; + request = {"ProjectID": projectID, "AppointmentNo": appoID, "LanguageID": languageID}; dynamic localRes; @@ -501,7 +506,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getLiveCareAppointmentPatientShare(String appoID, int clinicID, int projectID, BuildContext context) async { + Future getLiveCareAppointmentPatientShare(String appoID, int clinicID, int projectID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -527,6 +532,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; @@ -562,7 +568,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getOBGyneDoctorsList(int projectID, String setupID, BuildContext context) async { + Future getOBGyneDoctorsList(int projectID, String setupID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -579,6 +585,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; @@ -697,6 +704,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; @@ -710,7 +718,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future insertVIDARequest(int appoNo, int clinicID, int projectID, int serviceID, int docID, String appoDate, String clientRequestID, BuildContext context) async { + Future insertVIDARequest(int appoNo, int clinicID, int projectID, int serviceID, int docID, String appoDate, String clientRequestID, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -751,6 +759,7 @@ class DoctorsListService extends BaseService { "PatientTypeID": authUser.patientType, "PatientType": authUser.patientType, "VoipToken": await sharedPref.getString(ONESIGNAL_APNS_TOKEN), + "LanguageID": languageID, "IsVoip": Platform.isIOS ? true : false }; @@ -796,6 +805,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; @@ -834,6 +844,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; @@ -909,6 +920,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; dynamic localRes; @@ -955,6 +967,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; dynamic localRes; @@ -998,6 +1011,7 @@ class DoctorsListService extends BaseService { "PatientType": authUser.patientType, "DeviceToken": await sharedPref.getString(PUSH_TOKEN), "VoipToken": await sharedPref.getString(ONESIGNAL_APNS_TOKEN), + "LanguageID": 1, "IsVoip": Platform.isIOS ? true : false }; @@ -1034,6 +1048,7 @@ class DoctorsListService extends BaseService { }); request = { + "LanguageID": 1, "RequestAncillaryOrderInvoice": [ {"MemberID": 102, "ProjectID": projectID, "AppointmentNo": appointmentID, "OrderNo": orderNo, "AncillaryOrderInvoiceProcList": selectedProcListAPI} ], @@ -1234,7 +1249,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientPrescriptionReports(AppoitmentAllHistoryResultList appo, BuildContext context) async { + Future getPatientPrescriptionReports(AppoitmentAllHistoryResultList appo, int languageID, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); @@ -1258,6 +1273,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": languageID, "PatientType": authUser.patientType }; @@ -1270,7 +1286,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future sendPrescriptionEmail(String appoDate, String setupId, dynamic prescriptionReportEnhList, BuildContext context) async { + Future sendPrescriptionEmail(String appoDate, String setupId, int languageID, dynamic prescriptionReportEnhList, BuildContext context) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE)); @@ -1297,6 +1313,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": authUser.patientType, "PatientType": authUser.patientType }; @@ -1340,6 +1357,7 @@ class DoctorsListService extends BaseService { "isDentalAllowedBackend": false, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "PatientType": authUser.patientType }; dynamic localRes; @@ -1378,7 +1396,7 @@ class DoctorsListService extends BaseService { "PaymentMethod": paymentMethodName, "VersionID": req.VersionID, "Channel": req.Channel, - + "LanguageID": 1, "IPAdress": req.IPAdress, "generalid": req.generalid, "PatientOutSA": authUser.outSA, @@ -1414,6 +1432,7 @@ class DoctorsListService extends BaseService { "generalid": req.generalid, "PatientOutSA": authUser.outSA, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "ERAdvanceAmount": { "ProjectId": projectID, "PatientId": authUser.patientID, @@ -1454,6 +1473,7 @@ class DoctorsListService extends BaseService { "generalid": req.generalid, "PatientOutSA": authUser.outSA, "PatientTypeID": authUser.patientType, + "LanguageID": 1, "EROnlineCheckinPaymentDetails": { "CheckinDate": DateUtil.convertDateToString(DateTime.now()), "ExpectedArrivalTime": DateUtil.convertDateToString(DateTime.now()), @@ -1516,7 +1536,7 @@ class DoctorsListService extends BaseService { Future sendCheckinNfcRequest(int appointmentNo, String nfcCode, int projectId, int checkInBy, BuildContext context) async { Map request; - request = {"AppointmentNo": appointmentNo, "NFC_Code": nfcCode, "ProjectID": projectId, "CheckinBy": checkInBy}; + request = {"AppointmentNo": appointmentNo, "NFC_Code": nfcCode, "ProjectID": projectId, "CheckinBy": checkInBy, "LanguageID": 1}; dynamic localRes; await baseAppClient.post(SEND_CHECK_IN_NFC_REQUEST, onSuccess: (response, statusCode) async { localRes = response; @@ -1531,6 +1551,7 @@ class DoctorsListService extends BaseService { request = { "ProjectID": projectID, + "LanguageID": 1, }; dynamic localRes; await baseAppClient.post(HAS_DENTAL_PLAN, onSuccess: (response, statusCode) async { @@ -1592,12 +1613,13 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getLaserBodyPartsList(int laserCategoryID, int projectID) async { + Future getLaserBodyPartsList(int laserCategoryID, int projectID, int languageID) async { Map request; request = { "LaserCategoryID": laserCategoryID, "ProjectID": projectID, + "LanguageID": languageID, }; dynamic localRes; await baseAppClient.post(LASER_BODY_PARTS, onSuccess: (response, statusCode) async { @@ -1608,11 +1630,12 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future insertCovidQuestionnaire(List qa, int projectID, int testTypeEnum, int testProcedureEnum) async { + Future insertCovidQuestionnaire(List qa, int projectID, int testTypeEnum, int languageID, int testProcedureEnum) async { Map request; request = { "ProjectID": projectID, + "LanguageID": languageID, "IsForTravel": qa[0]['ans'].toString(), "IsComingOutSA": qa[1]['ans'].toString(), "IsFeverCurrently": qa[2]['ans'].toString(), @@ -1655,11 +1678,12 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future updateObGyneAppointment(int episodeID, int appointmentNo, int orderNo, String procedureId, int lineItemNo, int uniqueRowID) async { + Future updateObGyneAppointment(int episodeID, int appointmentNo, int orderNo, String procedureId, int lineItemNo, int uniqueRowID, int languageID) async { Map request; request = { "EpisodeID": episodeID, + "LanguageID": languageID, "AppointmentNo": appointmentNo, "OrderNo": orderNo, "ProcedureId": procedureId, @@ -1678,10 +1702,10 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getRRTProcedures(int projectID) async { + Future getRRTProcedures(int projectID, int languageID) async { Map request; - request = {"ProjectID": projectID}; + request = {"ProjectID": projectID, "LanguageID": languageID}; dynamic localRes; await baseAppClient.post(GET_RRT_PROCEDURE_LIST, onSuccess: (response, statusCode) async { @@ -1699,6 +1723,7 @@ class DoctorsListService extends BaseService { "ClientRequestID": clientRequestID, "Status": status, "FortID": tamaraOrderID, // Tamara order ID + "LanguageID": 1, "Installments_Number": selectedInstallments }; @@ -1714,7 +1739,7 @@ class DoctorsListService extends BaseService { Future markAppointmentForTamara(int projectID, String appoNo) async { Map request; - request = {"ProjectID": projectID, "AppointmentNo": appoNo}; + request = {"ProjectID": projectID, "AppointmentNo": appoNo, "LanguageID": 1}; dynamic localRes; await baseAppClient.post(MARK_APPOINTMENT_TAMARA_STATUS, onSuccess: (response, statusCode) async { localRes = response; @@ -1727,7 +1752,7 @@ class DoctorsListService extends BaseService { Future autoGenerateInvoiceTamara(int projectID, String appoNo, String mobileNo) async { Map request; - request = {"ProjectID": projectID, "AppointmentNo": appoNo, "MobileNo": mobileNo, "UserID": 102}; + request = {"ProjectID": projectID, "AppointmentNo": appoNo, "MobileNo": mobileNo, "UserID": 102, "LanguageID": 1}; dynamic localRes; await baseAppClient.post(AUTO_GENERATE_INVOICE_TAMARA, onSuccess: (response, statusCode) async { localRes = response; @@ -1740,7 +1765,7 @@ class DoctorsListService extends BaseService { Future checkPatientNphiesEligibility(int projectID) async { Map request; - request = {"ProjectID": projectID}; + request = {"ProjectID": projectID, "LanguageID": 1}; dynamic localRes; await baseAppClient.post(CHECK_PATIENT_NPHIES_ELIGIBILITY, onSuccess: (response, statusCode) async { localRes = response; @@ -1753,7 +1778,7 @@ class DoctorsListService extends BaseService { Future convertPatientToCash(int projectID) async { Map request; - request = {"ProjectID": projectID}; + request = {"ProjectID": projectID, "LanguageID": 1}; dynamic localRes; await baseAppClient.post(CONVERT_PATIENT_TO_CASH, onSuccess: (response, statusCode) async { localRes = response; @@ -1797,6 +1822,7 @@ class DoctorsListService extends BaseService { "PatientOutSA": authProvider.isLogin ? authUser.outSA : 0, "SessionID": null, "isDentalAllowedBackend": false, + "LanguageID": 1, "DeviceTypeID": 1 }; diff --git a/lib/widgets/new_design/doctor_header.dart b/lib/widgets/new_design/doctor_header.dart index 549c182a..7e75b63a 100644 --- a/lib/widgets/new_design/doctor_header.dart +++ b/lib/widgets/new_design/doctor_header.dart @@ -203,7 +203,7 @@ class DoctorHeader extends StatelessWidget { List doctorDetailsList = List(); DoctorsListService service = new DoctorsListService(); - service.getDoctorsRatingDetails(headerModel.doctorId, context).then((res) { + service.getDoctorsRatingDetails(headerModel.doctorId, projectViewModel.isArabic ? 1 : 2, context).then((res) { GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { doctorDetailsList.clear(); From 86d3e03c06f1d44c6420675b60c04e803cc53d74 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 3 Jan 2024 14:35:49 +0300 Subject: [PATCH 09/18] Updates --- lib/pages/DrawerPages/family/my-family.dart | 2 +- .../family_files/family_files_provider.dart | 1 + lib/widgets/drawer/app_drawer_widget.dart | 20 +++++++++---------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index ef6f5e3d..9d80ee83 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -477,7 +477,7 @@ class _MyFamily extends State with TickerProviderStateMixin { var bloodType = await sharedPref.getString(BLOOD_TYPE); var mainUser = await sharedPref.getObject(MAIN_USER); var loginType = await sharedPref.getInt(LAST_LOGIN); - this.sharedPref.clear(); + // this.sharedPref.clear(); if (mainUser["PatientID"] != result.list.patientID) { result.list.isFamily = true; } diff --git a/lib/services/family_files/family_files_provider.dart b/lib/services/family_files/family_files_provider.dart index f209812e..88cc0c69 100644 --- a/lib/services/family_files/family_files_provider.dart +++ b/lib/services/family_files/family_files_provider.dart @@ -43,6 +43,7 @@ class FamilyFilesProvider with ChangeNotifier { dynamic localRes; try { var request = GetAllSharedRecordsByStatusReq(); + // var request = {"LanguageID": languageID}; // var result = await sharedPref.getObject(MAIN_USER); // request.status = 0; // request.patientID = result["PatientID"]; diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 89d35885..47dbdabe 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -67,12 +67,6 @@ class AppDrawer extends StatefulWidget { class _AppDrawerState extends State { final InAppReview _inAppReview = InAppReview.instance; - @override - void initState() { - super.initState(); - checkUserData(); - } - ProjectViewModel projectProvider; var sharedPref = new AppSharedPreferences(); var familyFileProvider = FamilyFilesProvider(); @@ -89,6 +83,12 @@ class _AppDrawerState extends State { final authService = new AuthProvider(); String pharmacyLiveCareQRCode = ""; + @override + void initState() { + super.initState(); + checkUserData(); + } + @override Widget build(BuildContext context) { projectProvider = Provider.of(context); @@ -684,16 +684,16 @@ class _AppDrawerState extends State { var currentLang = await sharedPref.getString(APP_LANGUAGE); var mainUser = await sharedPref.getObject(MAIN_USER); var loginType = await sharedPref.getInt(LAST_LOGIN); - this.sharedPref.clear(); + // this.sharedPref.clear(); if (mainUser["PatientID"] != result.list.patientID) { result.list.isFamily = true; } else { result.list.isFamily = false; } // result.list.cRSVerificationStatus = result['CRSVerificationStatus']; - this.sharedPref.setString(APP_LANGUAGE, currentLang); - this.sharedPref.setString(BLOOD_TYPE, bloodType); - this.sharedPref.setInt(LAST_LOGIN, loginType); + await this.sharedPref.setString(APP_LANGUAGE, currentLang); + await this.sharedPref.setString(BLOOD_TYPE, bloodType); + await this.sharedPref.setInt(LAST_LOGIN, loginType); await this.sharedPref.setObject(MAIN_USER, mainUser); await this.sharedPref.setObject(USER_PROFILE, result.list); await this.sharedPref.setObject(FAMILY_FILE, familyFile); From e6d093a84ce92856d5f94e9a6bd74cdb484abf33 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 3 Jan 2024 16:27:38 +0300 Subject: [PATCH 10/18] updates --- lib/config/config.dart | 4 +- lib/core/service/client/base_app_client.dart | 2 +- lib/uitl/utils.dart | 68 +++++++++----------- 3 files changed, 35 insertions(+), 39 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 128264a2..a77a0814 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; -var BASE_URL = 'https://uat.hmgwebservices.com/'; -// var BASE_URL = 'https://hmgwebservices.com/'; +// var BASE_URL = 'https://uat.hmgwebservices.com/'; +var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'http://10.20.200.111:1010/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index d6b88e33..109326bc 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -175,7 +175,7 @@ class BaseAppClient { // body['IdentificationNo'] = 1023854217; // body['MobileNo'] = "531940021"; - // body['PatientID'] = 291367; //3844083 + // body['PatientID'] = 1018977; //3844083 // body['TokenID'] = "@dm!n"; // Patient ID: 3027574 diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart index 77522108..4022f2ef 100644 --- a/lib/uitl/utils.dart +++ b/lib/uitl/utils.dart @@ -614,42 +614,38 @@ class Utils { hasBadge: true, isEnable: projectViewModel.havePrivilege(5)), projectViewModel.isArabic - ? !projectViewModel.isLoginChild - ? Positioned( - left: 8, - top: 4, - child: badge_import.Badge( - toAnimate: false, - elevation: 0, - position: badge_import.BadgePosition.topEnd(), - shape: badge_import.BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), - ), - ), - ) - : Container() - : !projectViewModel.isLoginChild - ? Positioned( - right: 8, - top: 4, - child: badge_import.Badge( - toAnimate: false, - elevation: 0, - position: badge_import.BadgePosition.topEnd(), - shape: badge_import.BadgeShape.circle, - badgeColor: secondaryColor.withOpacity(1.0), - borderRadius: BorderRadius.circular(8), - badgeContent: Container( - padding: EdgeInsets.all(2.0), - child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), - ), - ), - ) - : Container(), + ? Positioned( + left: 8, + top: 4, + child: badge_import.Badge( + toAnimate: false, + elevation: 0, + position: badge_import.BadgePosition.topEnd(), + shape: badge_import.BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ) + : Positioned( + right: 8, + top: 4, + child: badge_import.Badge( + toAnimate: false, + elevation: 0, + position: badge_import.BadgePosition.topEnd(), + shape: badge_import.BadgeShape.circle, + badgeColor: secondaryColor.withOpacity(1.0), + borderRadius: BorderRadius.circular(8), + badgeContent: Container( + padding: EdgeInsets.all(2.0), + child: Text(count.toString(), style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 12.0)), + ), + ), + ), ]) : MedicalProfileItem( title: TranslationBase.of(context).myAppointments, From e1718270eb4743d1e9a89d5d08eaff9a268d5313 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 4 Jan 2024 09:59:47 +0300 Subject: [PATCH 11/18] updates --- lib/pages/MyAppointments/MyAppointments.dart | 7 ++++++- pubspec.yaml | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index 3d0eb15f..1163da12 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -431,7 +431,12 @@ class _MyAppointmentsState extends State with SingleTickerProvid ), ), ).then((value) { - getPatientAppointmentHistory(true, false); + if(_currentPage == 1) { + getPatientAppointmentHistory(true, false); + } + if(_currentPage == 2) { + getPatientAppointmentHistory(false, true); + } }), isInOutPatient: _appointmentResult.isInOutPatient, name: _appointmentResult.doctorTitle + " " + _appointmentResult.doctorNameObj, diff --git a/pubspec.yaml b/pubspec.yaml index 8fb7faae..0cb06dd5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: diplomaticquarterapp description: A new Flutter application. -version: 4.5.040+4050040 +version: 4.5.78+1 environment: sdk: ">=2.7.0 <3.0.0" From 63621b5fedaf73422243d3e0e0907623970e9bf5 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 7 Jan 2024 09:42:28 +0300 Subject: [PATCH 12/18] Updates & fixes --- lib/pages/ToDoList/ToDo.dart | 137 ++++++++++++++++++----------------- pubspec.yaml | 2 +- 2 files changed, 70 insertions(+), 69 deletions(-) diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 5fb46243..2be4f097 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -48,9 +48,6 @@ import 'package:rating_bar/rating_bar.dart'; class ToDo extends StatefulWidget { PatientShareResponse patientShareResponse; - List appoList = []; - List ancillaryLists = []; - List obGyneAppoList = []; var languageID; bool isShowAppBar = true; @@ -86,6 +83,10 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { bool isCash = false; MyInAppBrowser browser; + List appoList = []; + List ancillaryLists = []; + List obGyneAppoList = []; + @override void initState() { widget.patientShareResponse = new PatientShareResponse(); @@ -103,6 +104,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { @override void dispose() { super.dispose(); + // getToDoCount(); _tabController.dispose(); } @@ -162,15 +164,15 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { child: AppExpandableNotifier( isExpand: true, hasCounter: true, - counter: widget.appoList.length.toString(), + counter: appoList.length.toString(), title: TranslationBase.of(context).appointments, - bodyWidget: widget.appoList.length != 0 + bodyWidget: appoList.length != 0 ? ListView.builder( scrollDirection: Axis.vertical, shrinkWrap: true, physics: ScrollPhysics(), padding: EdgeInsets.all(0.0), - itemCount: widget.appoList.length, + itemCount: appoList.length, itemBuilder: (context, index) { return Container( width: double.infinity, @@ -190,12 +192,12 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { children: [ Padding( padding: const EdgeInsets.only(top: 4.0), - child: widget.appoList[index].clinicID == 265 + child: appoList[index].clinicID == 265 ? Container( margin: EdgeInsets.only(left: 5.0, right: 5.0), child: SvgPicture.asset("assets/images/new/CoronaIcon.svg", width: 35.0, height: 35.0), ) - : widget.appoList[index].isLiveCareAppointment + : appoList[index].isLiveCareAppointment ? SvgPicture.asset("assets/images/new/virtual.svg") : SvgPicture.asset("assets/images/new/hospital-visit.svg"), ), @@ -205,9 +207,9 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0), child: Text( - widget.appoList[index].clinicID == 265 + appoList[index].clinicID == 265 ? TranslationBase.of(context).covidTestTodo - : widget.appoList[index].isLiveCareAppointment + : appoList[index].isLiveCareAppointment ? TranslationBase.of(context).liveCareAppo : TranslationBase.of(context).walkinAppo, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48)), @@ -215,8 +217,8 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0), child: CountdownTimer( - controller: new CountdownTimerController( - endTime: DateTime.now().millisecondsSinceEpoch + (widget.appoList[index].remaniningHoursTocanPay * 1000) * 60), + controller: + new CountdownTimerController(endTime: DateTime.now().millisecondsSinceEpoch + (appoList[index].remaniningHoursTocanPay * 1000) * 60), widgetBuilder: (_, CurrentRemainingTime time) { return time != null ? Text( @@ -236,17 +238,17 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { child: Container( child: InkWell( onTap: () { - performNextAction(widget.appoList[index]); + performNextAction(appoList[index]); }, child: Container( padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14), decoration: BoxDecoration( - color: getNextActionButtonColor(widget.appoList[index].nextAction), + color: getNextActionButtonColor(appoList[index].nextAction), border: Border.all(color: Colors.white, width: 1), borderRadius: BorderRadius.circular(6), ), child: Text( - getNextActionText(widget.appoList[index].nextAction), + getNextActionText(appoList[index].nextAction), textAlign: TextAlign.center, style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Colors.white, letterSpacing: -0.4), ), @@ -259,7 +261,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Padding( padding: const EdgeInsets.only(top: 8.0), child: Text( - widget.appoList[index].doctorTitle + " " + widget.appoList[index].doctorNameObj, + appoList[index].doctorTitle + " " + appoList[index].doctorNameObj, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), ), ), @@ -267,8 +269,8 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { mainAxisSize: MainAxisSize.min, children: [ LargeAvatar( - name: widget.appoList[index].doctorTitle + " " + widget.appoList[index].doctorNameObj, - url: widget.appoList[index].doctorImageURL, + name: appoList[index].doctorTitle + " " + appoList[index].doctorNameObj, + url: appoList[index].doctorImageURL, width: 52, height: 52, ), @@ -278,32 +280,32 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - MyRichText(TranslationBase.of(context).clinic + ": ", widget.appoList[index].clinicName, projectViewModel.isArabic), + MyRichText(TranslationBase.of(context).clinic + ": ", appoList[index].clinicName, projectViewModel.isArabic), // MyRichText(TranslationBase.of(context).appointmentDate + ": ", - // DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.appoList[index].appointmentDate)) + " " + widget.appoList[index].startTime.substring(0, 5), projectViewModel.isArabic), + // DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(appoList[index].appointmentDate)) + " " + appoList[index].startTime.substring(0, 5), projectViewModel.isArabic), // Timezone changes - widget.appoList[index].isLiveCareAppointment + appoList[index].isLiveCareAppointment ? MyRichText( TranslationBase.of(context).appointmentDate + ": ", - DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.appoList[index].appointmentDate)) + + DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(appoList[index].appointmentDate)) + " " + - DateUtil.convertStringToDate(widget.appoList[index].appointmentDate).toString().split(" ")[1].substring(0, 5), + DateUtil.convertStringToDate(appoList[index].appointmentDate).toString().split(" ")[1].substring(0, 5), projectViewModel.isArabic) : MyRichText( TranslationBase.of(context).appointmentDate + ": ", - DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(widget.appoList[index].appointmentDate)) + + DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(appoList[index].appointmentDate)) + " " + - widget.appoList[index].startTime.substring(0, 5), + appoList[index].startTime.substring(0, 5), projectViewModel.isArabic), - MyRichText(TranslationBase.of(context).branch, widget.appoList[index].projectName, projectViewModel.isArabic), + MyRichText(TranslationBase.of(context).branch, appoList[index].projectName, projectViewModel.isArabic), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.max, children: [ RatingBar.readOnly( - initialRating: widget.appoList[index].actualDoctorRate.toDouble(), + initialRating: appoList[index].actualDoctorRate.toDouble(), size: 16.0, filledColor: Color(0XFFD02127), emptyColor: Color(0XFFD02127), @@ -322,13 +324,13 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Padding( padding: const EdgeInsets.only(top: 12.0), child: Text( - getNextActionDescription(widget.appoList[index].nextAction), + getNextActionDescription(appoList[index].nextAction), style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.48, height: 25 / 16), ), ), InkWell( onTap: () { - navigateToAppointmentDetails(context, widget.appoList[index]); + navigateToAppointmentDetails(context, appoList[index]); }, child: Padding( padding: const EdgeInsets.only(top: 0.0), @@ -357,9 +359,9 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { child: AppExpandableNotifier( isExpand: true, hasCounter: true, - counter: (widget.ancillaryLists.isNotEmpty) ? widget.ancillaryLists[0].ancillaryOrderList.length.toString() : "0", + counter: (ancillaryLists.isNotEmpty) ? ancillaryLists[0].ancillaryOrderList.length.toString() : "0", title: TranslationBase.of(context).anicllaryOrders, - bodyWidget: widget.ancillaryLists.length != 0 + bodyWidget: ancillaryLists.length != 0 ? Container( padding: EdgeInsets.all(12), child: ListView.separated( @@ -368,18 +370,18 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { reverse: true, itemBuilder: (context, index) { return DoctorCard( - onTap: () => ancillaryOrdersDetails(widget.ancillaryLists[0].ancillaryOrderList[index], widget.ancillaryLists[0].projectID), + onTap: () => ancillaryOrdersDetails(ancillaryLists[0].ancillaryOrderList[index], ancillaryLists[0].projectID), isInOutPatient: true, - name: TranslationBase.of(context).dr.toString() + " " + (widget.ancillaryLists[0].ancillaryOrderList[index].doctorName ?? ""), - billNo: widget.ancillaryLists[0].ancillaryOrderList[index].orderNo.toString(), + name: TranslationBase.of(context).dr.toString() + " " + (ancillaryLists[0].ancillaryOrderList[index].doctorName ?? ""), + billNo: ancillaryLists[0].ancillaryOrderList[index].orderNo.toString(), profileUrl: "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown.png", - subName: widget.ancillaryLists[0].projectName, + subName: ancillaryLists[0].projectName, isLiveCareAppointment: false, - date: DateUtil.convertStringToDate(widget.ancillaryLists[0].ancillaryOrderList[index].orderDate), + date: DateUtil.convertStringToDate(ancillaryLists[0].ancillaryOrderList[index].orderDate), isSortByClinic: true, ); }, - itemCount: widget.ancillaryLists[0].ancillaryOrderList.length, + itemCount: ancillaryLists[0].ancillaryOrderList.length, separatorBuilder: (context, index) => SizedBox(height: 14), ), ) @@ -389,13 +391,13 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { ), ), Container( - child: widget.obGyneAppoList.length != 0 + child: obGyneAppoList.length != 0 ? ListView.builder( scrollDirection: Axis.vertical, shrinkWrap: true, physics: ScrollPhysics(), padding: EdgeInsets.all(0.0), - itemCount: widget.obGyneAppoList.length, + itemCount: obGyneAppoList.length, itemBuilder: (context, index) { return Container( width: double.infinity, @@ -433,7 +435,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Container( child: InkWell( onTap: () { - getOBGyneDoctorsList(widget.obGyneAppoList[index].projectID, widget.obGyneAppoList[index].setupID, widget.obGyneAppoList[index]); + getOBGyneDoctorsList(obGyneAppoList[index].projectID, obGyneAppoList[index].setupID, obGyneAppoList[index]); }, child: Container( padding: EdgeInsets.symmetric(vertical: 8, horizontal: 14), @@ -454,7 +456,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { Padding( padding: const EdgeInsets.only(top: 8.0), child: Text( - TranslationBase.of(context).dr + " " + widget.obGyneAppoList[index].doctorName, + TranslationBase.of(context).dr + " " + obGyneAppoList[index].doctorName, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), ), ), @@ -462,7 +464,7 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { mainAxisSize: MainAxisSize.min, children: [ LargeAvatar( - name: TranslationBase.of(context).dr + " " + widget.obGyneAppoList[index].doctorName, + name: TranslationBase.of(context).dr + " " + obGyneAppoList[index].doctorName, url: "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown.png", width: 52, height: 52, @@ -473,12 +475,12 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - MyRichText(TranslationBase.of(context).clinic + ": ", widget.obGyneAppoList[index].clinicDescription, projectViewModel.isArabic), + MyRichText(TranslationBase.of(context).clinic + ": ", obGyneAppoList[index].clinicDescription, projectViewModel.isArabic), MyRichText( TranslationBase.of(context).orderDate + ": ", - DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(widget.obGyneAppoList[index].orderDate)).split(" ")[0], + DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(obGyneAppoList[index].orderDate)).split(" ")[0], projectViewModel.isArabic), - MyRichText(TranslationBase.of(context).branch, widget.obGyneAppoList[index].projectDescription, projectViewModel.isArabic), + MyRichText(TranslationBase.of(context).branch, obGyneAppoList[index].projectDescription, projectViewModel.isArabic), ], ), ), @@ -749,14 +751,14 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); service.getOBGyneOrdersList(context).then((res) { - widget.obGyneAppoList.clear(); + obGyneAppoList.clear(); GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { setState(() { if (res['HIS_OBGYNEProcedureGet_List'].length != 0) { - widget.obGyneAppoList.clear(); + obGyneAppoList.clear(); res['HIS_OBGYNEProcedureGet_List'].forEach((v) { - widget.obGyneAppoList.add(new OBGyneProcedureListResponse.fromJson(v)); + obGyneAppoList.add(new OBGyneProcedureListResponse.fromJson(v)); }); } else { // Navigator.of(context).popAndPushNamed(HOME); @@ -822,32 +824,31 @@ class _ToDoState extends State with SingleTickerProviderStateMixin { obGyneProcedureListResponse: obGyneProcedureListResponse))); } - getPatientAppointmentHistory() { + getPatientAppointmentHistory() async { int languageID = projectViewModel.isArabic ? 1 : 2; GifLoaderDialogUtils.showMyDialog(context); DoctorsListService service = new DoctorsListService(); service.getPatientAppointmentHistory(true, languageID, context).then((res) { - widget.appoList.clear(); + appoList.clear(); GifLoaderDialogUtils.hideDialog(context); if (res['MessageStatus'] == 1) { - setState(() { - if (res['AppoimentAllHistoryResultList'].length != 0) { - widget.appoList.clear(); - res['AppoimentAllHistoryResultList'].forEach((v) { - widget.appoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); - }); - } - if (res['AncillaryOrderList'].length != 0) { - res['AncillaryOrderList'].forEach((item) { - widget.ancillaryLists.add(AncillaryOrdersListModel.fromJson(item)); - }); - } - dataLoaded = true; - if (widget.isFromMyAppointments) { - performNextAction(widget.appointment); - widget.isFromMyAppointments = false; - } - }); + if (res['AppoimentAllHistoryResultList'].length != 0) { + appoList.clear(); + res['AppoimentAllHistoryResultList'].forEach((v) { + appoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); + }); + } + if (res['AncillaryOrderList'].length != 0) { + res['AncillaryOrderList'].forEach((item) { + ancillaryLists.add(AncillaryOrdersListModel.fromJson(item)); + }); + } + dataLoaded = true; + if (widget.isFromMyAppointments) { + performNextAction(widget.appointment); + widget.isFromMyAppointments = false; + } + setState(() {}); } else { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } diff --git a/pubspec.yaml b/pubspec.yaml index 0cb06dd5..5de7f32e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: diplomaticquarterapp description: A new Flutter application. -version: 4.5.78+1 +version: 4.5.79+1 environment: sdk: ">=2.7.0 <3.0.0" From b39357a497d97564a7f12b134e6f56e8632c988f Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 7 Jan 2024 15:06:22 +0300 Subject: [PATCH 13/18] Medical report changes, Loading added in Location Check-In --- lib/config/config.dart | 4 ++-- lib/core/model/reports/Reports.dart | 4 ++++ lib/core/service/client/base_app_client.dart | 2 +- lib/pages/BookAppointment/QRCode.dart | 5 ++++ lib/pages/landing/landing_page.dart | 2 +- .../medical/reports/report_list_widget.dart | 5 +++- lib/uitl/location_util.dart | 24 +++++++++++++++---- 7 files changed, 36 insertions(+), 10 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index a77a0814..128264a2 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; -// var BASE_URL = 'https://uat.hmgwebservices.com/'; -var BASE_URL = 'https://hmgwebservices.com/'; +var BASE_URL = 'https://uat.hmgwebservices.com/'; +// var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'http://10.20.200.111:1010/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; diff --git a/lib/core/model/reports/Reports.dart b/lib/core/model/reports/Reports.dart index 6791a3d4..0d409f04 100644 --- a/lib/core/model/reports/Reports.dart +++ b/lib/core/model/reports/Reports.dart @@ -5,6 +5,7 @@ class Reports { DateTime encounterDate; int projectID; int invoiceNo; + int invoiceNo_VP; int encounterNo; String procedureId; int requestType; @@ -35,6 +36,7 @@ class Reports { this.encounterDate, this.projectID, this.invoiceNo, + this.invoiceNo_VP, this.encounterNo, this.procedureId, this.requestType, @@ -67,6 +69,7 @@ class Reports { json['EncounterDate']); //json['EncounterDate']; projectID = json['ProjectID']; invoiceNo = json['InvoiceNo']; + invoiceNo_VP = json['InvoiceNo_VP']; encounterNo = json['EncounterNo']; procedureId = json['ProcedureId']; requestType = json['RequestType']; @@ -104,6 +107,7 @@ class Reports { data['EncounterDate'] = this.encounterDate; data['ProjectID'] = this.projectID; data['InvoiceNo'] = this.invoiceNo; + data['InvoiceNo_VP'] = this.invoiceNo_VP; data['EncounterNo'] = this.encounterNo; data['ProcedureId'] = this.procedureId; data['RequestType'] = this.requestType; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index 109326bc..f756ba8e 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -175,7 +175,7 @@ class BaseAppClient { // body['IdentificationNo'] = 1023854217; // body['MobileNo'] = "531940021"; - // body['PatientID'] = 1018977; //3844083 + // body['PatientID'] = 1400563; //3844083 // body['TokenID'] = "@dm!n"; // Patient ID: 3027574 diff --git a/lib/pages/BookAppointment/QRCode.dart b/lib/pages/BookAppointment/QRCode.dart index 90e39767..cc700e97 100644 --- a/lib/pages/BookAppointment/QRCode.dart +++ b/lib/pages/BookAppointment/QRCode.dart @@ -93,16 +93,21 @@ class _QRCodeState extends State { } startLocationCheckIn() async { + GifLoaderDialogUtils.showMyDialog(context); locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context); locationUtils.getCurrentLocation(callBack: (value) { projectDetailListModel = Utils.getProjectDetailObj(projectViewModel, widget.appointment.projectID); double dist = Utils.distance(value.latitude, value.longitude, double.parse(projectDetailListModel.latitude), double.parse(projectDetailListModel.longitude)).ceilToDouble() * 1000; print(dist); if (dist <= projectDetailListModel.geofenceRadius) { + GifLoaderDialogUtils.hideDialog(context); sendNfcCheckInRequest(projectDetailListModel.checkInQrCode, 3); } else { + GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: TranslationBase.of(context).locationCheckInError); } + }, failureCallBack: () { + GifLoaderDialogUtils.hideDialog(context); }); } diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 601e7303..36257423 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -650,7 +650,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { authService.getDashboard().then((value) async { setState(() { if (value != null) { - notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); + notificationCount = value ['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); model.setState(model.count, 0, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); FlutterAppIconBadge.updateBadge(num.parse(notificationCount)); diff --git a/lib/pages/medical/reports/report_list_widget.dart b/lib/pages/medical/reports/report_list_widget.dart index 2809b317..82df163c 100644 --- a/lib/pages/medical/reports/report_list_widget.dart +++ b/lib/pages/medical/reports/report_list_widget.dart @@ -12,6 +12,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart'; @@ -197,7 +198,9 @@ class ReportListWidget extends StatelessWidget { GifLoaderDialogUtils.showMyDialog(AppGlobal.context); ReportsService _reportsService = locator(); _reportsService - .sendEmailForMedicalReport(report.projectName, report.clinicDescription, report.doctorName, DateUtil.convertDateToString(report.requestDate), report.invoiceNo.toString(), report.projectID, + .sendEmailForMedicalReport(report.projectName, report.clinicDescription, report.doctorName, DateUtil.convertDateToString(report.requestDate), + Utils.isVidaPlusProject(projectViewModel, report.projectID) ? report.invoiceNo_VP.toString() : report.invoiceNo.toString(), + report.projectID, DateUtil.convertDateToString(report.requestDate), report.setupId) .then((value) { GifLoaderDialogUtils.hideDialog(AppGlobal.context); diff --git a/lib/uitl/location_util.dart b/lib/uitl/location_util.dart index 3eb6388f..b890882f 100644 --- a/lib/uitl/location_util.dart +++ b/lib/uitl/location_util.dart @@ -28,7 +28,7 @@ class LocationUtils { LocationUtils({@required this.isShowConfirmDialog, @required this.context, this.isHuawei = false}); - void getCurrentLocation({Function(LatLng) callBack}) async { + void getCurrentLocation({Function(LatLng) callBack, Function() failureCallBack}) async { if (Platform.isAndroid && isHuawei) { _getHMSCurrentLocation(callBack); } else { @@ -68,7 +68,7 @@ class LocationUtils { print(err); }); } else { - if (isShowConfirmDialog) showErrorLocationDialog(false); + if (isShowConfirmDialog) showErrorLocationDialog(false, failureCallBack: failureCallBack); } }).catchError((err) { print(err); @@ -141,14 +141,28 @@ class LocationUtils { } } - showErrorLocationDialog(bool isPermissionError) { + showErrorLocationDialog(bool isPermissionError, {Function() failureCallBack}) { ConfirmDialog dialog = new ConfirmDialog( context: context, confirmMessage: TranslationBase.of(context).locationDialogMessage, okText: TranslationBase.of(context).confirm, cancelText: TranslationBase.of(context).cancel_nocaps, - okFunction: () => {ConfirmDialog.closeAlertDialog(context), if (isPermissionError) Geolocator.openAppSettings() else Geolocator.openLocationSettings(), Navigator.of(context).canPop()}, - cancelFunction: () => {}); + okFunction: () { + ConfirmDialog.closeAlertDialog(context); + if (isPermissionError) + Geolocator.openAppSettings(); + else + Geolocator.openLocationSettings(); + Navigator.of(context).canPop(); + if (failureCallBack != null) { + failureCallBack(); + } + }, + cancelFunction: () { + if (failureCallBack != null) { + failureCallBack(); + } + }); return dialog.showAlertDialog(context); } From e67bd54c04940df668912727c39a5e61f83b2a3a Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 7 Jan 2024 15:06:44 +0300 Subject: [PATCH 14/18] updates --- lib/services/appointment_services/GetDoctorsList.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 8f47063c..47826a43 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -1536,7 +1536,7 @@ class DoctorsListService extends BaseService { Future sendCheckinNfcRequest(int appointmentNo, String nfcCode, int projectId, int checkInBy, BuildContext context) async { Map request; - request = {"AppointmentNo": appointmentNo, "NFC_Code": nfcCode, "ProjectID": projectId, "CheckinBy": checkInBy, "LanguageID": 1}; + request = {"AppointmentNo": appointmentNo, "NFC_Code": nfcCode, "ProjectID": projectId, "CheckinBy": checkInBy}; dynamic localRes; await baseAppClient.post(SEND_CHECK_IN_NFC_REQUEST, onSuccess: (response, statusCode) async { localRes = response; From 27ed5c95f2195439cfb1500ef614e23451c16950 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 8 Jan 2024 10:24:08 +0300 Subject: [PATCH 15/18] update to stores --- lib/config/config.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 128264a2..09e07839 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; -var BASE_URL = 'https://uat.hmgwebservices.com/'; -// var BASE_URL = 'https://hmgwebservices.com/'; +// var BASE_URL = 'https://uat.hmgwebservices.com/'; +var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'http://10.20.200.111:1010/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; @@ -342,7 +342,7 @@ var UPDATE_COVID_QUESTIONNAIRE = 'Services/Doctors.svc/REST/COVID19_Questionnari var CHANNEL = 3; var GENERAL_ID = 'Cs2020@2016\$2958'; var IP_ADDRESS = '10.20.10.20'; -var VERSION_ID = 11.8; +var VERSION_ID = 11.9; var SETUP_ID = '91877'; var LANGUAGE = 2; // var PATIENT_OUT_SA = 0; From 98a5b7d049e26f731213ae6dbc26adda2f8f55ac Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 8 Jan 2024 12:25:32 +0300 Subject: [PATCH 16/18] my appointments fixes --- lib/pages/MyAppointments/MyAppointments.dart | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart index 1163da12..7939e0c0 100644 --- a/lib/pages/MyAppointments/MyAppointments.dart +++ b/lib/pages/MyAppointments/MyAppointments.dart @@ -270,10 +270,6 @@ class _MyAppointmentsState extends State with SingleTickerProvid } else { _patientBookedAppointmentListHospital.add(PatientAppointmentList(filterName: element.projectName, patientDoctorAppointment: element)); } - - //Merging Booked & Confirmed Appointments into Upcoming Tab - _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientBookedAppointmentListHospital); - _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientBookedAppointmentListClinic); }); confirmedAppoList.forEach((element) { @@ -302,8 +298,8 @@ class _MyAppointmentsState extends State with SingleTickerProvid } //Merging Booked & Confirmed Appointments into Upcoming Tab - _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientConfirmedAppointmentListHospital); - _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientConfirmedAppointmentListClinic); + // _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientConfirmedAppointmentListHospital); + // _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientConfirmedAppointmentListClinic); }); arrivedAppoList.forEach((element) { @@ -333,6 +329,11 @@ class _MyAppointmentsState extends State with SingleTickerProvid // openAppointmentsTab(); }); + + //Merging Booked & Confirmed Appointments into Upcoming Tab + _patientBookedAndConfirmedAppointmentListHospital.addAll(_patientBookedAppointmentListHospital); + _patientBookedAndConfirmedAppointmentListClinic.addAll(_patientBookedAppointmentListClinic); + } openAppointmentsTab() async { From ac52ba75a7cea05302d772a05596b12236d6aa92 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Tue, 9 Jan 2024 11:48:54 +0300 Subject: [PATCH 17/18] Updates & Fixes --- lib/config/config.dart | 4 ++-- lib/core/service/medical/reports_service.dart | 3 ++- .../viewModels/medical/reports_view_model.dart | 4 ++-- lib/pages/medical/reports/report_home_page.dart | 17 ++++++++++------- lib/widgets/drawer/app_drawer_widget.dart | 2 +- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/config/config.dart b/lib/config/config.dart index 09e07839..65f5fb5e 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -20,8 +20,8 @@ var PACKAGES_ORDERS = '/api/orders'; var PACKAGES_ORDER_HISTORY = '/api/orders/items'; var PACKAGES_TAMARA_OPT = '/api/orders/paymentoptions/tamara'; // var BASE_URL = 'http://10.50.100.198:4422/'; -// var BASE_URL = 'https://uat.hmgwebservices.com/'; -var BASE_URL = 'https://hmgwebservices.com/'; +var BASE_URL = 'https://uat.hmgwebservices.com/'; +// var BASE_URL = 'https://hmgwebservices.com/'; // var BASE_URL = 'http://10.20.200.111:1010/'; // var BASE_URL = 'https://uat.hmgwebservices.com/'; // var BASE_URL = 'https://hmgwebservices.com/'; diff --git a/lib/core/service/medical/reports_service.dart b/lib/core/service/medical/reports_service.dart index d80c80e4..a79f8f3e 100644 --- a/lib/core/service/medical/reports_service.dart +++ b/lib/core/service/medical/reports_service.dart @@ -42,9 +42,10 @@ class ReportsService extends BaseService { }, body: _requestReportsInpatient.toJson()); } - Future getInpatientAdmissionsList() async { + Future getInpatientAdmissionsList(int languageID) async { Map body = new Map(); body['IsForMedicalReport'] = true; + body['LanguageID'] = languageID; hasError = false; await baseAppClient.post(GET_INPATIENT_ADMISSIONS, onSuccess: (dynamic response, int statusCode) { admissionsMedicalReport.clear(); diff --git a/lib/core/viewModels/medical/reports_view_model.dart b/lib/core/viewModels/medical/reports_view_model.dart index 8f55b3b7..9e977dfe 100644 --- a/lib/core/viewModels/medical/reports_view_model.dart +++ b/lib/core/viewModels/medical/reports_view_model.dart @@ -26,7 +26,7 @@ class ReportsViewModel extends BaseViewModel { List get admissionsMedicalReportList => _reportsService.admissionsMedicalReport; - getReports() async { + getReports(int languageID) async { setState(ViewState.Busy); reportsOrderRequestList.clear(); reportsOrderReadyList.clear(); @@ -37,7 +37,7 @@ class ReportsViewModel extends BaseViewModel { setState(ViewState.Error); } else { _filterList(); - await _reportsService.getInpatientAdmissionsList(); + await _reportsService.getInpatientAdmissionsList(languageID); setState(ViewState.Idle); } } diff --git a/lib/pages/medical/reports/report_home_page.dart b/lib/pages/medical/reports/report_home_page.dart index 55d1b901..95225b39 100644 --- a/lib/pages/medical/reports/report_home_page.dart +++ b/lib/pages/medical/reports/report_home_page.dart @@ -31,6 +31,7 @@ class _HomeReportPageState extends State with SingleTickerProvid TabController _tabController_new; List imagesInfo = List(); int _currentPage = 0; + ProjectViewModel projectViewModel; @override void initState() { @@ -46,7 +47,7 @@ class _HomeReportPageState extends State with SingleTickerProvid @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + projectViewModel = Provider.of(context); imagesInfo.add(ImagesInfo( imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/medical-reorts/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/medical-reorts/ar/0.png')); imagesInfo.add(ImagesInfo( @@ -55,7 +56,7 @@ class _HomeReportPageState extends State with SingleTickerProvid imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/medical-reorts/en/2.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/medical-reorts/ar/2.png')); return BaseView( onModelReady: (model) { - model.getReports(); + model.getReports(projectViewModel.isArabic ? 1 : 2); }, builder: (_, model, widget) => AppScaffold( isShowAppBar: true, @@ -156,11 +157,13 @@ class _HomeReportPageState extends State with SingleTickerProvid return InkWell( onTap: () { Navigator.push( - context, - FadePage( - page: InPatientMedicalReports( + context, + FadePage( + page: InPatientMedicalReports( admissionMedicalReport: admissionMedicalReport, - ))); + ), + ), + ); }, child: Container( // height: 100.0, @@ -259,7 +262,7 @@ class _HomeReportPageState extends State with SingleTickerProvid page: MedicalReports(), ), ).then((value) { - model.getReports(); + model.getReports(projectViewModel.isArabic ? 1 : 2); }), ), ) diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index 47dbdabe..0ca93570 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -222,7 +222,7 @@ class _AppDrawerState extends State { builder: (BuildContext context, AsyncSnapshot snapshot) { switch (snapshot.connectionState) { case ConnectionState.waiting: - return Padding(padding: EdgeInsets.all(10), child: Text('')); + return Padding(padding: EdgeInsets.all(10), child:CircularProgressIndicator()); default: if (snapshot.hasError) return Padding(padding: EdgeInsets.all(10), child: Text(snapshot.error)); From fe7c2c6873e9b861a939f113c53697ddbb201fbc Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 14 Jan 2024 10:16:06 +0300 Subject: [PATCH 18/18] CR 6631 --- lib/core/service/er/er_service.dart | 1 + lib/core/service/hospital_service.dart | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/core/service/er/er_service.dart b/lib/core/service/er/er_service.dart index 5b7552bb..445fa6c1 100644 --- a/lib/core/service/er/er_service.dart +++ b/lib/core/service/er/er_service.dart @@ -20,6 +20,7 @@ class ErService extends BaseService { var long = await sharedPref.getDouble(USER_LONG); body['Latitude'] = lat ?? 0; body['Longitude'] = long ?? 0; + body['IsForER'] = true; dynamic localRes; diff --git a/lib/core/service/hospital_service.dart b/lib/core/service/hospital_service.dart index e6dc7727..f07880fe 100644 --- a/lib/core/service/hospital_service.dart +++ b/lib/core/service/hospital_service.dart @@ -59,6 +59,7 @@ class HospitalService extends BaseService { body['IsOnlineCheckIn'] = isResBasedOnLoc; body['IsAdvancePayment'] = isAdvancePayment; body['LanguageID'] = languageID; + body['IsForER'] = true; await baseAppClient.post(GET_PROJECT, onSuccess: (dynamic response, int statusCode) { _hospitals.clear();