From 1e656af1430369d0a2dd7b8234fd92c188763481 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Tue, 12 May 2020 18:18:35 +0300 Subject: [PATCH] handelCatcherrorCase --- .../patient/prescription_res_model.dart | 4 +- lib/providers/patients_provider.dart | 43 +++++++++++++------ .../profile/lab_result/lab_orders_screen.dart | 15 ++----- .../prescriptions/prescriptions_screen.dart | 16 ++----- .../profile/radiology/radiology_screen.dart | 27 ++++-------- .../profile/vital_sign/vital_sign_screen.dart | 21 ++++----- lib/util/helpers.dart | 20 ++++++++- .../shared/errors/dr_app_embedded_error.dart | 28 ++++++++++++ 8 files changed, 104 insertions(+), 70 deletions(-) create mode 100644 lib/widgets/shared/errors/dr_app_embedded_error.dart diff --git a/lib/models/patient/prescription_res_model.dart b/lib/models/patient/prescription_res_model.dart index 7bb545ee..9c7e296d 100644 --- a/lib/models/patient/prescription_res_model.dart +++ b/lib/models/patient/prescription_res_model.dart @@ -38,7 +38,7 @@ class PrescriptionResModel { String nationalityFlagURL; int noOfPatientsRate; String qR; - List speciality; + List speciality; PrescriptionResModel( {this.setupID, @@ -108,7 +108,7 @@ class PrescriptionResModel { nationalityFlagURL = json['NationalityFlagURL']; noOfPatientsRate = json['NoOfPatientsRate']; qR = json['QR']; - speciality = json['Speciality'].cast(); + speciality = json['Speciality']; } Map toJson() { diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index 461103ee..8d7b6631 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -5,6 +5,7 @@ import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/prescription_req_model.dart'; import 'package:doctor_app_flutter/models/patient/prescription_res_model.dart'; import 'package:doctor_app_flutter/models/patient/radiology_res_model.dart'; +import 'package:doctor_app_flutter/widgets/auth/login_form.dart'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart'; import 'package:http_interceptor/http_client_with_interceptor.dart'; @@ -23,6 +24,7 @@ const GET_PATIENT_LAB_OREDERS = const GET_PRESCRIPTION = BASE_URL + 'Patients.svc/REST/GetPrescriptionApptList'; const GET_RADIOLOGY = BASE_URL + 'DoctorApplication.svc/REST/GetPatientRadResult'; +Helpers helpers = Helpers(); class PatientsProvider with ChangeNotifier { bool isLoading = false; @@ -44,8 +46,11 @@ class PatientsProvider with ChangeNotifier { // var srvicePatiant = ["GetMyOutPatient", "GetMyInPatient", "GtMyDischargePatient","GtMyReferredPatient","GtMyDischargeReferralPatient","GtMyTomorrowPatient","GtMyReferralPatient"]; // print("a=SERVICES_PATIANT[patientType]========='=======a"); int val = int.parse(patientType); - final url =BASE_URL+"DoctorApplication.svc/REST/"+ SERVICES_PATIANT[val];///"https://uat.hmgwebservices.com/Services/Doctors.svc/REST/"; - //BASE_URL + 'DoctorApplication.svc/REST/' + SERVICES_PATIANT[val]; + final url = + BASE_URL + "DoctorApplication.svc/REST/" + SERVICES_PATIANT[val]; + + ///"https://uat.hmgwebservices.com/Services/Doctors.svc/REST/"; + //BASE_URL + 'DoctorApplication.svc/REST/' + SERVICES_PATIANT[val]; // print("a===========$url=======a"); try { @@ -76,8 +81,8 @@ class PatientsProvider with ChangeNotifier { //*********************** return Future.value(json.decode(response.body)); - } catch (error) { - throw error; + } catch (err) { + throw err; } } @@ -128,8 +133,8 @@ class PatientsProvider with ChangeNotifier { error = 'Please Check The Internet Connection'; } notifyListeners(); - } catch (error) { - throw error; + } catch (err) { + handelCatchErrorCase(err); } } @@ -182,8 +187,8 @@ class PatientsProvider with ChangeNotifier { error = 'Please Check The Internet Connection'; } notifyListeners(); - } catch (error) { - throw error; + } catch (err) { + handelCatchErrorCase(err); } } @@ -228,11 +233,25 @@ class PatientsProvider with ChangeNotifier { error = 'Please Check The Internet Connection'; } notifyListeners(); - } catch (error) { - throw error; + } catch (err) { + handelCatchErrorCase(err); } } + /*@author: Elham Rababah + *@Date:12/5/2020 + *@param: patient + *@return: + *@desc: getPatientRadiology + */ + handelCatchErrorCase(err) { + isLoading = false; + isError = true; + error = helpers.generateContactAdminMsg(err); + notifyListeners(); + throw err; + } + /*@author: Elham Rababah *@Date:3/5/2020 *@param: patient @@ -272,8 +291,8 @@ class PatientsProvider with ChangeNotifier { error = 'Please Check The Internet Connection'; } notifyListeners(); - } catch (error) { - throw error; + } catch (err) { + handelCatchErrorCase(err); } } } diff --git a/lib/screens/patients/profile/lab_result/lab_orders_screen.dart b/lib/screens/patients/profile/lab_result/lab_orders_screen.dart index d26ab4c7..ae2bc1d8 100644 --- a/lib/screens/patients/profile/lab_result/lab_orders_screen.dart +++ b/lib/screens/patients/profile/lab_result/lab_orders_screen.dart @@ -1,3 +1,4 @@ +import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -78,19 +79,9 @@ class _LabOrdersScreenState extends State { body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError - ? Center( - child: Text( - patientsProv.error, - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: patientsProv.error) : patientsProv.patientLabResultOrdersList.length == 0 - ? Center( - child: Text( - 'You don\'t have any Orders', - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: 'You don\'t have any Orders') : Container( margin: EdgeInsets.fromLTRB( SizeConfig.realScreenWidth * 0.05, diff --git a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart index 47fff706..3bded248 100644 --- a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart +++ b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart @@ -12,6 +12,7 @@ import '../../../../widgets/shared/app_texts_widget.dart'; import '../../../../widgets/shared/card_with_bg_widget.dart'; import '../../../../widgets/shared/dr_app_circular_progress_Indeicator.dart'; import '../../../../widgets/shared/profile_image_widget.dart'; +import '../../../../widgets/shared/errors/dr_app_embedded_error.dart'; DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); @@ -78,19 +79,10 @@ class _PrescriptionScreenState extends State { body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError - ? Center( - child: Text( - patientsProv.error, - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: patientsProv.error) : patientsProv.patientPrescriptionsList.length == 0 - ? Center( - child: Text( - 'You don\'t have any Prescriptions', - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError( + error: 'You don\'t have any Prescriptions') : Container( margin: EdgeInsets.fromLTRB( SizeConfig.realScreenWidth * 0.05, diff --git a/lib/screens/patients/profile/radiology/radiology_screen.dart b/lib/screens/patients/profile/radiology/radiology_screen.dart index 8b48e88c..e5dd68f7 100644 --- a/lib/screens/patients/profile/radiology/radiology_screen.dart +++ b/lib/screens/patients/profile/radiology/radiology_screen.dart @@ -1,3 +1,4 @@ +import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -78,19 +79,9 @@ class _RadiologyScreenState extends State { body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError - ? Center( - child: Text( - patientsProv.error, - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: patientsProv.error) : patientsProv.patientRadiologyList.length == 0 - ? Center( - child: Text( - 'You don\'t have any Vital Sign', - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: 'You don\'t have any Vital Sign') : Container( margin: EdgeInsets.fromLTRB( SizeConfig.realScreenWidth * 0.05, @@ -120,11 +111,12 @@ class _RadiologyScreenState extends State { CrossAxisAlignment.start, children: [ AppText( - '${patientsProv.patientRadiologyList[index].doctorName}', - fontSize: 2.5 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.bold - ), + '${patientsProv.patientRadiologyList[index].doctorName}', + fontSize: 2.5 * + SizeConfig + .textMultiplier, + fontWeight: + FontWeight.bold), SizedBox( height: 8, ), @@ -132,7 +124,6 @@ class _RadiologyScreenState extends State { 'Invoice No:${patientsProv.patientRadiologyList[index].invoiceNo}', fontSize: 2 * SizeConfig.textMultiplier, - ), SizedBox( height: 8, diff --git a/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart b/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart index 570a5aa1..8b08f8ac 100644 --- a/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart +++ b/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart @@ -1,4 +1,5 @@ import 'package:doctor_app_flutter/routes.dart'; +import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -81,19 +82,9 @@ class _VitalSignScreenState extends State { body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError - ? Center( - child: Text( - patientsProv.error, - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: patientsProv.error) : patientsProv.patientVitalSignList.length == 0 - ? Center( - child: Text( - 'You don\'t have any Vital Sign', - style: TextStyle(color: Theme.of(context).errorColor), - ), - ) + ? DrAppEmbeddedError(error: 'You don\'t have any Vital Sign') : Container( margin: EdgeInsets.fromLTRB( SizeConfig.realScreenWidth * 0.05, @@ -151,7 +142,11 @@ class _VitalSignScreenState extends State { ), ), onTap: () { - Navigator.of(context).pushNamed(VITAL_SIGN_DETAILS,arguments: {'vitalSing':patientsProv.patientVitalSignList[index]}); + Navigator.of(context) + .pushNamed(VITAL_SIGN_DETAILS, arguments: { + 'vitalSing': + patientsProv.patientVitalSignList[index] + }); }, ); }), diff --git a/lib/util/helpers.dart b/lib/util/helpers.dart index c182ae07..2065ea57 100644 --- a/lib/util/helpers.dart +++ b/lib/util/helpers.dart @@ -70,7 +70,7 @@ class Helpers { *@desc: showErrorToast */ showErrorToast([msg = null]) { - String localMsg = 'Something wrong happened, please contact the admin'; + String localMsg = generateContactAdminMsg(); if (msg != null) { localMsg = msg.toString(); @@ -96,4 +96,22 @@ class Helpers { return false; } } +/* + *@author: Elham Rababah + *@Date:12/5/2020 + *@param: + *@return: String + *@desc: generate Contact Admin Msg + */ +generateContactAdminMsg([err = null]) { + String localMsg = 'Something wrong happened, please contact the admin'; + if (err != null) { + localMsg = localMsg +'\n \n'+ err.toString(); + } + return localMsg; + } + +} + + diff --git a/lib/widgets/shared/errors/dr_app_embedded_error.dart b/lib/widgets/shared/errors/dr_app_embedded_error.dart new file mode 100644 index 00000000..6bac4a2c --- /dev/null +++ b/lib/widgets/shared/errors/dr_app_embedded_error.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; + +/* + *@author: Elham Rababah + *@Date:12/5/2020 + *@param: error + *@return: StatelessWidget + *@desc: DrAppEmbeddedError class + */ +class DrAppEmbeddedError extends StatelessWidget { + const DrAppEmbeddedError({ + Key key, + @required this.error, + }) : super(key: key); + + final String error; + + @override + Widget build(BuildContext context) { + return Center( + child: Text( + error, + style: TextStyle(color: Theme.of(context).errorColor), + textAlign: TextAlign.center, + ), + ); + } +} \ No newline at end of file