diff --git a/lib/config/config.dart b/lib/config/config.dart index ce9a7a54..4af51b9e 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -271,6 +271,11 @@ const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetP const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots'; + +///Smartwatch Integration Services +const GET_PATIENT_LAST_RECORD = + 'Services/Patients.svc/REST/Med_GetPatientLastRecord'; + ///My Trackers const GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage'; diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart index 5787af66..fb2b94c6 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_index_page.dart @@ -1,5 +1,3 @@ - - import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/EReferral/create_e_referral_request_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart'; import 'package:flutter/material.dart'; @@ -8,7 +6,6 @@ import 'new_e_referral_step_three_page.dart'; import 'new_e_referral_step_two_page.dart'; class StartIndexForNewEReferral extends StatefulWidget { - StartIndexForNewEReferral(); @override @@ -22,8 +19,8 @@ class _StartIndexForNewEReferralState extends State int _currentIndex = 1; int pageSelected = 2; - - CreateEReferralRequestModel createEReferralRequestModel = new CreateEReferralRequestModel(); + CreateEReferralRequestModel createEReferralRequestModel = + new CreateEReferralRequestModel(); @override void initState() { @@ -46,7 +43,7 @@ class _StartIndexForNewEReferralState extends State body: SafeArea( child: SingleChildScrollView( child: Container( - height: MediaQuery.of(context).size.height, + height: MediaQuery.of(context).size.height * 0.9, child: PageView( physics: NeverScrollableScrollPhysics(), controller: _controller, @@ -64,12 +61,10 @@ class _StartIndexForNewEReferralState extends State NewEReferralStepTowPage( changePageViewIndex: changePageViewIndex, createEReferralRequestModel: createEReferralRequestModel, - ), NewEReferralStepThreePage( changePageViewIndex: changePageViewIndex, createEReferralRequestModel: createEReferralRequestModel, - ), ], ), diff --git a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart index 6460de03..62799c6d 100644 --- a/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart +++ b/lib/pages/AlHabibMedicalService/E-Referral/New_E_Referral/new_e_referral_step_one_page.dart @@ -95,7 +95,7 @@ class _NewEReferralStepOnePageState extends State { margin: EdgeInsets.all(12), child: Center( child: FractionallySizedBox( - widthFactor: 0.94, + widthFactor: 0.9, child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart index f717ba8e..9d8466bb 100644 --- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart +++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart @@ -1,35 +1,31 @@ +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; +import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart'; +import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_page.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/h2o/h2o_index_page.dart'; -import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_converter.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/my_web_view.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/parking_page.dart'; -import 'package:diplomaticquarterapp/pages/Blood/advance_payment_page.dart'; import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart'; - import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart'; import 'package:diplomaticquarterapp/pages/ChildVaccines/child_vaccines_page.dart'; import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart'; import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart'; import 'package:diplomaticquarterapp/pages/family/my-family.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; - import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart'; import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart'; import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart'; import 'package:diplomaticquarterapp/routes.dart'; +import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/services)contaniner.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:diplomaticquarterapp/widgets/data_display/services)contaniner.dart'; -import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:url_launcher/url_launcher.dart'; -import 'package:webview_flutter/webview_flutter.dart'; - -import 'h2o/h2o_page.dart'; class AllHabibMedicalService extends StatefulWidget { @override @@ -37,6 +33,17 @@ class AllHabibMedicalService extends StatefulWidget { } class _AllHabibMedicalServiceState extends State { + AppSharedPreferences sharedPref = AppSharedPreferences(); + AuthenticatedUser authUser = new AuthenticatedUser(); + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + getAuthUser(); + }); + super.initState(); + } + @override Widget build(BuildContext context) { return AppScaffold( @@ -177,7 +184,10 @@ class _AllHabibMedicalServiceState extends State { ServicesContainer( onTap: () => Navigator.push( context, - FadePage(page: EReferralIndexPage()), + FadePage( + page: authUser.patientID == null + ? EReferralIndexPage() + : EReferralPage()), ), imageLocation: 'assets/images/ereferral_service_icon.png', title: 'E-Referral', @@ -315,4 +325,15 @@ class _AllHabibMedicalServiceState extends State { ), ); } + + getAuthUser() async { + if (await this.sharedPref.getObject(USER_PROFILE) != null) { + var data = AuthenticatedUser.fromJson( + await this.sharedPref.getObject(USER_PROFILE)); + setState(() { + authUser = data; + }); + print(authUser.patientID); + } + } } diff --git a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart index 88116cd9..aca0884f 100644 --- a/lib/pages/BookAppointment/components/DocAvailableAppointments.dart +++ b/lib/pages/BookAppointment/components/DocAvailableAppointments.dart @@ -385,8 +385,8 @@ class _DocAvailableAppointmentsState extends State color: _calendarController.isSelected(date) ? Colors.green[400] : _calendarController.isToday(date) - ? Colors.brown[300] - : Colors.blue[400], + ? Colors.brown[300] + : Colors.blue[400], ), width: 40.0, height: 40.0, diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index e3538277..db2b0643 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -172,7 +172,7 @@ class _AppointmentDetailsState extends State physics: NeverScrollableScrollPhysics(), children: [ AppointmentActions(appo: widget.appo, tabController: _tabController, enableFooterButton: enableFooterButton), - DocAvailableAppointments(doctor: getDoctorObject()) + DocAvailableAppointments(doctor: getDoctorObject(), isLiveCareAppointment: widget.appo.isLiveCareAppointment) ], controller: _tabController, ), diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart index 7c20b53d..9ba57084 100644 --- a/lib/pages/ToDoList/ToDo.dart +++ b/lib/pages/ToDoList/ToDo.dart @@ -139,7 +139,7 @@ class _ToDoState extends State { flex: 3, child: Container( margin: EdgeInsets.only( - top: 20.0, left: 20.0, right: 20.0), + top: 10.0, left: 20.0, right: 20.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/pages/ToDoList/payment_method_select.dart b/lib/pages/ToDoList/payment_method_select.dart index a44d8b3d..a6936083 100644 --- a/lib/pages/ToDoList/payment_method_select.dart +++ b/lib/pages/ToDoList/payment_method_select.dart @@ -1,5 +1,4 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; @@ -69,7 +68,7 @@ class _PaymentMethodState extends State { child: Container( child: InkWell( onTap: () { - updateSelectedPaymentMethod("SADAD"); + updateSelectedPaymentMethod("VISA"); }, child: Card( elevation: 3.0, @@ -77,7 +76,7 @@ class _PaymentMethodState extends State { color: Colors.white, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), - side: selectedPaymentMethod == "SADAD" + side: selectedPaymentMethod == "VISA" ? BorderSide( color: Colors.green, width: 5.0) : BorderSide( @@ -88,12 +87,41 @@ class _PaymentMethodState extends State { padding: EdgeInsets.all(7.0), width: MediaQuery.of(context).size.width * 0.45, child: Image.asset( - "assets/images/new-design/sadad.png"), + "assets/images/new-design/visa.png"), ), ), ), ), ), +// Expanded( +// child: Container( +// child: InkWell( +// onTap: () { +// updateSelectedPaymentMethod("SADAD"); +// }, +// child: Card( +// elevation: 3.0, +// margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), +// color: Colors.white, +// shape: RoundedRectangleBorder( +// borderRadius: BorderRadius.circular(10), +// side: selectedPaymentMethod == "SADAD" +// ? BorderSide( +// color: Colors.green, width: 5.0) +// : BorderSide( +// color: Colors.transparent, width: 0.0), +// ), +// child: Container( +// height: 120.0, +// padding: EdgeInsets.all(7.0), +// width: MediaQuery.of(context).size.width * 0.45, +// child: Image.asset( +// "assets/images/new-design/sadad.png"), +// ), +// ), +// ), +// ), +// ), ], ), ), @@ -102,35 +130,6 @@ class _PaymentMethodState extends State { child: Flex( direction: Axis.horizontal, children: [ - Expanded( - child: Container( - child: InkWell( - onTap: () { - updateSelectedPaymentMethod("VISA"); - }, - child: Card( - elevation: 3.0, - margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10), - side: selectedPaymentMethod == "VISA" - ? BorderSide( - color: Colors.green, width: 5.0) - : BorderSide( - color: Colors.transparent, width: 0.0), - ), - child: Container( - height: 120.0, - padding: EdgeInsets.all(7.0), - width: MediaQuery.of(context).size.width * 0.45, - child: Image.asset( - "assets/images/new-design/visa.png"), - ), - ), - ), - ), - ), Expanded( child: Container( child: InkWell( @@ -160,14 +159,6 @@ class _PaymentMethodState extends State { ), ), ), - ], - ), - ), - Container( - margin: EdgeInsets.only(top: 25.0), - child: Flex( - direction: Axis.horizontal, - children: [ Expanded( child: Container( child: InkWell( @@ -200,6 +191,13 @@ class _PaymentMethodState extends State { ], ), ), + Container( + margin: EdgeInsets.only(top: 25.0), + child: Flex( + direction: Axis.horizontal, + children: [], + ), + ), ], ), ), diff --git a/lib/pages/ToDoList/widgets/paymentDialog.dart b/lib/pages/ToDoList/widgets/paymentDialog.dart index d79a1ead..2fbcbcc1 100644 --- a/lib/pages/ToDoList/widgets/paymentDialog.dart +++ b/lib/pages/ToDoList/widgets/paymentDialog.dart @@ -24,7 +24,7 @@ class _PaymentDialogState extends State { shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)), child: Container( - height: MediaQuery.of(context).size.height * 0.67, + height: 510.0, width: 450.0, child: Column( crossAxisAlignment: CrossAxisAlignment.start, diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart index 06ac1577..2744d3a6 100644 --- a/lib/pages/landing/home_page.dart +++ b/lib/pages/landing/home_page.dart @@ -98,10 +98,10 @@ class _HomePageState extends State { Container( margin: EdgeInsets.only( top: 15.0, left: 3.5, right: 3.5), - // child: SvgPicture.asset( - // 'assets/images/new-design/covid-19-car.svg', - // width: 45.0, - // height: 45.0), + child: SvgPicture.asset( + 'assets/images/new-design/covid-19-car.svg', + width: 45.0, + height: 45.0), ), Container( margin: EdgeInsets.only( @@ -175,11 +175,11 @@ class _HomePageState extends State { .withOpacity(0.3), borderRadius: BorderRadius.all( Radius.circular(5))), - // child: SvgPicture.asset( - // projectViewModel.isArabic - // ? 'assets/images/new-design/livecare_arabic_logo.svg' - // : 'assets/images/new-design/liveCare_white_logo.svg', - // ), + child: SvgPicture.asset( + projectViewModel.isArabic + ? 'assets/images/new-design/livecare_arabic_logo.svg' + : 'assets/images/new-design/liveCare_white_logo.svg', + ), ), ), ), diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart index cc5df0a6..8847aaa1 100644 --- a/lib/pages/medical/balance/confirm_payment_page.dart +++ b/lib/pages/medical/balance/confirm_payment_page.dart @@ -247,8 +247,8 @@ class ConfirmPaymentPage extends StatelessWidget { DoctorsListService service = new DoctorsListService(); service .checkPaymentStatus( - Utils.getAppointmentTransID( - appo.projectID, appo.clinicID, appo.appointmentNo), + Utils.getAdvancePaymentTransID( + appo.projectID, authenticatedUser.patientID), AppGlobal.context) .then((res) { print("Printing Payment Status Reponse!!!!"); @@ -302,5 +302,4 @@ class ConfirmPaymentPage extends StatelessWidget { Future navigateToHome(context) async { Navigator.of(context).pushNamed(HOME); } - } diff --git a/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart index 86863a9e..eb0c1675 100644 --- a/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart +++ b/lib/pages/medical/smart_watch_health_data/smart_watch_instructions.dart @@ -2,8 +2,10 @@ import 'dart:io'; import 'package:carousel_slider/carousel_slider.dart'; import 'package:diplomaticquarterapp/pages/medical/smart_watch_health_data/health_data_list.dart'; +import 'package:diplomaticquarterapp/services/smartwatch_integration/SmartWatchIntegrationService.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; +import 'package:smart_progress_bar/smart_progress_bar.dart'; import 'package:url_launcher/url_launcher.dart'; class SmartWatchInstructions extends StatefulWidget { @@ -14,6 +16,16 @@ class SmartWatchInstructions extends StatefulWidget { class _SmartWatchInstructionsState extends State { CarouselController buttonCarouselController = CarouselController(); + bool hasAlreadySynced = false; + + @override + void initState() { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + getLastPatientRecord(context); + }); + super.initState(); + } + @override Widget build(BuildContext context) { return AppScaffold( @@ -358,7 +370,7 @@ class _SmartWatchInstructionsState extends State { ), ), ), - Container( + hasAlreadySynced ? Container( margin: EdgeInsets.fromLTRB( 15.0, 0.0, 15.0, 15.0), child: ButtonTheme( @@ -381,7 +393,7 @@ class _SmartWatchInstructionsState extends State { style: TextStyle(fontSize: 18.0)), ), ), - ), + ): Container(), ], ), )); @@ -745,7 +757,7 @@ class _SmartWatchInstructionsState extends State { ), ), ), - Container( + hasAlreadySynced ? Container( margin: EdgeInsets.fromLTRB( 15.0, 0.0, 15.0, 15.0), child: ButtonTheme( @@ -768,7 +780,7 @@ class _SmartWatchInstructionsState extends State { style: TextStyle(fontSize: 18.0)), ), ), - ), + ) : Container(), ], ), )); @@ -782,8 +794,26 @@ class _SmartWatchInstructionsState extends State { ); } + getLastPatientRecord(BuildContext context) { + SmartWatchIntegrationService service = new SmartWatchIntegrationService(); + service.getLastPatientRecord(context).then((res) { + if (res['MessageStatus'] == 1) { + print(res['Med_GetPatientLastRecordList']); + setState(() { + if (res['Med_GetPatientLastRecordList'] != null) + hasAlreadySynced = true; + else + hasAlreadySynced = false; + }); + } else {} + }).catchError((err) { + print(err); + }).showProgressBar( + text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6)); + } + _openHealthDataList() { - Navigator.push(context, - MaterialPageRoute(builder: (context) => HealthDataList())); + Navigator.push( + context, MaterialPageRoute(builder: (context) => HealthDataList())); } } diff --git a/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart b/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart new file mode 100644 index 00000000..315249c8 --- /dev/null +++ b/lib/services/smartwatch_integration/SmartWatchIntegrationService.dart @@ -0,0 +1,54 @@ +import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; +import 'package:diplomaticquarterapp/core/service/base_service.dart'; +import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; +import 'package:diplomaticquarterapp/models/Request.dart'; +import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; +import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; +import 'package:flutter/material.dart'; + +class SmartWatchIntegrationService extends BaseService { + AppSharedPreferences sharedPref = AppSharedPreferences(); + AppGlobal appGlobal = new AppGlobal(); + + AuthenticatedUser authUser = new AuthenticatedUser(); + AuthProvider authProvider = new AuthProvider(); + + Future getLastPatientRecord(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; + } + + var languageID = await sharedPref.getString(APP_LANGUAGE); + Request req = appGlobal.getPublicRequest(); + + request = { + "LanguageID": languageID == 'ar' ? 1 : 2, + "IPAdress": "10.20.10.20", + "VersionID": req.VersionID, + "Channel": req.Channel, + "generalid": 'Cs2020@2016\$2958', + "PatientOutSA": authUser.outSA, + "TokenID": "", + "DeviceTypeID": req.DeviceTypeID, + "SessionID": "YckwoXhUmWBsnHKEKig", + "PatientID": authUser.patientID != null ? authUser.patientID : 0, + "License": true + }; + + dynamic localRes; + + await baseAppClient.post(GET_PATIENT_LAST_RECORD, + onSuccess: (response, statusCode) async { + localRes = response; + }, onFailure: (String error, int statusCode) { + throw error; + }, body: request); + return Future.value(localRes); + + } +}