Refactor add_prescription_form

merge-requests/967/head
RoaaGhali98 3 years ago
parent 8cb5171bc9
commit c76900a868

@ -17,6 +17,7 @@ import 'package:flutter/material.dart';
import '../../config/config.dart'; import '../../config/config.dart';
import '../../widgets/shared/loader/gif_loader_dialog_utils.dart'; import '../../widgets/shared/loader/gif_loader_dialog_utils.dart';
import '../patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart';
import 'ProcedureType.dart'; import 'ProcedureType.dart';
class AddFavouriteProcedure extends StatefulWidget { class AddFavouriteProcedure extends StatefulWidget {
@ -48,110 +49,96 @@ class _AddFavouriteProcedureState extends State<AddFavouriteProcedure> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<ProcedureViewModel>( return BaseView<ProcedureViewModel>(
builder: (BuildContext context, ProcedureViewModel model_, Widget child) => builder: (BuildContext context, ProcedureViewModel model_,
Widget child) =>
AppScaffold( AppScaffold(
isShowAppBar: false, isShowAppBar: false,
baseViewModel: model, baseViewModel: model,
body: Column( body: Column(
children: [ children: [
Container( (widget.previousProcedureViewModel.templateList.length != 0)
height: MediaQuery.of(context).size.height * 0.070, ? Expanded(
), child: EntityListCheckboxSearchFavProceduresWidget(
(widget.previousProcedureViewModel.templateList.length != 0) isProcedure: !(widget.procedureType ==
? Expanded( ProcedureType.PRESCRIPTION),
child: EntityListCheckboxSearchFavProceduresWidget( model: widget.previousProcedureViewModel,
isProcedure: removeFavProcedure: (item) {
!(widget.procedureType == ProcedureType.PRESCRIPTION), setState(() {
model: widget.previousProcedureViewModel, entityList.remove(item);
removeFavProcedure: (item) { });
setState(() { },
entityList.remove(item); addFavProcedure: (history) {
}); setState(() {
}, entityList.add(history);
addFavProcedure: (history) { });
setState(() { },
entityList.add(history); isEntityFavListSelected: (master) =>
}); isEntityListSelected(master),
}, groupProcedures: groupProcedures,
isEntityFavListSelected: (master) => selectProcedures: (selectedProcedure) {
isEntityListSelected(master), setState(() {
groupProcedures: groupProcedures, groupProcedures = selectedProcedure;
selectProcedures: (selectedProcedure) { });
setState(() { },
groupProcedures = selectedProcedure; ),
}); )
}, : Container(
), child: Padding(
) padding: EdgeInsets.symmetric(vertical: 50.0),
: Container( child: AppText(
child: Padding( 'You Don\'t have favorite prescription'),
padding: EdgeInsets.symmetric(vertical: 50.0), ),
child: AppText('You Don\'t have favorite prescription'), ),
), ],
), ),
], bottomSheet: BottomSheetDialogButton(
), label: widget.procedureType.getAddButtonTitle(context) ??
bottomSheet: Container( TranslationBase.of(context).addSelectedProcedures,
margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), onTap: () async {
child: Wrap( if (widget.procedureType == ProcedureType.PRESCRIPTION) {
alignment: WrapAlignment.center, if (groupProcedures == null) {
children: <Widget>[ DrAppToastMsg.showErrorToast(
AppButton( 'Please Select item ',
title: widget.procedureType.getAddButtonTitle(context) ?? );
TranslationBase.of(context).addSelectedProcedures, return;
color: AppGlobal.appGreenColor, }
disabled: widget.previousProcedureViewModel.templateList.length == 0 ? true : false,
fontWeight: FontWeight.w700,
onPressed: () {
if (widget.procedureType == ProcedureType.PRESCRIPTION) {
if (groupProcedures == null) {
DrAppToastMsg.showErrorToast(
'Please Select item ',
);
return;
}
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => PrescriptionCheckOutScreen( builder: (context) => PrescriptionCheckOutScreen(
patient: widget.patient, patient: widget.patient,
model: widget.prescriptionModel, model: widget.prescriptionModel,
groupProcedures: groupProcedures, groupProcedures: groupProcedures,
), ),
settings: RouteSettings( settings: RouteSettings(
name: 'PrescriptionCheckOutScreen')), name: 'PrescriptionCheckOutScreen')),
); );
} else { } else {
if (entityList.isEmpty == true) { if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
TranslationBase.of(context) TranslationBase.of(context)
.fillTheMandatoryProcedureDetails, .fillTheMandatoryProcedureDetails,
);
return;
}
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ProcedureCheckOutScreen(
items: entityList,
model: model,
patient: widget.patient,
addButtonTitle: widget.procedureType
.getAddButtonTitle(context),
toolbarTitle: widget.procedureType
.getToolbarLabel(context),
),
settings:
RouteSettings(name: 'ProcedureCheckOutScreen')),
); );
return;
} }
Navigator.push( })),
context,
MaterialPageRoute(
builder: (context) => ProcedureCheckOutScreen(
items: entityList,
model: model,
patient: widget.patient,
addButtonTitle: widget.procedureType
.getAddButtonTitle(context),
toolbarTitle: widget.procedureType
.getToolbarLabel(context),
),
settings:
RouteSettings(name: 'ProcedureCheckOutScreen')),
);
}
},
),
],
),
),
),
); );
} }

@ -82,105 +82,74 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
appBar: BottomSheetTitle(title: procedureType.getToolbarLabel(context),), appBar: BottomSheetTitle(title: procedureType.getToolbarLabel(context),),
body: NetworkBaseView( body: NetworkBaseView(
baseViewModel: model, baseViewModel: model,
child: DraggableScrollableSheet( child: Expanded(
minChildSize: 0.90, child: Scaffold(
initialChildSize: 0.95, extendBodyBehindAppBar: true,
maxChildSize: 1.0, appBar: PreferredSize(
builder: preferredSize: Size.fromHeight(
(BuildContext context, ScrollController scrollController) { MediaQuery.of(context).size.height * 0.070),
return Container( child: TabBar(
height: MediaQuery.of(context).size.height * 1.25, isScrollable: false,
child: Padding( controller: _tabController,
padding: EdgeInsets.all(12.0), indicatorColor: Colors.transparent,
child: Column( indicatorWeight: 1.0,
crossAxisAlignment: CrossAxisAlignment.start, indicatorSize: TabBarIndicatorSize.tab,
children: [ labelColor: Theme.of(context).primaryColor,
Expanded( labelPadding: EdgeInsets.only(
child: Scaffold( top: 0, left: 0, right: 0, bottom: 0),
extendBodyBehindAppBar: true, unselectedLabelColor: Colors.grey[800],
appBar: PreferredSize( tabs: [
preferredSize: Size.fromHeight( tabWidget(
MediaQuery.of(context).size.height * 0.070), screenSize,
child: Container( _activeTab == 0,
height:
MediaQuery.of(context).size.height * 0.070, procedureType
decoration: BoxDecoration( .getFavouriteTabName(context),
border: Border( isFirst: true,context: context
bottom: BorderSide( ),
color: Theme.of(context).dividerColor, tabWidget(
width: 0.5), //width: 0.7 screenSize,
), _activeTab == 1,
color: Colors.white), procedureType.getAllLabelName(context),
child: Center( isLast: true,context: context
child: TabBar( ),
isScrollable: false, ],
controller: _tabController, ),
indicatorColor: Colors.transparent, ),
indicatorWeight: 1.0, body: Column(
indicatorSize: TabBarIndicatorSize.tab, children: [
labelColor: Theme.of(context).primaryColor, Expanded(
labelPadding: EdgeInsets.only( child: TabBarView(
top: 0, left: 0, right: 0, bottom: 0), physics: BouncingScrollPhysics(),
unselectedLabelColor: Colors.grey[800], controller: _tabController,
tabs: [ children: [
tabWidget( AddFavouriteProcedure(
screenSize, previousProcedureViewModel: model,
_activeTab == 0, prescriptionModel:
widget.prescriptionModel,
procedureType patient: patient,
.getFavouriteTabName(context), procedureType: procedureType,
isFirst: true,context: context
),
tabWidget(
screenSize,
_activeTab == 1,
procedureType.getAllLabelName(context),
isLast: true,context: context
),
],
),
),
),
),
body: Column(
children: [
Expanded(
child: TabBarView(
physics: BouncingScrollPhysics(),
controller: _tabController,
children: [
AddFavouriteProcedure(
previousProcedureViewModel: model,
prescriptionModel:
widget.prescriptionModel,
patient: patient,
procedureType: procedureType,
),
if (widget.procedureType ==
ProcedureType.PRESCRIPTION)
AddPrescriptionForm(
widget.prescriptionModel,
widget.patient,
widget.prescriptionModel.prescriptionList,
)
else
AddProcedurePage(
model: this.model,
patient: patient,
procedureType: procedureType,
),
],
),
),
],
),
), ),
), if (widget.procedureType ==
], ProcedureType.PRESCRIPTION)
AddPrescriptionForm(
widget.prescriptionModel,
widget.patient,
widget.prescriptionModel.prescriptionList,
)
else
AddProcedurePage(
model: this.model,
patient: patient,
procedureType: procedureType,
),
],
),
), ),
), ],
); ),
}), ),
)
), ),
), ),
); );
@ -210,32 +179,10 @@ class _BaseAddProcedureTabPageState extends State<BaseAddProcedureTabPage>
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
AppText(
title, TabHelper.getTabText(title: title, isActive: isActive),
fontSize: SizeConfig.textMultiplier * 1.5,
color: isActive ? Colors.white : Color(0xFF2B353E),
fontWeight: FontWeight.w700,
),
if (counter != -1) if (counter != -1)
Container( TabHelper.getTabCounter(isActive: isActive, counter: counter)
margin: EdgeInsets.all(4),
width: 15,
height: 15,
decoration: BoxDecoration(
color: isActive ? Colors.white : Color(0xFFD02127),
shape: BoxShape.circle,
),
child: Center(
child: FittedBox(
child: AppText(
"$counter",
fontSize: SizeConfig.textMultiplier * 1.5,
color: !isActive ? Colors.white : Color(0xFFD02127),
fontWeight: FontWeight.w700,
),
),
),
),
], ],
), ),
), ),

@ -78,63 +78,59 @@ class _EntityListCheckboxSearchFavProceduresWidgetState
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return SingleChildScrollView(
child: Column( child: NetworkBaseView(
children: [ baseViewModel: widget.model,
NetworkBaseView( child: Container(
baseViewModel: widget.model, height: MediaQuery.of(context).size.height * 0.90,
child: Container( child: Center(
height: MediaQuery.of(context).size.height * 0.60, child: Container(
child: Center( margin: EdgeInsets.only(top: 15),
child: Container( decoration: BoxDecoration(
margin: EdgeInsets.only(top: 15), borderRadius: BorderRadius.circular(8),
decoration: BoxDecoration( color: Colors.white),
borderRadius: BorderRadius.circular(8), child: ListView(
color: Colors.white), children: [
child: ListView( TextFields(
children: [ hintText: 'Search Favourite templates',
TextFields( suffixIcon: EvaIcons.search,
hintText: 'Search Favourite templates', suffixIconColor: Color(0xff2B353E),
suffixIcon: EvaIcons.search, onChanged: (value) {
suffixIconColor: Color(0xff2B353E), filterSearchResults(value);
onChanged: (value) { },
filterSearchResults(value); hasBorder: false,
},
hasBorder: false,
),
SizedBox(
height: 15,
),
widget.model.templateList.length != 0
? Column(
children:
widget.model.templateList.map((historyInfo) {
return ExpansionProcedure(
procedureTempleteModel: historyInfo,
model: widget.model,
removeFavProcedure: widget.removeFavProcedure,
addFavProcedure: widget.addFavProcedure,
selectProcedures: widget.selectProcedures,
isEntityListSelected:
widget.isEntityListSelected,
isEntityFavListSelected:
widget.isEntityFavListSelected,
isProcedure: widget.isProcedure,
groupProcedures: widget.groupProcedures);
}).toList(),
)
: Center(
child: Container(
child: AppText("Sorry , No Match",
color: AppGlobal.appRedColor),
),
)
],
), ),
)), SizedBox(
height: 15,
),
widget.model.templateList.length != 0
? Column(
children:
widget.model.templateList.map((historyInfo) {
return ExpansionProcedure(
procedureTempleteModel: historyInfo,
model: widget.model,
removeFavProcedure: widget.removeFavProcedure,
addFavProcedure: widget.addFavProcedure,
selectProcedures: widget.selectProcedures,
isEntityListSelected:
widget.isEntityListSelected,
isEntityFavListSelected:
widget.isEntityFavListSelected,
isProcedure: widget.isProcedure,
groupProcedures: widget.groupProcedures);
}).toList(),
)
: Center(
child: Container(
child: AppText("Sorry , No Match",
color: AppGlobal.appRedColor),
),
)
],
), ),
), )),
], ),
), ),
); );
} }

Loading…
Cancel
Save