From 9e31a3c56026a21f535c2cf7dff039cdabb9d562 Mon Sep 17 00:00:00 2001 From: Sultan Khan Date: Mon, 23 Aug 2021 09:57:04 +0300 Subject: [PATCH] bug fixes --- lib/core/service/medical/medical_service.dart | 34 ++- .../medical/medical_view_model.dart | 20 +- .../ancillaryOrdersDetails.dart | 36 ++- lib/pages/MyAppointments/SchedulePage.dart | 207 ++++++++++-------- lib/pages/landing/landing_page.dart | 3 +- lib/pages/medical/medical_profile_page.dart | 35 --- .../appointment_services/GetDoctorsList.dart | 20 +- 7 files changed, 176 insertions(+), 179 deletions(-) diff --git a/lib/core/service/medical/medical_service.dart b/lib/core/service/medical/medical_service.dart index f90280cf..a23519fa 100644 --- a/lib/core/service/medical/medical_service.dart +++ b/lib/core/service/medical/medical_service.dart @@ -3,15 +3,17 @@ import 'package:diplomaticquarterapp/core/model/er/PatientER.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:flutter/cupertino.dart'; +import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; +import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart'; class MedicalService extends BaseService { List appoitmentAllHistoryResultList = List(); - + List doctorScheduleResponse = List(); getAppointmentHistory({bool isActiveAppointment = false}) async { hasError = false; super.error = ""; Map body = Map(); - if(isActiveAppointment) { + if (isActiveAppointment) { body['IsActiveAppointment'] = true; body['isDentalAllowedBackend'] = false; } @@ -37,12 +39,30 @@ class MedicalService extends BaseService { body['RequesterMobileNo'] = user.mobileNumber; body['RequesterIsOutSA'] = user.outSA; await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY, - onSuccess: (response, statusCode) async { + onSuccess: (response, statusCode) async {}, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: body); + } + Future getSchedule(DoctorList doctorRequest) async { + Map request; + request = { + 'DoctorID': doctorRequest.doctorID, + 'ProjectID': doctorRequest.projectID, + 'ClinicID': doctorRequest.clinicID, + 'DoctorWorkingHoursDays': 7 + }; + dynamic localRes; + await baseAppClient.post(DOCTOR_SCHEDULE_URL, + onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); - }, onFailure: (String error, int statusCode) { - hasError = true; - super.error = error; - }, body: body); + localRes['List_DoctorWorkingHoursTable'].forEach((item) => + {doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item))}); } } diff --git a/lib/core/viewModels/medical/medical_view_model.dart b/lib/core/viewModels/medical/medical_view_model.dart index 52fd221a..b73e6a5f 100644 --- a/lib/core/viewModels/medical/medical_view_model.dart +++ b/lib/core/viewModels/medical/medical_view_model.dart @@ -4,17 +4,33 @@ import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; +import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; +import 'package:diplomaticquarterapp/pages/MyAppointments/models/DoctorScheduleResponse.dart'; class MedicalViewModel extends BaseViewModel { MedicalService _medicalService = locator(); List get appoitmentAllHistoryResultList => _medicalService.appoitmentAllHistoryResultList; + List get getDoctorScheduleList => + _medicalService.doctorScheduleResponse; getAppointmentHistory() async { - if (authenticatedUserObject.isLogin) { + if (authenticatedUserObject.isLogin) { setState(ViewState.Busy); - await _medicalService.getAppointmentHistory(); + await _medicalService.getAppointmentHistory(); + if (_medicalService.hasError) { + error = _medicalService.error; + setState(ViewState.Error); + } else + setState(ViewState.Idle); + } + } + + getDoctorSchedule(DoctorList doctorRequest) async { + if (authenticatedUserObject.isLogin) { + setState(ViewState.Busy); + await _medicalService.getSchedule(doctorRequest); if (_medicalService.hasError) { error = _medicalService.error; setState(ViewState.Error); diff --git a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart index c6c0c76e..2c09de3d 100644 --- a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart +++ b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart @@ -34,8 +34,8 @@ class _AnicllaryOrdersState extends State @override Widget build(BuildContext context) { return BaseView( - onModelReady: (model) => - model.getOrdersDetails(widget.appoNo, widget.orderNo, widget.projectID), + onModelReady: (model) => model.getOrdersDetails( + widget.appoNo, widget.orderNo, widget.projectID), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, baseViewModel: model, @@ -70,9 +70,12 @@ class _AnicllaryOrdersState extends State label: TranslationBase.of(context).payNow, backgroundColor: Colors.red[800], onTap: () { - Navigator.push(context, - FadePage(page: OrdersPayment(), - ),); + Navigator.push( + context, + FadePage( + page: OrdersPayment(), + ), + ); }, ) ], @@ -146,11 +149,11 @@ class _AnicllaryOrdersState extends State ), Row( children: [ - Texts( - TranslationBase.of(context).invoiceDate, -// fontWeight: FontWeight.bold, - color: Colors.red[500], - ), +// Texts( +// TranslationBase.of(context).invoiceDate, +// // fontWeight: FontWeight.bold, +// color: Colors.red[500], +// ), Texts(" : "), Texts( DateUtil.getDayMonthYearDateFormatted( @@ -223,13 +226,10 @@ class _AnicllaryOrdersState extends State mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Row( - children: [ - - ], + children: [], ), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ Texts( TranslationBase.of(context).price, @@ -248,19 +248,19 @@ class _AnicllaryOrdersState extends State color: Colors.grey[500], fontSize: 14, ), - ] ), + ]), ], ), Divider( color: Colors.black26, ), - ], )); } Widget getAncillaryDetails(model) { - Map newMap = groupBy(model.ancillaryListsDetails[0].ancillaryOrderProcDetailsList, + Map newMap = groupBy( + model.ancillaryListsDetails[0].ancillaryOrderProcDetailsList, (obj) => obj.procedureCategoryName); print(newMap); @@ -325,6 +325,4 @@ class _AnicllaryOrdersState extends State }).toList(), ); } - - } diff --git a/lib/pages/MyAppointments/SchedulePage.dart b/lib/pages/MyAppointments/SchedulePage.dart index bfbfa207..bf2717b1 100644 --- a/lib/pages/MyAppointments/SchedulePage.dart +++ b/lib/pages/MyAppointments/SchedulePage.dart @@ -7,9 +7,10 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:flutter/material.dart'; -import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; class SchedulePage extends StatefulWidget { final DoctorList doctorList; @@ -24,6 +25,7 @@ class _SchedulePageState extends State { PageController _pageController = PageController(); double currentPage = 0; int selectedindex = 0; + bool isLoading = true; List doctorScheduleResponse = []; final List introWidgetsList = [ Text('Hello'), @@ -33,7 +35,7 @@ class _SchedulePageState extends State { @override void initState() { - getSchedule(widget.doctorList); + //getSchedule(widget.doctorList, context); // _pageController.addListener(() { // setState(() { // currentPage = _pageController.page; @@ -44,103 +46,118 @@ class _SchedulePageState extends State { @override Widget build(BuildContext context) { - return AppScaffold( - appBarTitle: TranslationBase.of(context).schedule, - isShowAppBar: true, - body: SizedBox( - height: MediaQuery.of(context).size.height, - child: Stack( - children: [ - Container( - child: PageView.builder( - controller: _pageController, - itemCount: 3, - onPageChanged: (index) { - setState(() { - this.currentPage = index.toDouble(); - }); - }, - itemBuilder: (context, index) { - return Container( - child: ListView.builder( - itemCount: doctorScheduleResponse.length, - itemBuilder: (context, index) => ClipRRect( - borderRadius: const BorderRadius.all( - Radius.circular(20.0)), - child: Container( - padding: EdgeInsets.only( - left: 10, - right: 10, - top: 25, - bottom: 25), - height: 100, - margin: EdgeInsets.all(10), - decoration: BoxDecoration( - boxShadow: [ - BoxShadow( - color: Colors.green, - spreadRadius: 3), - ], - borderRadius: const BorderRadius.all( - Radius.circular(10.0)), - color: Colors.white), - child: Row( - children: [ - Expanded( - child: Row(children: [ - Column( - children: [ - Texts( - doctorScheduleResponse[index] - .dayName, - color: HexColor('#0bb690'), - ), - Texts( - DateUtil - .getDayMonthYearDateFormatted( - DateUtil - .convertStringToDate( - doctorScheduleResponse[ + return BaseView( + onModelReady: (model) => model.getDoctorSchedule(widget.doctorList), + builder: (_, model, widget) => AppScaffold( + appBarTitle: TranslationBase.of(context).schedule, + isShowAppBar: true, + isLoading: true, + body: SizedBox( + height: MediaQuery.of(context).size.height, + child: Stack( + children: [ + Container( + child: PageView.builder( + controller: _pageController, + itemCount: 3, + onPageChanged: (index) { + setState(() { + this.currentPage = index.toDouble(); + }); + }, + itemBuilder: (context, index) { + return Container( + child: ListView.builder( + itemCount: model.getDoctorScheduleList.length, + itemBuilder: (context, index) => ClipRRect( + borderRadius: const BorderRadius.all( + Radius.circular(20.0)), + child: Container( + padding: EdgeInsets.only( + left: 10, + right: 10, + top: 20, + bottom: 20), + margin: EdgeInsets.only( + left: 20, + right: 20, + top: 7, + bottom: 7), + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: Colors.green, + offset: Offset(-10, 0)), + ], + borderRadius: + const BorderRadius.all( + Radius.circular(10.0)), + color: Colors.white), + child: Row( + children: [ + Expanded( + child: Row(children: [ + Column( + children: [ + Texts( + model + .getDoctorScheduleList[ index] - .date, + .dayName, + color: + HexColor('#0bb690'), ), - ), - color: HexColor('#0bb690'), + Texts( + DateUtil + .getDayMonthYearDateFormatted( + DateUtil + .convertStringToDate( + model + .getDoctorScheduleList[ + index] + .date, + ), + ), + color: + HexColor('#0bb690'), + ) + ], ) - ], + ]), + ), + Expanded( + child: Texts( + model + .getDoctorScheduleList[ + index] + .workingHours, + color: HexColor('#0bb690'), + ), ) - ]), - ), - Expanded( - child: Texts( - doctorScheduleResponse[index] - .workingHours, - color: HexColor('#0bb690'), - ), - ) - ], - ))))); - }, - )), - PageViewIndicator( - isActive: true, - currentPage: this.currentPage, - length: introWidgetsList.length, - ) - ], - ))); + ], + ))))); + }, + )), + PageViewIndicator( + isActive: true, + currentPage: this.currentPage, + length: introWidgetsList.length, + ) + ], + )))); } - getSchedule(DoctorList doctor) { - // GifLoaderDialogUtils.showMyDialog(AppGlobal.context); - service = new DoctorsListService(); - service.getSchedule(doctor).then((value) { - doctorScheduleResponse.clear(); - setState(() { - value['List_DoctorWorkingHoursTable'].forEach((item) => { - doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item)) - }); - }); - }); - } + //getSchedule(DoctorList doctor, BuildContext context) { + //GifLoaderDialogUtils.showMyDialog(context); + //service = new DoctorsListService(); + // service.getSchedule(doctor).then((value) { + // doctorScheduleResponse.clear(); + // setState(() { + // value['List_DoctorWorkingHoursTable'].forEach((item) => { + // doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item)) + // }); + // GifLoaderDialogUtils.hideDialog(context); + // }); + // }); + // } } diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index f768ee5b..3cca8caf 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -471,9 +471,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { }) } }); - - // familyFileProvider.getSharedRecordByStatus(); } + familyFileProvider.getSharedRecordByStatus(); } } diff --git a/lib/pages/medical/medical_profile_page.dart b/lib/pages/medical/medical_profile_page.dart index 8d49a89b..6f46388b 100644 --- a/lib/pages/medical/medical_profile_page.dart +++ b/lib/pages/medical/medical_profile_page.dart @@ -1,51 +1,16 @@ -import 'dart:math'; - -import 'package:badges/badges.dart'; -import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; -import 'package:diplomaticquarterapp/pages/MyAppointments/MyAppointments.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_approval_screen.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_card_screen.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; -import 'package:diplomaticquarterapp/pages/medical/patient_sick_leave_page.dart'; -import 'package:diplomaticquarterapp/pages/medical/reports/monthly_reports.dart'; -import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/smart_watch_instructions.dart'; -import 'package:diplomaticquarterapp/pages/vaccine/my_vaccines_screen.dart'; -import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart'; -import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_home_page.dart'; -import 'package:diplomaticquarterapp/pages/medical/vital_sign/vital_sign_details_screen.dart'; -import 'package:diplomaticquarterapp/pages/medical/reports/report_home_page.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; -import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/time_line_widget.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; -import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart'; -import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; -import 'package:diplomaticquarterapp/widgets/others/sliver_app_bar_delegate.dart'; -import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_card_screen.dart'; import 'package:provider/provider.dart'; -import '../../locator.dart'; -import '../../uitl/gif_loader_dialog_utils.dart'; -import 'active_medications/ActiveMedicationsPage.dart'; -import 'allergies_page.dart'; -import 'ask_doctor/ask_doctor_home_page.dart'; -import 'balance/my_balance_page.dart'; -import 'doctor/doctor_home_page.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; -import 'package:diplomaticquarterapp/pages/insurance/insurance_approval_screen.dart'; -import 'eye/EyeHomePage.dart'; -import 'eye/EyeMeasurementsPage.dart'; -import 'labs/labs_home_page.dart'; -import 'my_trackers/my_trackers.dart'; class MedicalProfilePage extends StatefulWidget { @override diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 0795726a..c691123e 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -14,7 +14,7 @@ import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; import 'package:flutter/cupertino.dart'; -import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart'; + class DoctorsListService extends BaseService { AppSharedPreferences sharedPref = AppSharedPreferences(); @@ -1498,22 +1498,4 @@ class DoctorsListService extends BaseService { }, body: request); return Future.value(localRes); } - - Future getSchedule(DoctorList doctorRequest) async { - Map request; - request = { - 'DoctorID': doctorRequest.doctorID, - 'ProjectID': doctorRequest.projectID, - 'ClinicID': doctorRequest.clinicID, - 'DoctorWorkingHoursDays': 7 - }; - dynamic localRes; - await baseAppClient.post(DOCTOR_SCHEDULE_URL, - onSuccess: (response, statusCode) async { - localRes = response; - }, onFailure: (String error, int statusCode) { - throw error; - }, body: request); - return Future.value(localRes); - } }