From 29fd552874157fdb438e424cd7b856a06aa7db73 Mon Sep 17 00:00:00 2001 From: "Mirza.Shafique" Date: Sun, 15 Aug 2021 14:19:07 +0300 Subject: [PATCH] Weight, height and blood pressure on Home Page --- assets/images/new/blood.svg | 11 ++ assets/images/new/email.svg | 7 + assets/images/new/height.svg | 9 + assets/images/new/weight.svg | 7 + .../fragments/home_page_fragment2.dart | 7 +- .../fragments/logged_home_page_fragment.dart | 2 +- lib/pages/landing/home_page_2.dart | 1 + .../landing/widgets/logged_slider_view.dart | 74 ++++++- .../radiology/radiology_home_page.dart | 180 ++++++++++-------- lib/theme/theme_value.dart | 2 +- .../data_display/medical/doctor_card.dart | 2 +- lib/widgets/nfc/nfc_reader_sheet.dart | 6 + 12 files changed, 220 insertions(+), 88 deletions(-) create mode 100644 assets/images/new/blood.svg create mode 100644 assets/images/new/email.svg create mode 100644 assets/images/new/height.svg create mode 100644 assets/images/new/weight.svg diff --git a/assets/images/new/blood.svg b/assets/images/new/blood.svg new file mode 100644 index 00000000..7b1f2d0f --- /dev/null +++ b/assets/images/new/blood.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/images/new/email.svg b/assets/images/new/email.svg new file mode 100644 index 00000000..642db68a --- /dev/null +++ b/assets/images/new/email.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/new/height.svg b/assets/images/new/height.svg new file mode 100644 index 00000000..6ee1bef1 --- /dev/null +++ b/assets/images/new/height.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/new/weight.svg b/assets/images/new/weight.svg new file mode 100644 index 00000000..013e6450 --- /dev/null +++ b/assets/images/new/weight.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/lib/pages/landing/fragments/home_page_fragment2.dart b/lib/pages/landing/fragments/home_page_fragment2.dart index 75c0b905..c3b16384 100644 --- a/lib/pages/landing/fragments/home_page_fragment2.dart +++ b/lib/pages/landing/fragments/home_page_fragment2.dart @@ -1,5 +1,6 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; @@ -24,9 +25,11 @@ import 'package:provider/provider.dart'; import 'dart:math' as math; class HomePageFragment2 extends StatefulWidget { + DashboardViewModel model; Function onPharmacyClick, onLoginClick; - HomePageFragment2({this.onLoginClick, this.onPharmacyClick}); + + HomePageFragment2(this.model,{this.onLoginClick, this.onPharmacyClick}); @override _HomePageFragment2State createState() => _HomePageFragment2State(); @@ -81,7 +84,7 @@ class _HomePageFragment2State extends State { child: LoggedSliderView( projectViewModel, new SliderData(TranslationBase.of(context).fileno + ": " + projectViewModel.user.patientID.toString(), projectViewModel.user.firstName + ' ' + projectViewModel.user.lastName, - "", bannerColor[0].darkColor, bannerColor[0].lightColor)), + "", bannerColor[0].darkColor, bannerColor[0].lightColor),widget.model), ), ), ) diff --git a/lib/pages/landing/fragments/logged_home_page_fragment.dart b/lib/pages/landing/fragments/logged_home_page_fragment.dart index 3e4bfd3e..eff13328 100644 --- a/lib/pages/landing/fragments/logged_home_page_fragment.dart +++ b/lib/pages/landing/fragments/logged_home_page_fragment.dart @@ -93,7 +93,7 @@ class _HomePageFragmentState extends State { child: LoggedSliderView( widget.projectViewModel, new SliderData(TranslationBase.of(context).fileno + ": " + widget.projectViewModel.user.patientID.toString(), - widget.projectViewModel.user.firstName + ' ' + widget.projectViewModel.user.lastName, "", bannerColor[0].darkColor, bannerColor[0].lightColor)), + widget.projectViewModel.user.firstName + ' ' + widget.projectViewModel.user.lastName, "", bannerColor[0].darkColor, bannerColor[0].lightColor),null), ), ), appoCountProvider.count == 0 diff --git a/lib/pages/landing/home_page_2.dart b/lib/pages/landing/home_page_2.dart index 491f2264..26416f79 100644 --- a/lib/pages/landing/home_page_2.dart +++ b/lib/pages/landing/home_page_2.dart @@ -66,6 +66,7 @@ class _HomePageState2 extends State { // }, // ), HomePageFragment2( + model, onLoginClick: () { widget.onLoginClick(); }, diff --git a/lib/pages/landing/widgets/logged_slider_view.dart b/lib/pages/landing/widgets/logged_slider_view.dart index 852359d9..e7a7dcb8 100644 --- a/lib/pages/landing/widgets/logged_slider_view.dart +++ b/lib/pages/landing/widgets/logged_slider_view.dart @@ -1,17 +1,21 @@ +import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/models/slider_data.dart'; +import 'package:flutter_svg/flutter_svg.dart'; class LoggedSliderView extends StatelessWidget { ProjectViewModel projectViewModel; SliderData sliderData; + DashboardViewModel model; - LoggedSliderView(this.projectViewModel, this.sliderData); + LoggedSliderView(this.projectViewModel, this.sliderData, this.model); @override Widget build(BuildContext context) { @@ -53,7 +57,7 @@ class LoggedSliderView extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - mFlex(3), + mFlex(2), Row( children: [ Container( @@ -87,7 +91,7 @@ class LoggedSliderView extends StatelessWidget { mWidth(MediaQuery.of(context).size.width / 70), ], ), - mFlex(2), + mFlex(1), Padding( padding: const EdgeInsets.only(left: 20, right: 20), child: Column( @@ -103,6 +107,7 @@ class LoggedSliderView extends StatelessWidget { height: 25 / 17, ), ), + mHeight(3), Text( sliderData.pateintId, style: TextStyle( @@ -115,11 +120,11 @@ class LoggedSliderView extends StatelessWidget { ], ), ), - mFlex(3), + mHeight(3), Padding( padding: const EdgeInsets.only(left: 20, right: 20), child: Text( - "34 Years, Male, 4 January 1987", + '${DateUtil.getMonthDayYearDateFormatted(projectViewModel.user.dateofBirthDataTime)} ,${projectViewModel.user.gender == 1 ? TranslationBase.of(context).male : TranslationBase.of(context).female} ${projectViewModel.user.age.toString() + "y"}', style: TextStyle( color: Colors.white, fontSize: 12, @@ -128,7 +133,64 @@ class LoggedSliderView extends StatelessWidget { ), ), ), - mFlex(4), + mFlex(3), + Padding( + padding: const EdgeInsets.only(left: 20, right: 20), + child: Row( + children: [ + Expanded( + child: Row( + children: [ + SvgPicture.asset( + 'assets/images/new/height.svg', + width: 12, + height: 12, + ), + mWidth(6), + Texts( + "${model.heightCm} ${TranslationBase.of(context).cm}", + color: Colors.white, + fontSize: 9, + ) + ], + ), + ), + SizedBox( + width: 3, + ), + Expanded( + child: Row( + children: [ + SvgPicture.asset( + 'assets/images/new/weight.svg', + width: 12, + height: 12, + ), + mWidth(6), + Texts('${model.weightKg} ${TranslationBase.of(context).kg}', color: Colors.white, fontSize: 9) + ], + ), + ), + SizedBox( + width: 3, + ), + Expanded( + child: Row( + children: [ + SvgPicture.asset( + 'assets/images/new/blood.svg', + width: 12, + height: 12, + ), + mWidth(6), + Texts('${model.booldType}', color: Colors.white, fontSize: 9) + ], + ), + ), + ], + ), + ), + mFlex(2), ], ), ), diff --git a/lib/pages/medical/radiology/radiology_home_page.dart b/lib/pages/medical/radiology/radiology_home_page.dart index df321e12..d4f34e01 100644 --- a/lib/pages/medical/radiology/radiology_home_page.dart +++ b/lib/pages/medical/radiology/radiology_home_page.dart @@ -1,5 +1,6 @@ import 'package:diplomaticquarterapp/core/enum/filter_type.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; +import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; @@ -7,6 +8,7 @@ import 'package:diplomaticquarterapp/pages/medical/radiology/radiology_details_p import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart'; +import 'package:diplomaticquarterapp/widgets/new_design/my_tab_view.dart'; import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -16,95 +18,119 @@ import 'package:provider/provider.dart'; class RadiologyHomePage extends StatelessWidget { List imagesInfo = List(); + @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); - imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/0.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/0.png')); - imagesInfo.add(ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/1.png',imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/1.png')); + imagesInfo.add( + ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/0.png')); + imagesInfo.add( + ImagesInfo(imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/en/1.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/my-radiology/ar/1.png')); return BaseView( onModelReady: (model) => model.getPatientRadOrders(), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase.of(context).radiology, baseViewModel: model, + showNewAppBar: true, + showNewAppBarTitle: true, + backgroundColor: Color(0xffF8F8F8), description: TranslationBase.of(context).infoRadiology, imagesInfo: imagesInfo, - body: FractionallySizedBox( - widthFactor: 1.0, - child: ListView( - physics: BouncingScrollPhysics(), - children: [ - Row( - children: [ - Expanded( - flex: 1, - child: InkWell( - onTap: () => - model.setFilterType(FilterType.Clinic), - child: ListTile( - title: Text(TranslationBase.of(context).clinic), - leading: Radio( - value: FilterType.Clinic, - groupValue: model.filterType, - onChanged: (FilterType value) { - model.setFilterType(value); - }, - ), - ), - ), - ), - Expanded( - flex: 1, - child: InkWell( - onTap: () => model - .setFilterType(FilterType.Hospital), - child: ListTile( - title: Text(TranslationBase.of(context).hospital), - leading: Radio( - value: FilterType.Hospital, - groupValue: model.filterType, - onChanged: (FilterType value) { - model.setFilterType(value); - }, - ), - ), - ), - ) - ], + body: Column( + children: [ + Row( + children: [ + MyTabView(TranslationBase.of(context).byClinic, FilterType.Clinic, model.filterType, () { + model.setFilterType(FilterType.Clinic); + }), + MyTabView(TranslationBase.of(context).byHospital, FilterType.Hospital, model.filterType, () { + model.setFilterType(FilterType.Hospital); + }), + ], + ), + + Expanded( + child: FractionallySizedBox( + widthFactor: 1.0, + child: ListView.separated( + physics: BouncingScrollPhysics(), + separatorBuilder: (context, index) { + return Container( + height: 1, + margin: EdgeInsets.only(left: 21, right: 21), + color: Color(0xffD9D9D9), + ); + }, + itemBuilder: (context, index) { + return AppExpandableNotifier( + title: model.finalRadiologyList[index].filterName, + bodyWidget: ListView.separated( + shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), + padding: EdgeInsets.only(bottom: 14, top: 14, left: 21, right: 21), + itemBuilder: (context, _index) { + FinalRadiology radiology = model.finalRadiologyList[index].finalRadiologyList[_index]; + bool _isSortByClinic = model.filterType == FilterType.Clinic; + return DoctorCard( + onTap: () => Navigator.push( + context, + FadePage( + page: RadiologyDetailsPage( + finalRadiology: radiology, + ), + ), + ), + isInOutPatient: radiology.isInOutPatient, + name: TranslationBase.of(context).dr + " " + radiology.doctorName, + billNo: radiology.invoiceNo.toString(), + profileUrl: radiology.doctorImageURL, + subName: _isSortByClinic ? radiology.projectName : radiology.clinicDescription, + isLiveCareAppointment: radiology.isLiveCareAppointment, + date: radiology.orderDate, + isSortByClinic: _isSortByClinic, + //projectViewModel.isArabic ? DateUtil.getMonthDayYearDateFormattedAr(labOrder.orderDate) : DateUtil.getMonthDayYearDateFormatted(labOrder.orderDate), + ); + }, + separatorBuilder: (context, index) => SizedBox(height: 14), + itemCount: model.finalRadiologyList[index].finalRadiologyList.length), + ); + }, + itemCount: model.finalRadiologyList.length), ), - ...List.generate( - model.finalRadiologyList.length, - (index) => AppExpandableNotifier( - title: model - .finalRadiologyList[index].filterName, - bodyWidget: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: model - .finalRadiologyList[index].finalRadiologyList - .map((radiology) { - return InkWell( - onTap: () => Navigator.push( - context, - FadePage( - page: RadiologyDetailsPage(finalRadiology: radiology,), - ), - ), - child: DoctorCard( - isInOutPatient: radiology.isInOutPatient, - isLiveCareAppointment: radiology.isLiveCareAppointment, - name: radiology.doctorName, - profileUrl: radiology.doctorImageURL, - billNo: '${radiology.invoiceNo}', - subName: '${radiology.projectName}', - date: radiology.orderDate//projectViewModel.isArabic? DateUtil.getMonthDayYearDateFormattedAr(radiology.orderDate):DateUtil.getMonthDayYearDateFormatted(radiology.orderDate), - ), - ); - }).toList(), - )), - ) - ], - ), + ), + // ...List.generate( + // model.finalRadiologyList.length, + // (index) => AppExpandableNotifier( + // title: model + // .finalRadiologyList[index].filterName, + // bodyWidget: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // mainAxisAlignment: MainAxisAlignment.spaceBetween, + // children: model + // .finalRadiologyList[index].finalRadiologyList + // .map((radiology) { + // return InkWell( + // onTap: () => Navigator.push( + // context, + // FadePage( + // page: RadiologyDetailsPage(finalRadiology: radiology,), + // ), + // ), + // child: DoctorCard( + // isInOutPatient: radiology.isInOutPatient, + // isLiveCareAppointment: radiology.isLiveCareAppointment, + // name: radiology.doctorName, + // profileUrl: radiology.doctorImageURL, + // billNo: '${radiology.invoiceNo}', + // subName: '${radiology.projectName}', + // date: radiology.orderDate//projectViewModel.isArabic? DateUtil.getMonthDayYearDateFormattedAr(radiology.orderDate):DateUtil.getMonthDayYearDateFormatted(radiology.orderDate), + // ), + // ); + // }).toList(), + // )), + // ) + ], ), ), ); diff --git a/lib/theme/theme_value.dart b/lib/theme/theme_value.dart index 4b59fc23..fc07dda1 100644 --- a/lib/theme/theme_value.dart +++ b/lib/theme/theme_value.dart @@ -30,7 +30,7 @@ defaultTheme({fontName}) { hintColor: Colors.grey[400], disabledColor: Colors.grey[300], errorColor: Color.fromRGBO(235, 80, 60, 1.0), - scaffoldBackgroundColor: Color(0xffE9E9E9), + scaffoldBackgroundColor: Color(0xffF8F8F8), // Colors.grey[100], textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5), textSelectionHandleColor: Colors.grey, diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index ed722089..ca144576 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -39,7 +39,7 @@ class DoctorCard extends StatelessWidget { BoxShadow( color: Color(0xff000000).withOpacity(.05), //spreadRadius: 5, - blurRadius: 27, + blurRadius: 12, offset: Offset(0, -3), ), ], diff --git a/lib/widgets/nfc/nfc_reader_sheet.dart b/lib/widgets/nfc/nfc_reader_sheet.dart index 067c0c9a..f2d30c01 100644 --- a/lib/widgets/nfc/nfc_reader_sheet.dart +++ b/lib/widgets/nfc/nfc_reader_sheet.dart @@ -58,6 +58,12 @@ class _NfcLayoutState extends State { Navigator.pop(context); }); print("read NDEF id: ${message.id}"); + print("NFC Record "+message.payload); + print("NFC Record Lenght "+message.records.length.toString()); + print("NFC Record "+message.records.first.id); + print("NFC Record "+message.records.first.payload); + print("NFC Record "+message.records.first.data); + print("NFC Record "+message.records.first.type); // widget.onNcfScan(message.id); nfcId = message.id; }, onError: (e) {