From 86d0d52f05e5ee5ed712a30b252f5bd53bc9c792 Mon Sep 17 00:00:00 2001 From: Amjad Amireh Date: Thu, 4 Jun 2020 10:05:14 +0300 Subject: [PATCH 1/6] SVG female --- lib/screens/patients/patients_screen.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/screens/patients/patients_screen.dart b/lib/screens/patients/patients_screen.dart index b5ec9b83..e958244f 100644 --- a/lib/screens/patients/patients_screen.dart +++ b/lib/screens/patients/patients_screen.dart @@ -398,9 +398,9 @@ class _PatientsScreenState extends State { url + avatarFemale, height: - 100.0, + 80.0, width: - 100.0, + 80.0, semanticsLabel: 'Female Logo') ], From 1935b781d6a0994380175b502a25d570e7ad6272 Mon Sep 17 00:00:00 2001 From: Amjad Amireh Date: Thu, 4 Jun 2020 12:56:42 +0300 Subject: [PATCH 2/6] Localization comment --- lib/config/localized_values.dart | 9 +++++++++ lib/util/translations_delegate_base.dart | 10 ++++++++++ .../doctor/my_referred_patient_widget.dart | 19 ++++++++++--------- .../shared/card_with_bgNew_widget.dart | 4 ++-- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 93575607..727bcee4 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -11,5 +11,14 @@ const Map> localizedValues = { 'messagesScreenToolbarTitle' : {'en': 'Messages','ar': 'الرسائل' }, 'mySchedule' : {'en': 'My Schedule', 'ar' : 'جدولي'}, 'errorNoSchedule' :{'en': 'You don\'t have any Schedule' , 'ar': 'ليس لديك أي جدول زمني'}, + 'verify': {'en': 'Verify', 'ar' : 'تحقق'}, + 'referralDoctor':{'en': 'Referral Doctor', 'ar' : 'الطبيب المُحول إليه'}, + 'referringClinic':{'en': 'Referring Clinic', 'ar' : 'العيادة المُحول إليها'}, + 'frequency':{'en': 'Frequency', 'ar' : 'نوع التحويلا'}, + 'priority':{'en': 'Priority', 'ar' : 'الأولوية'}, + 'maxResponseTime':{'en': 'Max Response Time', 'ar' : 'الوقت الأقصى للرد'}, + 'clinicDetailsandRemarks':{'en': 'Clinic Details and Remarks', 'ar' : 'ملاحضات وتفاصيل العيادة'}, + 'answerSuggestions':{'en': 'Answer/Suggestions', 'ar' : 'ملاحضات وتفاصيل العيادة'}, + }; diff --git a/lib/util/translations_delegate_base.dart b/lib/util/translations_delegate_base.dart index b5f75602..f6fc660a 100644 --- a/lib/util/translations_delegate_base.dart +++ b/lib/util/translations_delegate_base.dart @@ -40,6 +40,16 @@ class TranslationBase { String get errorNoSchedule => localizedValues['errorNoSchedule'][locale.languageCode]; + String get verify => localizedValues['verify'][locale.languageCode]; + String get referralDoctor => localizedValues['referralDoctor'][locale.languageCode]; + String get referringClinic => localizedValues['referringClinic'][locale.languageCode]; + String get frequency => localizedValues['frequency'][locale.languageCode]; + String get priority => localizedValues['priority'][locale.languageCode]; + String get maxResponseTime => localizedValues['maxResponseTime'][locale.languageCode]; + String get clinicDetailsandRemarks=> localizedValues['clinicDetailsandRemarks'][locale.languageCode]; + String get answerSuggestions => localizedValues['answerSuggestions'][locale.languageCode]; + + } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/widgets/doctor/my_referred_patient_widget.dart b/lib/widgets/doctor/my_referred_patient_widget.dart index af5ea4f8..1af712ff 100644 --- a/lib/widgets/doctor/my_referred_patient_widget.dart +++ b/lib/widgets/doctor/my_referred_patient_widget.dart @@ -1,6 +1,7 @@ import 'package:doctor_app_flutter/models/my_referral_patient_model.dart'; import 'package:doctor_app_flutter/models/my_referred_patient_model.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; +import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; @@ -96,7 +97,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'File No', + TranslationBase.of(context).fileNo, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -124,7 +125,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Referral Doctor', + TranslationBase.of(context).referralDoctor, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -151,7 +152,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Referring Clinic', + TranslationBase.of(context).referringClinic, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -179,7 +180,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Frequency', + TranslationBase.of(context).frequency, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -207,7 +208,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Priority', + TranslationBase.of(context).priority, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -235,7 +236,7 @@ class _MyReferredPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Max Response Time', + TranslationBase.of(context).maxResponseTime, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, @@ -263,7 +264,7 @@ class _MyReferredPatientWidgetState extends State { height: 5, ), AppText( - 'Clinic Details and Remarks', + TranslationBase.of(context).clinicDetailsandRemarks, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, textAlign: TextAlign.start, @@ -281,7 +282,7 @@ class _MyReferredPatientWidgetState extends State { height: 5, ), AppText( - 'Answer/Suggestions', + TranslationBase.of(context).answerSuggestions, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, textAlign: TextAlign.start, @@ -319,7 +320,7 @@ class _MyReferredPatientWidgetState extends State { DrAppToastMsg.showErrorToast(e); } }, - title: 'Verify', + title: TranslationBase.of(context).verify, loading: _isLoading, ), ) diff --git a/lib/widgets/shared/card_with_bgNew_widget.dart b/lib/widgets/shared/card_with_bgNew_widget.dart index 130d1b84..25cb509c 100644 --- a/lib/widgets/shared/card_with_bgNew_widget.dart +++ b/lib/widgets/shared/card_with_bgNew_widget.dart @@ -36,11 +36,11 @@ class CardWithBgWidgetNew extends StatelessWidget { children: [ Center( child: Container( - padding:EdgeInsets.fromLTRB(0, 10,0, 10), //EdgeInsets.all(10.0),//10 + // padding:EdgeInsets.fromLTRB(0, 10,0, 10), //EdgeInsets.all(10.0),//10 // margin: EdgeInsets.only(left: 10), child: Padding( padding: const EdgeInsets.all(8.0), - child: widget, + child: Center(child: widget), )), ) ], From c7ad16cbcdb5e81e8681cf78595f1ebb9c620973 Mon Sep 17 00:00:00 2001 From: Mohammad ALjammal Date: Thu, 4 Jun 2020 13:01:58 +0300 Subject: [PATCH 3/6] update design Radiology Screen and create Radiology Report Screen --- lib/providers/patients_provider.dart | 2 +- .../prescriptions/prescriptions_screen.dart | 14 +- .../radiology/radiology_report_screen.dart | 42 +++ .../profile/radiology/radiology_screen.dart | 152 +++++++---- .../doctor/my_referral_patient_widget.dart | 205 +++++++-------- .../doctor/my_referred_patient_widget.dart | 240 +++++++++--------- 6 files changed, 353 insertions(+), 302 deletions(-) create mode 100644 lib/screens/patients/profile/radiology/radiology_report_screen.dart diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index be972ea2..7ff73724 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -213,7 +213,7 @@ class PatientsProvider with ChangeNotifier *@return: *@desc: getPatientPrescriptions */ - getPatientPrescriptions(patient) async { + getOutPatientPrescriptions(patient) async { // isLoading = true; // notifyListeners(); setBasicData(); diff --git a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart index e06d789c..aa1d193c 100644 --- a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart +++ b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart @@ -12,9 +12,7 @@ import '../../../../providers/patients_provider.dart'; import '../../../../util/dr_app_shared_pref.dart'; import '../../../../widgets/shared/app_scaffold_widget.dart'; 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(); @@ -47,12 +45,8 @@ class _PrescriptionScreenState extends State { final routeArgs = ModalRoute.of(context).settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; String token = await sharedPref.getString(TOKEN); - // String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); - // int inOutpatientType = 1; - // if (type == '0') { - // inOutpatientType = 2; - // } - // print(type); + String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); + PrescriptionReqModel prescriptionReqModel = PrescriptionReqModel( patientID: patient.patientId, projectID: patient.projectId, @@ -60,7 +54,7 @@ class _PrescriptionScreenState extends State { patientTypeID: patient.patientType, languageID: 2, setupID: 0); - patientsProv.getPatientPrescriptions(prescriptionReqModel.toJson()); + patientsProv.getOutPatientPrescriptions(prescriptionReqModel.toJson()); } @override @@ -120,7 +114,7 @@ class _PrescriptionScreenState extends State { height: 8, ), AppText( - ' ${patientsProv.patientPrescriptionsList[index].clinicDescription}', + '${patientsProv.patientPrescriptionsList[index].clinicDescription}', fontSize: 2.5 * SizeConfig.textMultiplier, color: Theme.of(context).primaryColor), SizedBox( diff --git a/lib/screens/patients/profile/radiology/radiology_report_screen.dart b/lib/screens/patients/profile/radiology/radiology_report_screen.dart new file mode 100644 index 00000000..badb88f8 --- /dev/null +++ b/lib/screens/patients/profile/radiology/radiology_report_screen.dart @@ -0,0 +1,42 @@ +import 'package:doctor_app_flutter/config/size_config.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class RadiologyReportScreen extends StatelessWidget { + final String reportData; + + RadiologyReportScreen({Key key, this.reportData}); + + @override + Widget build(BuildContext context) { + return AppScaffold( + appBarTitle: "Radiology Report", + showAppDrawer: false, + showBottomBar: false, + body: Container( + padding: EdgeInsets.all(10), + margin: EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: + BorderRadius.all(Radius.circular(10)), + color: Colors.white, + border: Border( + bottom: BorderSide( + color: Colors.grey, width: 0.5), + top: BorderSide( + color: Colors.grey, width: 0.5), + left: BorderSide( + color: Colors.grey, width: 0.5), + right: BorderSide( + color: Colors.grey, width: 0.5), + ), + ), + child: AppText(reportData, + fontSize: 2.5 * SizeConfig.textMultiplier, + ), + ), + ); + } +} diff --git a/lib/screens/patients/profile/radiology/radiology_screen.dart b/lib/screens/patients/profile/radiology/radiology_screen.dart index e5dd68f7..10adf2d5 100644 --- a/lib/screens/patients/profile/radiology/radiology_screen.dart +++ b/lib/screens/patients/profile/radiology/radiology_screen.dart @@ -1,3 +1,5 @@ +import 'package:doctor_app_flutter/screens/patients/profile/radiology/radiology_report_screen.dart'; +import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/dr_app_embedded_error.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -88,68 +90,106 @@ class _RadiologyScreenState extends State { 0, SizeConfig.realScreenWidth * 0.05, 0), - child: ListView.builder( - itemCount: patientsProv.patientRadiologyList.length, - itemBuilder: (BuildContext ctxt, int index) { - return InkWell( - child: CardWithBgWidget( - widget: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - ProfileImageWidget( + child: Container( + margin: EdgeInsets.symmetric(vertical: 10), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(20.0), + ), + ), + child: ListView.builder( + itemCount: patientsProv.patientRadiologyList.length, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => RadiologyReportScreen(reportData: patientsProv.patientRadiologyList[index].reportData,)),); + }, + child: Container( + padding: EdgeInsets.all(10), + margin: EdgeInsets.all(10), + decoration: BoxDecoration( + borderRadius: + BorderRadius.all(Radius.circular(10)), + border: Border( + bottom: BorderSide( + color: Colors.grey, width: 0.5), + top: BorderSide( + color: Colors.grey, width: 0.5), + left: BorderSide( + color: Colors.grey, width: 0.5), + right: BorderSide( + color: Colors.grey, width: 0.5), + ), + ), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Row( + children: [ + LargeAvatar( url: patientsProv .patientRadiologyList[index] - .doctorImageURL), - Expanded( - child: Padding( - padding: const EdgeInsets.fromLTRB( - 8, 0, 0, 0), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - '${patientsProv.patientRadiologyList[index].doctorName}', - fontSize: 2.5 * + .doctorImageURL, + name: patientsProv + .patientLabResultOrdersList[ + index] + .doctorName, + ), + Expanded( + child: Padding( + padding: + const EdgeInsets.fromLTRB( + 8, 0, 0, 0), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + '${patientsProv.patientRadiologyList[index].doctorName}', + fontSize: 2.5 * + SizeConfig + .textMultiplier, + fontWeight: + FontWeight.bold), + SizedBox( + height: 8, + ), + AppText( + 'Invoice No:${patientsProv.patientRadiologyList[index].invoiceNo}', + fontSize: 2 * + SizeConfig + .textMultiplier, + ), + SizedBox( + height: 8, + ), + AppText( + ' ${patientsProv.patientRadiologyList[index].clinicName}', + fontSize: 2 * SizeConfig .textMultiplier, - fontWeight: - FontWeight.bold), - SizedBox( - height: 8, - ), - AppText( - 'Invoice No:${patientsProv.patientRadiologyList[index].invoiceNo}', - fontSize: 2 * - SizeConfig.textMultiplier, - ), - SizedBox( - height: 8, - ), - AppText( - ' ${patientsProv.patientRadiologyList[index].clinicName}', - fontSize: 2 * - SizeConfig.textMultiplier, - color: Theme.of(context) - .primaryColor, - ), - SizedBox( - height: 8, - ), - ], + color: Theme.of(context) + .primaryColor, + ), + SizedBox( + height: 8, + ), + ], + ), ), - ), - ) - ], - ), - ], + ) + ], + ), + ], + ), ), - ), - onTap: () {}, - ); - }), + ); + }), + ), ), ); } diff --git a/lib/widgets/doctor/my_referral_patient_widget.dart b/lib/widgets/doctor/my_referral_patient_widget.dart index a2eb5f1d..02d3f10a 100644 --- a/lib/widgets/doctor/my_referral_patient_widget.dart +++ b/lib/widgets/doctor/my_referral_patient_widget.dart @@ -75,113 +75,54 @@ class _MyReferralPatientWidgetState extends State { children: [ TableRow( children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - 'File No', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferralPatientModel.referringDoctor}', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + 'File No', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferralPatientModel.referringDoctor}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - 'Referring Doctor', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - widget.myReferralPatientModel - .referringClinicDescription, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), + Container( + margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + 'Referring Doctor', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + widget.myReferralPatientModel + .referringClinicDescription, + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), - ) + ), ] ), TableRow( children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'Referring Clinic', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferralPatientModel.referringClinicDescription}', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'Frequency', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - widget.myReferralPatientModel - .frequencyDescription, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ) - ] - ), - TableRow( - children: [ - Expanded( - child: Container( + Container( margin: EdgeInsets.all(2.5), padding: EdgeInsets.all(5), child: Column( @@ -189,13 +130,13 @@ class _MyReferralPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Priority', + 'Referring Clinic', fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - '${widget.myReferralPatientModel.priorityDescription}', + '${widget.myReferralPatientModel.referringClinicDescription}', fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.w300, @@ -203,9 +144,7 @@ class _MyReferralPatientWidgetState extends State { ], ), ), - ), - Expanded( - child: Container( + Container( margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5), padding: EdgeInsets.all(5), child: Column( @@ -213,21 +152,69 @@ class _MyReferralPatientWidgetState extends State { CrossAxisAlignment.start, children: [ AppText( - 'Max Response Time', + 'Frequency', fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - Helpers.getDateFormatted(widget - .myReferralPatientModel - .mAXResponseTime), + widget.myReferralPatientModel + .frequencyDescription, fontSize: 1.7 * SizeConfig.textMultiplier, fontWeight: FontWeight.w300, ) ], ), + ) + ] + ), + TableRow( + children: [ + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'Priority', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferralPatientModel.priorityDescription}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], + ), + ), + Container( + margin: EdgeInsets.only(left: 4,top: 2.5,right: 2.5,bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'Max Response Time', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + Helpers.getDateFormatted(widget + .myReferralPatientModel + .mAXResponseTime), + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), ) ], diff --git a/lib/widgets/doctor/my_referred_patient_widget.dart b/lib/widgets/doctor/my_referred_patient_widget.dart index af5ea4f8..e4520ebb 100644 --- a/lib/widgets/doctor/my_referred_patient_widget.dart +++ b/lib/widgets/doctor/my_referred_patient_widget.dart @@ -86,144 +86,81 @@ class _MyReferredPatientWidgetState extends State { ), children: [ TableRow(children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - decoration: BoxDecoration(), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'File No', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferredPatientModel.patientId}', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + decoration: BoxDecoration(), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'File No', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferredPatientModel.patientId}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), ), - Expanded( - child: Container( - margin: EdgeInsets.only( - left: 4, - top: 2.5, - right: 2.5, - bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'Referral Doctor', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - Texts( - widget.myReferredPatientModel - .referralDoctorName, - maxLength: 80, - readMore: true, - ), - ], - ), + Container( + margin: EdgeInsets.only( + left: 4, + top: 2.5, + right: 2.5, + bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'Referral Doctor', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + Texts( + widget.myReferredPatientModel + .referralDoctorName, + maxLength: 80, + readMore: true, + ), + ], ), ), ]), TableRow( children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'Referring Clinic', - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferredPatientModel.referralClinicDescription}', - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only( - left: 4, - top: 2.5, - right: 2.5, - bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - 'Frequency', - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - widget.myReferredPatientModel - .frequencyDescription, - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ) - ], - ), - TableRow(children: [ - Expanded( - child: Container( + Container( margin: EdgeInsets.all(2.5), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( - 'Priority', - fontSize: - 1.7 * SizeConfig.textMultiplier, + 'Referring Clinic', + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - '${widget.myReferredPatientModel.priorityDescription}', - fontSize: - 1.7 * SizeConfig.textMultiplier, + '${widget.myReferredPatientModel.referralClinicDescription}', + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.w300, ) ], ), ), - ), - Expanded( - child: Container( + Container( margin: EdgeInsets.only( left: 4, top: 2.5, @@ -232,24 +169,75 @@ class _MyReferredPatientWidgetState extends State { padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( - 'Max Response Time', - fontSize: - 1.7 * SizeConfig.textMultiplier, + 'Frequency', + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - Helpers.getDateFormatted(widget - .myReferredPatientModel - .maxResponseTime), - fontSize: - 1.7 * SizeConfig.textMultiplier, + widget.myReferredPatientModel + .frequencyDescription, + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.w300, ) ], ), + ) + ], + ), + TableRow(children: [ + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'Priority', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferredPatientModel.priorityDescription}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], + ), + ), + Container( + margin: EdgeInsets.only( + left: 4, + top: 2.5, + right: 2.5, + bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + 'Max Response Time', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + Helpers.getDateFormatted(widget + .myReferredPatientModel + .maxResponseTime), + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), ) ]) From 644cfac790b61decd4b5271e670f736eb39e892c Mon Sep 17 00:00:00 2001 From: Mohammad ALjammal Date: Thu, 4 Jun 2020 20:33:58 +0300 Subject: [PATCH 4/6] change design prescription and add new services --- .../prescription_report_for_in_patient.dart | 200 ++++++++++++++++++ ...st_prescription_report_for_in_patient.dart | 64 ++++++ lib/providers/patients_provider.dart | 132 +++++++----- .../prescriptions/prescriptions_screen.dart | 51 +++-- 4 files changed, 378 insertions(+), 69 deletions(-) create mode 100644 lib/models/patient/prescription_report_for_in_patient.dart create mode 100644 lib/models/patient/reauest_prescription_report_for_in_patient.dart diff --git a/lib/models/patient/prescription_report_for_in_patient.dart b/lib/models/patient/prescription_report_for_in_patient.dart new file mode 100644 index 00000000..d4452e32 --- /dev/null +++ b/lib/models/patient/prescription_report_for_in_patient.dart @@ -0,0 +1,200 @@ +class PrescriptionReportForInPatient { + int admissionNo; + int authorizedBy; + Null bedNo; + String comments; + int createdBy; + String createdByName; + Null createdByNameN; + String createdOn; + String direction; + int directionID; + Null directionN; + String dose; + int editedBy; + Null iVDiluentLine; + int iVDiluentType; + Null iVDiluentVolume; + Null iVRate; + Null iVStability; + String itemDescription; + int itemID; + int lineItemNo; + int locationId; + int noOfDoses; + int orderNo; + int patientID; + String pharmacyRemarks; + String prescriptionDatetime; + int prescriptionNo; + String processedBy; + int projectID; + int refillID; + String refillType; + Null refillTypeN; + int reviewedPharmacist; + Null roomId; + String route; + int routeId; + Null routeN; + Null setupID; + String startDatetime; + int status; + String statusDescription; + Null statusDescriptionN; + String stopDatetime; + int unitofMeasurement; + String unitofMeasurementDescription; + Null unitofMeasurementDescriptionN; + + PrescriptionReportForInPatient( + {this.admissionNo, + this.authorizedBy, + this.bedNo, + this.comments, + this.createdBy, + this.createdByName, + this.createdByNameN, + this.createdOn, + this.direction, + this.directionID, + this.directionN, + this.dose, + this.editedBy, + this.iVDiluentLine, + this.iVDiluentType, + this.iVDiluentVolume, + this.iVRate, + this.iVStability, + this.itemDescription, + this.itemID, + this.lineItemNo, + this.locationId, + this.noOfDoses, + this.orderNo, + this.patientID, + this.pharmacyRemarks, + this.prescriptionDatetime, + this.prescriptionNo, + this.processedBy, + this.projectID, + this.refillID, + this.refillType, + this.refillTypeN, + this.reviewedPharmacist, + this.roomId, + this.route, + this.routeId, + this.routeN, + this.setupID, + this.startDatetime, + this.status, + this.statusDescription, + this.statusDescriptionN, + this.stopDatetime, + this.unitofMeasurement, + this.unitofMeasurementDescription, + this.unitofMeasurementDescriptionN}); + + PrescriptionReportForInPatient.fromJson(Map json) { + admissionNo = json['AdmissionNo']; + authorizedBy = json['AuthorizedBy']; + bedNo = json['BedNo']; + comments = json['Comments']; + createdBy = json['CreatedBy']; + createdByName = json['CreatedByName']; + createdByNameN = json['CreatedByNameN']; + createdOn = json['CreatedOn']; + direction = json['Direction']; + directionID = json['DirectionID']; + directionN = json['DirectionN']; + dose = json['Dose']; + editedBy = json['EditedBy']; + iVDiluentLine = json['IVDiluentLine']; + iVDiluentType = json['IVDiluentType']; + iVDiluentVolume = json['IVDiluentVolume']; + iVRate = json['IVRate']; + iVStability = json['IVStability']; + itemDescription = json['ItemDescription']; + itemID = json['ItemID']; + lineItemNo = json['LineItemNo']; + locationId = json['LocationId']; + noOfDoses = json['NoOfDoses']; + orderNo = json['OrderNo']; + patientID = json['PatientID']; + pharmacyRemarks = json['PharmacyRemarks']; + prescriptionDatetime = json['PrescriptionDatetime']; + prescriptionNo = json['PrescriptionNo']; + processedBy = json['ProcessedBy']; + projectID = json['ProjectID']; + refillID = json['RefillID']; + refillType = json['RefillType']; + refillTypeN = json['RefillTypeN']; + reviewedPharmacist = json['ReviewedPharmacist']; + roomId = json['RoomId']; + route = json['Route']; + routeId = json['RouteId']; + routeN = json['RouteN']; + setupID = json['SetupID']; + startDatetime = json['StartDatetime']; + status = json['Status']; + statusDescription = json['StatusDescription']; + statusDescriptionN = json['StatusDescriptionN']; + stopDatetime = json['StopDatetime']; + unitofMeasurement = json['UnitofMeasurement']; + unitofMeasurementDescription = json['UnitofMeasurementDescription']; + unitofMeasurementDescriptionN = json['UnitofMeasurementDescriptionN']; + } + + Map toJson() { + final Map data = new Map(); + data['AdmissionNo'] = this.admissionNo; + data['AuthorizedBy'] = this.authorizedBy; + data['BedNo'] = this.bedNo; + data['Comments'] = this.comments; + data['CreatedBy'] = this.createdBy; + data['CreatedByName'] = this.createdByName; + data['CreatedByNameN'] = this.createdByNameN; + data['CreatedOn'] = this.createdOn; + data['Direction'] = this.direction; + data['DirectionID'] = this.directionID; + data['DirectionN'] = this.directionN; + data['Dose'] = this.dose; + data['EditedBy'] = this.editedBy; + data['IVDiluentLine'] = this.iVDiluentLine; + data['IVDiluentType'] = this.iVDiluentType; + data['IVDiluentVolume'] = this.iVDiluentVolume; + data['IVRate'] = this.iVRate; + data['IVStability'] = this.iVStability; + data['ItemDescription'] = this.itemDescription; + data['ItemID'] = this.itemID; + data['LineItemNo'] = this.lineItemNo; + data['LocationId'] = this.locationId; + data['NoOfDoses'] = this.noOfDoses; + data['OrderNo'] = this.orderNo; + data['PatientID'] = this.patientID; + data['PharmacyRemarks'] = this.pharmacyRemarks; + data['PrescriptionDatetime'] = this.prescriptionDatetime; + data['PrescriptionNo'] = this.prescriptionNo; + data['ProcessedBy'] = this.processedBy; + data['ProjectID'] = this.projectID; + data['RefillID'] = this.refillID; + data['RefillType'] = this.refillType; + data['RefillTypeN'] = this.refillTypeN; + data['ReviewedPharmacist'] = this.reviewedPharmacist; + data['RoomId'] = this.roomId; + data['Route'] = this.route; + data['RouteId'] = this.routeId; + data['RouteN'] = this.routeN; + data['SetupID'] = this.setupID; + data['StartDatetime'] = this.startDatetime; + data['Status'] = this.status; + data['StatusDescription'] = this.statusDescription; + data['StatusDescriptionN'] = this.statusDescriptionN; + data['StopDatetime'] = this.stopDatetime; + data['UnitofMeasurement'] = this.unitofMeasurement; + data['UnitofMeasurementDescription'] = this.unitofMeasurementDescription; + data['UnitofMeasurementDescriptionN'] = this.unitofMeasurementDescriptionN; + return data; + } +} diff --git a/lib/models/patient/reauest_prescription_report_for_in_patient.dart b/lib/models/patient/reauest_prescription_report_for_in_patient.dart new file mode 100644 index 00000000..857705c4 --- /dev/null +++ b/lib/models/patient/reauest_prescription_report_for_in_patient.dart @@ -0,0 +1,64 @@ +class RequestPrescriptionReportForInPatient { + int patientID; + int projectID; + int admissionNo; + int languageID; + String stamp; + String iPAdress; + double versionID; + int channel; + String tokenID; + String sessionID; + bool isLoginForDoctorApp; + bool patientOutSA; + int patientTypeID; + + RequestPrescriptionReportForInPatient( + {this.patientID, + this.projectID, + this.admissionNo, + this.languageID, + this.stamp, + this.iPAdress, + this.versionID, + this.channel, + this.tokenID, + this.sessionID, + this.isLoginForDoctorApp, + this.patientOutSA, + this.patientTypeID}); + + RequestPrescriptionReportForInPatient.fromJson(Map json) { + patientID = json['PatientID']; + projectID = json['ProjectID']; + admissionNo = json['AdmissionNo']; + languageID = json['LanguageID']; + stamp = json['stamp']; + iPAdress = json['IPAdress']; + versionID = json['VersionID']; + channel = json['Channel']; + tokenID = json['TokenID']; + sessionID = json['SessionID']; + isLoginForDoctorApp = json['IsLoginForDoctorApp']; + patientOutSA = json['PatientOutSA']; + patientTypeID = json['PatientTypeID']; + } + + Map toJson() { + final Map data = new Map(); + data['PatientID'] = this.patientID; + data['ProjectID'] = this.projectID; + data['AdmissionNo'] = this.admissionNo; + data['LanguageID'] = this.languageID; + data['stamp'] = this.stamp; + data['IPAdress'] = this.iPAdress; + data['VersionID'] = this.versionID; + data['Channel'] = this.channel; + data['TokenID'] = this.tokenID; + data['SessionID'] = this.sessionID; + data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp; + data['PatientOutSA'] = this.patientOutSA; + data['PatientTypeID'] = this.patientTypeID; + return data; + } +} diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index 7ff73724..9bf8d34b 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -6,6 +6,7 @@ import 'package:doctor_app_flutter/models/patient/lab_orders_res_model.dart'; import 'package:doctor_app_flutter/models/patient/lab_result.dart'; import 'package:doctor_app_flutter/models/patient/lab_result_req_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; +import 'package:doctor_app_flutter/models/patient/prescription_report_for_in_patient.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:flutter/cupertino.dart'; @@ -25,8 +26,7 @@ import '../util/helpers.dart'; Helpers helpers = Helpers(); -class PatientsProvider with ChangeNotifier -{ +class PatientsProvider with ChangeNotifier { bool isLoading = false; bool isError = false; String error = ''; @@ -35,10 +35,10 @@ class PatientsProvider with ChangeNotifier List patientLabResultOrdersList = []; List patientPrescriptionsList = []; List patientRadiologyList = []; + List prescriptionReportForInPatientList = []; - - /*@author: ibrahe albitar - *@Date:2/6/2020 + /*@author: ibrahe albitar + *@Date:2/6/2020 *@desc: getPatientPrescriptions */ @@ -48,7 +48,7 @@ class PatientsProvider with ChangeNotifier var insuranceApporvalsList = []; Client client = - HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); + HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); PatiantInformtion _selectedPatient; @@ -211,17 +211,15 @@ class PatientsProvider with ChangeNotifier *@Date:3/5/2020 *@param: patient *@return: - *@desc: getPatientPrescriptions + *@desc: geOutPatientPrescriptions */ getOutPatientPrescriptions(patient) async { - // isLoading = true; - // notifyListeners(); setBasicData(); try { if (await Helpers.checkConnection()) { final response = - await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient)); + await AppClient.post(GET_PRESCRIPTION, body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -253,6 +251,37 @@ class PatientsProvider with ChangeNotifier } } + /*@author: Mohammad Aljammal + *@Date:4/6/2020 + *@param: patient + *@return: + *@desc: getInPatientPrescriptions + */ + getInPatientPrescriptions(patient) async { + setBasicData(); + try { + prescriptionReportForInPatientList = []; + notifyListeners(); + await BaseAppClient.post( + 'DoctorApplication.svc/REST/GetPrescriptionReportForInPatient', + onSuccess: (dynamic response, int statusCode) { + response['List_PrescriptionReportForInPatient'].forEach((v) { + prescriptionReportForInPatientList + .add(PrescriptionReportForInPatient.fromJson(v)); + }); + isError = false; + isLoading = false; + }, onFailure: (String error, int statusCode) { + isError = true; + this.error = error; + }, body: patient); + notifyListeners(); + + } catch (err) { + handelCatchErrorCase(err); + } + } + /*@author: Elham Rababah *@Date:12/5/2020 *@param: patient @@ -280,7 +309,7 @@ class PatientsProvider with ChangeNotifier try { if (await Helpers.checkConnection()) { final response = - await AppClient.post(GET_RADIOLOGY, body: json.encode(patient)); + await AppClient.post(GET_RADIOLOGY, body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -311,7 +340,6 @@ class PatientsProvider with ChangeNotifier } } - getLabResult(LabOrdersResModel labOrdersResModel) async { labResultList.clear(); isLoading = true; @@ -321,15 +349,14 @@ class PatientsProvider with ChangeNotifier requestLabResult.orderNo = labOrdersResModel.orderNo; requestLabResult.invoiceNo = labOrdersResModel.invoiceNo; requestLabResult.patientTypeID = labOrdersResModel.patientType; - await BaseAppClient.post( - 'DoctorApplication.svc/REST/GetPatientLabResults', + await BaseAppClient.post('DoctorApplication.svc/REST/GetPatientLabResults', onSuccess: (dynamic response, int statusCode) { - isError = false; - isLoading = false; - response['List_GetLabNormal'].forEach((v) { - labResultList.add(new LabResult.fromJson(v)); - }); - }, onFailure: (String error, int statusCode) { + isError = false; + isLoading = false; + response['List_GetLabNormal'].forEach((v) { + labResultList.add(new LabResult.fromJson(v)); + }); + }, onFailure: (String error, int statusCode) { isError = true; isLoading = false; this.error = error; @@ -337,13 +364,12 @@ class PatientsProvider with ChangeNotifier notifyListeners(); } - getPatientInsuranceApprovals(patient) async { setBasicData(); try { if (await Helpers.checkConnection()) { - final response = await AppClient.post( - PATIENT_INSURANCE_APPROVALS_URL, body: json.encode(patient)); + final response = await AppClient.post(PATIENT_INSURANCE_APPROVALS_URL, + body: json.encode(patient)); final int statusCode = response.statusCode; isLoading = false; @@ -372,44 +398,40 @@ class PatientsProvider with ChangeNotifier } } -/*@author: ibrahe albitar - *@Date:2/6/2020 +/*@author: ibrahe albitar + *@Date:2/6/2020 *@desc: getPatientPrescriptions */ getPatientProgressNote(patient) async { - setBasicData(); - try { - if (await Helpers.checkConnection()) { - final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL, - body: json.encode(patient)); - final int statusCode = response.statusCode; - isLoading = false; - - if (statusCode < 200 || statusCode >= 400 || json == null) { - isError = true; - error = 'Error While Fetching data'; + setBasicData(); + try { + if (await Helpers.checkConnection()) { + final response = await AppClient.post(PATIENT_PROGRESS_NOTE_URL, + body: json.encode(patient)); + final int statusCode = response.statusCode; + isLoading = false; + + if (statusCode < 200 || statusCode >= 400 || json == null) { + isError = true; + error = 'Error While Fetching data'; + } else { + var res = json.decode(response.body); + print('$res'); + if (res['MessageStatus'] == 1) { + patientProgressNoteList = res['List_GetPregressNoteForInPatient']; } else { - var res = json.decode(response.body); - print('$res'); - if (res['MessageStatus'] == 1) { - patientProgressNoteList = res['List_GetPregressNoteForInPatient']; - } else { - isError = true; - error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; - } + isError = true; + error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; } - } else { - isLoading = false; - isError = true; - error = 'Please Check The Internet Connection'; } - notifyListeners(); - } catch (err) { - handelCatchErrorCase(err); + } else { + isLoading = false; + isError = true; + error = 'Please Check The Internet Connection'; } + notifyListeners(); + } catch (err) { + handelCatchErrorCase(err); } - - - - + } } diff --git a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart index aa1d193c..c246d9ff 100644 --- a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart +++ b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart @@ -1,3 +1,4 @@ +import 'package:doctor_app_flutter/models/patient/reauest_prescription_report_for_in_patient.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart'; import 'package:flutter/cupertino.dart'; @@ -47,14 +48,23 @@ class _PrescriptionScreenState extends State { String token = await sharedPref.getString(TOKEN); String type = await sharedPref.getString(SLECTED_PATIENT_TYPE); - PrescriptionReqModel prescriptionReqModel = PrescriptionReqModel( - patientID: patient.patientId, - projectID: patient.projectId, - tokenID: token, - patientTypeID: patient.patientType, - languageID: 2, - setupID: 0); - patientsProv.getOutPatientPrescriptions(prescriptionReqModel.toJson()); + if (type == '1') { + RequestPrescriptionReportForInPatient prescriptionReqModel = + RequestPrescriptionReportForInPatient( + patientID: patient.patientId, + patientTypeID: patient.patientType, + admissionNo: int.parse(patient.admissionNo)); + patientsProv.getInPatientPrescriptions(prescriptionReqModel.toJson()); + } else { + PrescriptionReqModel prescriptionReqModel = PrescriptionReqModel( + patientID: patient.patientId, + projectID: patient.projectId, + tokenID: token, + patientTypeID: patient.patientType, + languageID: 2, + setupID: 0); + patientsProv.getOutPatientPrescriptions(prescriptionReqModel.toJson()); + } } @override @@ -98,25 +108,38 @@ class _PrescriptionScreenState extends State { Row( children: [ LargeAvatar( - url: patientsProv.patientPrescriptionsList[index].doctorImageURL,name:patientsProv.patientPrescriptionsList[index].doctorName ,radius: 10,width: 70,), + url: patientsProv + .patientPrescriptionsList[index] + .doctorImageURL, + name: patientsProv + .patientPrescriptionsList[index] + .doctorName, + radius: 10, + width: 70, + ), Expanded( child: Container( - margin: EdgeInsets.only(left: 15,right: 15), + margin: EdgeInsets.only( + left: 15, right: 15), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( '${patientsProv.patientPrescriptionsList[index].name}', - fontSize: 2.5 * SizeConfig.textMultiplier, + fontSize: 2.5 * + SizeConfig.textMultiplier, ), SizedBox( height: 8, ), AppText( '${patientsProv.patientPrescriptionsList[index].clinicDescription}', - fontSize: 2.5 * SizeConfig.textMultiplier, - color: Theme.of(context).primaryColor), + fontSize: 2.5 * + SizeConfig + .textMultiplier, + color: Theme.of(context) + .primaryColor), SizedBox( height: 8, ), From 05525fd87ca379d599923e990ce7138b5fd7b205 Mon Sep 17 00:00:00 2001 From: Mohammad ALjammal Date: Thu, 4 Jun 2020 21:09:22 +0300 Subject: [PATCH 5/6] fix issues in My Referred Patient widget --- .../doctor/my_referred_patient_widget.dart | 240 +++++++++--------- 1 file changed, 114 insertions(+), 126 deletions(-) diff --git a/lib/widgets/doctor/my_referred_patient_widget.dart b/lib/widgets/doctor/my_referred_patient_widget.dart index 1af712ff..0ff1e433 100644 --- a/lib/widgets/doctor/my_referred_patient_widget.dart +++ b/lib/widgets/doctor/my_referred_patient_widget.dart @@ -87,144 +87,81 @@ class _MyReferredPatientWidgetState extends State { ), children: [ TableRow(children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - decoration: BoxDecoration(), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).fileNo, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferredPatientModel.patientId}', - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + decoration: BoxDecoration(), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context).fileNo, + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferredPatientModel.patientId}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), ), - Expanded( - child: Container( - margin: EdgeInsets.only( - left: 4, - top: 2.5, - right: 2.5, - bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).referralDoctor, - fontSize: - 1.7 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - Texts( - widget.myReferredPatientModel - .referralDoctorName, - maxLength: 80, - readMore: true, - ), - ], - ), + Container( + margin: EdgeInsets.only( + left: 4, + top: 2.5, + right: 2.5, + bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context).referralDoctor, + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + Texts( + widget.myReferredPatientModel + .referralDoctorName, + maxLength: 80, + readMore: true, + ), + ], ), ), ]), TableRow( children: [ - Expanded( - child: Container( - margin: EdgeInsets.all(2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).referringClinic, - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - '${widget.myReferredPatientModel.referralClinicDescription}', - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ), - Expanded( - child: Container( - margin: EdgeInsets.only( - left: 4, - top: 2.5, - right: 2.5, - bottom: 2.5), - padding: EdgeInsets.all(5), - child: Column( - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase.of(context).frequency, - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, - ), - AppText( - widget.myReferredPatientModel - .frequencyDescription, - fontSize: 1.7 * - SizeConfig.textMultiplier, - fontWeight: FontWeight.w300, - ) - ], - ), - ), - ) - ], - ), - TableRow(children: [ - Expanded( - child: Container( + Container( margin: EdgeInsets.all(2.5), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( - TranslationBase.of(context).priority, - fontSize: - 1.7 * SizeConfig.textMultiplier, + TranslationBase.of(context).referringClinic, + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - '${widget.myReferredPatientModel.priorityDescription}', - fontSize: - 1.7 * SizeConfig.textMultiplier, + '${widget.myReferredPatientModel.referralClinicDescription}', + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.w300, ) ], ), ), - ), - Expanded( - child: Container( + Container( margin: EdgeInsets.only( left: 4, top: 2.5, @@ -233,24 +170,75 @@ class _MyReferredPatientWidgetState extends State { padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: - CrossAxisAlignment.start, + CrossAxisAlignment.start, children: [ AppText( - TranslationBase.of(context).maxResponseTime, - fontSize: - 1.7 * SizeConfig.textMultiplier, + TranslationBase.of(context).frequency, + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.bold, ), AppText( - Helpers.getDateFormatted(widget - .myReferredPatientModel - .maxResponseTime), - fontSize: - 1.7 * SizeConfig.textMultiplier, + widget.myReferredPatientModel + .frequencyDescription, + fontSize: 1.7 * + SizeConfig.textMultiplier, fontWeight: FontWeight.w300, ) ], ), + ) + ], + ), + TableRow(children: [ + Container( + margin: EdgeInsets.all(2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context).priority, + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + '${widget.myReferredPatientModel.priorityDescription}', + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], + ), + ), + Container( + margin: EdgeInsets.only( + left: 4, + top: 2.5, + right: 2.5, + bottom: 2.5), + padding: EdgeInsets.all(5), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context).maxResponseTime, + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), + AppText( + Helpers.getDateFormatted(widget + .myReferredPatientModel + .maxResponseTime), + fontSize: + 1.7 * SizeConfig.textMultiplier, + fontWeight: FontWeight.w300, + ) + ], ), ) ]) From 6d8289a0d4f7c811e1ed7268a9347a4f8d8a7ac1 Mon Sep 17 00:00:00 2001 From: Mohammad ALjammal Date: Sun, 7 Jun 2020 14:37:27 +0300 Subject: [PATCH 6/6] change bottom bar navigation --- lib/landing_page.dart | 98 ++++++++++++ lib/main.dart | 6 +- lib/routes.dart | 3 +- lib/screens/auth/change_password_screen.dart | 2 - lib/screens/auth/login_screen.dart | 3 +- .../auth/verification_methods_screen.dart | 3 +- lib/screens/auth/verify_account_screen.dart | 3 +- lib/screens/dashboard_screen.dart | 48 +++--- lib/screens/doctor/doctor_reply_screen.dart | 1 - lib/screens/doctor/message_screen.dart | 4 +- .../doctor/my_referral_patient_screen.dart | 2 - .../doctor/my_referred_patient_screen.dart | 2 - lib/screens/doctor/my_schedule_screen.dart | 6 +- lib/screens/doctor/services_screen.dart | 4 +- .../patients/patient_search_screen.dart | 2 - lib/screens/patients/patients_screen.dart | 2 - .../profile/insurance_approvals_screen.dart | 2 - .../profile/lab_result/lab_orders_screen.dart | 2 - .../lab_result/lab_result_secreen.dart | 2 - .../profile/patient_orders_screen.dart | 2 - .../profile/patient_profile_screen.dart | 3 - .../prescriptions/prescriptions_screen.dart | 2 - .../profile/progress_note_screen.dart | 2 - .../radiology/radiology_report_screen.dart | 2 - .../profile/radiology/radiology_screen.dart | 2 - .../profile/vital_sign/vital_sign_screen.dart | 2 - lib/widgets/shared/app_scaffold_widget.dart | 141 ++---------------- lib/widgets/shared/bottom_nav_bar.dart | 75 ++++++++++ .../shared/bottom_navigation_item.dart | 68 +++++++++ 29 files changed, 293 insertions(+), 201 deletions(-) create mode 100644 lib/landing_page.dart create mode 100644 lib/widgets/shared/bottom_nav_bar.dart create mode 100644 lib/widgets/shared/bottom_navigation_item.dart diff --git a/lib/landing_page.dart b/lib/landing_page.dart new file mode 100644 index 00000000..a9f844f8 --- /dev/null +++ b/lib/landing_page.dart @@ -0,0 +1,98 @@ +import 'package:doctor_app_flutter/screens/dashboard_screen.dart'; +import 'package:doctor_app_flutter/screens/doctor/message_screen.dart'; +import 'package:doctor_app_flutter/screens/doctor/my_schedule_screen.dart'; +import 'package:doctor_app_flutter/screens/doctor/services_screen.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_drawer_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/bottom_nav_bar.dart'; +import 'package:doctor_app_flutter/widgets/shared/profile_image_widget.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:hexcolor/hexcolor.dart'; + + +class LandingPage extends StatefulWidget { + @override + _LandingPageState createState() => _LandingPageState(); +} + +class _LandingPageState extends State { + int currentTab = 0; + PageController pageController; + + _changeCurrentTab(int tab) { + setState(() { + currentTab = tab; + pageController.jumpToPage(tab); + }); + } + + @override + void initState() { + super.initState(); + pageController = new PageController(keepPage: true); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: Hexcolor('#515B5D'), + textTheme: TextTheme( + headline6: TextStyle(color: Colors.white, fontWeight: FontWeight.bold)), + title: Text(getText(currentTab).toUpperCase()), + leading: Builder( + builder: (BuildContext context) { + return IconButton( + icon: Icon(Icons.menu), + color: Colors.white, + onPressed: () => Scaffold.of(context).openDrawer(), + ); + }, + ), + centerTitle: true, + actions: [ + ProfileImageWidget( + height: 50, + width: 50, + url: + "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", + ) + ], + ), + drawer: Theme( + data: Theme.of(context).copyWith( + canvasColor: Colors.transparent, + ), + child: SafeArea(child: AppDrawer()), + ), + extendBody: true, + body: PageView( + physics: NeverScrollableScrollPhysics(), + controller: pageController, + children: [ + DashboardScreen(), + MessagesScreen(), + MyScheduleScreen(), + ServicesScreen() + ], + ), + bottomNavigationBar: BottomNavBar(changeIndex: _changeCurrentTab), + + ); + } + + getText(currentTab) { + switch (currentTab) { + case 0: + return "HOME"; + case 1: + return "REPLAY"; + case 2: + return "SCHEDULE"; + case 3: + return 'SERVICES'; + + } + } +} \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index 2ab87a2a..470c5d52 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,5 @@ import 'package:doctor_app_flutter/providers/project_provider.dart'; +import 'package:doctor_app_flutter/providers/schedule_provider.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; @@ -26,7 +27,8 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider(create: (context) => PatientsProvider()), ChangeNotifierProvider(create: (context) => AuthProvider()), ChangeNotifierProvider(create: (context) => HospitalProvider()), - ChangeNotifierProvider(create: (context) => ProjectProvider(),) + ChangeNotifierProvider(create: (context) => ProjectProvider(),), + ChangeNotifierProvider(create: (context) => ScheduleProvider(),) ], child: Consumer( builder: (context,projectProvider,child) => MaterialApp( @@ -47,7 +49,7 @@ class MyApp extends StatelessWidget { primaryColor: Colors.grey, buttonColor: Hexcolor('#B8382C'), fontFamily: 'WorkSans', - dividerColor: Colors.grey[200], + dividerColor: Colors.grey[350], backgroundColor: Color.fromRGBO(255,255,255, 1) ), initialRoute: INIT_ROUTE, diff --git a/lib/routes.dart b/lib/routes.dart index f90e1ba9..a24cfe52 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -26,6 +26,7 @@ import './screens/patients/profile/vital_sign/vital_sign_item_details_screen.dar import './screens/patients/profile/vital_sign/vital_sign_screen.dart'; import './screens/profile_screen.dart'; import './screens/settings/settings_screen.dart'; +import 'landing_page.dart'; import 'screens/doctor/doctor_reply_screen.dart'; const String INIT_ROUTE = LOGIN; @@ -59,7 +60,7 @@ const String VITAL_SIGN_DETAILS = 'patients/vital-sign-details'; const String BODY_MEASUREMENTS = 'patients/body-measurements'; var routes = { - HOME: (_) => DashboardScreen(), + HOME: (_) => LandingPage(), LOGIN: (_) => Loginsreen(), PROFILE: (_) => ProfileScreen(), MY_SCHEDULE: (_) => MyScheduleScreen(), diff --git a/lib/screens/auth/change_password_screen.dart b/lib/screens/auth/change_password_screen.dart index dc57b99d..6fa15bfd 100644 --- a/lib/screens/auth/change_password_screen.dart +++ b/lib/screens/auth/change_password_screen.dart @@ -7,10 +7,8 @@ import '../../widgets/auth/change_password.dart'; class ChangePasswordScreen extends StatelessWidget { @override Widget build(BuildContext context) { - // return Container()]; return AppScaffold( - pageOnly: true, body: SafeArea( child: ListView(children: [ Container( diff --git a/lib/screens/auth/login_screen.dart b/lib/screens/auth/login_screen.dart index d8c45a57..8b25d21d 100644 --- a/lib/screens/auth/login_screen.dart +++ b/lib/screens/auth/login_screen.dart @@ -57,8 +57,7 @@ class _LoginsreenState extends State { Widget build(BuildContext context) { getSharedPref(); return AppScaffold( - pageOnly: true, - isloading: _isLoading, + isLoading: _isLoading, body: SafeArea( child: ListView(children: [ FutureBuilder( diff --git a/lib/screens/auth/verification_methods_screen.dart b/lib/screens/auth/verification_methods_screen.dart index 89193c65..830530c9 100644 --- a/lib/screens/auth/verification_methods_screen.dart +++ b/lib/screens/auth/verification_methods_screen.dart @@ -37,8 +37,7 @@ class _VerificationMethodsScreenState extends State { @override Widget build(BuildContext context) { return AppScaffold( - pageOnly: true, - isloading: _isLoading, + isLoading: _isLoading, body: ListView(children: [ Container( margin: EdgeInsetsDirectional.fromSTEB(30, 0, 30, 0), diff --git a/lib/screens/auth/verify_account_screen.dart b/lib/screens/auth/verify_account_screen.dart index 15eb846b..58a54144 100644 --- a/lib/screens/auth/verify_account_screen.dart +++ b/lib/screens/auth/verify_account_screen.dart @@ -30,8 +30,7 @@ class _VerifyAccountScreenState extends State { Widget build(BuildContext context) { // return Container()]; return AppScaffold( - isloading: _isLoading, - pageOnly: true, + isLoading: _isLoading, body: SafeArea( child: ListView(children: [ Container( diff --git a/lib/screens/dashboard_screen.dart b/lib/screens/dashboard_screen.dart index 79c492a8..8f123664 100644 --- a/lib/screens/dashboard_screen.dart +++ b/lib/screens/dashboard_screen.dart @@ -33,14 +33,14 @@ class DashboardScreen extends StatefulWidget { class _DashboardScreenState extends State { HospitalProvider projectsProvider; + @override Widget build(BuildContext context) { projectsProvider = Provider.of(context); - return AppScaffold( - appBarTitle: TranslationBase.of(context).dashboardScreenToolbarTitle, - current: 0, - body: Container( - child: new SingleChildScrollView( + return SafeArea( + bottom: true, + child: Scaffold( + body: SingleChildScrollView( child: SizedBox( height: MediaQuery.of(context).size.height, child: Column( @@ -99,13 +99,13 @@ class _DashboardScreenState extends State { flex: 1, child: Column( crossAxisAlignment: - CrossAxisAlignment.stretch, + CrossAxisAlignment.stretch, children: [ Expanded( child: DashboardItemTexts( - "Arrived", - "23", - )), + "Arrived", + "23", + )), Expanded( child: DashboardItemTexts( "Not Arrived", @@ -117,21 +117,21 @@ class _DashboardScreenState extends State { ), Expanded( child: Column( - crossAxisAlignment: + crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Expanded( - child: DashboardItemTexts( - "ER", - "23", - )), - Expanded( - child: DashboardItemTexts( - "Walk-in", - "23", + children: [ + Expanded( + child: DashboardItemTexts( + "ER", + "23", + )), + Expanded( + child: DashboardItemTexts( + "Walk-in", + "23", + )), + ], )), - ], - )), ], ), )) @@ -376,7 +376,9 @@ class _DashboardScreenState extends State { // , //constraints: new BoxConstraints(), ), - ))); + ), + ), + ); // Container( diff --git a/lib/screens/doctor/doctor_reply_screen.dart b/lib/screens/doctor/doctor_reply_screen.dart index 73585593..dae9b5a5 100644 --- a/lib/screens/doctor/doctor_reply_screen.dart +++ b/lib/screens/doctor/doctor_reply_screen.dart @@ -31,7 +31,6 @@ class DoctorReplyScreen extends StatelessWidget { _doctorReplyProvider = Provider.of(context); return AppScaffold( appBarTitle: TranslationBase.of(context).doctorReply, - showAppDrawer: false, body:_doctorReplyProvider.isLoading? DrAppCircularProgressIndeicator(): _doctorReplyProvider.isError? Center( child: Text( diff --git a/lib/screens/doctor/message_screen.dart b/lib/screens/doctor/message_screen.dart index 1321c4fc..18c6bf93 100644 --- a/lib/screens/doctor/message_screen.dart +++ b/lib/screens/doctor/message_screen.dart @@ -5,9 +5,7 @@ import 'package:flutter/material.dart'; class MessagesScreen extends StatelessWidget { @override Widget build(BuildContext context) { - return AppScaffold( - current: 1, - appBarTitle: TranslationBase.of(context).messagesScreenToolbarTitle, + return Scaffold( body: Center( child: Text('Messages heeer'), ), diff --git a/lib/screens/doctor/my_referral_patient_screen.dart b/lib/screens/doctor/my_referral_patient_screen.dart index 4c95663a..d79313e4 100644 --- a/lib/screens/doctor/my_referral_patient_screen.dart +++ b/lib/screens/doctor/my_referral_patient_screen.dart @@ -17,8 +17,6 @@ class MyReferralPatient extends StatelessWidget { Widget build(BuildContext context) { referralPatientProvider = Provider.of(context); return AppScaffold( - showBottomBar: false, - showAppDrawer: false, appBarTitle: 'My Referral Patient', body: referralPatientProvider.isLoading ? DrAppCircularProgressIndeicator() diff --git a/lib/screens/doctor/my_referred_patient_screen.dart b/lib/screens/doctor/my_referred_patient_screen.dart index bfed1ef3..e2220855 100644 --- a/lib/screens/doctor/my_referred_patient_screen.dart +++ b/lib/screens/doctor/my_referred_patient_screen.dart @@ -18,8 +18,6 @@ class MyReferredPatient extends StatelessWidget { Widget build(BuildContext context) { referredPatientProvider = Provider.of(context); return AppScaffold( - showBottomBar: false, - showAppDrawer: false, appBarTitle: 'My Referred Patient', body: referredPatientProvider.isLoading ? DrAppCircularProgressIndeicator() diff --git a/lib/screens/doctor/my_schedule_screen.dart b/lib/screens/doctor/my_schedule_screen.dart index dd40dada..f7b9d444 100644 --- a/lib/screens/doctor/my_schedule_screen.dart +++ b/lib/screens/doctor/my_schedule_screen.dart @@ -15,11 +15,7 @@ class MyScheduleScreen extends StatelessWidget { @override Widget build(BuildContext context) { scheduleProvider = Provider.of(context); - return AppScaffold( - // pageOnly: false, - showBottomBar: false, - showAppDrawer: false, - appBarTitle: TranslationBase.of(context).mySchedule, + return Scaffold( body: scheduleProvider.isLoading ? DrAppCircularProgressIndeicator() : scheduleProvider.isError diff --git a/lib/screens/doctor/services_screen.dart b/lib/screens/doctor/services_screen.dart index fd599ecc..1000e694 100644 --- a/lib/screens/doctor/services_screen.dart +++ b/lib/screens/doctor/services_screen.dart @@ -4,9 +4,7 @@ import 'package:flutter/material.dart'; class ServicesScreen extends StatelessWidget { @override Widget build(BuildContext context) { - return AppScaffold( - current: 2, - appBarTitle: 'Services', + return Scaffold( body: Center( child: Text('Services heeer'), ), diff --git a/lib/screens/patients/patient_search_screen.dart b/lib/screens/patients/patient_search_screen.dart index ba136dbf..dffe342c 100644 --- a/lib/screens/patients/patient_search_screen.dart +++ b/lib/screens/patients/patient_search_screen.dart @@ -113,8 +113,6 @@ class _PatientSearchScreenState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "SEARCH FOR PATIENT", - showBottomBar: false, - showAppDrawer: false, body: ListView( children: [ RoundedContainer( diff --git a/lib/screens/patients/patients_screen.dart b/lib/screens/patients/patients_screen.dart index e958244f..af760056 100644 --- a/lib/screens/patients/patients_screen.dart +++ b/lib/screens/patients/patients_screen.dart @@ -296,8 +296,6 @@ class _PatientsScreenState extends State { PatientsProvider patientsProv = Provider.of(context); return AppScaffold( - showBottomBar: false, - showAppDrawer: false, appBarTitle: patientTypetitle, body: _isLoading ? DrAppCircularProgressIndeicator() diff --git a/lib/screens/patients/profile/insurance_approvals_screen.dart b/lib/screens/patients/profile/insurance_approvals_screen.dart index 2015e106..bb88321d 100644 --- a/lib/screens/patients/profile/insurance_approvals_screen.dart +++ b/lib/screens/patients/profile/insurance_approvals_screen.dart @@ -77,8 +77,6 @@ class _InsuranceApprovalsState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Insurance Approvals", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError 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 66991967..b0a4a13d 100644 --- a/lib/screens/patients/profile/lab_result/lab_orders_screen.dart +++ b/lib/screens/patients/profile/lab_result/lab_orders_screen.dart @@ -73,8 +73,6 @@ class _LabOrdersScreenState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Lab Orders", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/screens/patients/profile/lab_result/lab_result_secreen.dart b/lib/screens/patients/profile/lab_result/lab_result_secreen.dart index fed749c7..a8583d4a 100644 --- a/lib/screens/patients/profile/lab_result/lab_result_secreen.dart +++ b/lib/screens/patients/profile/lab_result/lab_result_secreen.dart @@ -41,8 +41,6 @@ class _LabResultState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Lab Orders", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/screens/patients/profile/patient_orders_screen.dart b/lib/screens/patients/profile/patient_orders_screen.dart index b602fea7..30f61bf0 100644 --- a/lib/screens/patients/profile/patient_orders_screen.dart +++ b/lib/screens/patients/profile/patient_orders_screen.dart @@ -76,8 +76,6 @@ class _PatientsOrdersState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Orders", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/screens/patients/profile/patient_profile_screen.dart b/lib/screens/patients/profile/patient_profile_screen.dart index 20954d38..2ee3d939 100644 --- a/lib/screens/patients/profile/patient_profile_screen.dart +++ b/lib/screens/patients/profile/patient_profile_screen.dart @@ -9,9 +9,6 @@ class PatientProfileScreen extends StatelessWidget { @override Widget build(BuildContext context) { return AppScaffold( - // child: child, - showBottomBar: false, - showAppDrawer: false, appBarTitle: 'Patient Profile', body: PatientProfileWidget(), ); diff --git a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart index c246d9ff..360ec776 100644 --- a/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart +++ b/lib/screens/patients/profile/prescriptions/prescriptions_screen.dart @@ -81,8 +81,6 @@ class _PrescriptionScreenState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Prescriptions", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/screens/patients/profile/progress_note_screen.dart b/lib/screens/patients/profile/progress_note_screen.dart index 0014432c..07f0ff88 100644 --- a/lib/screens/patients/profile/progress_note_screen.dart +++ b/lib/screens/patients/profile/progress_note_screen.dart @@ -76,8 +76,6 @@ class _ProgressNoteState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Progress Note", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/screens/patients/profile/radiology/radiology_report_screen.dart b/lib/screens/patients/profile/radiology/radiology_report_screen.dart index badb88f8..db0f7544 100644 --- a/lib/screens/patients/profile/radiology/radiology_report_screen.dart +++ b/lib/screens/patients/profile/radiology/radiology_report_screen.dart @@ -13,8 +13,6 @@ class RadiologyReportScreen extends StatelessWidget { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Radiology Report", - showAppDrawer: false, - showBottomBar: false, body: Container( padding: EdgeInsets.all(10), margin: EdgeInsets.all(10), diff --git a/lib/screens/patients/profile/radiology/radiology_screen.dart b/lib/screens/patients/profile/radiology/radiology_screen.dart index 10adf2d5..1ddf944e 100644 --- a/lib/screens/patients/profile/radiology/radiology_screen.dart +++ b/lib/screens/patients/profile/radiology/radiology_screen.dart @@ -76,8 +76,6 @@ class _RadiologyScreenState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "Radiology", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError 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 8b08f8ac..a03a031c 100644 --- a/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart +++ b/lib/screens/patients/profile/vital_sign/vital_sign_screen.dart @@ -77,8 +77,6 @@ class _VitalSignScreenState extends State { Widget build(BuildContext context) { return AppScaffold( appBarTitle: "VITAL SIGN", - showAppDrawer: false, - showBottomBar: false, body: patientsProv.isLoading ? DrAppCircularProgressIndeicator() : patientsProv.isError diff --git a/lib/widgets/shared/app_scaffold_widget.dart b/lib/widgets/shared/app_scaffold_widget.dart index e7b9012e..1e6da3fc 100644 --- a/lib/widgets/shared/app_scaffold_widget.dart +++ b/lib/widgets/shared/app_scaffold_widget.dart @@ -10,63 +10,33 @@ import '../../widgets/shared/app_loader_widget.dart'; import '../../widgets/shared/custom_shape_clipper.dart'; class AppScaffold extends StatelessWidget { - bool pageOnly = false; - // bool showAll = - bool showAppBar = true; - bool showAppDrawer = true; - bool showBottomBar = true; - bool showbg = true; - bool showCurve = true; - String appBarTitle = ''; + String appBarTitle; Widget body; - bool isloading = false; - int current; - //====== - Color backGroundcolorhex=Colors.teal;//Hexcolor('#88b74093');//Hexcolor('#FCF7F7'); - //====== + bool isLoading; - AppScaffold( - {this.pageOnly, - this.appBarTitle, - this.showAppBar, - this.showBottomBar, - this.showAppDrawer = true, - this.body, - this.showbg, - this.showCurve, - this.isloading = false, - this.current, - this.backGroundcolorhex - }); + AppScaffold({this.appBarTitle ='', this.body, this.isLoading = false}); @override Widget build(BuildContext context) { return Scaffold( - backgroundColor:Hexcolor('#F5F5F5'), - // (pageOnly == true || showbg == false) ? null : Hexcolor('#FCF7F7'), - appBar: (pageOnly == true || showAppBar == false) - ? null - : AppBar( + backgroundColor: Hexcolor('#F5F5F5'), + appBar: appBarTitle != '' + ? AppBar( elevation: 0, - backgroundColor:Hexcolor('#515B5D'), //Hexcolor('#FFDDD9'), + backgroundColor: Hexcolor('#515B5D'), textTheme: TextTheme( - title: TextStyle( - color: Colors.white, fontWeight: FontWeight.bold)),//Colors.black + headline6: TextStyle( + color: Colors.white, fontWeight: FontWeight.bold)), title: Text(appBarTitle.toUpperCase()), leading: Builder(builder: (BuildContext context) { return IconButton( - icon: showAppDrawer - ? Icon(Icons.menu) - : Icon(Icons.arrow_back_ios), - color: Colors.white,//Colors.black, - onPressed: () => showAppDrawer - ? Scaffold.of(context).openDrawer() - : Navigator.pop(context), + icon: Icon(Icons.arrow_back_ios), + color: Colors.white, //Colors.black, + onPressed: () => Navigator.pop(context), ); }), centerTitle: true, actions: [ - // IconButton(icon: Icon(Icons.person), onPressed: null) ProfileImageWidget( height: 50, width: 50, @@ -74,93 +44,12 @@ class AppScaffold extends StatelessWidget { "https://hmgwebservices.com/Images/MobileImages/DUBAI/unkown_female.png", ) ], - ), - drawer: (pageOnly == true || showAppDrawer == false) - ? null - : Theme( - data: Theme.of(context).copyWith( - canvasColor: Colors.transparent, - ), - child: SafeArea(child: AppDrawer()), - ), - // , - bottomNavigationBar: (pageOnly == true || showBottomBar == false) - ? null - : BottomNavigationBar( - items: [ - BottomNavigationBarItem( - icon: Icon( - Icons.home, - color: current == 0 ? Colors.red : Colors.grey, - ), - title: Text( - 'Home', - style: TextStyle( - color: current == 0 ? Colors.red : Colors.grey), - ), - backgroundColor: Colors.green, - // activeIcon: Icon(DoctorApp.home_icon) - ), - BottomNavigationBarItem( - icon: new Icon( - Icons.mail, - color: current == 1 ? Colors.red : Colors.grey, - ), - title: new Text('Messages', - style: TextStyle( - color: current == 1 ? Colors.red : Colors.grey)), - // backgroundColor: current == 1?Colors.red:Colors.grey, - ), - BottomNavigationBarItem( - icon: Icon( - Icons.apps, - color: current == 2 ? Colors.red : Colors.grey, - ), - title: Text('Menu', - style: TextStyle( - color: current == 2 ? Colors.red : Colors.grey)), - ) - ], - onTap: (index) => navigatot(index, context), - ), - body: (pageOnly == true || showCurve == false) - ? Stack(children: [body, buildAppLoaderWidget(isloading)]) - : Stack( - children: [ - ClipPath( - clipper: CustomShapeClipper(), - child: Container( - height: SizeConfig.realScreenHeight * 0.40, - decoration: - BoxDecoration(color: Hexcolor('#F5F5F5')))),//Hexcolor('#FFDDD9') - Positioned( - // key: , - // top: SizeConfig.realScreenHeight * 0.10, - child: body), - buildAppLoaderWidget(isloading) - ], - )); + ) + : null, + body: Stack(children: [body, buildAppLoaderWidget(isLoading)])); } Widget buildAppLoaderWidget(bool isloading) { return isloading ? AppLoaderWidget() : Container(); } - - navigatot(index, context) { - print('index :${index} current : ${current}'); - if (index != current) { - switch (index) { - case 0: - Navigator.of(context).pushReplacementNamed(HOME); - break; - case 1: - Navigator.of(context).pushReplacementNamed(MESSAGES); - break; - case 2: - Navigator.of(context).pushReplacementNamed(SERVICES); - break; - default: - } - } - } } diff --git a/lib/widgets/shared/bottom_nav_bar.dart b/lib/widgets/shared/bottom_nav_bar.dart new file mode 100644 index 00000000..f2fd66cc --- /dev/null +++ b/lib/widgets/shared/bottom_nav_bar.dart @@ -0,0 +1,75 @@ +import 'package:doctor_app_flutter/presentation/doctor_app_icons.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import 'bottom_navigation_item.dart'; + +class BottomNavBar extends StatefulWidget { + final ValueChanged changeIndex; + + BottomNavBar({Key key, this.changeIndex}) : super(key: key); + + @override + _BottomNavBarState createState() => _BottomNavBarState(); +} + +class _BottomNavBarState extends State { + int _index = 0; + + _changeIndex(int index) { + widget.changeIndex(index); + setState(() { + _index = index; + }); + } + + @override + Widget build(BuildContext context) { + return BottomAppBar( + elevation: 4, + shape: CircularNotchedRectangle(), + color: Colors.white, + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 18), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + BottomNavigationItem( + icon: DoctorApp.home_icon, + activeIcon: DoctorApp.home_icon_active, + changeIndex: _changeIndex, + index: _index, + currentIndex: 0, + name: 'HOME', + ), + BottomNavigationItem( + icon: DoctorApp.message_icon, + activeIcon: DoctorApp.message_icon_active, + changeIndex: _changeIndex, + index: _index, + currentIndex: 1, + name: 'REPLAY', + ), + BottomNavigationItem( + icon: DoctorApp.schedule_icon, + activeIcon: DoctorApp.scdedule_icon_active, + changeIndex: _changeIndex, + index: _index, + currentIndex: 2, + name: 'SCHEDULE', + ), + BottomNavigationItem( + icon: DoctorApp.menu_icon, + activeIcon: DoctorApp.menu_icon_active, + changeIndex: _changeIndex, + index: _index, + currentIndex: 3, + name: 'SERVICES', + ) + ], + ), + ), + ); + } +} diff --git a/lib/widgets/shared/bottom_navigation_item.dart b/lib/widgets/shared/bottom_navigation_item.dart new file mode 100644 index 00000000..d35d66c3 --- /dev/null +++ b/lib/widgets/shared/bottom_navigation_item.dart @@ -0,0 +1,68 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class BottomNavigationItem extends StatelessWidget { + final IconData icon; + final IconData activeIcon; + final ValueChanged changeIndex; + final int index; + final int currentIndex; + final String name; + + BottomNavigationItem( + {this.icon, + this.activeIcon, + this.changeIndex, + this.index, + this.currentIndex, + this.name}); + + @override + Widget build(BuildContext context) { + return Expanded( + child: SizedBox( + height: 70.0, + child: Material( + type: MaterialType.transparency, + child: InkWell( + highlightColor: Colors.transparent, + splashColor: Colors.transparent, + onTap: () => changeIndex(currentIndex), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(height: 15,), + Container( +// decoration: BoxDecoration(boxShadow: [ +// BoxShadow( +// color: currentIndex == index +// ? Color.fromRGBO(78, 62, 253, 0.4) +// : Color.fromRGBO(78, 62, 253, 0), +// blurRadius: 9.0, +// spreadRadius: -4.0, +// offset: Offset(0.0, 2.0)) +// ]), + child: Icon(currentIndex == index ? activeIcon : icon, + /*color: currentIndex == index + ? Theme.of(context).primaryColor + : Theme.of(context).dividerColor,*/ + size: 22.0), + ), + SizedBox(height: 5,), + Text( + name, + style: TextStyle( + color: currentIndex == index + ? Theme.of(context).primaryColor + : Theme.of(context).dividerColor, + ), + ), + ], + ), + ), + ), + ), + ); + } +}