add and remove allergy

pull/190/head
Elham Rababah 5 years ago
parent 405ad731c7
commit 52554d1aef

@ -25,7 +25,6 @@ class AddAllergiesWidget extends StatefulWidget {
} }
class _AddAllergiesWidgetState extends State<AddAllergiesWidget> { class _AddAllergiesWidgetState extends State<AddAllergiesWidget> {
List<MySelectedAllergy> myAllergiesList;
TextEditingController remarkController = TextEditingController(); TextEditingController remarkController = TextEditingController();
@ -73,35 +72,45 @@ class _AddAllergiesWidgetState extends State<AddAllergiesWidget> {
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.spaceBetween, MainAxisAlignment.spaceBetween,
children: [ children: [
Texts(selectedAllergy.selectedAllergy.nameEn Texts(selectedAllergy.selectedAllergy.nameEn.toUpperCase(),
.toUpperCase(), variant: "bodyText", bold: true, color: Colors.black),
variant: "bodyText", Texts(
bold: true, selectedAllergy.selectedAllergySeverity.nameEn
color: Colors.black),
Texts(selectedAllergy.selectedAllergySeverity.nameEn
.toUpperCase(), .toUpperCase(),
variant: "bodyText", variant: "bodyText",
bold: true, bold: true,
color: AppGlobal.appPrimaryColor), color: AppGlobal.appPrimaryColor),
Icon( InkWell(
child: Icon(
FontAwesomeIcons.trash, FontAwesomeIcons.trash,
color: Colors.grey, color: Colors.grey,
size: 20, size: 20,
),
onTap: () => removeAllergy(selectedAllergy),
) )
], ],
), SizedBox( ),
height: 20, SizedBox(
height: 10,
), ),
], ],
); );
}).toList() }).toList()),
),
) )
], ],
); );
} }
removeAllergy(MySelectedAllergy mySelectedAllergy) {
Iterable<MySelectedAllergy> allergy =
widget.myAllergiesList.where((element) => mySelectedAllergy == element);
if (allergy.length > 0)
setState(() {
widget.myAllergiesList.remove(allergy.first);
});
}
openAllergiesList(BuildContext context) { openAllergiesList(BuildContext context) {
showModalBottomSheet( showModalBottomSheet(
backgroundColor: Colors.white, backgroundColor: Colors.white,

@ -2,6 +2,7 @@ import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart'; import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; 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/SOAP_view_model.dart';
import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; 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/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart';
@ -16,6 +17,10 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:hexcolor/hexcolor.dart'; import 'package:hexcolor/hexcolor.dart';
class AddHistoryWidget extends StatefulWidget { class AddHistoryWidget extends StatefulWidget {
final List<MasterKeyModel> myHistoryList;
const AddHistoryWidget({Key key, this.myHistoryList}) : super(key: key);
@override @override
_AddHistoryWidgetState createState() => _AddHistoryWidgetState(); _AddHistoryWidgetState createState() => _AddHistoryWidgetState();
} }
@ -69,54 +74,63 @@ class _AddHistoryWidgetState extends State<AddHistoryWidget>
margin: margin:
EdgeInsets.only(left: 15, right: 15, top: 15), EdgeInsets.only(left: 15, right: 15, top: 15),
child: Column( child: Column(
children: widget.myHistoryList.map((myHistory) {
return Column(
children: [ children: [
Row( Row(
mainAxisAlignment: mainAxisAlignment: MainAxisAlignment.spaceBetween,
MainAxisAlignment.spaceBetween,
children: [ children: [
Texts('Abdomen Pain', Texts(myHistory.nameEn,
variant: "bodyText", variant: "bodyText", bold: true, color: Colors.black),
bold: true, InkWell(
color: Colors.black), child: Icon(
Icon(
FontAwesomeIcons.trash, FontAwesomeIcons.trash,
color: Colors.grey, color: Colors.grey,
size: 20, size: 20,
),
onTap: () => removeHistory(myHistory),
) )
], ],
), ),
SizedBox( SizedBox(
height: 20, height: 20,
), ),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Texts('Back Pain',
variant: "bodyText",
bold: true,
color: Colors.black),
Icon(
FontAwesomeIcons.trash,
color: Colors.grey,
size: 20,
)
],
),
], ],
);
}).toList(),
), ),
) )
], ],
); );
} }
removeHistory(MasterKeyModel masterKey) {
Iterable<MasterKeyModel> history = widget.myHistoryList.where((element) =>
masterKey.id == element.id && masterKey.typeId == element.typeId);
if (history.length > 0)
setState(() {
widget.myHistoryList.remove(history.first);
});
}
openHistoryList(BuildContext context) { openHistoryList(BuildContext context) {
showModalBottomSheet( showModalBottomSheet(
backgroundColor: Colors.white, backgroundColor: Colors.white,
isScrollControlled: true, isScrollControlled: true,
context: context, context: context,
builder: (context) { builder: (context) {
return AddHistoryDialog(changePageViewIndex:changePageViewIndex, controller: _controller,); return AddHistoryDialog(
changePageViewIndex: changePageViewIndex,
controller: _controller,
myHistoryList: widget.myHistoryList,
addSelectedHistories: () {
setState(() {
Navigator.of(context).pop();
});
},
removeHistory: (masterKey) => removeHistory(masterKey),
);
}); });
} }
} }
@ -203,8 +217,12 @@ class _PriorityBarState extends State<PriorityBar> {
class AddHistoryDialog extends StatefulWidget { class AddHistoryDialog extends StatefulWidget {
final Function changePageViewIndex; final Function changePageViewIndex;
final PageController controller; final PageController controller;
final List<MasterKeyModel> myHistoryList;
final Function addSelectedHistories;
final Function (MasterKeyModel) removeHistory;
const AddHistoryDialog({Key key, this.changePageViewIndex, this.controller}) const AddHistoryDialog(
{Key key, this.changePageViewIndex, this.controller, this.myHistoryList, this.addSelectedHistories, this.removeHistory})
: super(key: key); : super(key: key);
@override @override
@ -286,12 +304,28 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
Row( Row(
children: [ children: [
Checkbox( Checkbox(
value: true, value: isServiceSelected(
historyInfo),
activeColor: activeColor:
Colors.red[800], Colors.red[800],
onChanged: onChanged:
(bool newValue) { (bool newValue) {
setState(() {}); setState(() {
if (isServiceSelected(
historyInfo
)) {
widget
.removeHistory(
historyInfo
);
}
else {
widget
.myHistoryList
.add(
historyInfo);
}
});
}), }),
Expanded( Expanded(
child: Padding( child: Padding(
@ -325,8 +359,11 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
), ),
if (model.state == ViewState.Idle) if (model.state == ViewState.Idle)
AppButton( AppButton(
title: "Add SELECTED HISTORIES".toUpperCase(), title: "Add SELECTED HISTORIES"
onPressed: () {}, .toUpperCase(),
onPressed: () {
widget.addSelectedHistories();
},
), ),
], ],
), ),
@ -355,12 +392,29 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
Row( Row(
children: [ children: [
Checkbox( Checkbox(
value: true, value: isServiceSelected(
historyInfo),
activeColor: activeColor:
Colors.red[800], Colors.red[800],
onChanged: onChanged:
(bool newValue) { (
setState(() {}); bool newValue) {
setState(() {
if (isServiceSelected(
historyInfo
)) {
widget
.removeHistory(
historyInfo
);
}
else {
widget
.myHistoryList
.add(
historyInfo);
}
});
}), }),
Expanded( Expanded(
child: Padding( child: Padding(
@ -394,8 +448,11 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
), ),
if (model.state == ViewState.Idle) if (model.state == ViewState.Idle)
AppButton( AppButton(
title: "Add SELECTED HISTORIES".toUpperCase(), title: "Add SELECTED HISTORIES"
onPressed: () {}, .toUpperCase(),
onPressed: () {
widget.addSelectedHistories();
},
), ),
], ],
), ),
@ -424,12 +481,29 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
Row( Row(
children: [ children: [
Checkbox( Checkbox(
value: true, value: isServiceSelected(
historyInfo),
activeColor: activeColor:
Colors.red[800], Colors.red[800],
onChanged: onChanged:
(bool newValue) { (
setState(() {}); bool newValue) {
setState(() {
if (isServiceSelected(
historyInfo
)) {
widget
.removeHistory(
historyInfo
);
}
else {
widget
.myHistoryList
.add(
historyInfo);
}
});
}), }),
Expanded( Expanded(
child: Padding( child: Padding(
@ -463,8 +537,13 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
), ),
if (model.state == ViewState.Idle) if (model.state == ViewState.Idle)
AppButton( AppButton(
title: "Add SELECTED HISTORIES".toUpperCase(), title: "Add SELECTED HISTORIES"
onPressed: () {}, .toUpperCase(),
onPressed: () {
setState(() {
widget.addSelectedHistories();
});
},
), ),
], ],
), ),
@ -479,4 +558,17 @@ class _AddHistoryDialogState extends State<AddHistoryDialog> {
), ),
)); ));
} }
isServiceSelected(MasterKeyModel masterKey) {
Iterable<MasterKeyModel> history =
widget
.myHistoryList
.where((element) =>
masterKey.id == element.id && masterKey.typeId == element.typeId);
if (history.length > 0) {
return true;
}
return false;
}
} }

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/enum/master_lookup_key.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/SOAP_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/models/SOAP/my_selected_allergy.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart'; 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/util/translations_delegate_base.dart';
@ -30,6 +31,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
bool isHistoryExpand = false; bool isHistoryExpand = false;
bool isAllergiesExpand = false; bool isAllergiesExpand = false;
List<MySelectedAllergy> myAllergiesList = List(); List<MySelectedAllergy> myAllergiesList = List();
List<MasterKeyModel> myHistoryList = List();
TextEditingController messageController = TextEditingController(); TextEditingController messageController = TextEditingController();
@override @override
@ -143,7 +145,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
children: [ children: [
Row( Row(
children: [ children: [
Texts('History', Texts('History'.toUpperCase(),
variant: isHistoryExpand ? "bodyText" : '', variant: isHistoryExpand ? "bodyText" : '',
bold: isHistoryExpand ? true : false, bold: isHistoryExpand ? true : false,
color: Colors.black), color: Colors.black),
@ -167,7 +169,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
), ),
bodyWidget: Column( bodyWidget: Column(
children: [ children: [
AddHistoryWidget() AddHistoryWidget(myHistoryList: myHistoryList)
], ],
), ),
isExpand: isHistoryExpand, isExpand: isHistoryExpand,
@ -189,7 +191,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
children: [ children: [
Row( Row(
children: [ children: [
Texts('Allergies', Texts('Allergies'.toUpperCase(),
variant: isAllergiesExpand ? "bodyText" : '', variant: isAllergiesExpand ? "bodyText" : '',
bold: isAllergiesExpand ? true : false, bold: isAllergiesExpand ? true : false,
color: Colors.black), color: Colors.black),
@ -238,6 +240,7 @@ class _SubjectivePageState extends State<SubjectivePage> {
.of(context) .of(context)
.next, .next,
onPressed: () { onPressed: () {
print( myHistoryList.toString());
widget.changePageViewIndex(1); widget.changePageViewIndex(1);
}, },
), ),

Loading…
Cancel
Save