diff --git a/assets/images/patient/ic_ref_arrow_left.png b/assets/images/patient/ic_ref_arrow_left.png new file mode 100644 index 00000000..09e05ab2 Binary files /dev/null and b/assets/images/patient/ic_ref_arrow_left.png differ diff --git a/assets/images/patient/ic_ref_arrow_up.png b/assets/images/patient/ic_ref_arrow_up.png new file mode 100644 index 00000000..8294cfed Binary files /dev/null and b/assets/images/patient/ic_ref_arrow_up.png differ diff --git a/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart b/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart index 95afd136..c39464bd 100644 --- a/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart +++ b/lib/screens/patients/profile/UCAF/UCAF-input-screen.dart @@ -116,7 +116,8 @@ class _UCAFInputScreenState extends State { title: AppText( TranslationBase.of(context).inPatient, fontWeight: FontWeight.normal, - fontSize: SizeConfig.textMultiplier * 2.1, + fontFamily: 'Poppins', + fontSize: SizeConfig.textMultiplier * 2.2, ), value: _inPatient, onChanged: (newValue) { @@ -124,6 +125,7 @@ class _UCAFInputScreenState extends State { _inPatient = newValue; }); }, + activeColor: HexColor("#D02127"), controlAffinity: ListTileControlAffinity.leading, contentPadding: EdgeInsets.all(0), @@ -132,7 +134,8 @@ class _UCAFInputScreenState extends State { title: AppText( TranslationBase.of(context).emergencyCase, fontWeight: FontWeight.normal, - fontSize: SizeConfig.textMultiplier * 2.1, + fontFamily: 'Poppins', + fontSize: SizeConfig.textMultiplier * 2.2, ), value: _emergencyCase, onChanged: (newValue) { @@ -140,12 +143,12 @@ class _UCAFInputScreenState extends State { _emergencyCase = newValue; }); }, + activeColor: HexColor("#D02127"), controlAffinity: ListTileControlAffinity.leading, contentPadding: EdgeInsets.all(0), ), AppTextFieldCustom( - height: screenSize.height * 0.075, hintText: TranslationBase.of(context) .durationOfIllness, dropDownText: "3", @@ -170,7 +173,7 @@ class _UCAFInputScreenState extends State { color: Color(0xFFCC9B14), ), SizedBox( - width: 4, + width: 8, ), AppText( "BP (H/L)", @@ -192,7 +195,7 @@ class _UCAFInputScreenState extends State { ], ), SizedBox( - width: 4, + width: 6, ), Expanded( child: Row( @@ -205,7 +208,7 @@ class _UCAFInputScreenState extends State { fontWeight: FontWeight.normal, ), SizedBox( - width: 8, + width: 4, ), Expanded( child: AppText( @@ -222,7 +225,7 @@ class _UCAFInputScreenState extends State { ], ), SizedBox( - height: 4, + height: 2, ), Row( mainAxisAlignment: @@ -231,14 +234,14 @@ class _UCAFInputScreenState extends State { Row( children: [ AppText( - "${TranslationBase.of(context).pulseBeats} :", + "${TranslationBase.of(context).pulseBeats}:", fontSize: SizeConfig.textMultiplier * 1.8, color: Colors.black, fontWeight: FontWeight.normal, ), SizedBox( - width: 8, + width: 4, ), AppText( "${model.patientVitalSigns.pulseBeatPerMinute}", @@ -258,8 +261,9 @@ class _UCAFInputScreenState extends State { TranslationBase.of(context) .chiefComplaintsAndSymptoms, fontFamily: 'Poppins', - fontSize: SizeConfig.textMultiplier * 2.1, + fontSize: SizeConfig.textMultiplier * 2.2, fontWeight: FontWeight.w700, + color: Color(0xFF2E303A), ), SizedBox( height: 4, @@ -269,6 +273,7 @@ class _UCAFInputScreenState extends State { .patientFeelsPainInHisBackAndCough, fontFamily: 'Poppins', fontWeight: FontWeight.normal, + color: Color(0xFF575757), fontSize: SizeConfig.textMultiplier * 1.8, ), SizedBox( @@ -292,7 +297,8 @@ class _UCAFInputScreenState extends State { AppText( TranslationBase.of(context).otherConditions, fontWeight: FontWeight.bold, - fontSize: SizeConfig.textMultiplier * 2.0, + fontSize: SizeConfig.textMultiplier * 2.1, + color: Color(0xFF2E303A), ), ...List.generate( conditionsData.length, @@ -302,6 +308,7 @@ class _UCAFInputScreenState extends State { fontWeight: FontWeight.normal, fontSize: SizeConfig.textMultiplier * 2.1, + fontFamily: 'Poppins', ), value: conditionsData[index] ['isChecked'], @@ -319,7 +326,6 @@ class _UCAFInputScreenState extends State { height: 8, ), AppTextFieldCustom( - height: screenSize.height * 0.075, hintText: TranslationBase.of(context).other, dropDownText: "None", enabled: false, @@ -328,7 +334,6 @@ class _UCAFInputScreenState extends State { height: 8, ), AppTextFieldCustom( - height: screenSize.height * 0.075, hintText: TranslationBase.of(context).how, dropDownText: "None", enabled: false, @@ -340,7 +345,6 @@ class _UCAFInputScreenState extends State { children: [ Expanded( child: AppTextFieldCustom( - height: screenSize.height * 0.075, hintText: TranslationBase.of(context).when, dropDownText: "None", @@ -352,7 +356,6 @@ class _UCAFInputScreenState extends State { ), Expanded( child: AppTextFieldCustom( - height: screenSize.height * 0.075, hintText: TranslationBase.of(context).where, dropDownText: "None", @@ -379,7 +382,8 @@ class _UCAFInputScreenState extends State { AppText( TranslationBase.of(context).significantSigns, fontWeight: FontWeight.bold, - fontSize: SizeConfig.textMultiplier * 2.1, + fontFamily: 'Poppins', + fontSize: SizeConfig.textMultiplier * 2.2, ), SizedBox( height: 8, diff --git a/lib/screens/patients/profile/UCAF/page-stepper-widget.dart b/lib/screens/patients/profile/UCAF/page-stepper-widget.dart index 58bcbab0..fa3d5daa 100644 --- a/lib/screens/patients/profile/UCAF/page-stepper-widget.dart +++ b/lib/screens/patients/profile/UCAF/page-stepper-widget.dart @@ -4,6 +4,15 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; +/// * +/// By Mousa Zaid Mousa Abuzaid +/// At 13/4/2021 + +/* + All hex value from 100% to 0% alpha: used in line 122 + https://gist.github.com/lopspower/03fb1cc0ac9f32ef38f4 + */ + class PageStepperWidget extends StatelessWidget { final int stepsCount; final int currentStepIndex; @@ -13,7 +22,7 @@ class PageStepperWidget extends StatelessWidget { @override Widget build(BuildContext context) { - double dividerWidth = (screenSize.width / stepsCount) - (5 * stepsCount); + double dividerWidth = (screenSize.width / stepsCount) - (10 * stepsCount); return Container( margin: EdgeInsets.symmetric(vertical: 16.0, horizontal: 16.0), @@ -38,6 +47,7 @@ class PageStepperWidget extends StatelessWidget { } class StepWidget extends StatelessWidget { + final int index; final bool isInProgress; final bool isFinalStep; @@ -71,24 +81,25 @@ class StepWidget extends StatelessWidget { width: 30, height: 30, decoration: BoxDecoration( - color: isInProgress ? Color(0xFFCC9B14) : Color(0xFFC9C9C9), + color: status == StepStatus.InProgress ? Color(0xFFCC9B14) : status == StepStatus.Locked ? Color(0xFFE3E3E3) : Color(0xFF359846), shape: BoxShape.circle, border: Border.all( - color: isInProgress ? Color(0xFFCC9B14) : Color(0xFFC9C9C9), + color: status == StepStatus.InProgress ? Color(0xFFCC9B14) : status == StepStatus.Locked ? Color(0xFFE3E3E3) : Color(0xFF359846), width: 1), ), child: Center( child: Icon( Icons.check, size: 20, - color: status == StepStatus.InProgress ? Colors.white : status == StepStatus.Locked ? Colors.grey.shade800 : Color(0xFF359846), + color: status == StepStatus.Locked ? Color(0xFF969696) : Colors.white, )), ), if (!isFinalStep) Container( + margin: EdgeInsets.symmetric(horizontal: 4), width: dividerWidth, height: 2, - color: Colors.grey, + color: status == StepStatus.Completed ? Color(0xFF359846) : Color(0xFFCCCCCC), ), ], ), @@ -98,23 +109,27 @@ class StepWidget extends StatelessWidget { AppText( "${TranslationBase.of(context).step} $index", fontWeight: FontWeight.bold, - color: status == StepStatus.InProgress ? Colors.black : status == StepStatus.Locked ? Colors.grey : Color(0xFF359846), + color: status == StepStatus.Locked ? Color(0xFF969696) : Colors.black, fontFamily: 'Poppins', fontSize: SizeConfig.textMultiplier * 1.6, ), Container( margin: EdgeInsets.symmetric(vertical: 4), - padding: EdgeInsets.symmetric(horizontal: 4, vertical: 2), + padding: EdgeInsets.symmetric(horizontal: 12, vertical: 4), decoration: BoxDecoration( color: status == StepStatus.InProgress ? Color(0xFFF1E9D3) : status == StepStatus.Locked - ? Color(0xFFD8E8DB) - : Color(0xFFCCCCCC), + ? Color(0x29797979) + : Color(0xFFD8E8D8), borderRadius: BorderRadius.all( - Radius.circular(8.0), + Radius.circular(4.0), ), - border: Border.all(color: HexColor('#707070'), width: 0.30), + border: Border.all(color: status == StepStatus.InProgress + ? Color(0xFFF1E9D3) + : status == StepStatus.Locked + ? Color(0x29797979) + : Color(0xFFD8E8D8), width: 0.30), ), child: AppText( status == StepStatus.InProgress diff --git a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart b/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart index 8095d04a..69886efb 100644 --- a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart +++ b/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart @@ -118,14 +118,14 @@ class _AdmissionRequestThirdScreenState hintText: TranslationBase.of(context).clinic, isDropDown: true, dropDownText: _selectedClinic != null - ? _selectedClinic['clinicGroupName'] + ? projectViewModel.isArabic? _selectedClinic['clinicNameArabic'] : _selectedClinic['clinicNameEnglish'] : null, enabled: false, onClick: model.clinicList != null && model.clinicList.length > 0 ? () { openListDialogField( - 'clinicGroupName', + projectViewModel.isArabic? 'clinicNameArabic' : 'clinicNameEnglish', 'clinicID', model.clinicList, (selectedValue) { setState(() { @@ -142,7 +142,7 @@ class _AdmissionRequestThirdScreenState if (model.state == ViewState.Idle && model.clinicList.length > 0) { openListDialogField( - 'clinicGroupName', + projectViewModel.isArabic? 'clinicNameArabic' : 'clinicNameEnglish', 'clinicID', model.clinicList, (selectedValue) { setState(() { diff --git a/lib/screens/patients/profile/referral/refer-patient-screen.dart b/lib/screens/patients/profile/referral/refer-patient-screen.dart index 2619b200..4922f3a1 100644 --- a/lib/screens/patients/profile/referral/refer-patient-screen.dart +++ b/lib/screens/patients/profile/referral/refer-patient-screen.dart @@ -10,6 +10,7 @@ import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/patient-referral-item-widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.dart'; +import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart'; import 'package:doctor_app_flutter/widgets/shared/app-textfield-custom.dart'; import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; @@ -71,7 +72,9 @@ class _PatientMakeReferralScreenState extends State { builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase.of(context).referPatient, - isShowAppBar: false, + isShowAppBar: true, + appBar: PatientProfileHeaderNewDesignAppBar( + patient, patientType, arrivalType), body: SingleChildScrollView( child: Container( child: Column( @@ -80,8 +83,8 @@ class _PatientMakeReferralScreenState extends State { Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - PatientProfileHeaderNewDesign( - patient, patientType, arrivalType), + /*PatientProfileHeaderNewDesign( + patient, patientType, arrivalType),*/ Container( margin: EdgeInsets.all(16.0), child: Column( @@ -357,7 +360,13 @@ class _PatientMakeReferralScreenState extends State { }, ); } - : null, + : (){ + if(_selectedClinic == null){ + DrAppToastMsg.showErrorToast("You need to select a clinic first"); + } else if(model.doctorsList == null || model.doctorsList.length == 0){ + DrAppToastMsg.showErrorToast("There is no doctors for this clinic"); + } + }, ), SizedBox( height: 10, diff --git a/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart b/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart index 5eea8f3d..3c0e4add 100644 --- a/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart +++ b/lib/screens/patients/profile/vital_sign/LineChartCurvedBloodPressure.dart @@ -90,10 +90,10 @@ class LineChartCurvedBloodPressure extends StatelessWidget { height: 20, decoration: BoxDecoration( shape: BoxShape.rectangle, - color: Colors.grey), + color: Colors.red), ), SizedBox(width: 5,), - AppText(TranslationBase.of(context).diastolicLng) + AppText(TranslationBase.of(context).diastolicLng,) ], ), ], @@ -248,7 +248,7 @@ class LineChartCurvedBloodPressure extends StatelessWidget { final LineChartBarData lineChartBarData2 = LineChartBarData( spots: spots2, isCurved: true, - colors: [Colors.grey], + colors: [Colors.red], barWidth: 5, isStrokeCapRound: true, dotData: FlDotData( diff --git a/lib/widgets/patients/patient-referral-item-widget.dart b/lib/widgets/patients/patient-referral-item-widget.dart index 606dccde..ddc41c82 100644 --- a/lib/widgets/patients/patient-referral-item-widget.dart +++ b/lib/widgets/patients/patient-referral-item-widget.dart @@ -455,28 +455,11 @@ class PatientReferralItemWidget extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( - width: 2, - height: 30, - color: Color(0xFFD9D9D9), - - /* - decoration: BoxDecoration( - shape: BoxShape.rectangle, - border: Border( - bottom: BorderSide( - color: Color(0xFFD9D9D9), width: 2.5), - left: BorderSide( - color: Color(0xFFD9D9D9), width: 2.5), - )), - */ - ), - Container( - margin: EdgeInsets.only( - left: 0, top: 20, right: 0, bottom: 0), - child: Icon( - Icons.arrow_forward, - color: Color(0xFFD9D9D9), - size: 30, + margin: EdgeInsets.only(left: 10, right: 0), + child: Image.asset( + infoIcon != null ? 'assets/images/patient/ic_ref_arrow_up.png' : 'assets/images/patient/ic_ref_arrow_left.png', + height: 50, + width: 30, ), ), Container( diff --git a/lib/widgets/shared/app-textfield-custom.dart b/lib/widgets/shared/app-textfield-custom.dart index 6c52001b..67d9c921 100644 --- a/lib/widgets/shared/app-textfield-custom.dart +++ b/lib/widgets/shared/app-textfield-custom.dart @@ -46,7 +46,7 @@ class _AppTextFieldCustomState extends State { @override Widget build(BuildContext context) { return Container( - height: widget.height != 0 ? widget.height : null, + height: widget.height != 0 ? widget.height + 8 : null, decoration: widget.hasBorder ? containerBorderDecoration(Color(0Xffffffff), Color(0xFFEFEFEF)) : null, @@ -57,53 +57,56 @@ class _AppTextFieldCustomState extends State { crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - if ((widget.controller != null && - widget.controller.text != "") || - widget.dropDownText != null) - AppText( - widget.hintText, - fontFamily: 'Poppins', - fontSize: SizeConfig.textMultiplier * 1.4, - fontWeight: FontWeight.w700, - ), - widget.dropDownText == null - ? TextField( - textAlign: TextAlign.left, - decoration: textFieldSelectorDecoration( - widget.hintText, null, true), - style: TextStyle( - fontSize: SizeConfig.textMultiplier * 1.7, + child: Container( + padding: widget.dropDownText == null ? EdgeInsets.symmetric(vertical: 0): EdgeInsets.symmetric(vertical: 8), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if ((widget.controller != null && + widget.controller.text != "") || + widget.dropDownText != null) + AppText( + widget.hintText, + fontFamily: 'Poppins', + fontSize: SizeConfig.textMultiplier * 1.4, + fontWeight: FontWeight.w700, + ), + widget.dropDownText == null + ? TextField( + textAlign: TextAlign.left, + decoration: textFieldSelectorDecoration( + widget.hintText, null, true), + style: TextStyle( + fontSize: SizeConfig.textMultiplier * 1.7, + fontFamily: 'Poppins', + color: Colors.grey.shade800, + ), + controller: widget.controller, + keyboardType: widget.inputType, + enabled: widget.enabled, + minLines: widget.minLines, + maxLines: widget.maxLines, + inputFormatters: widget.inputFormatters != null + ? widget.inputFormatters + : [], + onChanged: (value) { + if (widget.onChanged != null){ + widget.onChanged(value); + setState(() { + + }); + } + }, + ) + : AppText( + widget.dropDownText, fontFamily: 'Poppins', color: Colors.grey.shade800, + fontSize: SizeConfig.textMultiplier * 1.7, ), - controller: widget.controller, - keyboardType: widget.inputType, - enabled: widget.enabled, - minLines: widget.minLines, - maxLines: widget.maxLines, - inputFormatters: widget.inputFormatters != null - ? widget.inputFormatters - : [], - onChanged: (value) { - if (widget.onChanged != null){ - widget.onChanged(value); - setState(() { - - }); - } - }, - ) - : AppText( - widget.dropDownText, - fontFamily: 'Poppins', - color: Colors.grey.shade800, - fontSize: SizeConfig.textMultiplier * 1.7, - ), - ], + ], + ), ), ), widget.isDropDown