From 1330d680ab17942e1d4fb3f8a47299e43808f406 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Wed, 7 Apr 2021 15:12:05 +0300 Subject: [PATCH 1/9] fix allergies --- .../subjective/update_allergies_widget.dart | 576 ++++++++++-------- ..._key_checkbox_search_allergies_widget.dart | 499 +++++++++++++++ 2 files changed, 833 insertions(+), 242 deletions(-) create mode 100644 lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart index c00daa6b..b7f5187e 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart @@ -13,6 +13,8 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/master_key_dailog.dart'; import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart'; +import 'package:doctor_app_flutter/widgets/shared/master_key_checkbox_search_allergies_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -193,42 +195,9 @@ class _UpdateAllergiesWidgetState extends State { context: context, builder: (context) { return AddAllergies( - addAllergiesFun: (MySelectedAllergy mySelectedAllergy) { - if (mySelectedAllergy.selectedAllergySeverity == null || - mySelectedAllergy.selectedAllergy == null) { - helpers.showErrorToast(TranslationBase - .of(context) - .requiredMsg); - - } else { - setState(() { - List allergy = - // ignore: missing_return - widget.myAllergiesList - .where((element) => - mySelectedAllergy.selectedAllergy.id == - element.selectedAllergy.id) - .toList(); - - if (allergy.isEmpty) { - widget.myAllergiesList.add(mySelectedAllergy); - Navigator.of(context).pop(); - } else { - allergy.first.selectedAllergy = - mySelectedAllergy.selectedAllergy; - allergy.first.selectedAllergySeverity = - mySelectedAllergy.selectedAllergySeverity; - allergy.first.remark = mySelectedAllergy.remark; - allergy.first.isChecked = mySelectedAllergy.isChecked; - Navigator.of(context).pop(); - - // helpers.showErrorToast(TranslationBase - // .of(context) - // .itemExist); - } - }); - } - },); + myAllergiesList: widget.myAllergiesList, + addAllergiesFun: (){} + ); }); } @@ -236,8 +205,9 @@ class _UpdateAllergiesWidgetState extends State { class AddAllergies extends StatefulWidget { final Function addAllergiesFun; + final List myAllergiesList; - const AddAllergies({Key key, this.addAllergiesFun}) : super(key: key); + const AddAllergies({Key key, this.addAllergiesFun, this.myAllergiesList}) : super(key: key); @override _AddAllergiesState createState() => _AddAllergiesState(); @@ -251,7 +221,13 @@ class _AddAllergiesState extends State { TextEditingController remarkController = TextEditingController(); TextEditingController severityController = TextEditingController(); TextEditingController allergyController = TextEditingController(); + List myAllergiesListLocal; + @override + initState(){ + super.initState(); + myAllergiesListLocal = [...widget.myAllergiesList]; + } GlobalKey key = new GlobalKey>(); bool isFormSubmitted = false; @@ -291,7 +267,7 @@ class _AddAllergiesState extends State { .of(context) .size; return FractionallySizedBox( - heightFactor: 0.7, + heightFactor: 1, child: BaseView( onModelReady: (model) async { if (model.allergiesList.length == 0) { @@ -305,220 +281,336 @@ class _AddAllergiesState extends State { AppScaffold( baseViewModel: model, isShowAppBar: false, - body: SingleChildScrollView( - child: Center( - child: FractionallySizedBox( - widthFactor: 0.9, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - - SizedBox( - height: 16, - ), - AppText( - TranslationBase - .of(context) - .addAllergies, - fontWeight: FontWeight.bold, - fontSize: 16, - ), - SizedBox( - height: 16, - ), - Container( - height: screenSize.height * 0.070, - child: InkWell( - onTap: model.allergiesList != null - ? () { - setState(() { - _selectedAllergy = null; - allergyController.text = null; - }); - } - : null, - child: _selectedAllergy==null? AutoCompleteTextField( - decoration: textFieldSelectorDecoration( - TranslationBase - .of(context) - .selectAllergy, - _selectedAllergy != null - ? _selectedAllergy.nameEn - : null, true, icon: EvaIcons.search), - itemSubmitted: (item) => - setState(() { - _selectedAllergy = item; - allergyController.text = - projectViewModel.isArabic - ? _selectedAllergy - .nameAr - : _selectedAllergy - .nameEn; - }), - key: key, - suggestions: model.allergiesList, - itemBuilder: (context, suggestion) => - new Padding( - child: Texts( - projectViewModel.isArabic ? suggestion - .nameAr : suggestion.nameEn), - padding: EdgeInsets.all(2.0)), - itemSorter: (a, b) => 1, - itemFilter: (suggestion, input) => - suggestion.nameAr.toLowerCase().startsWith( - input.toLowerCase()) || - suggestion.nameEn.toLowerCase() - .startsWith(input.toLowerCase()), - ) : - TextFields( - onTapTextFields: model.allergiesList != null - ? () { - setState(() { - _selectedAllergy = null; - allergyController.text = null; - }); - } - : null, - hasLabelText: allergyController.text != - '' ? true : false, - showLabelText: true, - hintText: TranslationBase - .of(context) - .selectAllergy, - fontSize: 13.5, - readOnly: true, - fontWeight: FontWeight.w600, - maxLines: 2, - minLines: 1, - controller: allergyController, - suffixIcon: EvaIcons.search, - validator: (value) { - if (value == null) - return TranslationBase - .of(context) - .emptyMessage; - else - return null; - }) - ), - ), - if(isFormSubmitted && _selectedAllergy == null) - CustomValidationError(), - SizedBox( - height: 10, - ), - TextFields( - onTapTextFields: model - .allergySeverityList != null - ? () { - MasterKeyDailog dialog = MasterKeyDailog( - list: model.allergySeverityList, - okText: TranslationBase - .of(context) - .ok, - okFunction: (selectedValue) { - setState(() { - _selectedAllergySeverity = - selectedValue; - - severityController.text = - projectViewModel.isArabic - ? _selectedAllergySeverity - .nameAr - : _selectedAllergySeverity - .nameEn; - }); - }, - ); - showDialog( - barrierDismissible: false, - context: context, - builder: (BuildContext context) { - return dialog; - }, - ); - } - : null, - hasLabelText: severityController.text != - '' ? true : false, - showLabelText: true, - hintText: TranslationBase - .of(context) - .selectSeverity, - fontSize: 13.5, - readOnly: true, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 2, - minLines: 1, - controller: severityController, - validator: (value) { - if (value == null) - return TranslationBase - .of(context) - .emptyMessage; - else - return null; - }), SizedBox( - height: 5, - ), - if(isFormSubmitted && - _selectedAllergySeverity == null) - CustomValidationError(), + body: Center( + child: Container( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ - SizedBox( - height: 10, + Container( + padding: EdgeInsets.only( + left: 0, right: 5, bottom: 5, top: 5), + decoration: BoxDecoration( + color: Colors.white, ), - Container( - margin: EdgeInsets.only( - left: 0, right: 0, top: 15), - child: TextFields( - hasLabelText: remarkController.text != ''?true:false, - showLabelText: true, - hintText: TranslationBase.of(context).remarks, - fontSize: 13.5, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 25, - minLines: 10, - controller: remarkController, - validator: (value) { - if (value == null) - return TranslationBase - .of(context) - .emptyMessage; - else - return null; - }), - ), SizedBox( - height: 10, + height: 115, + child: Container( + padding: EdgeInsets.only( + left: 10, right: 10), + margin: EdgeInsets.only(top: 40), + child: Column( + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + RichText( + text: TextSpan( + style: TextStyle( + fontSize:20, + color: Colors.black), + children: [ + new TextSpan( + text: TranslationBase.of(context). + addAllergies, + style: TextStyle( + color: Color(0xFF2B353E), + fontWeight: FontWeight.bold, + fontFamily: 'Poppins', + fontSize: 20)), + ], + ), + ), + InkWell( + onTap: () { + Navigator.pop(context); + }, + child: Icon(FontAwesomeIcons.times, + size: 30, + color: Color(0xFF2B353E))) + ], + ), + ], + ), ), - AppButton( - title: TranslationBase.of(context).add.toUpperCase(), - onPressed: () { - setState(() { - isFormSubmitted = true; - }); - if(_selectedAllergy !=null && _selectedAllergySeverity !=null) { - MySelectedAllergy mySelectedAllergy = new MySelectedAllergy( - remark: remarkController.text, - selectedAllergy: _selectedAllergy, - isChecked: true, - selectedAllergySeverity: _selectedAllergySeverity,); - widget.addAllergiesFun(mySelectedAllergy); - } - - }, + ), + SizedBox( + height: 10, + ), + SizedBox( + height: 16, + ), + Expanded( + child: Center( + child: FractionallySizedBox( + widthFactor: 0.9, + child: Center( + child: NetworkBaseView( + baseViewModel: model, + child: MasterKeyCheckboxSearchAllergiesWidget( + model: model, + masterList: model.allergiesList, + removeAllergy: (history){ + setState(() { + // widget.allergie(history); + }); + }, + addAllergy: (MySelectedAllergy mySelectedAllergy){ + AddAllergyLocally(mySelectedAllergy); + }, + addSelectedAllergy: (){ + // widget.addSelectedHistories(); + }, + isServiceSelected: (master) =>isServiceSelected(master), + ), + ), + ), + ), ), - ] + ), + // Container( + // height: screenSize.height * 0.070, + // child: InkWell( + // onTap: model.allergiesList != null + // ? () { + // setState(() { + // _selectedAllergy = null; + // allergyController.text = null; + // }); + // } + // : null, + // child: _selectedAllergy==null? AutoCompleteTextField( + // decoration: textFieldSelectorDecoration( + // TranslationBase + // .of(context) + // .selectAllergy, + // _selectedAllergy != null + // ? _selectedAllergy.nameEn + // : null, true, icon: EvaIcons.search), + // itemSubmitted: (item) => + // setState(() { + // _selectedAllergy = item; + // allergyController.text = + // projectViewModel.isArabic + // ? _selectedAllergy + // .nameAr + // : _selectedAllergy + // .nameEn; + // }), + // key: key, + // suggestions: model.allergiesList, + // itemBuilder: (context, suggestion) => + // new Padding( + // child: Texts( + // projectViewModel.isArabic ? suggestion + // .nameAr : suggestion.nameEn), + // padding: EdgeInsets.all(2.0)), + // itemSorter: (a, b) => 1, + // itemFilter: (suggestion, input) => + // suggestion.nameAr.toLowerCase().startsWith( + // input.toLowerCase()) || + // suggestion.nameEn.toLowerCase() + // .startsWith(input.toLowerCase()), + // ) : + // TextFields( + // onTapTextFields: model.allergiesList != null + // ? () { + // setState(() { + // _selectedAllergy = null; + // allergyController.text = null; + // }); + // } + // : null, + // hasLabelText: allergyController.text != + // '' ? true : false, + // showLabelText: true, + // hintText: TranslationBase + // .of(context) + // .selectAllergy, + // fontSize: 13.5, + // readOnly: true, + // fontWeight: FontWeight.w600, + // maxLines: 2, + // minLines: 1, + // controller: allergyController, + // suffixIcon: EvaIcons.search, + // validator: (value) { + // if (value == null) + // return TranslationBase + // .of(context) + // .emptyMessage; + // else + // return null; + // }) + // ), + // ), + // if(isFormSubmitted && _selectedAllergy == null) + // CustomValidationError(), + // SizedBox( + // height: 10, + // ), + // TextFields( + // onTapTextFields: model + // .allergySeverityList != null + // ? () { + // MasterKeyDailog dialog = MasterKeyDailog( + // list: model.allergySeverityList, + // okText: TranslationBase + // .of(context) + // .ok, + // okFunction: (selectedValue) { + // setState(() { + // _selectedAllergySeverity = + // selectedValue; + // + // severityController.text = + // projectViewModel.isArabic + // ? _selectedAllergySeverity + // .nameAr + // : _selectedAllergySeverity + // .nameEn; + // }); + // }, + // ); + // showDialog( + // barrierDismissible: false, + // context: context, + // builder: (BuildContext context) { + // return dialog; + // }, + // ); + // } + // : null, + // hasLabelText: severityController.text != + // '' ? true : false, + // showLabelText: true, + // hintText: TranslationBase + // .of(context) + // .selectSeverity, + // fontSize: 13.5, + // readOnly: true, + // // hintColor: Colors.black, + // fontWeight: FontWeight.w600, + // maxLines: 2, + // minLines: 1, + // controller: severityController, + // validator: (value) { + // if (value == null) + // return TranslationBase + // .of(context) + // .emptyMessage; + // else + // return null; + // }), SizedBox( + // height: 5, + // ), + // if(isFormSubmitted && + // _selectedAllergySeverity == null) + // CustomValidationError(), + // + // SizedBox( + // height: 10, + // ), + // Container( + // margin: EdgeInsets.only( + // left: 0, right: 0, top: 15), + // child: TextFields( + // hasLabelText: remarkController.text != ''?true:false, + // showLabelText: true, + // hintText: TranslationBase.of(context).remarks, + // fontSize: 13.5, + // // hintColor: Colors.black, + // fontWeight: FontWeight.w600, + // maxLines: 25, + // minLines: 10, + // controller: remarkController, + // validator: (value) { + // if (value == null) + // return TranslationBase + // .of(context) + // .emptyMessage; + // else + // return null; + // }), + // ), SizedBox( + // height: 10, + // ), + // AppButton( + // title: TranslationBase.of(context).add.toUpperCase(), + // onPressed: () { + // setState(() { + // isFormSubmitted = true; + // }); + // if(_selectedAllergy !=null && _selectedAllergySeverity !=null) { + // MySelectedAllergy mySelectedAllergy = new MySelectedAllergy( + // remark: remarkController.text, + // selectedAllergy: _selectedAllergy, + // isChecked: true, + // selectedAllergySeverity: _selectedAllergySeverity,); + // widget.addAllergiesFun(mySelectedAllergy); + // } + // + // }, + // ), + ] - ), ), ), - )), + ) + + ), ), ); } + + isServiceSelected(MasterKeyModel masterKey) { + Iterable history = + myAllergiesListLocal.where((element) => + masterKey.id == element.selectedAllergy.id && + masterKey.typeId == element.selectedAllergy.typeId && + element.isChecked); + if (history.length > 0) { + return true; + } + return false; + } + + AddAllergyLocally(MySelectedAllergy mySelectedAllergy) { + if ( + mySelectedAllergy.selectedAllergy == null) { + helpers.showErrorToast(TranslationBase + .of(context) + .requiredMsg); + + } else { + setState(() { + List allergy = + // ignore: missing_return + myAllergiesListLocal + .where((element) => + mySelectedAllergy.selectedAllergy.id == + element.selectedAllergy.id) + .toList(); + + if (allergy.isEmpty) { + myAllergiesListLocal.add(mySelectedAllergy); + // Navigator.of(context).pop(); + } else { + allergy.first.selectedAllergy = + mySelectedAllergy.selectedAllergy; + allergy.first.selectedAllergySeverity = + mySelectedAllergy.selectedAllergySeverity; + allergy.first.remark = mySelectedAllergy.remark; + allergy.first.isChecked = mySelectedAllergy.isChecked; + // Navigator.of(context).pop(); + + // helpers.showErrorToast(TranslationBase + // .of(context) + // .itemExist); + } + }); + }} + } diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart new file mode 100644 index 00000000..99a012c9 --- /dev/null +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -0,0 +1,499 @@ +import 'package:doctor_app_flutter/core/enum/viewstate.dart'; +import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; +import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; +import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; +import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart'; +import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; +import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; +import 'package:eva_icons_flutter/eva_icons_flutter.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import 'app_texts_widget.dart'; +import 'dialogs/master_key_dailog.dart'; + +class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget { + final SOAPViewModel model; + final Function addSelectedAllergy; + final Function(MasterKeyModel) removeAllergy; + final Function(MySelectedAllergy mySelectedAllergy) addAllergy; + final bool Function(MasterKeyModel) isServiceSelected; + final List masterList; + final String buttonName; + final String hintSearchText; + + MasterKeyCheckboxSearchAllergiesWidget( + {Key key, + this.model, + this.addSelectedAllergy, + this.removeAllergy, + this.masterList, + this.addAllergy, + this.isServiceSelected, + this.buttonName, + this.hintSearchText}) + : super(key: key); + + @override + _MasterKeyCheckboxSearchAllergiesWidgetState createState() => + _MasterKeyCheckboxSearchAllergiesWidgetState(); +} + +class _MasterKeyCheckboxSearchAllergiesWidgetState + extends State { + List items = List(); + MasterKeyModel _selectedAllergySeverity; + + @override + void initState() { + items.addAll(widget.masterList); + super.initState(); + } + + @override + Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); + return Container( + child: Column( + children: [ + Expanded( + child: Container( + height: MediaQuery.of(context).size.height * 0.62, + child: Center( + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.white), + child: Column( + children: [ + TextFields( + hintText: widget.hintSearchText ?? + TranslationBase.of(context).selectAllergy, + borderWidth: 0.0, + padding: EdgeInsets.all(20), + borderRadius: 0, + suffixIcon: EvaIcons.search, + onChanged: (value) { + filterSearchResults(value); + }, + ), + SizedBox( + height: 10, + ), + FractionallySizedBox( + widthFactor: 0.9, + child: Container( + height: MediaQuery.of(context).size.height * 0.60, + child: ListView.builder( + itemCount: items.length, + itemBuilder: (context, index) { + TextEditingController remarkController = TextEditingController(text: items[index].remarks); + TextEditingController severityController = TextEditingController(text: _selectedAllergySeverity!= null ?projectViewModel + .isArabic + ? _selectedAllergySeverity + .nameAr + : _selectedAllergySeverity + .nameEn: null); + return Column( + children: [ + InkWell( + onTap: () { + setState(() { + if (widget.isServiceSelected( + items[index])) { + widget + .removeAllergy(items[index]); + } else { + // TODO add Allergy + + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, remark: "fdfdf", isChecked: true); + widget.addAllergy(mySelectedAllergy); + } + }); + }, + child: Column( + children: [ + Row( + children: [ + Checkbox( + value: widget + .isServiceSelected( + items[index]), + activeColor: + Colors.red[800], + onChanged: (bool newValue) { + // setState(() { + // if (widget + // .isServiceSelected(items[index])) { + // widget.removeHistory(items[index]); + // } else { + // widget.addHistory(items[index]); + // } + // }); + }), + Expanded( + child: Padding( + padding: const EdgeInsets + .symmetric( + horizontal: 10, + vertical: 0), + child: AppText( + projectViewModel.isArabic + ? items[index] + .nameAr != + "" + ? items[index] + .nameAr + : items[index] + .nameEn + : items[index].nameEn, + color: Color(0xFF575757), + fontSize: 16, + fontWeight: + FontWeight.w600, + ), + ), + ), + ], + ), + if(widget + .isServiceSelected( + items[index])) + Column(children: [ + TextFields( + onTapTextFields: widget.model + .allergySeverityList != + null + ? () { + MasterKeyDailog dialog = + MasterKeyDailog( + list: widget.model + .allergySeverityList, + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + _selectedAllergySeverity = + selectedValue; + + severityController + .text = projectViewModel + .isArabic + ? _selectedAllergySeverity + .nameAr + : _selectedAllergySeverity + .nameEn; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, + hasLabelText: + severityController.text != + '' + ? true + : false, + showLabelText: true, + hintText: + TranslationBase.of(context) + .selectSeverity, + fontSize: 13.5, + readOnly: true, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 2, + minLines: 1, + controller: severityController, + validator: (value) { + if (value == null) + return TranslationBase.of( + context) + .emptyMessage; + else + return null; + }), + SizedBox( + height: 5, + ), + // if(isFormSubmitted && + // _selectedAllergySeverity == null) + // CustomValidationError(), + + SizedBox( + height: 10, + ), + Container( + margin: EdgeInsets.only( + left: 0, right: 0, top: 15), + child: TextFields( + hasLabelText: + remarkController.text != + '' + ? true + : false, + showLabelText: true, + hintText: TranslationBase.of( + context) + .remarks, + fontSize: 13.5, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 25, + minLines: 10, + controller: remarkController, + validator: (value) { + if (value == null) + return TranslationBase.of( + context) + .emptyMessage; + else + return null; + }), + ), + SizedBox( + height: 10, + ), + ],) + ], + ), + ), + // DividerWithSpacesAround(), + ], + ); + }, + ), + ), + ), + ], + ) + // ListView( + // children: [ + // TextFields( + // hintText: widget.hintSearchText ?? + // TranslationBase.of(context).searchHistory, + // borderWidth: 0.0, + // padding: EdgeInsets.all(20), + // borderRadius: 0, + // suffixIcon: EvaIcons.search, + // onChanged: (value) { + // filterSearchResults(value); + // }, + // ), + // // SizedBox(height: 15,), + // DividerWithSpacesAround(), + // + // + // // Container( + // // // padding:EdgeInsets.all(20), + // // child: Column( + // // children: items.map((historyInfo) { + // // return Column( + // // children: [ + // // InkWell( + // // onTap:(){ + // // + // // setState(() { + // // if (widget + // // .isServiceSelected(historyInfo)) { + // // widget.removeHistory(historyInfo); + // // } else { + // // widget.addHistory(historyInfo); + // // } + // // }); + // // }, + // // + // // child: Column( + // // children: [ + // // Row( + // // children: [ + // // Checkbox( + // // value:true, + // // // widget.isServiceSelected(historyInfo), + // // activeColor: Colors.red[800], + // // onChanged: (bool newValue) { + // // // setState(() { + // // // if (widget + // // // .isServiceSelected(historyInfo)) { + // // // widget.removeHistory(historyInfo); + // // // } else { + // // // widget.addHistory(historyInfo); + // // // } + // // // }); + // // }), + // // Expanded( + // // child: Padding( + // // padding: const EdgeInsets.symmetric( + // // horizontal: 10, vertical: 0), + // // child: AppText(projectViewModel.isArabic + // // ? historyInfo.nameAr!=""?historyInfo.nameAr:historyInfo.nameEn + // // : historyInfo.nameEn, + // // color: Color(0xFF575757), + // // fontSize: 16, + // // fontWeight:FontWeight.w600, + // // ), + // // ), + // // ), + // // ], + // // ), + // // TextFields( + // // onTapTextFields: widget.model + // // .allergySeverityList != null + // // ? () { + // // MasterKeyDailog dialog = MasterKeyDailog( + // // list: widget.model.allergySeverityList, + // // okText: TranslationBase + // // .of(context) + // // .ok, + // // okFunction: (selectedValue) { + // // // setState(() { + // // // _selectedAllergySeverity = + // // // selectedValue; + // // // + // // // severityController.text = + // // // projectViewModel.isArabic + // // // ? _selectedAllergySeverity + // // // .nameAr + // // // : _selectedAllergySeverity + // // // .nameEn; + // // // }); + // // }, + // // ); + // // showDialog( + // // barrierDismissible: false, + // // context: context, + // // builder: (BuildContext context) { + // // return dialog; + // // }, + // // ); + // // } + // // : null, + // // hasLabelText: severityController.text != + // // '' ? true : false, + // // showLabelText: true, + // // hintText: TranslationBase + // // .of(context) + // // .selectSeverity, + // // fontSize: 13.5, + // // readOnly: true, + // // // hintColor: Colors.black, + // // fontWeight: FontWeight.w600, + // // maxLines: 2, + // // minLines: 1, + // // controller: severityController, + // // validator: (value) { + // // if (value == null) + // // return TranslationBase + // // .of(context) + // // .emptyMessage; + // // else + // // return null; + // // }), SizedBox( + // // height: 5, + // // ), + // // // if(isFormSubmitted && + // // // _selectedAllergySeverity == null) + // // // CustomValidationError(), + // // + // // SizedBox( + // // height: 10, + // // ), + // // Container( + // // margin: EdgeInsets.only( + // // left: 0, right: 0, top: 15), + // // child: TextFields( + // // hasLabelText: remarkController.text != ''?true:false, + // // showLabelText: true, + // // hintText: TranslationBase.of(context).remarks, + // // fontSize: 13.5, + // // // hintColor: Colors.black, + // // fontWeight: FontWeight.w600, + // // maxLines: 25, + // // minLines: 10, + // // controller: remarkController, + // // validator: (value) { + // // if (value == null) + // // return TranslationBase + // // .of(context) + // // .emptyMessage; + // // else + // // return null; + // // }), + // // ), SizedBox( + // // height: 10, + // // ), + // // ], + // // ), + // // ), + // // // DividerWithSpacesAround(), + // // ], + // // ); + // // }).toList(), + // // ), + // // ), + // ], + // ), + )), + ), + ), + SizedBox( + height: 10, + ), + if (widget.model.state == ViewState.Idle) + AppButton( + title: widget.buttonName ?? + TranslationBase.of(context).addSelectedHistories, + padding: 10, + color: Color(0xFF359846), + onPressed: () { + widget.addSelectedAllergy(); + }, + ), + ], + ), + ); + } + + void filterSearchResults(String query) { + List dummySearchList = List(); + dummySearchList.addAll(widget.masterList); + if (query.isNotEmpty) { + List dummyListData = List(); + dummySearchList.forEach((items) { + if (items.nameAr.toLowerCase().contains(query.toLowerCase()) || + items.nameEn.toLowerCase().contains(query.toLowerCase())) { + dummyListData.add(items); + } + }); + setState(() { + items.clear(); + items.addAll(dummyListData); + }); + return; + } else { + setState(() { + items.clear(); + items.addAll(widget.masterList); + }); + } + } +} From df3b51b9577ef7949ce5e2ed82b8045e23522ca7 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Wed, 7 Apr 2021 18:34:16 +0300 Subject: [PATCH 2/9] update allergies --- .../subjective/update_allergies_widget.dart | 44 ++++++-- ..._key_checkbox_search_allergies_widget.dart | 101 ++++++++++++------ 2 files changed, 101 insertions(+), 44 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart index b7f5187e..a1fadef0 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart @@ -24,7 +24,7 @@ import 'package:provider/provider.dart'; import '../custom_validation_error.dart'; class UpdateAllergiesWidget extends StatefulWidget { - final List myAllergiesList; + List myAllergiesList; UpdateAllergiesWidget({Key key, this.myAllergiesList}); @@ -36,6 +36,11 @@ class _UpdateAllergiesWidgetState extends State { @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); + changeAllState() { + setState(() { + + }); + } return Column( children: [ @@ -48,7 +53,7 @@ class _UpdateAllergiesWidgetState extends State { fontSize: 13.5, borderRadius: 12, onTapTextFields: () { - openAllergiesList(context); + openAllergiesList(context, changeAllState); }, readOnly: true, suffixIcon: EvaIcons.plusCircleOutline, @@ -188,15 +193,23 @@ class _UpdateAllergiesWidgetState extends State { print(allergy); } - openAllergiesList(BuildContext context) { + openAllergiesList(BuildContext context, Function changeParentState) { showModalBottomSheet( backgroundColor: Colors.white, isScrollControlled: true, + isDismissible: false, context: context, builder: (context) { return AddAllergies( myAllergiesList: widget.myAllergiesList, - addAllergiesFun: (){} + addAllergiesFun: (List mySelectedAllergy){ + setState(() { + widget.myAllergiesList = [...mySelectedAllergy]; + }); + changeParentState(); + Navigator.of(context).pop(); + + } ); }); } @@ -358,10 +371,11 @@ class _AddAllergiesState extends State { addAllergy: (MySelectedAllergy mySelectedAllergy){ AddAllergyLocally(mySelectedAllergy); }, - addSelectedAllergy: (){ - // widget.addSelectedHistories(); - }, + addSelectedAllergy: ()=> + widget.addAllergiesFun(myAllergiesListLocal) + , isServiceSelected: (master) =>isServiceSelected(master), + getServiceSelectedAllergy: (master)=>getSelectedAllergy(master), ), ), ), @@ -564,17 +578,29 @@ class _AddAllergiesState extends State { } isServiceSelected(MasterKeyModel masterKey) { - Iterable history = + Iterable allergy = myAllergiesListLocal.where((element) => masterKey.id == element.selectedAllergy.id && masterKey.typeId == element.selectedAllergy.typeId && element.isChecked); - if (history.length > 0) { + if (allergy.length > 0) { return true; } return false; } + MySelectedAllergy getSelectedAllergy(MasterKeyModel masterKey) { + Iterable allergy = + myAllergiesListLocal.where((element) => + masterKey.id == element.selectedAllergy.id && + masterKey.typeId == element.selectedAllergy.typeId && + element.isChecked); + if (allergy.length > 0) { + return allergy.first; + } + return null; + } + AddAllergyLocally(MySelectedAllergy mySelectedAllergy) { if ( mySelectedAllergy.selectedAllergy == null) { diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index 99a012c9..dbc01d42 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -16,10 +16,12 @@ import 'dialogs/master_key_dailog.dart'; class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget { final SOAPViewModel model; - final Function addSelectedAllergy; + final Function () addSelectedAllergy; final Function(MasterKeyModel) removeAllergy; final Function(MySelectedAllergy mySelectedAllergy) addAllergy; final bool Function(MasterKeyModel) isServiceSelected; + final MySelectedAllergy Function(MasterKeyModel) getServiceSelectedAllergy; + final List masterList; final String buttonName; final String hintSearchText; @@ -33,7 +35,8 @@ class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget { this.addAllergy, this.isServiceSelected, this.buttonName, - this.hintSearchText}) + this.hintSearchText, + this.getServiceSelectedAllergy}) : super(key: key); @override @@ -89,13 +92,29 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState child: ListView.builder( itemCount: items.length, itemBuilder: (context, index) { - TextEditingController remarkController = TextEditingController(text: items[index].remarks); - TextEditingController severityController = TextEditingController(text: _selectedAllergySeverity!= null ?projectViewModel - .isArabic - ? _selectedAllergySeverity - .nameAr - : _selectedAllergySeverity - .nameEn: null); + bool isSelected = widget.isServiceSelected( + items[index]); + MySelectedAllergy mySelectedAllergy; + if (isSelected) { + mySelectedAllergy = widget + .getServiceSelectedAllergy( + items[index]); + } + TextEditingController remarkController = TextEditingController( + text: isSelected ? mySelectedAllergy + .remark : null); + TextEditingController severityController = TextEditingController( + text: isSelected ? mySelectedAllergy + .selectedAllergySeverity != null + ? projectViewModel + .isArabic + ? mySelectedAllergy + .selectedAllergySeverity + .nameAr + : mySelectedAllergy + .selectedAllergySeverity + .nameEn + : null : null); return Column( children: [ InkWell( @@ -104,18 +123,22 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState if (widget.isServiceSelected( items[index])) { widget - .removeAllergy(items[index]); + .removeAllergy( + items[index]); } else { // TODO add Allergy MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, remark: "fdfdf", isChecked: true); - widget.addAllergy(mySelectedAllergy); + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true); + widget.addAllergy( + mySelectedAllergy); } }); }, @@ -184,16 +207,9 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState okFunction: (selectedValue) { setState(() { - _selectedAllergySeverity = + mySelectedAllergy + .selectedAllergySeverity = selectedValue; - - severityController - .text = projectViewModel - .isArabic - ? _selectedAllergySeverity - .nameAr - : _selectedAllergySeverity - .nameEn; }); }, ); @@ -209,13 +225,15 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState } : null, hasLabelText: - severityController.text != - '' + mySelectedAllergy + .selectedAllergySeverity != + null ? true : false, showLabelText: true, hintText: - TranslationBase.of(context) + TranslationBase + .of(context) .selectSeverity, fontSize: 13.5, readOnly: true, @@ -226,7 +244,8 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState controller: severityController, validator: (value) { if (value == null) - return TranslationBase.of( + return TranslationBase + .of( context) .emptyMessage; else @@ -252,7 +271,8 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState ? true : false, showLabelText: true, - hintText: TranslationBase.of( + hintText: TranslationBase + .of( context) .remarks, fontSize: 13.5, @@ -260,10 +280,22 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState fontWeight: FontWeight.w600, maxLines: 25, minLines: 10, - controller: remarkController, + initialValue: isSelected + ? mySelectedAllergy + .remark : '', + // controller: remarkControlle + + onChanged: (value) { + if (isSelected) { + mySelectedAllergy + .remark = value; + }; + }, + validator: (value) { if (value == null) - return TranslationBase.of( + return TranslationBase + .of( context) .emptyMessage; else @@ -460,8 +492,7 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState ), if (widget.model.state == ViewState.Idle) AppButton( - title: widget.buttonName ?? - TranslationBase.of(context).addSelectedHistories, + title: "Add Selected Allergy", padding: 10, color: Color(0xFF359846), onPressed: () { From 19d8b9170d3f71c5a840ff81ef39826d0166043e Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Wed, 7 Apr 2021 22:11:44 +0300 Subject: [PATCH 3/9] update allergies fixes --- lib/models/SOAP/GetGetProgressNoteResModel.dart | 2 +- .../profile/soap_update/subjective/update_allergies_widget.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/models/SOAP/GetGetProgressNoteResModel.dart b/lib/models/SOAP/GetGetProgressNoteResModel.dart index ce6c0a12..4ae7ed8c 100644 --- a/lib/models/SOAP/GetGetProgressNoteResModel.dart +++ b/lib/models/SOAP/GetGetProgressNoteResModel.dart @@ -1,4 +1,4 @@ -class GetPatientProgressNoteResModel { +class GetPatientProgressNoteResModel { int appointmentNo; int createdBy; String createdByName; diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart index a1fadef0..b62bae0b 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart @@ -204,7 +204,7 @@ class _UpdateAllergiesWidgetState extends State { myAllergiesList: widget.myAllergiesList, addAllergiesFun: (List mySelectedAllergy){ setState(() { - widget.myAllergiesList = [...mySelectedAllergy]; + widget.myAllergiesList.addAll(mySelectedAllergy); }); changeParentState(); Navigator.of(context).pop(); From ff2c31ee3559813d4df63d73fc837d5e009ef1e9 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 09:48:08 +0300 Subject: [PATCH 4/9] allergies fixes --- .../subjective/update_allergies_widget.dart | 225 +++--------------- ..._key_checkbox_search_allergies_widget.dart | 184 ++------------ 2 files changed, 42 insertions(+), 367 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart index b62bae0b..c31e8e59 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart @@ -8,10 +8,8 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; -import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.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:doctor_app_flutter/widgets/shared/dialogs/master_key_dailog.dart'; import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart'; import 'package:doctor_app_flutter/widgets/shared/master_key_checkbox_search_allergies_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; @@ -21,8 +19,6 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; -import '../custom_validation_error.dart'; - class UpdateAllergiesWidget extends StatefulWidget { List myAllergiesList; @@ -202,15 +198,27 @@ class _UpdateAllergiesWidgetState extends State { builder: (context) { return AddAllergies( myAllergiesList: widget.myAllergiesList, - addAllergiesFun: (List mySelectedAllergy){ - setState(() { - widget.myAllergiesList.addAll(mySelectedAllergy); + addAllergiesFun: (List mySelectedAllergy) { + bool isAllDataFilled = true; + mySelectedAllergy.forEach((element) { + if (element.selectedAllergySeverity == null) { + isAllDataFilled = false; + } + }); + if (isAllDataFilled) { + mySelectedAllergy.forEach((element) { + if (!widget.myAllergiesList.contains(element)) { + widget.myAllergiesList.add(element); + } + }); + changeParentState(); + Navigator.of(context).pop(); + } else { + helpers.showErrorToast(TranslationBase + .of(context) + .requiredMsg); + } }); - changeParentState(); - Navigator.of(context).pop(); - - } - ); }); } @@ -363,9 +371,9 @@ class _AddAllergiesState extends State { child: MasterKeyCheckboxSearchAllergiesWidget( model: model, masterList: model.allergiesList, - removeAllergy: (history){ + removeAllergy: (master) { setState(() { - // widget.allergie(history); + removeAllergyFromLocalList(master); }); }, addAllergy: (MySelectedAllergy mySelectedAllergy){ @@ -382,190 +390,6 @@ class _AddAllergiesState extends State { ), ), ), - // Container( - // height: screenSize.height * 0.070, - // child: InkWell( - // onTap: model.allergiesList != null - // ? () { - // setState(() { - // _selectedAllergy = null; - // allergyController.text = null; - // }); - // } - // : null, - // child: _selectedAllergy==null? AutoCompleteTextField( - // decoration: textFieldSelectorDecoration( - // TranslationBase - // .of(context) - // .selectAllergy, - // _selectedAllergy != null - // ? _selectedAllergy.nameEn - // : null, true, icon: EvaIcons.search), - // itemSubmitted: (item) => - // setState(() { - // _selectedAllergy = item; - // allergyController.text = - // projectViewModel.isArabic - // ? _selectedAllergy - // .nameAr - // : _selectedAllergy - // .nameEn; - // }), - // key: key, - // suggestions: model.allergiesList, - // itemBuilder: (context, suggestion) => - // new Padding( - // child: Texts( - // projectViewModel.isArabic ? suggestion - // .nameAr : suggestion.nameEn), - // padding: EdgeInsets.all(2.0)), - // itemSorter: (a, b) => 1, - // itemFilter: (suggestion, input) => - // suggestion.nameAr.toLowerCase().startsWith( - // input.toLowerCase()) || - // suggestion.nameEn.toLowerCase() - // .startsWith(input.toLowerCase()), - // ) : - // TextFields( - // onTapTextFields: model.allergiesList != null - // ? () { - // setState(() { - // _selectedAllergy = null; - // allergyController.text = null; - // }); - // } - // : null, - // hasLabelText: allergyController.text != - // '' ? true : false, - // showLabelText: true, - // hintText: TranslationBase - // .of(context) - // .selectAllergy, - // fontSize: 13.5, - // readOnly: true, - // fontWeight: FontWeight.w600, - // maxLines: 2, - // minLines: 1, - // controller: allergyController, - // suffixIcon: EvaIcons.search, - // validator: (value) { - // if (value == null) - // return TranslationBase - // .of(context) - // .emptyMessage; - // else - // return null; - // }) - // ), - // ), - // if(isFormSubmitted && _selectedAllergy == null) - // CustomValidationError(), - // SizedBox( - // height: 10, - // ), - // TextFields( - // onTapTextFields: model - // .allergySeverityList != null - // ? () { - // MasterKeyDailog dialog = MasterKeyDailog( - // list: model.allergySeverityList, - // okText: TranslationBase - // .of(context) - // .ok, - // okFunction: (selectedValue) { - // setState(() { - // _selectedAllergySeverity = - // selectedValue; - // - // severityController.text = - // projectViewModel.isArabic - // ? _selectedAllergySeverity - // .nameAr - // : _selectedAllergySeverity - // .nameEn; - // }); - // }, - // ); - // showDialog( - // barrierDismissible: false, - // context: context, - // builder: (BuildContext context) { - // return dialog; - // }, - // ); - // } - // : null, - // hasLabelText: severityController.text != - // '' ? true : false, - // showLabelText: true, - // hintText: TranslationBase - // .of(context) - // .selectSeverity, - // fontSize: 13.5, - // readOnly: true, - // // hintColor: Colors.black, - // fontWeight: FontWeight.w600, - // maxLines: 2, - // minLines: 1, - // controller: severityController, - // validator: (value) { - // if (value == null) - // return TranslationBase - // .of(context) - // .emptyMessage; - // else - // return null; - // }), SizedBox( - // height: 5, - // ), - // if(isFormSubmitted && - // _selectedAllergySeverity == null) - // CustomValidationError(), - // - // SizedBox( - // height: 10, - // ), - // Container( - // margin: EdgeInsets.only( - // left: 0, right: 0, top: 15), - // child: TextFields( - // hasLabelText: remarkController.text != ''?true:false, - // showLabelText: true, - // hintText: TranslationBase.of(context).remarks, - // fontSize: 13.5, - // // hintColor: Colors.black, - // fontWeight: FontWeight.w600, - // maxLines: 25, - // minLines: 10, - // controller: remarkController, - // validator: (value) { - // if (value == null) - // return TranslationBase - // .of(context) - // .emptyMessage; - // else - // return null; - // }), - // ), SizedBox( - // height: 10, - // ), - // AppButton( - // title: TranslationBase.of(context).add.toUpperCase(), - // onPressed: () { - // setState(() { - // isFormSubmitted = true; - // }); - // if(_selectedAllergy !=null && _selectedAllergySeverity !=null) { - // MySelectedAllergy mySelectedAllergy = new MySelectedAllergy( - // remark: remarkController.text, - // selectedAllergy: _selectedAllergy, - // isChecked: true, - // selectedAllergySeverity: _selectedAllergySeverity,); - // widget.addAllergiesFun(mySelectedAllergy); - // } - // - // }, - // ), ] ), @@ -589,6 +413,11 @@ class _AddAllergiesState extends State { return false; } + removeAllergyFromLocalList(MasterKeyModel masterKey) { + myAllergiesListLocal.removeWhere((element) => + element.selectedAllergy.id == masterKey.id); + } + MySelectedAllergy getSelectedAllergy(MasterKeyModel masterKey) { Iterable allergy = myAllergiesListLocal.where((element) => diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index dbc01d42..68c01d62 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -4,6 +4,7 @@ import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/models/SOAP/my_selected_allergy.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; +import 'package:doctor_app_flutter/widgets/patients/profile/soap_update/custom_validation_error.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.dart'; import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart'; @@ -48,6 +49,7 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState extends State { List items = List(); MasterKeyModel _selectedAllergySeverity; + bool isSubmitted = false; @override void initState() { @@ -254,9 +256,16 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState SizedBox( height: 5, ), - // if(isFormSubmitted && - // _selectedAllergySeverity == null) - // CustomValidationError(), + if(isSubmitted && + mySelectedAllergy + .selectedAllergySeverity == null) + Row( + + children: [ + CustomValidationError(), + ], + mainAxisAlignment: MainAxisAlignment.start, + ), SizedBox( height: 10, @@ -318,172 +327,6 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState ), ], ) - // ListView( - // children: [ - // TextFields( - // hintText: widget.hintSearchText ?? - // TranslationBase.of(context).searchHistory, - // borderWidth: 0.0, - // padding: EdgeInsets.all(20), - // borderRadius: 0, - // suffixIcon: EvaIcons.search, - // onChanged: (value) { - // filterSearchResults(value); - // }, - // ), - // // SizedBox(height: 15,), - // DividerWithSpacesAround(), - // - // - // // Container( - // // // padding:EdgeInsets.all(20), - // // child: Column( - // // children: items.map((historyInfo) { - // // return Column( - // // children: [ - // // InkWell( - // // onTap:(){ - // // - // // setState(() { - // // if (widget - // // .isServiceSelected(historyInfo)) { - // // widget.removeHistory(historyInfo); - // // } else { - // // widget.addHistory(historyInfo); - // // } - // // }); - // // }, - // // - // // child: Column( - // // children: [ - // // Row( - // // children: [ - // // Checkbox( - // // value:true, - // // // widget.isServiceSelected(historyInfo), - // // activeColor: Colors.red[800], - // // onChanged: (bool newValue) { - // // // setState(() { - // // // if (widget - // // // .isServiceSelected(historyInfo)) { - // // // widget.removeHistory(historyInfo); - // // // } else { - // // // widget.addHistory(historyInfo); - // // // } - // // // }); - // // }), - // // Expanded( - // // child: Padding( - // // padding: const EdgeInsets.symmetric( - // // horizontal: 10, vertical: 0), - // // child: AppText(projectViewModel.isArabic - // // ? historyInfo.nameAr!=""?historyInfo.nameAr:historyInfo.nameEn - // // : historyInfo.nameEn, - // // color: Color(0xFF575757), - // // fontSize: 16, - // // fontWeight:FontWeight.w600, - // // ), - // // ), - // // ), - // // ], - // // ), - // // TextFields( - // // onTapTextFields: widget.model - // // .allergySeverityList != null - // // ? () { - // // MasterKeyDailog dialog = MasterKeyDailog( - // // list: widget.model.allergySeverityList, - // // okText: TranslationBase - // // .of(context) - // // .ok, - // // okFunction: (selectedValue) { - // // // setState(() { - // // // _selectedAllergySeverity = - // // // selectedValue; - // // // - // // // severityController.text = - // // // projectViewModel.isArabic - // // // ? _selectedAllergySeverity - // // // .nameAr - // // // : _selectedAllergySeverity - // // // .nameEn; - // // // }); - // // }, - // // ); - // // showDialog( - // // barrierDismissible: false, - // // context: context, - // // builder: (BuildContext context) { - // // return dialog; - // // }, - // // ); - // // } - // // : null, - // // hasLabelText: severityController.text != - // // '' ? true : false, - // // showLabelText: true, - // // hintText: TranslationBase - // // .of(context) - // // .selectSeverity, - // // fontSize: 13.5, - // // readOnly: true, - // // // hintColor: Colors.black, - // // fontWeight: FontWeight.w600, - // // maxLines: 2, - // // minLines: 1, - // // controller: severityController, - // // validator: (value) { - // // if (value == null) - // // return TranslationBase - // // .of(context) - // // .emptyMessage; - // // else - // // return null; - // // }), SizedBox( - // // height: 5, - // // ), - // // // if(isFormSubmitted && - // // // _selectedAllergySeverity == null) - // // // CustomValidationError(), - // // - // // SizedBox( - // // height: 10, - // // ), - // // Container( - // // margin: EdgeInsets.only( - // // left: 0, right: 0, top: 15), - // // child: TextFields( - // // hasLabelText: remarkController.text != ''?true:false, - // // showLabelText: true, - // // hintText: TranslationBase.of(context).remarks, - // // fontSize: 13.5, - // // // hintColor: Colors.black, - // // fontWeight: FontWeight.w600, - // // maxLines: 25, - // // minLines: 10, - // // controller: remarkController, - // // validator: (value) { - // // if (value == null) - // // return TranslationBase - // // .of(context) - // // .emptyMessage; - // // else - // // return null; - // // }), - // // ), SizedBox( - // // height: 10, - // // ), - // // ], - // // ), - // // ), - // // // DividerWithSpacesAround(), - // // ], - // // ); - // // }).toList(), - // // ), - // // ), - // ], - // ), )), ), ), @@ -496,6 +339,9 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState padding: 10, color: Color(0xFF359846), onPressed: () { + setState(() { + isSubmitted = true; + }); widget.addSelectedAllergy(); }, ), From c1adb9eeff06d733ef31429fbb19c05de9231b1c Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 10:17:49 +0300 Subject: [PATCH 5/9] fix issues --- .../subjective/update_subjective_page.dart | 8 +- .../soap_update/update_soap_index.dart | 2 - ..._key_checkbox_search_allergies_widget.dart | 428 +++++++++--------- 3 files changed, 219 insertions(+), 219 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart index 45202baf..a5f8bfad 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart @@ -304,7 +304,7 @@ class _UpdateSubjectivePageState extends State { isExpanded: isAllergiesExpand, ), SizedBox( - height:MediaQuery.of(context).size.height * 0.2, + height:MediaQuery.of(context).size.height * 0.16, ), ], ), @@ -324,13 +324,13 @@ class _UpdateSubjectivePageState extends State { height: MediaQuery .of(context) .size - .height * 0.15, + .height * 0.1, width: double.infinity, child: Column( children: [ SizedBox( - height: 15, + height: 10, ), Container(child: FractionallySizedBox( widthFactor: .80, @@ -351,7 +351,7 @@ class _UpdateSubjectivePageState extends State { ), ),), SizedBox( - height: 15, + height: 5, ), ], ),), diff --git a/lib/widgets/patients/profile/soap_update/update_soap_index.dart b/lib/widgets/patients/profile/soap_update/update_soap_index.dart index b14a0479..e774d913 100644 --- a/lib/widgets/patients/profile/soap_update/update_soap_index.dart +++ b/lib/widgets/patients/profile/soap_update/update_soap_index.dart @@ -68,8 +68,6 @@ class _UpdateSoapIndexState extends State // baseViewModel: model, isLoading: _isLoading, isShowAppBar: false, - // appBarTitle: TranslationBase.of(context).healthRecordInformation, - // TODO mousa removed the singleChildScrollView body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index 68c01d62..e7e15076 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -87,220 +87,164 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState SizedBox( height: 10, ), - FractionallySizedBox( - widthFactor: 0.9, - child: Container( - height: MediaQuery.of(context).size.height * 0.60, - child: ListView.builder( - itemCount: items.length, - itemBuilder: (context, index) { - bool isSelected = widget.isServiceSelected( - items[index]); - MySelectedAllergy mySelectedAllergy; - if (isSelected) { - mySelectedAllergy = widget - .getServiceSelectedAllergy( + Expanded( + child: FractionallySizedBox( + widthFactor: 0.9, + child: Container( + height: MediaQuery.of(context).size.height * 0.60, + child: ListView.builder( + itemCount: items.length, + itemBuilder: (context, index) { + bool isSelected = widget.isServiceSelected( items[index]); - } - TextEditingController remarkController = TextEditingController( - text: isSelected ? mySelectedAllergy - .remark : null); - TextEditingController severityController = TextEditingController( - text: isSelected ? mySelectedAllergy - .selectedAllergySeverity != null - ? projectViewModel - .isArabic - ? mySelectedAllergy - .selectedAllergySeverity - .nameAr - : mySelectedAllergy - .selectedAllergySeverity - .nameEn - : null : null); - return Column( - children: [ - InkWell( - onTap: () { - setState(() { - if (widget.isServiceSelected( - items[index])) { - widget - .removeAllergy( - items[index]); - } else { - // TODO add Allergy + MySelectedAllergy mySelectedAllergy; + if (isSelected) { + mySelectedAllergy = widget + .getServiceSelectedAllergy( + items[index]); + } + TextEditingController remarkController = TextEditingController( + text: isSelected ? mySelectedAllergy + .remark : null); + TextEditingController severityController = TextEditingController( + text: isSelected ? mySelectedAllergy + .selectedAllergySeverity != null + ? projectViewModel + .isArabic + ? mySelectedAllergy + .selectedAllergySeverity + .nameAr + : mySelectedAllergy + .selectedAllergySeverity + .nameEn + : null : null); + return Column( + children: [ + InkWell( + onTap: () { + setState(() { + if (widget.isServiceSelected( + items[index])) { + widget + .removeAllergy( + items[index]); + } else { + // TODO add Allergy - MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, - remark: null, - isChecked: true); - widget.addAllergy( - mySelectedAllergy); - } - }); - }, - child: Column( - children: [ - Row( - children: [ - Checkbox( - value: widget - .isServiceSelected( - items[index]), - activeColor: - Colors.red[800], - onChanged: (bool newValue) { - // setState(() { - // if (widget - // .isServiceSelected(items[index])) { - // widget.removeHistory(items[index]); - // } else { - // widget.addHistory(items[index]); - // } - // }); - }), - Expanded( - child: Padding( - padding: const EdgeInsets - .symmetric( - horizontal: 10, - vertical: 0), - child: AppText( - projectViewModel.isArabic - ? items[index] - .nameAr != - "" - ? items[index] - .nameAr - : items[index] - .nameEn - : items[index].nameEn, - color: Color(0xFF575757), - fontSize: 16, - fontWeight: - FontWeight.w600, + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true); + widget.addAllergy( + mySelectedAllergy); + } + }); + }, + child: Column( + children: [ + Row( + children: [ + Checkbox( + value: widget + .isServiceSelected( + items[index]), + activeColor: + Colors.red[800], + onChanged: (bool newValue) { + // setState(() { + // if (widget + // .isServiceSelected(items[index])) { + // widget.removeHistory(items[index]); + // } else { + // widget.addHistory(items[index]); + // } + // }); + }), + Expanded( + child: Padding( + padding: const EdgeInsets + .symmetric( + horizontal: 10, + vertical: 0), + child: AppText( + projectViewModel.isArabic + ? items[index] + .nameAr != + "" + ? items[index] + .nameAr + : items[index] + .nameEn + : items[index].nameEn, + color: Color(0xFF575757), + fontSize: 16, + fontWeight: + FontWeight.w600, + ), ), ), - ), - ], - ), - if(widget - .isServiceSelected( - items[index])) - Column(children: [ - TextFields( - onTapTextFields: widget.model - .allergySeverityList != - null - ? () { - MasterKeyDailog dialog = - MasterKeyDailog( - list: widget.model - .allergySeverityList, - okText: - TranslationBase.of( - context) - .ok, - okFunction: - (selectedValue) { - setState(() { - mySelectedAllergy - .selectedAllergySeverity = - selectedValue; - }); - }, - ); - showDialog( - barrierDismissible: - false, - context: context, - builder: (BuildContext - context) { - return dialog; - }, - ); - } - : null, - hasLabelText: - mySelectedAllergy - .selectedAllergySeverity != - null - ? true - : false, - showLabelText: true, - hintText: - TranslationBase - .of(context) - .selectSeverity, - fontSize: 13.5, - readOnly: true, - // hintColor: Colors.black, - fontWeight: FontWeight.w600, - maxLines: 2, - minLines: 1, - controller: severityController, - validator: (value) { - if (value == null) - return TranslationBase - .of( - context) - .emptyMessage; - else - return null; - }), - SizedBox( - height: 5, + ], ), - if(isSubmitted && - mySelectedAllergy - .selectedAllergySeverity == null) - Row( - - children: [ - CustomValidationError(), - ], - mainAxisAlignment: MainAxisAlignment.start, - ), - - SizedBox( - height: 10, - ), - Container( - margin: EdgeInsets.only( - left: 0, right: 0, top: 15), - child: TextFields( + if(widget + .isServiceSelected( + items[index])) + Column(children: [ + TextFields( + onTapTextFields: widget.model + .allergySeverityList != + null + ? () { + MasterKeyDailog dialog = + MasterKeyDailog( + list: widget.model + .allergySeverityList, + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + mySelectedAllergy + .selectedAllergySeverity = + selectedValue; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, hasLabelText: - remarkController.text != - '' + mySelectedAllergy + .selectedAllergySeverity != + null ? true : false, showLabelText: true, - hintText: TranslationBase - .of( - context) - .remarks, + hintText: + TranslationBase + .of(context) + .selectSeverity, fontSize: 13.5, + readOnly: true, // hintColor: Colors.black, fontWeight: FontWeight.w600, - maxLines: 25, - minLines: 10, - initialValue: isSelected - ? mySelectedAllergy - .remark : '', - // controller: remarkControlle - - onChanged: (value) { - if (isSelected) { - mySelectedAllergy - .remark = value; - }; - }, - + maxLines: 2, + minLines: 1, + controller: severityController, validator: (value) { if (value == null) return TranslationBase @@ -310,18 +254,76 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState else return null; }), - ), - SizedBox( - height: 10, - ), - ],) - ], + SizedBox( + height: 5, + ), + if(isSubmitted && + mySelectedAllergy + .selectedAllergySeverity == null) + Row( + + children: [ + CustomValidationError(), + ], + mainAxisAlignment: MainAxisAlignment.start, + ), + + SizedBox( + height: 10, + ), + Container( + margin: EdgeInsets.only( + left: 0, right: 0, top: 15), + child: TextFields( + hasLabelText: + remarkController.text != + '' + ? true + : false, + showLabelText: true, + hintText: TranslationBase + .of( + context) + .remarks, + fontSize: 13.5, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 25, + minLines: 10, + initialValue: isSelected + ? mySelectedAllergy + .remark : '', + // controller: remarkControlle + + onChanged: (value) { + if (isSelected) { + mySelectedAllergy + .remark = value; + }; + }, + + validator: (value) { + if (value == null) + return TranslationBase + .of( + context) + .emptyMessage; + else + return null; + }), + ), + SizedBox( + height: 10, + ), + ],) + ], + ), ), - ), - // DividerWithSpacesAround(), - ], - ); - }, + // DividerWithSpacesAround(), + ], + ); + }, + ), ), ), ), From e6f2ed51971f89a90e481ad1bc9389fdb416ac1e Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 10:35:03 +0300 Subject: [PATCH 6/9] change the add item box --- .../subjective/update_Chief_complaints.dart | 37 +-------- .../subjective/update_allergies_widget.dart | 77 +++++++++++++----- .../subjective/update_history_widget.dart | 81 +++++++++++++------ 3 files changed, 113 insertions(+), 82 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_Chief_complaints.dart b/lib/widgets/patients/profile/soap_update/subjective/update_Chief_complaints.dart index fd424767..1b159ec0 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_Chief_complaints.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_Chief_complaints.dart @@ -46,40 +46,9 @@ class UpdateChiefComplaints extends StatelessWidget { child: CustomValidationError( error: complaintsControllerError, )), - - // Container( - // margin: - // EdgeInsets.only(left: 10, right: 10, top: 15), - // child: TextFields( - // hasLabelText: complaintsController.text != '' - // ? true - // : false, - // hintText: TranslationBase - // .of(context) - // .addChiefComplaints, - // fontSize: 13.5, - // // hintColor: Colors.black, - // showLabelText: true, - // fontWeight: FontWeight.w600, - // maxLines: 25, - // minLines: 13, - // controller: complaintsController, - // validator: (value) { - // if (value == null || value == "") - // return TranslationBase.of(context) - // .emptyMessage; - // else if (value.length < 25) - // return TranslationBase - // .of(context) - // .chiefComplaintLength; - // //""; - // else - // return null; - // }), - // ), - SizedBox( - height: 20, - ), + SizedBox( + height: 20, + ), NewTextFields( hintText: TranslationBase diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart index c31e8e59..2a25861a 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_allergies_widget.dart @@ -1,4 +1,5 @@ import 'package:autocomplete_textfield/autocomplete_textfield.dart'; +import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; @@ -40,28 +41,60 @@ class _UpdateAllergiesWidgetState extends State { return Column( children: [ - Container( - margin: EdgeInsets.only(left: 10, right: 10, top: 15), - child: TextFields( - hintText: TranslationBase.of(context).addAllergies, - borderColor: HexColor('#707070'), - borderWidth: 0.30, - fontSize: 13.5, - borderRadius: 12, - onTapTextFields: () { - openAllergiesList(context, changeAllState); - }, - readOnly: true, - suffixIcon: EvaIcons.plusCircleOutline, - suffixIconColor: Color(0xFF2B353E), - fontWeight: FontWeight.w600, - // controller: messageController, - validator: (value) { - if (value == null) - return TranslationBase.of(context).emptyMessage; - else - return null; - }), + InkWell( + onTap: () { + openAllergiesList(context, changeAllState); + }, + child: Container( + padding: EdgeInsets.symmetric( + vertical: 8, horizontal: 8.0), + margin: + EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + border: Border.all( + color: Colors.grey.shade400, + width: 0.5), + borderRadius: BorderRadius.all( + Radius.circular(8), + ), + color: Colors.white, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + "${TranslationBase.of(context).addAllergies}", + fontSize: SizeConfig + .textMultiplier * + 1.8, + color: Colors.black, + fontWeight: FontWeight.bold, + ), + AppText( + "${TranslationBase.of(context).searchHere}", + fontSize: SizeConfig + .textMultiplier * + 1.8, + color: Colors.grey.shade700, + fontWeight: FontWeight.bold, + ), + ], + )), + Icon( + Icons.add_box_rounded, + size: 25, + ) + ], + ), + ), ), SizedBox( height: 20, diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_history_widget.dart b/lib/widgets/patients/profile/soap_update/subjective/update_history_widget.dart index eb69e7a5..aba4af07 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_history_widget.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_history_widget.dart @@ -9,6 +9,7 @@ import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/TextFields.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:doctor_app_flutter/widgets/shared/master_key_checkbox_search_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart'; @@ -49,28 +50,60 @@ class _UpdateHistoryWidgetState extends State ProjectViewModel projectViewModel = Provider.of(context); return Column( children: [ - Container( - margin: EdgeInsets.only(left: 10, right: 10, top: 15), - child: TextFields( - hintText: TranslationBase.of(context).addHistory, - borderColor: HexColor('#707070'), - borderWidth: 0.30, - fontSize: 13.5, - borderRadius: 12, - onTapTextFields: () { - openHistoryList(context); - }, - suffixIcon: EvaIcons.plusCircleOutline, - suffixIconColor: Color(0xFF2B353E), - readOnly: true, - fontWeight: FontWeight.w600, - // controller: messageController, - validator: (value) { - if (value == null) - return TranslationBase.of(context).emptyMessage; - else - return null; - }), + InkWell( + onTap: () { + openHistoryList(context); + }, + child: Container( + padding: EdgeInsets.symmetric( + vertical: 8, horizontal: 8.0), + margin: + EdgeInsets.symmetric(vertical: 8), + decoration: BoxDecoration( + border: Border.all( + color: Colors.grey.shade400, + width: 0.5), + borderRadius: BorderRadius.all( + Radius.circular(8), + ), + color: Colors.white, + ), + child: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Expanded( + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + AppText( + "${TranslationBase.of(context).addHistory}", + fontSize: SizeConfig + .textMultiplier * + 1.8, + color: Colors.black, + fontWeight: FontWeight.bold, + ), + AppText( + "${TranslationBase.of(context).searchHere}", + fontSize: SizeConfig + .textMultiplier * + 1.8, + color: Colors.grey.shade700, + fontWeight: FontWeight.bold, + ), + ], + )), + Icon( + Icons.add_box_rounded, + size: 25, + ) + ], + ), + ), ), SizedBox( height: 20, @@ -143,10 +176,6 @@ class _UpdateHistoryWidgetState extends State } removeHistory(MasterKeyModel historyKey) { - // Iterable history = widget.myHistoryList.where((element) => - // masterKey.id == element.id && masterKey.typeId == element.typeId); - // - List history = // ignore: missing_return widget.myHistoryList.where((element) => From d9878598656793107f3190a8cc6a57856597723c Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 11:39:51 +0300 Subject: [PATCH 7/9] make allergies as expandable widget --- lib/icons_app/config.json | 3 +- .../subjective/update_subjective_page.dart | 3 +- lib/widgets/shared/app_drawer_widget.dart | 21 +- ..._key_checkbox_search_allergies_widget.dart | 206 +++++++++++++++++- 4 files changed, 219 insertions(+), 14 deletions(-) diff --git a/lib/icons_app/config.json b/lib/icons_app/config.json index dfd00326..d215cdc1 100644 --- a/lib/icons_app/config.json +++ b/lib/icons_app/config.json @@ -2301,5 +2301,4 @@ ] } ] - } -} \ No newline at end of file + } \ No newline at end of file diff --git a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart index a5f8bfad..2d475624 100644 --- a/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart +++ b/lib/widgets/patients/profile/soap_update/subjective/update_subjective_page.dart @@ -205,10 +205,11 @@ class _UpdateSubjectivePageState extends State { doctorID: ''); await model.getPatientChiefComplaint(getChiefComplaintReqModel); if (model.patientChiefComplaintList.isNotEmpty) { + isChiefExpand = true; complaintsController.text = helpers.parseHtmlString( model.patientChiefComplaintList[0].chiefComplaint); illnessController.text = model.patientChiefComplaintList[0].hopi; - medicationController.text = model.patientChiefComplaintList[0].currentMedication + '\n \n'; + medicationController.text =!(model.patientChiefComplaintList[0].currentMedication).isNotEmpty ? model.patientChiefComplaintList[0].currentMedication + '\n \n':model.patientChiefComplaintList[0].currentMedication; } await getHistory(model); diff --git a/lib/widgets/shared/app_drawer_widget.dart b/lib/widgets/shared/app_drawer_widget.dart index 43106db1..41d58931 100644 --- a/lib/widgets/shared/app_drawer_widget.dart +++ b/lib/widgets/shared/app_drawer_widget.dart @@ -98,7 +98,7 @@ class _AppDrawerState extends State { // " or " + // TranslationBase.of(context).leaves, - DoctorApp.leaves, + DoctorApp.reschedule__1, // subTitle: , ), onTap: () { @@ -121,15 +121,6 @@ class _AppDrawerState extends State { margin: EdgeInsets.symmetric(horizontal: 20), child: Column( children: [ - InkWell( - child: DrawerItem( - TranslationBase.of(context).logout, Icons.settings), - onTap: () async { - Navigator.pop(context); - await helpers.logout(); - projectsProvider.isLogin = false; - }, - ), InkWell( child: DrawerItem( projectsProvider.isArabic @@ -143,6 +134,16 @@ class _AppDrawerState extends State { projectsProvider.changeLanguage('ar'); }, ), + InkWell( + child: DrawerItem( + TranslationBase.of(context).logout, DoctorApp.logout_1), + onTap: () async { + Navigator.pop(context); + await helpers.logout(); + projectsProvider.isLogin = false; + }, + ), + ], ), ), diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index e7e15076..497f35c2 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -14,6 +14,7 @@ import 'package:provider/provider.dart'; import 'app_texts_widget.dart'; import 'dialogs/master_key_dailog.dart'; +import 'expandable-widget-header-body.dart'; class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget { final SOAPViewModel model; @@ -118,7 +119,210 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState .selectedAllergySeverity .nameEn : null : null); - return Column( + return HeaderBodyExpandableNotifier( + headerWidget: InkWell( + onTap: () { + setState(() { + if (widget.isServiceSelected( + items[index])) { + widget + .removeAllergy( + items[index]); + } else { + // TODO add Allergy + + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true); + widget.addAllergy( + mySelectedAllergy); + } + }); + }, + child: Row( + children: [ + Checkbox( + value: widget + .isServiceSelected( + items[index]), + activeColor: + Colors.red[800], + onChanged: (bool newValue) { + // setState(() { + // if (widget + // .isServiceSelected(items[index])) { + // widget.removeHistory(items[index]); + // } else { + // widget.addHistory(items[index]); + // } + // }); + }), + Expanded( + child: Padding( + padding: const EdgeInsets + .symmetric( + horizontal: 10, + vertical: 0), + child: AppText( + projectViewModel.isArabic + ? items[index] + .nameAr != + "" + ? items[index] + .nameAr + : items[index] + .nameEn + : items[index].nameEn, + color: Color(0xFF575757), + fontSize: 16, + fontWeight: + FontWeight.w600, + ), + ), + ), + InkWell( + // onTap: onTap, + child: Icon( + isSelected ? EvaIcons.arrowIosUpwardOutline: EvaIcons.arrowIosDownwardOutline)) + ], + ), + ), + bodyWidget: isSelected?Column(children: [ + TextFields( + onTapTextFields: widget.model + .allergySeverityList != + null + ? () { + MasterKeyDailog dialog = + MasterKeyDailog( + list: widget.model + .allergySeverityList, + okText: + TranslationBase.of( + context) + .ok, + okFunction: + (selectedValue) { + setState(() { + mySelectedAllergy + .selectedAllergySeverity = + selectedValue; + }); + }, + ); + showDialog( + barrierDismissible: + false, + context: context, + builder: (BuildContext + context) { + return dialog; + }, + ); + } + : null, + hasLabelText: + mySelectedAllergy + .selectedAllergySeverity != + null + ? true + : false, + showLabelText: true, + hintText: + TranslationBase + .of(context) + .selectSeverity, + fontSize: 13.5, + readOnly: true, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 2, + minLines: 1, + controller: severityController, + validator: (value) { + if (value == null) + return TranslationBase + .of( + context) + .emptyMessage; + else + return null; + }), + SizedBox( + height: 5, + ), + if(isSubmitted && + mySelectedAllergy + .selectedAllergySeverity == null) + Row( + + children: [ + CustomValidationError(), + ], + mainAxisAlignment: MainAxisAlignment.start, + ), + + SizedBox( + height: 10, + ), + Container( + margin: EdgeInsets.only( + left: 0, right: 0, top: 15), + child: TextFields( + hasLabelText: + remarkController.text != + '' + ? true + : false, + showLabelText: true, + hintText: TranslationBase + .of( + context) + .remarks, + fontSize: 13.5, + // hintColor: Colors.black, + fontWeight: FontWeight.w600, + maxLines: 25, + minLines: 10, + initialValue: isSelected + ? mySelectedAllergy + .remark : '', + // controller: remarkControlle + + onChanged: (value) { + if (isSelected) { + mySelectedAllergy + .remark = value; + }; + }, + + validator: (value) { + if (value == null) + return TranslationBase + .of( + context) + .emptyMessage; + else + return null; + }), + ), + SizedBox( + height: 10, + ), + ],):Column(), + isExpand: isSelected, + ); + + + + + Column( children: [ InkWell( onTap: () { From ed02bbc1f00a62d162858238600423e93f51aa4d Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 12:47:06 +0300 Subject: [PATCH 8/9] fix allergy --- lib/models/SOAP/my_selected_allergy.dart | 8 +- ..._key_checkbox_search_allergies_widget.dart | 249 ++++++++++-------- 2 files changed, 149 insertions(+), 108 deletions(-) diff --git a/lib/models/SOAP/my_selected_allergy.dart b/lib/models/SOAP/my_selected_allergy.dart index 5a6bd749..c4e52af7 100644 --- a/lib/models/SOAP/my_selected_allergy.dart +++ b/lib/models/SOAP/my_selected_allergy.dart @@ -5,6 +5,7 @@ class MySelectedAllergy { MasterKeyModel selectedAllergy; String remark; bool isChecked; + bool isExpanded; int createdBy; MySelectedAllergy( @@ -12,6 +13,7 @@ class MySelectedAllergy { this.selectedAllergy, this.remark, this.isChecked, + this.isExpanded = true, this.createdBy}); MySelectedAllergy.fromJson(Map json) { @@ -22,7 +24,8 @@ class MySelectedAllergy { ? new MasterKeyModel.fromJson(json['selectedAllergy']) : null; remark = json['remark']; - remark = json['isChecked']; + isChecked = json['isChecked']; + isExpanded = json['isExpanded']; createdBy = json['createdBy']; } @@ -35,7 +38,8 @@ class MySelectedAllergy { data['selectedAllergy'] = this.selectedAllergy.toJson(); } data['remark'] = this.remark; - data['isChecked'] = this.remark; + data['isChecked'] = this.isChecked; + data['isExpanded'] = this.isExpanded; data['createdBy'] = this.createdBy; return data; } diff --git a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart index 497f35c2..f84db092 100644 --- a/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart +++ b/lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart @@ -96,115 +96,149 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState child: ListView.builder( itemCount: items.length, itemBuilder: (context, index) { - bool isSelected = widget.isServiceSelected( - items[index]); + bool isSelected = + widget.isServiceSelected(items[index]); MySelectedAllergy mySelectedAllergy; if (isSelected) { - mySelectedAllergy = widget - .getServiceSelectedAllergy( - items[index]); + mySelectedAllergy = + widget.getServiceSelectedAllergy( + items[index]); } - TextEditingController remarkController = TextEditingController( - text: isSelected ? mySelectedAllergy - .remark : null); - TextEditingController severityController = TextEditingController( - text: isSelected ? mySelectedAllergy - .selectedAllergySeverity != null - ? projectViewModel - .isArabic - ? mySelectedAllergy - .selectedAllergySeverity - .nameAr - : mySelectedAllergy - .selectedAllergySeverity - .nameEn - : null : null); + TextEditingController remarkController = + TextEditingController( + text: isSelected + ? mySelectedAllergy.remark + : null); + TextEditingController severityController = + TextEditingController( + text: isSelected + ? mySelectedAllergy + .selectedAllergySeverity != + null + ? projectViewModel.isArabic + ? mySelectedAllergy + .selectedAllergySeverity + .nameAr + : mySelectedAllergy + .selectedAllergySeverity + .nameEn + : null + : null); return HeaderBodyExpandableNotifier( - headerWidget: InkWell( - onTap: () { - setState(() { - if (widget.isServiceSelected( - items[index])) { - widget - .removeAllergy( - items[index]); - } else { - // TODO add Allergy + headerWidget: Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Checkbox( + value: + widget.isServiceSelected( + items[index]), + activeColor: Colors.red[800], + onChanged: (bool newValue) { + // setState(() { + // if (widget + // .isServiceSelected(items[index])) { + // widget.removeHistory(items[index]); + // } else { + // widget.addHistory(items[index]); + // } + // }); + }), + InkWell( + onTap: () { + setState(() { + if (widget + .isServiceSelected( + items[index])) { + widget.removeAllergy( + items[index]); + } else { + // TODO add Allergy - MySelectedAllergy - mySelectedAllergy = - new MySelectedAllergy( - selectedAllergy: - items[index], - selectedAllergySeverity: - _selectedAllergySeverity, - remark: null, - isChecked: true); - widget.addAllergy( - mySelectedAllergy); - } - }); - }, - child: Row( - children: [ - Checkbox( - value: widget - .isServiceSelected( - items[index]), - activeColor: - Colors.red[800], - onChanged: (bool newValue) { - // setState(() { - // if (widget - // .isServiceSelected(items[index])) { - // widget.removeHistory(items[index]); - // } else { - // widget.addHistory(items[index]); - // } - // }); - }), - Expanded( - child: Padding( - padding: const EdgeInsets - .symmetric( - horizontal: 10, - vertical: 0), - child: AppText( - projectViewModel.isArabic - ? items[index] - .nameAr != - "" - ? items[index] - .nameAr - : items[index] - .nameEn - : items[index].nameEn, - color: Color(0xFF575757), - fontSize: 16, - fontWeight: - FontWeight.w600, + MySelectedAllergy + mySelectedAllergy = + new MySelectedAllergy( + selectedAllergy: + items[index], + selectedAllergySeverity: + _selectedAllergySeverity, + remark: null, + isChecked: true, + isExpanded: true); + widget.addAllergy( + mySelectedAllergy); + } + }); + }, + child: Expanded( + child: Padding( + padding: const EdgeInsets + .symmetric( + horizontal: 10, + vertical: 0), + child: Container( + + child: AppText( + projectViewModel.isArabic + ? items[index] + .nameAr != + "" + ? items[index] + .nameAr + : items[index] + .nameEn + : items[index].nameEn, + color: Color(0xFF575757), + fontSize: 16, + fontWeight: + FontWeight.w600, + ), + width: MediaQuery.of(context).size.width * 0.55, + ), + ), ), ), - ), - InkWell( - // onTap: onTap, - child: Icon( - isSelected ? EvaIcons.arrowIosUpwardOutline: EvaIcons.arrowIosDownwardOutline)) - ], - ), + ], + ), + InkWell( + onTap: () { + if (mySelectedAllergy != null) { + setState(() { + mySelectedAllergy + .isExpanded = + mySelectedAllergy + .isExpanded + ? false + : true; + }); + } + }, + child: Icon((mySelectedAllergy != + null + ? mySelectedAllergy + .isExpanded + : false) + ? EvaIcons + .arrowIosUpwardOutline + : EvaIcons + .arrowIosDownwardOutline)) + ], ), - bodyWidget: isSelected?Column(children: [ - TextFields( - onTapTextFields: widget.model - .allergySeverityList != - null - ? () { - MasterKeyDailog dialog = - MasterKeyDailog( - list: widget.model - .allergySeverityList, - okText: - TranslationBase.of( + bodyWidget: Column( + children: [ + TextFields( + onTapTextFields: widget.model + .allergySeverityList != + null + ? () { + MasterKeyDailog dialog = + MasterKeyDailog( + list: widget.model + .allergySeverityList, + okText: + TranslationBase.of( context) .ok, okFunction: @@ -228,9 +262,10 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState } : null, hasLabelText: - mySelectedAllergy - .selectedAllergySeverity != - null + mySelectedAllergy != null && + mySelectedAllergy + .selectedAllergySeverity != + null ? true : false, showLabelText: true, @@ -315,8 +350,10 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState SizedBox( height: 10, ), - ],):Column(), - isExpand: isSelected, + ],), + isExpand: mySelectedAllergy != null + ? mySelectedAllergy.isExpanded + : false, ); From a768dd63cfad6fd595a7d6fd9e4ff750f2fd5238 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Thu, 8 Apr 2021 14:53:38 +0300 Subject: [PATCH 9/9] fix steps --- .../profile/soap_update/steps_widget.dart | 173 +++++++++++------- .../soap_update/update_soap_index.dart | 134 +++++++------- 2 files changed, 177 insertions(+), 130 deletions(-) diff --git a/lib/widgets/patients/profile/soap_update/steps_widget.dart b/lib/widgets/patients/profile/soap_update/steps_widget.dart index 3ad583d0..0abc84c7 100644 --- a/lib/widgets/patients/profile/soap_update/steps_widget.dart +++ b/lib/widgets/patients/profile/soap_update/steps_widget.dart @@ -22,18 +22,21 @@ class StepsWidget extends StatelessWidget { children: [ Container( height: height == 0 ? 150 : height, - width: MediaQuery.of(context).size.width, + width: MediaQuery.of(context).size.width * 0.9, color: Colors.transparent, child: Center( - child: Divider( - color: Colors.grey, - height: 0.75, - thickness: 0.75, + child: Container( + width: MediaQuery.of(context).size.width * 0.87, + child: Divider( + color: Colors.grey, + height: 0.75, + thickness: 0.75, + ), ), ), ), Positioned( - top: 50, + top: 43, left: 0, child: InkWell( onTap: () => changeCurrentTab(0), @@ -84,8 +87,11 @@ class StepsWidget extends StatelessWidget { ), ), Positioned( - top: 50, - left: MediaQuery.of(context).size.width * 0.28, + top: 43, + left: MediaQuery + .of(context) + .size + .width * 0.25, child: InkWell( onTap: () => index >= 1 ? changeCurrentTab(1) : null, child: Column( @@ -137,8 +143,11 @@ class StepsWidget extends StatelessWidget { ), ), Positioned( - top: 50, - left: MediaQuery.of(context).size.width * 0.52, + top: 43, + left: MediaQuery + .of(context) + .size + .width * 0.50, child: InkWell( onTap: () { if (index >= 3) changeCurrentTab(2); @@ -192,7 +201,7 @@ class StepsWidget extends StatelessWidget { ), ), Positioned( - top: 50, + top: 43, right: 0, child: InkWell( onTap: () => index >= 3 ? changeCurrentTab(4) : null, @@ -218,30 +227,28 @@ class StepsWidget extends StatelessWidget { ), child: Center( child: Icon( - FontAwesomeIcons.check, - size: 20, - color: Colors.white, - )), + FontAwesomeIcons.check, + size: 20, + color: Colors.white, + )), ), SizedBox( height: 5, ), - Center( - child: Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - AppText( - "Plan", - fontWeight: FontWeight.bold, - textAlign: TextAlign.center, - fontSize: 12, - ), - StatusLabel( - selectedStepId: index, - stepId: 3, - ), - ], - ), + Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + AppText( + "Plan", + fontWeight: FontWeight.bold, + // textAlign: TextAlign.center, + fontSize: 12, + ), + StatusLabel( + selectedStepId: index, + stepId: 3, + ), + ], ), ], ), @@ -264,7 +271,7 @@ class StepsWidget extends StatelessWidget { ), ), Positioned( - top: 50, + top: 43, right: 0, child: InkWell( onTap: () => changeCurrentTab(0), @@ -286,28 +293,39 @@ class StepsWidget extends StatelessWidget { ? Color(0xFFCC9B14) : index > 0 ? Color(0xFF359846) - : Color(0xFFCCCCCC), + : Color(0xFFCCCCCC), ), child: Center( child: Icon( - FontAwesomeIcons.check, - size: 20, - color: Colors.white, - )), + FontAwesomeIcons.check, + size: 20, + color: Colors.white, + )), ), SizedBox(height: 5), - AppText( - "شخصي", - fontWeight: FontWeight.bold, - fontSize: 16, + Column( + children: [ + AppText( + "شخصي", + fontWeight: FontWeight.bold, + fontSize: 16, + ), + StatusLabel( + selectedStepId: index, + stepId: 0, + ), + ], ), ], ), ), ), Positioned( - top: 50, - right: MediaQuery.of(context).size.width * 0.28, + top: 43, + right: MediaQuery + .of(context) + .size + .width * 0.28, child: InkWell( onTap: () => index >= 2 ? changeCurrentTab(1) : null, child: Column( @@ -328,28 +346,39 @@ class StepsWidget extends StatelessWidget { ? Color(0xFFCC9B14) : index > 1 ? Color(0xFF359846) - : Color(0xFFCCCCCC), + : Color(0xFFCCCCCC), ), child: Center( child: Icon( - FontAwesomeIcons.check, - size: 20, - color: Colors.white, - )), + FontAwesomeIcons.check, + size: 20, + color: Colors.white, + )), ), SizedBox(height: 5), - AppText( - "هدف", - fontWeight: FontWeight.bold, - fontSize: 14, + Column( + children: [ + AppText( + "هدف", + fontWeight: FontWeight.bold, + fontSize: 14, + ), + StatusLabel( + selectedStepId: index, + stepId: 1, + ), + ], ), ], ), ), ), Positioned( - top: 50, - right: MediaQuery.of(context).size.width * 0.52, + top: 43, + right: MediaQuery + .of(context) + .size + .width * 0.52, child: InkWell( onTap: () => index >= 3 ? changeCurrentTab(2) : null, child: Column( @@ -384,10 +413,18 @@ class StepsWidget extends StatelessWidget { ), Padding( padding: const EdgeInsets.only(right: 2), - child: AppText( - "تقدير", - fontWeight: FontWeight.bold, - fontSize: 14, + child: Column( + children: [ + AppText( + "تقدير", + fontWeight: FontWeight.bold, + fontSize: 14, + ), + StatusLabel( + selectedStepId: index, + stepId: 2, + ), + ], ), ), ], @@ -395,12 +432,12 @@ class StepsWidget extends StatelessWidget { ), ), Positioned( - top: 50, + top: 43, left: 0, child: InkWell( onTap: () => index >= 3 ? changeCurrentTab(4) : null, child: Column( - crossAxisAlignment: CrossAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.end, children: [ Container( width: 38, @@ -431,10 +468,18 @@ class StepsWidget extends StatelessWidget { ), Container( margin: EdgeInsets.only(right: index == 3 ? 15 : 0), - child: AppText( - "خطة", - fontWeight: FontWeight.bold, - fontSize: 14, + child: Column( + children: [ + AppText( + "خطة", + fontWeight: FontWeight.bold, + fontSize: 14, + ), + StatusLabel( + selectedStepId: index, + stepId: 3, + ), + ], ), ), ], diff --git a/lib/widgets/patients/profile/soap_update/update_soap_index.dart b/lib/widgets/patients/profile/soap_update/update_soap_index.dart index e774d913..db9bf63a 100644 --- a/lib/widgets/patients/profile/soap_update/update_soap_index.dart +++ b/lib/widgets/patients/profile/soap_update/update_soap_index.dart @@ -68,75 +68,77 @@ class _UpdateSoapIndexState extends State // baseViewModel: model, isLoading: _isLoading, isShowAppBar: false, - body: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - decoration: BoxDecoration( - boxShadow: [], - color: Theme.of(context).scaffoldBackgroundColor), - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - // PatientPageHeaderWidget(patient), - PatientProfileHeaderNewDesign(patient, '7', '7', height: MediaQuery.of(context).size.height * 0.28,), - Container( - width: double.infinity, - height: 1, - color: Color(0xffCCCCCC), - ), - Container( - color: Theme.of(context).scaffoldBackgroundColor, - margin: EdgeInsets.only( - left: MediaQuery.of(context).size.width * 0.05, - right: MediaQuery.of(context).size.width * 0.05), - child: StepsWidget( - index: _currentIndex, - changeCurrentTab: changePageViewIndex, - height: MediaQuery.of(context).size.height * 0.21, + body: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + boxShadow: [], + color: Theme.of(context).scaffoldBackgroundColor), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + // PatientPageHeaderWidget(patient), + PatientProfileHeaderNewDesign(patient, '7', '7', height: MediaQuery.of(context).size.height * 0.28,), + Container( + width: double.infinity, + height: 1, + color: Color(0xffCCCCCC), ), - ), - Container( - color: Theme.of(context).scaffoldBackgroundColor, - height: MediaQuery.of(context).size.height * 0.50, - child: PageView( - physics: NeverScrollableScrollPhysics(), - controller: _controller, - onPageChanged: (index) { - setState(() { - _currentIndex = index; - }); - }, - scrollDirection: Axis.horizontal, - children: [ - UpdateSubjectivePage( - changePageViewIndex: changePageViewIndex, - myAllergiesList: myAllergiesList, - myHistoryList: myHistoryList, - patientInfo: patient, - changeLoadingState: changeLoadingState), - UpdateObjectivePage( - changePageViewIndex: changePageViewIndex, - mySelectedExamination: mySelectedExamination, - patientInfo: patient, - changeLoadingState: changeLoadingState), - UpdateAssessmentPage( - changePageViewIndex: changePageViewIndex, - mySelectedAssessmentList: mySelectedAssessment, - patientInfo: patient, - changeLoadingState: changeLoadingState), - UpdatePlanPage( - changePageViewIndex: changePageViewIndex, - patientInfo: patient, - patientProgressNote: patientProgressNote, - changeLoadingState: changeLoadingState) - ], + Container( + color: Theme.of(context).scaffoldBackgroundColor, + margin: EdgeInsets.only( + left: MediaQuery.of(context).size.width * 0.05, + right: MediaQuery.of(context).size.width * 0.05), + child: StepsWidget( + index: _currentIndex, + changeCurrentTab: changePageViewIndex, + height: MediaQuery.of(context).size.height * 0.20, + ), ), - ) - ], + Container( + color: Theme.of(context).scaffoldBackgroundColor, + height: MediaQuery.of(context).size.height * 0.50, + child: PageView( + physics: NeverScrollableScrollPhysics(), + controller: _controller, + onPageChanged: (index) { + setState(() { + _currentIndex = index; + }); + }, + scrollDirection: Axis.horizontal, + children: [ + UpdateSubjectivePage( + changePageViewIndex: changePageViewIndex, + myAllergiesList: myAllergiesList, + myHistoryList: myHistoryList, + patientInfo: patient, + changeLoadingState: changeLoadingState), + UpdateObjectivePage( + changePageViewIndex: changePageViewIndex, + mySelectedExamination: mySelectedExamination, + patientInfo: patient, + changeLoadingState: changeLoadingState), + UpdateAssessmentPage( + changePageViewIndex: changePageViewIndex, + mySelectedAssessmentList: mySelectedAssessment, + patientInfo: patient, + changeLoadingState: changeLoadingState), + UpdatePlanPage( + changePageViewIndex: changePageViewIndex, + patientInfo: patient, + patientProgressNote: patientProgressNote, + changeLoadingState: changeLoadingState) + ], + ), + ) + ], + ), ), - ), - ], + ], + ), ), ), );