diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index f7967492..03e966ff 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -1457,4 +1457,8 @@ const Map localizedValues = { "en": "This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.", "ar": "تم تصميم هذه الخدمة لمساعدتك في تحديد وتتبع كميات المياه التي يتوجب شربها بشكل يومي. كما توفر هذه الخدمة تذكيرات الجدول الزمني وتقدم تحليلًا إحصائيًا لمقدار ما استهلكته خلال اليوم أو الأسبوع أو الشهر." }, + "ask-doc-empty": { + "en": "This service is available to doctors visited during the past 15 days", + "ar": "هذه الخدمة متاحة للاطباء الذين تمت زيارتهم خلال ال 15 يوم الماضية" + }, }; diff --git a/lib/core/service/medical/ask_doctor_services.dart b/lib/core/service/medical/ask_doctor_services.dart index 9a819a6e..57ab856b 100644 --- a/lib/core/service/medical/ask_doctor_services.dart +++ b/lib/core/service/medical/ask_doctor_services.dart @@ -16,14 +16,16 @@ class AskDoctorService extends BaseService { body['DoctorID'] = doctorId; body['ProjectID'] = projectId; + dynamic localRes; + await baseAppClient.post(GET_CALL_INFO_HOURS_RESULT, onSuccess: (dynamic response, int statusCode) { - ///OKAY - var asd=""; + localRes = response; }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; }, body: body); + return Future.value(localRes); } Future getCallRequestTypeLOV() async { diff --git a/lib/core/viewModels/medical/ask_doctor_view_model.dart b/lib/core/viewModels/medical/ask_doctor_view_model.dart index 629df0a9..7890fb3a 100644 --- a/lib/core/viewModels/medical/ask_doctor_view_model.dart +++ b/lib/core/viewModels/medical/ask_doctor_view_model.dart @@ -1,3 +1,4 @@ +import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/ask_doctor/AskDoctorReqTypes.dart'; import 'package:diplomaticquarterapp/core/model/ask_doctor/DoctorResponse.dart'; @@ -6,51 +7,40 @@ import 'package:diplomaticquarterapp/core/service/medical/my_doctor_service.dart import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; -import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; class AskDoctorViewModel extends BaseViewModel { AskDoctorService _askDoctorService = locator(); MyDoctorService _myDoctorService = locator(); - List patientDoctorAppointmentListHospital = - List(); + List patientDoctorAppointmentListHospital = List(); - List get askDoctorReqTypes => - _askDoctorService.askDoctorReqTypes; + List get askDoctorReqTypes => _askDoctorService.askDoctorReqTypes; - List get doctorResponseList => - _askDoctorService.doctorResponseList; + List get doctorResponseList => _askDoctorService.doctorResponseList; Future getMyDoctor() async { setState(ViewState.Busy); - await _myDoctorService.getPatientDoctorAppointmentList( - top: 25, beforeDays: 15); + await _myDoctorService.getPatientDoctorAppointmentList(top: 25, beforeDays: 15); if (_myDoctorService.hasError) { error = _myDoctorService.error; setState(ViewState.Error); - } else - var asd = ""; - _myDoctorService.patientDoctorAppointmentList.forEach((element) { - 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)); - } + } else if (_myDoctorService.patientDoctorAppointmentList.length != 0) { + _myDoctorService.patientDoctorAppointmentList.forEach((element) { + 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)); + } + setState(ViewState.Idle); + }); + } else { setState(ViewState.Idle); - }); + AppToast.showErrorToast(message: TranslationBase.of(AppGlobal.context).askDocEmpty); + } } Future getCallRequestTypeLOVs() async { @@ -66,8 +56,7 @@ class AskDoctorViewModel extends BaseViewModel { Future getCallInfoHoursResult({int projectId, int doctorId}) async { setState(ViewState.Busy); - await _askDoctorService.getCallInfoHoursResult( - projectId: projectId, doctorId: doctorId); + await _askDoctorService.getCallInfoHoursResult(projectId: projectId, doctorId: doctorId); if (_askDoctorService.hasError) { error = _askDoctorService.error; setState(ViewState.ErrorLocal); @@ -95,11 +84,9 @@ class AskDoctorViewModel extends BaseViewModel { setState(ViewState.Idle); } - Future sendRequestLOV( - {DoctorList doctorList, String requestType, String remark}) async { + Future sendRequestLOV({DoctorList doctorList, String requestType, String remark}) async { setState(ViewState.BusyLocal); - await _askDoctorService.sendRequestLOV( - doctorList: doctorList, requestType: requestType, remark: remark); + await _askDoctorService.sendRequestLOV(doctorList: doctorList, requestType: requestType, remark: remark); if (_askDoctorService.hasError) { error = _askDoctorService.error; setState(ViewState.ErrorLocal); diff --git a/lib/pages/BookAppointment/widgets/DoctorView.dart b/lib/pages/BookAppointment/widgets/DoctorView.dart index faf8be9e..5e691887 100644 --- a/lib/pages/BookAppointment/widgets/DoctorView.dart +++ b/lib/pages/BookAppointment/widgets/DoctorView.dart @@ -135,6 +135,8 @@ class DoctorView extends StatelessWidget { AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } }).catchError((err) { + GifLoaderDialogUtils.hideDialog(context); + AppToast.showErrorToast(message: err); print(err); }); } diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index cc49804d..cc57ba5e 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -232,7 +232,6 @@ class _LandingPageState extends State with WidgetsBindingObserver { locationUtils = new LocationUtils(isShowConfirmDialog: false, context: context); WidgetsBinding.instance.addPostFrameCallback((_) { - locationUtils.getCurrentLocation(); if (projectViewModel.isLogin) { familyFileProvider.getSharedRecordByStatus(); } @@ -249,6 +248,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { } requestPermissions().then((results) { + locationUtils.getCurrentLocation(); _firebaseMessaging.getToken().then((String token) { print("Firebase Token: " + token); sharedPref.setString(PUSH_TOKEN, token); @@ -266,7 +266,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { // if (results[Permission.calendar].isGranted) ; }); - requestPermissions(); + // requestPermissions(); // }); // diff --git a/lib/pages/medical/ask_doctor/ask_doctor_page.dart b/lib/pages/medical/ask_doctor/ask_doctor_page.dart index a06045ec..098f87ea 100644 --- a/lib/pages/medical/ask_doctor/ask_doctor_page.dart +++ b/lib/pages/medical/ask_doctor/ask_doctor_page.dart @@ -1,4 +1,4 @@ -import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; +import 'package:diplomaticquarterapp/core/service/medical/ask_doctor_services.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/ask_doctor_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart'; @@ -6,14 +6,16 @@ import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/ask_doctor/request_type.dart'; 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/widgets/others/app_expandable_notifier.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:rating_bar/rating_bar.dart'; class AskDoctorPage extends StatelessWidget { + AskDoctorService service = new AskDoctorService(); + @override Widget build(BuildContext context) { return BaseView( @@ -65,9 +67,10 @@ class AskDoctorPage extends StatelessWidget { doctor: doctorList, isLiveCareAppointment: false, onTap: () { - model.getCallInfoHoursResult(doctorId: _doctor.doctorID, projectId: _doctor.projectID).then((value) { - if (model.state != ViewState.ErrorLocal && model.state != ViewState.Error) { - // Navigator.pop(context); + GifLoaderDialogUtils.showMyDialog(context); + service.getCallInfoHoursResult(doctorId: _doctor.doctorID, projectId: _doctor.projectID).then((res) { + GifLoaderDialogUtils.hideDialog(context); + if (res['ErrorEndUserMessage'] == null) { Navigator.push( context, FadePage( @@ -75,8 +78,12 @@ class AskDoctorPage extends StatelessWidget { ), ); } else { - AppToast.showErrorToast(message: model.error); + AppToast.showErrorToast(message: res['ErrorEndUserMessage']); } + }).catchError((err) { + GifLoaderDialogUtils.hideDialog(context); + if (err != null) AppToast.showErrorToast(message: err); + print(err); }); }, ); diff --git a/lib/pages/medical/ask_doctor/request_type.dart b/lib/pages/medical/ask_doctor/request_type.dart index 0195ee3b..66cd9344 100644 --- a/lib/pages/medical/ask_doctor/request_type.dart +++ b/lib/pages/medical/ask_doctor/request_type.dart @@ -3,9 +3,8 @@ import 'package:diplomaticquarterapp/core/viewModels/medical/ask_doctor_view_mod import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/new_text_Field.dart'; -import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -32,6 +31,8 @@ class _RequestTypePageState extends State { isShowAppBar: true, appBarTitle: TranslationBase.of(context).requestType, baseViewModel: model, + showNewAppBar: true, + showNewAppBarTitle: true, body: SingleChildScrollView( child: Container( margin: EdgeInsets.all(10), @@ -99,22 +100,24 @@ class _RequestTypePageState extends State { ), bottomSheet: Container( width: double.maxFinite, - // height: MediaQuery.of(context).size.height * 0.1, height: 80.0, child: Padding( padding: const EdgeInsets.all(12.0), - child: SecondaryButton( - label: TranslationBase.of(context).submit, - loading: model.state == ViewState.BusyLocal, - textColor: Colors.white, - onTap: () { - model.sendRequestLOV(doctorList: widget.doctorList, requestType: parameterCode.toString(), remark: question).then((value) { - if (model.state != ViewState.ErrorLocal || model.state != ViewState.Error) { - Navigator.pop(context); - } - }); - }, - color: Colors.grey[800], + child: Container( + width: MediaQuery.of(context).size.width * 0.8, + child: DefaultButton( + TranslationBase.of(context).submit, + () => { + model.sendRequestLOV(doctorList: widget.doctorList, requestType: parameterCode.toString(), remark: question).then((value) { + if (model.state != ViewState.ErrorLocal || model.state != ViewState.Error) { + Navigator.pop(context); + } + }) + }, + color: Color(0xffD02127), + textColor: Colors.white, + disabledColor: Color(0xffEAEAEA), + ), ), ), ), diff --git a/lib/pages/medical/radiology/radiology_details_page.dart b/lib/pages/medical/radiology/radiology_details_page.dart index 951c9709..9779df1b 100644 --- a/lib/pages/medical/radiology/radiology_details_page.dart +++ b/lib/pages/medical/radiology/radiology_details_page.dart @@ -86,12 +86,6 @@ class RadiologyDetailsPage extends StatelessWidget { '${finalRadiology.reportData}', style: TextStyle(fontSize: 12, letterSpacing: -0.48), ), - // Texts( - // '${finalRadiology.reportData}', - // textAlign: TextAlign.start, - // fontSize: 12, - // - // ), mHeight(16), (projectViewModel.havePrivilege(9) || projectViewModel.havePrivilege(8)) ? (finalRadiology.dIAPACSURL != "" && projectViewModel.havePrivilege(9)) diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 63bfed02..b7efad42 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -2162,6 +2162,8 @@ class TranslationBase { localizedValues["child-vaccine-info"][locale.languageCode]; String get h2oInfo => localizedValues["h2o-info"][locale.languageCode]; + String get askDocEmpty => + localizedValues["ask-doc-empty"][locale.languageCode]; } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index b13a6095..4f817d21 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -504,6 +504,7 @@ class _AppDrawerState extends State { var appLanguage = await sharedPref.getString(APP_LANGUAGE); await sharedPref.clear(); await sharedPref.setString(APP_LANGUAGE, appLanguage); + await sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL); this.user = null; Navigator.of(context).pushNamed(HOME); // projectProvider.platformBridge().unRegisterHmgGeofences();