Merge branch 'soap_update' into 'development'

delete Allergy

See merge request Cloud_Solution/doctor_app_flutter!225
merge-requests/226/merge
Mohammad Aljammal 5 years ago
commit 5e7594f4cd

@ -4,9 +4,10 @@ class MySelectedAllergy {
MasterKeyModel selectedAllergySeverity; MasterKeyModel selectedAllergySeverity;
MasterKeyModel selectedAllergy; MasterKeyModel selectedAllergy;
String remark; String remark;
bool isChecked;
MySelectedAllergy( MySelectedAllergy(
{this.selectedAllergySeverity, this.selectedAllergy, this.remark}); {this.selectedAllergySeverity, this.selectedAllergy, this.remark, this.isChecked});
MySelectedAllergy.fromJson(Map<String, dynamic> json) { MySelectedAllergy.fromJson(Map<String, dynamic> json) {
selectedAllergySeverity = json['selectedAllergySeverity'] != null selectedAllergySeverity = json['selectedAllergySeverity'] != null
@ -16,6 +17,7 @@ class MySelectedAllergy {
? new MasterKeyModel.fromJson(json['selectedAllergy']) ? new MasterKeyModel.fromJson(json['selectedAllergy'])
: null; : null;
remark = json['remark']; remark = json['remark'];
remark = json['isChecked'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -27,6 +29,7 @@ class MySelectedAllergy {
data['selectedAllergy'] = this.selectedAllergy.toJson(); data['selectedAllergy'] = this.selectedAllergy.toJson();
} }
data['remark'] = this.remark; data['remark'] = this.remark;
data['isChecked'] = this.remark;
return data; return data;
} }
} }

@ -34,7 +34,7 @@ class StepsWidget extends StatelessWidget {
top: index == 0 ? 15 : 30, top: index == 0 ? 15 : 30,
left: 0, left: 0,
child: InkWell( child: InkWell(
//onTap: () => changeCurrentTab(0), onTap: () => changeCurrentTab(0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -84,7 +84,7 @@ class StepsWidget extends StatelessWidget {
top: index == 1 ? 15 : 30, top: index == 1 ? 15 : 30,
left: MediaQuery.of(context).size.width * 0.28, left: MediaQuery.of(context).size.width * 0.28,
child: InkWell( child: InkWell(
//onTap: () => index >= 1 ? changeCurrentTab(1) : null, onTap: () => index >= 1 ? changeCurrentTab(1) : null,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -187,7 +187,7 @@ class StepsWidget extends StatelessWidget {
top: index == 3 ? 15 : 30, top: index == 3 ? 15 : 30,
right: 0, right: 0,
child: InkWell( child: InkWell(
//onTap: () => index >= 3 ? changeCurrentTab(4) : null, onTap: () => index >= 3 ? changeCurrentTab(4) : null,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -257,7 +257,7 @@ class StepsWidget extends StatelessWidget {
top: index == 0 ? 15 : 30, top: index == 0 ? 15 : 30,
right: 0, right: 0,
child: InkWell( child: InkWell(
//onTap: () => changeCurrentTab(0), onTap: () => changeCurrentTab(0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -307,7 +307,7 @@ class StepsWidget extends StatelessWidget {
top: index == 1 ? 15 : 30, top: index == 1 ? 15 : 30,
right: MediaQuery.of(context).size.width * 0.28, right: MediaQuery.of(context).size.width * 0.28,
child: InkWell( child: InkWell(
//onTap: () => index >= 2 ? changeCurrentTab(1) : null, onTap: () => index >= 2 ? changeCurrentTab(1) : null,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -357,7 +357,7 @@ class StepsWidget extends StatelessWidget {
top: index == 2 ? 15 : 30, top: index == 2 ? 15 : 30,
right: MediaQuery.of(context).size.width * 0.52, right: MediaQuery.of(context).size.width * 0.52,
child: InkWell( child: InkWell(
//onTap: () => index >= 3 ? changeCurrentTab(2) : null, onTap: () => index >= 3 ? changeCurrentTab(2) : null,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -411,7 +411,7 @@ class StepsWidget extends StatelessWidget {
top: index == 3 ? 15 : 30, top: index == 3 ? 15 : 30,
left: 0, left: 0,
child: InkWell( child: InkWell(
//onTap: () => index >= 3 ? changeCurrentTab(4) : null, onTap: () => index >= 3 ? changeCurrentTab(4) : null,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [

@ -28,6 +28,7 @@ class UpdateAllergiesWidget extends StatefulWidget {
} }
class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> { class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
TextEditingController remarkController = TextEditingController(); TextEditingController remarkController = TextEditingController();
@override @override
@ -52,7 +53,9 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
// controller: messageController, // controller: messageController,
validator: (value) { validator: (value) {
if (value == null) if (value == null)
return TranslationBase.of(context).emptyMessage; return TranslationBase
.of(context)
.emptyMessage;
else else
return null; return null;
}), }),
@ -61,22 +64,31 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
height: 20, height: 20,
), ),
Container( Container(
margin: EdgeInsets.only(left: 15, right: 15, top: 15), margin:
EdgeInsets.only(left: 15, right: 15, top: 15),
child: Column( child: Column(
children: widget.myAllergiesList.map((selectedAllergy) { children: widget.myAllergiesList.map((selectedAllergy) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,children: [ mainAxisAlignment: MainAxisAlignment.start,
children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Container( Container(
child: Expanded( child: Expanded(
child: Texts(projectViewModel.isArabic ? selectedAllergy child: Texts(
.selectedAllergy.nameAr : selectedAllergy projectViewModel.isArabic
.selectedAllergy.nameEn.toUpperCase(), ? selectedAllergy.selectedAllergy.nameAr
: selectedAllergy.selectedAllergy.nameEn
.toUpperCase(),
variant: "bodyText", variant: "bodyText",
textDecoration: selectedAllergy.isChecked
? null
: TextDecoration.lineThrough,
bold: true, bold: true,
color: Colors.black), color: Colors.black),
), ),
@ -88,8 +100,12 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
.selectedAllergySeverity.nameEn .selectedAllergySeverity.nameEn
.toUpperCase(), .toUpperCase(),
variant: "bodyText", variant: "bodyText",
textDecoration: selectedAllergy.isChecked
? null
: TextDecoration.lineThrough,
bold: true, bold: true,
color: AppGlobal.appPrimaryColor), color: AppGlobal.appPrimaryColor),
if(selectedAllergy.isChecked)
InkWell( InkWell(
child: Icon( child: Icon(
FontAwesomeIcons.trash, FontAwesomeIcons.trash,
@ -112,15 +128,24 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
} }
removeAllergy(MySelectedAllergy mySelectedAllergy) { removeAllergy(MySelectedAllergy mySelectedAllergy) {
Iterable<MySelectedAllergy> allergy = List<MySelectedAllergy> allergy =
widget.myAllergiesList.where((element) => mySelectedAllergy == element); // ignore: missing_return
widget.myAllergiesList.where((element) =>
mySelectedAllergy.selectedAllergySeverity.id ==
element.selectedAllergySeverity.id &&
mySelectedAllergy.selectedAllergy.id == element.selectedAllergy.id
).toList();
if (allergy.length > 0) if (allergy.length > 0) {
setState(() { setState(() {
widget.myAllergiesList.remove(allergy.first); allergy[0].isChecked = false;
}); });
} }
print(allergy);
}
openAllergiesList(BuildContext context) { openAllergiesList(BuildContext context) {
showModalBottomSheet( showModalBottomSheet(
backgroundColor: Colors.white, backgroundColor: Colors.white,
@ -130,14 +155,29 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
return AddAllergies( return AddAllergies(
addAllergiesFun: (MySelectedAllergy mySelectedAllergy) { addAllergiesFun: (MySelectedAllergy mySelectedAllergy) {
setState(() { setState(() {
if (!widget.myAllergiesList.contains(mySelectedAllergy)) { List<MySelectedAllergy> allergy =
// ignore: missing_return
widget.myAllergiesList.where((element) =>
mySelectedAllergy.selectedAllergy.id ==
element.selectedAllergy.id
).toList();
if (allergy.isEmpty) {
widget.myAllergiesList.add(mySelectedAllergy); widget.myAllergiesList.add(mySelectedAllergy);
Navigator.of(context).pop(); Navigator.of(context).pop();
} else { } else {
helpers.showErrorToast(TranslationBase allergy.first.selectedAllergy =
.of(context) mySelectedAllergy.selectedAllergy;
.itemExist); allergy.first.selectedAllergySeverity =
mySelectedAllergy.selectedAllergySeverity;
allergy.first.remark = mySelectedAllergy.remark;
allergy.first.isChecked = mySelectedAllergy.isChecked;
// helpers.showErrorToast(TranslationBase
// .of(context)
// .itemExist);
} }
Navigator.of(context).pop();
}); });
},); },);
}); });
@ -162,9 +202,9 @@ class _AddAllergiesState extends State<AddAllergies> {
TextEditingController remarkController = TextEditingController(); TextEditingController remarkController = TextEditingController();
GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<MasterKeyModel>>(); GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<MasterKeyModel>>();
InputDecoration textFieldSelectorDecoration(
String hintText, String selectedText, bool isDropDown, InputDecoration textFieldSelectorDecoration(String hintText,
{IconData icon}) { String selectedText, bool isDropDown,{IconData icon}) {
return InputDecoration( return InputDecoration(
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0), borderSide: BorderSide(color: Color(0xFFCCCCCC), width: 2.0),
@ -204,7 +244,8 @@ class _AddAllergiesState extends State<AddAllergies> {
await model.getMasterLookup(MasterKeysService.AllergySeverity); await model.getMasterLookup(MasterKeysService.AllergySeverity);
} }
}, },
builder: (_, model, w) => AppScaffold( builder: (_, model, w) =>
AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: false, isShowAppBar: false,
body: SingleChildScrollView( body: SingleChildScrollView(
@ -214,6 +255,7 @@ class _AddAllergiesState extends State<AddAllergies> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( SizedBox(
height: 16, height: 16,
), ),
@ -237,17 +279,14 @@ class _AddAllergiesState extends State<AddAllergies> {
}); });
} }
: null, : null,
child: _selectedAllergy == null child: _selectedAllergy==null? AutoCompleteTextField<MasterKeyModel>(
? AutoCompleteTextField<MasterKeyModel>(
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase TranslationBase
.of(context) .of(context)
.selectAllergy, .selectAllergy,
_selectedAllergy != null _selectedAllergy != null
? _selectedAllergy.nameEn ? _selectedAllergy.nameEn
: null, : null, true, icon: EvaIcons.search),
true,
icon: EvaIcons.search),
itemSubmitted: (item) => itemSubmitted: (item) =>
setState(() => _selectedAllergy = item), setState(() => _selectedAllergy = item),
key: key, key: key,
@ -255,29 +294,23 @@ class _AddAllergiesState extends State<AddAllergies> {
itemBuilder: (context, suggestion) => itemBuilder: (context, suggestion) =>
new Padding( new Padding(
child: Texts( child: Texts(
projectViewModel.isArabic projectViewModel.isArabic ? suggestion
? suggestion.nameAr .nameAr : suggestion.nameEn),
: suggestion.nameEn),
padding: EdgeInsets.all(8.0)), padding: EdgeInsets.all(8.0)),
itemSorter: (a, b) => 1, itemSorter: (a, b) => 1,
itemFilter: (suggestion, input) => itemFilter: (suggestion, input) =>
suggestion.nameAr suggestion.nameAr.toLowerCase().startsWith(
.toLowerCase() input.toLowerCase()) ||
.startsWith(input.toLowerCase()) || suggestion.nameEn.toLowerCase()
suggestion.nameEn
.toLowerCase()
.startsWith(input.toLowerCase()), .startsWith(input.toLowerCase()),
) ):TextField(
: TextField(
decoration: textFieldSelectorDecoration( decoration: textFieldSelectorDecoration(
TranslationBase TranslationBase
.of(context) .of(context)
.selectAllergy, .selectAllergy,
_selectedAllergy != null _selectedAllergy != null
? projectViewModel.isArabic?_selectedAllergy.nameAr: _selectedAllergy.nameEn ? projectViewModel.isArabic?_selectedAllergy.nameAr: _selectedAllergy.nameEn
: null, : null, true, icon: EvaIcons.search),
true,
icon: EvaIcons.search),
enabled: false, enabled: false,
), ),
), ),
@ -292,12 +325,13 @@ class _AddAllergiesState extends State<AddAllergies> {
? () { ? () {
MasterKeyDailog dialog = MasterKeyDailog( MasterKeyDailog dialog = MasterKeyDailog(
list: model.allergySeverityList, list: model.allergySeverityList,
okText: TranslationBase.of(context).ok, okText: TranslationBase
.of(context)
.ok,
okFunction: (selectedValue) { okFunction: (selectedValue) {
setState(() { setState(() {
_selectedAllergySeverity = _selectedAllergySeverity =
selectedValue; selectedValue;
}); });
}, },
); );
@ -327,7 +361,8 @@ class _AddAllergiesState extends State<AddAllergies> {
height: 10, height: 10,
), ),
Container( Container(
margin: EdgeInsets.only(left: 0, right: 0, top: 15), margin: EdgeInsets.only(
left: 0, right: 0, top: 15),
child: TextFields( child: TextFields(
hintText: TranslationBase.of(context).remarks, hintText: TranslationBase.of(context).remarks,
fontSize: 13.5, fontSize: 13.5,
@ -338,28 +373,29 @@ class _AddAllergiesState extends State<AddAllergies> {
controller: remarkController, controller: remarkController,
validator: (value) { validator: (value) {
if (value == null) if (value == null)
return TranslationBase.of(context) return TranslationBase
.of(context)
.emptyMessage; .emptyMessage;
else else
return null; return null;
}), }),
), ), SizedBox(
SizedBox(
height: 10, height: 10,
), ),
AppButton( AppButton(
title: "Add".toUpperCase(), title: "Add".toUpperCase(),
onPressed: () { onPressed: () {
MySelectedAllergy mySelectedAllergy = MySelectedAllergy mySelectedAllergy = new MySelectedAllergy(
new MySelectedAllergy(
remark: remarkController.text, remark: remarkController.text,
selectedAllergy: _selectedAllergy, selectedAllergy: _selectedAllergy,
selectedAllergySeverity: isChecked: true,
_selectedAllergySeverity); selectedAllergySeverity: _selectedAllergySeverity,);
widget.addAllergiesFun(mySelectedAllergy); widget.addAllergiesFun(mySelectedAllergy);
}, },
), ),
]), ]
),
), ),
), ),
)), )),
@ -367,3 +403,8 @@ class _AddAllergiesState extends State<AddAllergies> {
); );
} }
} }

@ -131,6 +131,10 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
return BaseView<SOAPViewModel>( return BaseView<SOAPViewModel>(
onModelReady: (model) async { onModelReady: (model) async {
widget.myAllergiesList.clear();
widget.myHistoryList.clear();
GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP( GeneralGetReqForSOAP generalGetReqForSOAP = GeneralGetReqForSOAP(
patientMRN: widget.patientInfo.patientMRN, patientMRN: widget.patientInfo.patientMRN,
episodeId: widget.patientInfo.episodeNo, episodeId: widget.patientInfo.episodeNo,
@ -165,6 +169,7 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> {
); );
MySelectedAllergy mySelectedAllergy = MySelectedAllergy( MySelectedAllergy mySelectedAllergy = MySelectedAllergy(
selectedAllergy: selectedAllergy, selectedAllergy: selectedAllergy,
isChecked: element.isChecked,
selectedAllergySeverity: selectedAllergySeverity); selectedAllergySeverity: selectedAllergySeverity);
if (selectedAllergy != null && selectedAllergySeverity != null) if (selectedAllergy != null && selectedAllergySeverity != null)
widget.myAllergiesList.add(mySelectedAllergy); widget.myAllergiesList.add(mySelectedAllergy);

@ -16,11 +16,12 @@ class Texts extends StatefulWidget {
final bool readMore; final bool readMore;
final String style; final String style;
final bool allowExpand; final bool allowExpand;
final TextDecoration textDecoration;
Texts(this.text, {Key key, this.variant, this.color, Texts(this.text, {Key key, this.variant, this.color,
this.bold, this.regular, this.medium, this.allowExpand = true, this.bold, this.regular, this.medium, this.allowExpand = true,
this.italic:false, this.textAlign, this.maxLength=60, this.italic:false, this.textAlign, this.maxLength=60,
this.maxLines, this.readMore=false, this.style this.maxLines, this.readMore=false, this.style, this.textDecoration
}) : super(key: key); }) : super(key: key);
@override @override
@ -192,6 +193,7 @@ class _TextsState extends State<Texts> {
fontSize: _getFontSize(), fontSize: _getFontSize(),
letterSpacing: widget.variant=="overline" ? 1.5 : null, letterSpacing: widget.variant=="overline" ? 1.5 : null,
fontWeight: _getFontWeight(), fontWeight: _getFontWeight(),
decoration: widget.textDecoration//TextDecoration.lineThrough
) )
), ),
if (widget.readMore && text.length > widget.maxLength && hidden) if (widget.readMore && text.length > widget.maxLength && hidden)
@ -228,7 +230,8 @@ class _TextsState extends State<Texts> {
style: _getFontStyle().copyWith( style: _getFontStyle().copyWith(
color: HexColor('#FF0000'), color: HexColor('#FF0000'),
fontWeight: FontWeight.w800, fontWeight: FontWeight.w800,
fontFamily: "WorkSans" fontFamily: "WorkSans",
) )
), ),
), ),

Loading…
Cancel
Save