allergies work in progress

update_flutter_3.24_vida_plus_episode_v2
Sultan khan 1 year ago
parent f1b87f2568
commit d44f6f8eb0

@ -4,7 +4,42 @@
# This file should be version controlled and should not be manually edited.
version:
revision: 0b8abb4724aa590dd0f429683339b1e045a1594d
channel: stable
revision: "54e66469a933b60ddf175f858f82eaeb97e48c8d"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: android
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: ios
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: linux
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: macos
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: web
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
- platform: windows
create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

@ -290,6 +290,9 @@ const ACKNOWLEDGE_RADIOLOGY_CRITICAL_FINDINGS = "Services/DoctorApplication.svc/
const PATIENT_ALLERGIES = 'Services/DoctorApplication.svc/REST/PatientAllergies';
const SEARCH_ALLERGIES = 'Services/DoctorApplication.svc/REST/SearchAllergies';
var selectedPatientType = 1;
//*********change value to decode json from Dropdown ************

@ -0,0 +1,107 @@
class AllergiesListVidaPlus {
int? allergyID;
String? allergyName;
List<AllergyReactionDTOs>? allergyReactionDTOs;
int? allergyRevisionID;
String? allergyTypeCode;
int? allergyTypeID;
String? allergyTypeName;
int? hospitalGroupID;
int? hospitalID;
bool? isActive;
bool? isSnowMedAllergy;
String? snowMedCode;
AllergiesListVidaPlus(
{this.allergyID,
this.allergyName,
this.allergyReactionDTOs,
this.allergyRevisionID,
this.allergyTypeCode,
this.allergyTypeID,
this.allergyTypeName,
this.hospitalGroupID,
this.hospitalID,
this.isActive,
this.isSnowMedAllergy,
this.snowMedCode});
AllergiesListVidaPlus.fromJson(Map<String, dynamic> json) {
allergyID = json['allergyID'];
allergyName = json['allergyName'];
if (json['allergyReactionDTOs'] != null) {
allergyReactionDTOs = <AllergyReactionDTOs>[];
json['allergyReactionDTOs'].forEach((v) {
allergyReactionDTOs!.add(new AllergyReactionDTOs.fromJson(v));
});
}
allergyRevisionID = json['allergyRevisionID'];
allergyTypeCode = json['allergyTypeCode'];
allergyTypeID = json['allergyTypeID'];
allergyTypeName = json['allergyTypeName'];
hospitalGroupID = json['hospitalGroupID'];
hospitalID = json['hospitalID'];
isActive = json['isActive'];
isSnowMedAllergy = json['isSnowMedAllergy'];
snowMedCode = json['snowMedCode'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['allergyID'] = this.allergyID;
data['allergyName'] = this.allergyName;
if (this.allergyReactionDTOs != null) {
data['allergyReactionDTOs'] =
this.allergyReactionDTOs!.map((v) => v.toJson()).toList();
}
data['allergyRevisionID'] = this.allergyRevisionID;
data['allergyTypeCode'] = this.allergyTypeCode;
data['allergyTypeID'] = this.allergyTypeID;
data['allergyTypeName'] = this.allergyTypeName;
data['hospitalGroupID'] = this.hospitalGroupID;
data['hospitalID'] = this.hospitalID;
data['isActive'] = this.isActive;
data['isSnowMedAllergy'] = this.isSnowMedAllergy;
data['snowMedCode'] = this.snowMedCode;
return data;
}
}
class AllergyReactionDTOs {
int? allergyReactionID;
String? allergyReactionName;
int? allergyReactionRevisionID;
int? hospitalGroupID;
int? hospitalID;
bool? isActive;
int? reactionSelection =1;
AllergyReactionDTOs(
{this.allergyReactionID,
this.allergyReactionName,
this.allergyReactionRevisionID,
this.hospitalGroupID,
this.hospitalID,
this.isActive,
this.reactionSelection
});
AllergyReactionDTOs.fromJson(Map<String, dynamic> json) {
allergyReactionID = json['allergyReactionID'];
allergyReactionName = json['allergyReactionName'];
allergyReactionRevisionID = json['allergyReactionRevisionID'];
hospitalGroupID = json['hospitalGroupID'];
hospitalID = json['hospitalID'];
isActive = json['isActive'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['allergyReactionID'] = this.allergyReactionID;
data['allergyReactionName'] = this.allergyReactionName;
data['allergyReactionRevisionID'] = this.allergyReactionRevisionID;
data['hospitalGroupID'] = this.hospitalGroupID;
data['hospitalID'] = this.hospitalID;
data['isActive'] = this.isActive;
return data;
}
}

@ -1,6 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/model/SOAP/Allergy/get_allergies_res_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_res_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/model/SOAP/general_get_req_for_SOAP.dart';
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_req_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/post_episode_req_model.dart';
@ -32,7 +33,7 @@ class SOAPService extends LookupService {
List<GetPhysicalExamResModel> patientPhysicalExamList = [];
List<GetPatientProgressNoteResModel> patientProgressNoteList = [];
List<GetAssessmentResModel> patientAssessmentList = [];
List<AllergiesListVidaPlus> searchAllergiesList =[];
int? episodeID;
bool isPrescriptionOrder =false;
Future postEpisode(PostEpisodeReqModel postEpisodeReqModel) async {
@ -355,4 +356,20 @@ class SOAPService extends LookupService {
}, body: generalGetReqForSOAP.toJson());
}
Future searchAllergies(String searchKey) async {
hasError = false;
await baseAppClient.post(SEARCH_ALLERGIES,
onSuccess: (dynamic response, int statusCode) {
print("Success");
searchAllergiesList.clear();
response['List_SearchAllergies']['resultData'].forEach((v) {
searchAllergiesList.add(AllergiesListVidaPlus.fromJson(v));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: {"AllergyName": searchKey});
}
}

@ -5,6 +5,7 @@ import 'package:doctor_app_flutter/core/model/SOAP/Allergy/post_allergy_request_
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_req_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/get_assessment_res_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/Assessment/post_assessment_request_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/model/SOAP/chief_complaint/get_chief_complaint_req_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/chief_complaint/get_chief_complaint_res_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/chief_complaint/post_chief_complaint_request_model.dart';
@ -78,6 +79,12 @@ class SOAPViewModel extends BaseViewModel {
List<GetAssessmentResModel> get patientAssessmentList => _SOAPService.patientAssessmentList;
List<AllergiesListVidaPlus> get searchAllergiesVidaPlus => _SOAPService.searchAllergiesList;
int? get episodeID => _SOAPService.episodeID;
bool get isPrescriptionOrder => _SOAPService.isPrescriptionOrder;
bool isAddProgress = true;
@ -730,4 +737,31 @@ class SOAPViewModel extends BaseViewModel {
return postAllergyRequestModel;
}
/*vida plus */
getAllergiesVidaPlus(PatiantInformtion patientInfo) async{
GeneralGetReqForSOAP generalGetReqForSOAP =
GeneralGetReqForSOAP(patientMRN: patientInfo.patientMRN, episodeId: patientInfo.episodeNo, appointmentNo: int.parse(patientInfo.appointmentNo.toString()), doctorID: '', editedBy: '');
setState(ViewState.BusyLocal);
await _SOAPService.patientAllergies(generalGetReqForSOAP);
if (_SOAPService.hasError) {
error = _SOAPService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
searchAllergies(String searchKey) async{
setState(ViewState.BusyLocal);
await _SOAPService.searchAllergies(searchKey);
if (_SOAPService.hasError) {
error = _SOAPService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
}

@ -10,14 +10,15 @@ import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dar
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../../../../core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import '../../shared_soap_widgets/SOAP_open_items.dart';
import 'add_allergies.dart';
// ignore: must_be_immutable
class UpdateAllergiesWidget extends StatefulWidget {
List<MySelectedAllergy>? myAllergiesList;
// AllergiesListVidaPlus? selectedAllergy;
UpdateAllergiesWidget({Key? key, this.myAllergiesList});
UpdateAllergiesWidget({Key? key});
@override
_UpdateAllergiesWidgetState createState() => _UpdateAllergiesWidgetState();
@ -29,7 +30,7 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
ProjectViewModel projectViewModel = Provider.of(context);
changeAllState() {
setState(() {
print(widget.myAllergiesList);
// print(widget.myAllergiesList);
});
}
@ -44,94 +45,97 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
SizedBox(
height: 20,
),
Container(
margin: EdgeInsets.only(left: 15, right: 15, top: 15),
child: Column(
children: widget.myAllergiesList!.map((selectedAllergy) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
projectViewModel.isArabic ? selectedAllergy.selectedAllergy!.nameAr! : selectedAllergy.selectedAllergy!.nameEn!.toUpperCase(),
textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
bold: true,
color: Color(0xFF2B353E),
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
// fontHeight:0.18 ,
),
AppText(
projectViewModel.isArabic ? selectedAllergy.selectedAllergySeverity!.nameAr! : selectedAllergy.selectedAllergySeverity!.nameEn ?? ""!.toUpperCase(),
textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
color: Color(0xFFCC9B14),
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
),
],
),
width: MediaQuery.of(context).size.width * 0.5,
),
if (selectedAllergy.isChecked)
RemoveButton(
onTap: () => removeAllergy(selectedAllergy),
)
],
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Row(
children: [
RemarkText(
remark: selectedAllergy.remark ?? "",
),
],
),
),
DividerWithSpacesAround()
],
),
SizedBox(
height: 10,
),
],
);
}).toList()),
)
],
// Container(
// margin: EdgeInsets.only(left: 15, right: 15, top: 15),
// child: Column(
// children: widget.myAllergiesList!.map((selectedAllergy) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Container(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// AppText(
// projectViewModel.isArabic ? selectedAllergy.selectedAllergy!.nameAr! : selectedAllergy.selectedAllergy!.nameEn!.toUpperCase(),
// textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
// bold: true,
// color: Color(0xFF2B353E),
// fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5,
// fontWeight: FontWeight.w700,
// letterSpacing: -0.48,
// // fontHeight:0.18 ,
// ),
// AppText(
// projectViewModel.isArabic ? selectedAllergy.selectedAllergySeverity!.nameAr! : selectedAllergy.selectedAllergySeverity!.nameEn ?? ""!.toUpperCase(),
// textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
// color: Color(0xFFCC9B14),
// fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
// fontWeight: FontWeight.w700,
// letterSpacing: -0.48,
// ),
// ],
// ),
// width: MediaQuery.of(context).size.width * 0.5,
// ),
// if (selectedAllergy.isChecked)
// RemoveButton(
// onTap: () => removeAllergy(selectedAllergy),
// )
// ],
// ),
// Padding(
// padding: const EdgeInsets.symmetric(vertical: 8),
// child: Row(
// children: [
// RemarkText(
// remark: selectedAllergy.remark ?? "",
// ),
// ],
// ),
// ),
// DividerWithSpacesAround()
// ],
// ),
// SizedBox(
// height: 10,
// ),
// ],
// );
// }).toList()),
],
);
}
removeAllergy(MySelectedAllergy mySelectedAllergy) {
List<MySelectedAllergy> allergy =
// ignore: missing_return
widget.myAllergiesList!
.where((element) => mySelectedAllergy.selectedAllergySeverity!.id == element.selectedAllergySeverity!.id && mySelectedAllergy.selectedAllergy!.id == element.selectedAllergy!.id)
.toList();
// List<MySelectedAllergy> allergy =
// // 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.first.isLocal) {
// setState(() {
// widget.myAllergiesList!.remove(allergy.first);
// });
// }
// setState(() {
// allergy[0].isChecked = false;
// });
// }
}
openReaction(){
if (allergy.length > 0) {
if (allergy.first.isLocal) {
setState(() {
widget.myAllergiesList!.remove(allergy.first);
});
}
setState(() {
allergy[0].isChecked = false;
});
}
}
openAllergiesList(BuildContext context, Function changeParentState, removeAllergy) {
@ -142,51 +146,53 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidget> {
context: context,
builder: (context) {
return AddAllergies(
myAllergiesList: widget.myAllergiesList,
addAllergiesFun: (List<MySelectedAllergy> mySelectedAllergy) {
bool isAllDataFilled = true;
mySelectedAllergy.forEach((element) {
if (element.selectedAllergySeverity == null) {
element.hasValidationError = true;
isAllDataFilled = false;
}
});
if (isAllDataFilled) {
mySelectedAllergy.forEach((element) {
if (
widget.myAllergiesList!.singleWhere(
(it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
orElse: () => MySelectedAllergy(),
).selectedAllergySeverity
==
null) {
widget.myAllergiesList!.add(element);
}
});
addAllergiesFun: (AllergiesListVidaPlus selectedAllergy) {
/// remove items.
List<MySelectedAllergy> removedList = [];
widget.myAllergiesList!.forEach((element) {
if (
mySelectedAllergy.singleWhere(
(it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
orElse: () => MySelectedAllergy(),
)
.selectedAllergySeverity ==
null) {
removedList.add(element);
}
});
openReaction();
removedList.forEach((element) {
removeAllergy(element);
});
changeParentState();
// bool isAllDataFilled = true;
// mySelectedAllergy.forEach((element) {
// if (element.selectedAllergySeverity == null) {
// element.hasValidationError = true;
// isAllDataFilled = false;
// }
// });
// if (isAllDataFilled) {
// mySelectedAllergy.forEach((element) {
// if (
// widget.myAllergiesList!.singleWhere(
// (it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
// orElse: () => MySelectedAllergy(),
// ).selectedAllergySeverity
// ==
// null) {
// widget.myAllergiesList!.add(element);
// }
// });
//
// /// remove items.
// List<MySelectedAllergy> removedList = [];
// widget.myAllergiesList!.forEach((element) {
// if (
// mySelectedAllergy.singleWhere(
// (it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
// orElse: () => MySelectedAllergy(),
// )
// .selectedAllergySeverity ==
// null) {
// removedList.add(element);
// }
// });
//
// removedList.forEach((element) {
// removeAllergy(element);
// });
// changeParentState();
Navigator.of(context).pop();
} else {
Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
}
// Navigator.of(context).pop();
// } else {
// Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
// }
});
});
}

@ -206,9 +206,7 @@ class _UpdateSubjectivePageState extends State<UpdateSubjectivePage> implements
},
child: Column(
children: [
UpdateAllergiesWidget(
myAllergiesList: myAllergiesList,
),
UpdateAllergiesWidget(),
SizedBox(
height: 30,
),

@ -1,4 +1,5 @@
import 'package:autocomplete_textfield/autocomplete_textfield.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_allergy.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
@ -14,7 +15,7 @@ import 'master_key_checkbox_search_allergies_widget.dart';
class AddAllergies extends StatefulWidget {
final Function? addAllergiesFun;
final List<MySelectedAllergy>? myAllergiesList;
final AllergiesListVidaPlus? myAllergiesList;
const AddAllergies({Key? key, this.addAllergiesFun, this.myAllergiesList}) : super(key: key);
@ -23,17 +24,18 @@ class AddAllergies extends StatefulWidget {
}
class _AddAllergiesState extends State<AddAllergies> {
List<MasterKeyModel> allergiesList = [];
List<MasterKeyModel> allergySeverityList = [];
List<MySelectedAllergy> myAllergiesListLocal = [];
// List<MasterKeyModel> allergiesList = [];
// List<MasterKeyModel> allergySeverityList = [];
//
// myAllergiesListLocal = [];
@override
initState() {
super.initState();
myAllergiesListLocal = [...?widget.myAllergiesList];
// myAllergiesListLocal = [...?widget.myAllergiesList];
}
GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<MasterKeyModel>>();
// GlobalKey key = new GlobalKey<AutoCompleteTextFieldState<MasterKeyModel>>();
bool isFormSubmitted = false;
@override
@ -62,23 +64,23 @@ class _AddAllergiesState extends State<AddAllergies> {
onModelReady: (model) async {},
builder: (_, model, w) {
return MasterKeyCheckboxSearchAllergiesWidget(
model: model,
masterList: model.allergiesList,
removeAllergy: (master) {
// setState(() {
// removeAllergyFromLocalList(master);
// });
model: model,
// masterList: model.allergiesList,
// removeAllergy: (master) {
// // setState(() {
// // removeAllergyFromLocalList(master);
// // });
// },
addAllergy: (AllergiesListVidaPlus mySelectedAllergy) {
widget.addAllergiesFun!(mySelectedAllergy);
},
addAllergy: (MySelectedAllergy mySelectedAllergy) {
addAllergyLocally(mySelectedAllergy);
},
addSelectedAllergy: () {
setState(() {
widget.addAllergiesFun!(myAllergiesListLocal);
});
},
isServiceSelected: (master) => isServiceSelected(master),
getServiceSelectedAllergy: (master) => getSelectedAllergy(master),
// addSelectedAllergy: () {
// setState(() {
// widget.addAllergiesFun!(myAllergiesListLocal);
// });
// },
// isServiceSelected: (master) => isServiceSelected(master),
// getServiceSelectedAllergy: (master) => getSelectedAllergy(master),
);
}),
),
@ -99,56 +101,56 @@ class _AddAllergiesState extends State<AddAllergies> {
// )
// :
CustomBottomSheetContainer(
label: TranslationBase.of(context).addAllergies,
buttonColor: Color(0xffEAEAEA),
fontColor: Colors.black,
label: TranslationBase.of(context).cancel,
onTap: () {
setState(() {
widget.addAllergiesFun!(myAllergiesListLocal);
});
Navigator.of(context).pop();
},
),
);
}
isServiceSelected(MasterKeyModel masterKey) {
Iterable<MySelectedAllergy> allergy =
myAllergiesListLocal.where((element) => masterKey.id == element.selectedAllergy!.id && masterKey.typeId == element.selectedAllergy!.typeId && element.isChecked);
if (allergy.length > 0) {
return true;
}
return false;
}
removeAllergyFromLocalList(MasterKeyModel masterKey) {
myAllergiesListLocal.removeWhere((element) => element.selectedAllergy!.id == masterKey.id);
}
MySelectedAllergy getSelectedAllergy(MasterKeyModel masterKey) {
Iterable<MySelectedAllergy> allergy =
myAllergiesListLocal.where((element) => masterKey.id == element.selectedAllergy!.id && masterKey.typeId == element.selectedAllergy!.typeId && element.isChecked);
if (allergy.length > 0) {
return allergy.first;
}
return MySelectedAllergy();
}
addAllergyLocally(MySelectedAllergy mySelectedAllergy) {
if (mySelectedAllergy.selectedAllergy == null) {
Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
} else {
setState(() {
List<MySelectedAllergy> allergy =
// ignore: missing_return
myAllergiesListLocal.where((element) => mySelectedAllergy.selectedAllergy!.id == element.selectedAllergy!.id).toList();
if (allergy.isEmpty) {
myAllergiesListLocal.add(mySelectedAllergy);
} else {
allergy.first.selectedAllergy = mySelectedAllergy.selectedAllergy;
allergy.first.selectedAllergySeverity = mySelectedAllergy.selectedAllergySeverity;
allergy.first.remark = mySelectedAllergy.remark;
allergy.first.isChecked = mySelectedAllergy.isChecked;
}
});
}
}
//
// isServiceSelected(MasterKeyModel masterKey) {
// Iterable<MySelectedAllergy> allergy =
// myAllergiesListLocal.where((element) => masterKey.id == element.selectedAllergy!.id && masterKey.typeId == element.selectedAllergy!.typeId && element.isChecked);
// if (allergy.length > 0) {
// return true;
// }
// return false;
// }
//
// removeAllergyFromLocalList(MasterKeyModel masterKey) {
// myAllergiesListLocal.removeWhere((element) => element.selectedAllergy!.id == masterKey.id);
// }
//
// MySelectedAllergy getSelectedAllergy(MasterKeyModel masterKey) {
// Iterable<MySelectedAllergy> allergy =
// myAllergiesListLocal.where((element) => masterKey.id == element.selectedAllergy!.id && masterKey.typeId == element.selectedAllergy!.typeId && element.isChecked);
// if (allergy.length > 0) {
// return allergy.first;
// }
// return MySelectedAllergy();
// }
//
// addAllergyLocally(AllergiesListVidaPlus mySelectedAllergy) {
// if (mySelectedAllergy.selectedAllergy == null) {
// Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
// } else {
// setState(() {
// List<MySelectedAllergy> allergy =
// // ignore: missing_return
// myAllergiesListLocal.where((element) => mySelectedAllergy.selectedAllergy!.id == element.selectedAllergy!.id).toList();
//
// if (allergy.isEmpty) {
// myAllergiesListLocal.add(mySelectedAllergy);
// } else {
// allergy.first.selectedAllergy = mySelectedAllergy.selectedAllergy;
// allergy.first.selectedAllergySeverity = mySelectedAllergy.selectedAllergySeverity;
// allergy.first.remark = mySelectedAllergy.remark;
// allergy.first.isChecked = mySelectedAllergy.isChecked;
// }
// });
// }
// }
}

@ -1,39 +1,44 @@
import 'package:doctor_app_flutter/core/enum/master_lookup_key.dart';
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_allergy.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'allergies_item.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 MySelectedAllergy Function(MasterKeyModel) getServiceSelectedAllergy;
// final Function() addSelectedAllergy;
// final Function(MasterKeyModel) removeAllergy;
final Function(AllergiesListVidaPlus mySelectedAllergy) addAllergy;
// final bool Function(MasterKeyModel) isServiceSelected;
// final MySelectedAllergy Function(MasterKeyModel) getServiceSelectedAllergy;
final List<MasterKeyModel> masterList;
// final List<MasterKeyModel> masterList;
final String? buttonName;
final String? hintSearchText;
MasterKeyCheckboxSearchAllergiesWidget(
{Key? key,
required this.model,
required this.addSelectedAllergy,
required this.removeAllergy,
required this.masterList,
// required this.addSelectedAllergy,
// required this.removeAllergy,
// required this.masterList,
required this.addAllergy,
required this.isServiceSelected,
// required this.isServiceSelected,
this.buttonName,
this.hintSearchText,
required this.getServiceSelectedAllergy})
// required this.getServiceSelectedAllergy
})
: super(key: key);
@override
@ -41,13 +46,13 @@ class MasterKeyCheckboxSearchAllergiesWidget extends StatefulWidget {
}
class _MasterKeyCheckboxSearchAllergiesWidgetState extends State<MasterKeyCheckboxSearchAllergiesWidget> {
List<MasterKeyModel> items = [];
// List<MasterKeyModel> items = [];
bool loading =false;
TextEditingController filteredSearchController = TextEditingController();
@override
void initState() {
items.addAll(widget.masterList);
// items.addAll(widget.masterList);
super.initState();
}
@ -65,9 +70,10 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState extends State<MasterKeyCheckb
child: Column(
children: [
AppTextFieldCustom(
hintText: TranslationBase.of(context).selectAllergy,
isTextFieldHasSuffix: true,
hasBorder: false,
hasBorder: true,
controller: filteredSearchController,
onChanged: (value) {
// filterSearchResults(value);
@ -88,16 +94,18 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState extends State<MasterKeyCheckb
suffixIcon: IconButton(
icon: Icon(
Icons.search,
color: Colors.black,
color: Color(0xff2B353E
),
size: 30,
),
onPressed: () {
loading =true;
widget.model.searchAllergies(filteredSearchController.text);
widget.model.getMasterLookup(MasterKeysService.Allergies, searchKey: filteredSearchController.text);
widget.model.getMasterLookup(MasterKeysService.AllergySeverity, searchKey: "");
},
),
),
DividerWithSpacesAround(),
// DividerWithSpacesAround(),
SizedBox(
height: 10,
),
@ -108,21 +116,30 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState extends State<MasterKeyCheckb
height: MediaQuery.of(context).size.height * 0.60,
child: widget.model.state == ViewState.Idle
? ListView.builder(
itemCount: widget.model.allergiesList.length,
itemCount: widget.model.searchAllergiesVidaPlus.length,
itemBuilder: (context, index) {
return AddAllergiesItem(
item: widget.model.allergiesList[index],
model: widget.model,
removeAllergy: widget.removeAllergy,
addAllergy: widget.addAllergy,
isServiceSelected: widget.isServiceSelected,
getServiceSelectedAllergy: widget.getServiceSelectedAllergy,
loading =false;
return ListTile(title: AppText(widget.model.searchAllergiesVidaPlus[index].allergyName!), trailing: TextButton.icon(icon: SvgPicture.asset("assets/images/svgs/add-square.svg", color: Color(0xffD02127),), style: ButtonStyle(iconColor: WidgetStateProperty.all<Color>(Color(0xffD02127)), ), onPressed: (){
widget.addAllergy(widget.model.searchAllergiesVidaPlus[index]);
}, label: AppText(TranslationBase.of(context).add, fontSize:12, color:Color(0xffD02127) ,),
),
);
// return AddAllergiesItem(
// item: widget.model.allergiesList[index],
// model: widget.model,
// removeAllergy: widget.removeAllergy,
// addAllergy: widget.addAllergy,
// isServiceSelected: widget.isServiceSelected,
// getServiceSelectedAllergy: widget.getServiceSelectedAllergy,
// );
},
)
: widget.model.state == ViewState.Busy
? Center(child: CircularProgressIndicator())
: Container(),
: loading ? Center(child: CircularProgressIndicator()) :SizedBox()
),
),
),
@ -139,27 +156,27 @@ class _MasterKeyCheckboxSearchAllergiesWidgetState extends State<MasterKeyCheckb
),
);
}
void filterSearchResults(String query) {
List<MasterKeyModel> dummySearchList = [];
dummySearchList.addAll(widget.masterList);
if (query.isNotEmpty) {
List<MasterKeyModel> dummyListData = [];
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);
});
}
}
//
// void filterSearchResults(String query) {
// List<MasterKeyModel> dummySearchList = [];
// dummySearchList.addAll(widget.masterList);
// if (query.isNotEmpty) {
// List<MasterKeyModel> dummyListData = [];
// 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);
// });
// }
// }
}

@ -0,0 +1,165 @@
import 'package:doctor_app_flutter/core/enum/view_state.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import '../../../../../../widgets/shared/app_scaffold_widget.dart';
import '../../../soap_update/shared_soap_widgets/bottom_sheet_title.dart';
class ReactionsSelectionAllergiesWidget extends StatefulWidget {
final SOAPViewModel? model;
final AllergiesListVidaPlus mySelectedAllergy;
final Function(AllergiesListVidaPlus mySelectedAllergy) addReactionFun;
final String? buttonName;
ReactionsSelectionAllergiesWidget({
Key? key,
required this.model,
required this.addReactionFun,
required this.mySelectedAllergy,
this.buttonName,
}) : super(key: key);
@override
_ReactionsSelectionAllergiesWidgetState createState() =>
_ReactionsSelectionAllergiesWidgetState();
}
class _ReactionsSelectionAllergiesWidgetState
extends State<ReactionsSelectionAllergiesWidget> {
// List<MasterKeyModel> items = [];
bool loading = false;
// TextEditingController filteredSearchController = TextEditingController();
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return AppScaffold(
// baseViewModel: model,
isShowAppBar: true,
appBar: BottomSheetTitle(
title: "Reactive" // TranslationBase.of(context).reac,
),
backgroundColor: Color(0xffbacF7F7F7),
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: RoundedContainer(
margin: EdgeInsets.all(15),
child: ListView.builder(
itemCount:
widget.mySelectedAllergy.allergyReactionDTOs!.length,
itemBuilder: (context, index) {
loading = false;
return Column(children: [ ExpansionTile(
dense: false,
enableFeedback: false,
showTrailingIcon: false,
leading: Checkbox(value: false, onChanged: (bool) {}),
title: AppText(widget.mySelectedAllergy
.allergyReactionDTOs![index].allergyReactionName!),
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Expanded(
child: ListTile(
title: Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Radio(
activeColor: Color(0xffD02127),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, // Reduces padding around checkbox
visualDensity: VisualDensity.compact,
value: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.reactionSelection,
groupValue: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.allergyReactionID,
onChanged: (value) {
print(value);
},
),
AppText('Mild', fontSize: 10,),
],
))),
Expanded(
child: ListTile(
title: Row(
children: <Widget>[
Radio(
activeColor: Color(0xffD02127),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, // Reduces padding around checkbox
visualDensity: VisualDensity.compact,
value: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.reactionSelection,
groupValue: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.allergyReactionID,
onChanged: (value) {
print(value);
},
),
AppText('Moderate', fontSize: 10,),
],
))),
Expanded(
child: ListTile(
title: Row(
children: <Widget>[
Radio(
activeColor: Color(0xffD02127),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, // Reduces padding around checkbox
visualDensity: VisualDensity.compact,
value: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.reactionSelection,
groupValue: widget
.mySelectedAllergy
.allergyReactionDTOs![index]
.allergyReactionID,
onChanged: (value) {
print(value);
},
),
AppText('Severe', fontSize: 10,),
],
)))
],
)
],
),
Divider(),
]);
},
)))
],
),
);
}
}

@ -1,19 +1,14 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/model/SOAP/allergy/get_allergies_list_vida_plus.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_allergy.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/remark_text.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/remove_button.dart';
import 'package:doctor_app_flutter/utils/utils.dart';
import 'package:doctor_app_flutter/screens/patients/profile/soap_update_vida_plus/subjective/allergies/reactions_selection.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/divider_with_spaces_around.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../soap_update/shared_soap_widgets/SOAP_open_items.dart';
import '../chief_complaint/widgets/add_chief_complaint.dart';
import 'add_allergies.dart';
import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart';
// ignore: must_be_immutable
class UpdateAllergiesWidgetVidaPlus extends StatefulWidget {
List<MySelectedAllergy>? myAllergiesList;
@ -25,6 +20,7 @@ class UpdateAllergiesWidgetVidaPlus extends StatefulWidget {
}
bool noKnownAllergies = false;
class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidgetVidaPlus> {
SOAPViewModel? model;
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
@ -42,7 +38,7 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidgetVidaPlus> {
AddSoapItem(
title: "${TranslationBase.of(context).addAllergies}",
onAddSoapItemClicked: (){
openAllergiesList(context, changeAllState, removeAllergy);
openAllergiesList(context, changeAllState);
},
),
@ -69,97 +65,97 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidgetVidaPlus> {
),
Container(
margin: EdgeInsets.only(left: 15, right: 15, top: 15),
child: Column(
children: widget.myAllergiesList!.map((selectedAllergy) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
projectViewModel.isArabic ? selectedAllergy.selectedAllergy!.nameAr! : selectedAllergy.selectedAllergy!.nameEn!.toUpperCase(),
textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
bold: true,
color: Color(0xFF2B353E),
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
// fontHeight:0.18 ,
),
AppText(
projectViewModel.isArabic ? selectedAllergy.selectedAllergySeverity!.nameAr! : selectedAllergy.selectedAllergySeverity!.nameEn ?? ""!.toUpperCase(),
textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
color: Color(0xFFCC9B14),
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
fontWeight: FontWeight.w700,
letterSpacing: -0.48,
),
],
),
width: MediaQuery.of(context).size.width * 0.5,
),
if (selectedAllergy.isChecked)
RemoveButton(
onTap: () => removeAllergy(selectedAllergy),
)
],
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Row(
children: [
RemarkText(
remark: selectedAllergy.remark ?? "",
),
],
),
),
DividerWithSpacesAround()
],
),
SizedBox(
height: 10,
),
],
);
}).toList()),
)
// Container(
// margin: EdgeInsets.only(left: 15, right: 15, top: 15),
// child: Column(
// children: widget.myAllergiesList!.map((selectedAllergy) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Container(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// AppText(
// projectViewModel.isArabic ? selectedAllergy.selectedAllergy!.nameAr! : selectedAllergy.selectedAllergy!.nameEn!.toUpperCase(),
// textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
// bold: true,
// color: Color(0xFF2B353E),
// fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3.5,
// fontWeight: FontWeight.w700,
// letterSpacing: -0.48,
// // fontHeight:0.18 ,
// ),
// AppText(
// projectViewModel.isArabic ? selectedAllergy.selectedAllergySeverity!.nameAr! : selectedAllergy.selectedAllergySeverity!.nameEn ?? ""!.toUpperCase(),
// textDecoration: selectedAllergy.isChecked! ? TextDecoration.none : TextDecoration.lineThrough,
// color: Color(0xFFCC9B14),
// fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
// fontWeight: FontWeight.w700,
// letterSpacing: -0.48,
// ),
// ],
// ),
// width: MediaQuery.of(context).size.width * 0.5,
// ),
// if (selectedAllergy.isChecked)
// RemoveButton(
// onTap: () => removeAllergy(selectedAllergy),
// )
// ],
// ),
// Padding(
// padding: const EdgeInsets.symmetric(vertical: 8),
// child: Row(
// children: [
// RemarkText(
// remark: selectedAllergy.remark ?? "",
// ),
// ],
// ),
// ),
// DividerWithSpacesAround()
// ],
// ),
// SizedBox(
// height: 10,
// ),
// ],
// );
// }).toList()),
// )
],
);
}
removeAllergy(MySelectedAllergy mySelectedAllergy) {
List<MySelectedAllergy> allergy =
// 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.first.isLocal) {
setState(() {
widget.myAllergiesList!.remove(allergy.first);
});
}
setState(() {
allergy[0].isChecked = false;
});
}
}
openAllergiesList(BuildContext context, Function changeParentState, removeAllergy) {
//
// removeAllergy(MySelectedAllergy mySelectedAllergy) {
// List<MySelectedAllergy> allergy =
// // 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.first.isLocal) {
// setState(() {
// widget.myAllergiesList!.remove(allergy.first);
// });
// }
// setState(() {
// allergy[0].isChecked = false;
// });
// }
// }
openAllergiesList(BuildContext context, Function changeParentState) {
showModalBottomSheet(
backgroundColor: Colors.white,
isScrollControlled: true,
@ -167,56 +163,34 @@ class _UpdateAllergiesWidgetState extends State<UpdateAllergiesWidgetVidaPlus> {
context: context,
builder: (context) {
return AddAllergies(
myAllergiesList: widget.myAllergiesList,
addAllergiesFun: (List<MySelectedAllergy> mySelectedAllergy) {
bool isAllDataFilled = true;
mySelectedAllergy.forEach((element) {
if (element.selectedAllergySeverity == null) {
element.hasValidationError = true;
isAllDataFilled = false;
}
});
if (isAllDataFilled) {
mySelectedAllergy.forEach((element) {
if (
widget.myAllergiesList!.singleWhere(
(it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
orElse: () => MySelectedAllergy(),
).selectedAllergySeverity
==
null) {
widget.myAllergiesList!.add(element);
}
});
/// remove items.
List<MySelectedAllergy> removedList = [];
widget.myAllergiesList!.forEach((element) {
if (
mySelectedAllergy.singleWhere(
(it) => it.selectedAllergy!.id == element.selectedAllergy!.id,
orElse: () => MySelectedAllergy(),
)
.selectedAllergySeverity ==
null) {
removedList.add(element);
}
});
removedList.forEach((element) {
removeAllergy(element);
});
changeParentState();
Navigator.of(context).pop();
} else {
Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
}
addAllergiesFun: (AllergiesListVidaPlus mySelectedAllergy) {
Navigator.of(context).pop();
openReactionScreen(mySelectedAllergy);
print(mySelectedAllergy);
// } else {
// Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
// }
});
});
}
loadPatientAllergies(){
}
openReactionScreen(AllergiesListVidaPlus mySelectedAllergy){
showModalBottomSheet(
backgroundColor: Colors.white,
isScrollControlled: true,
isDismissible: false,
context: context,
builder: (context) {
return ReactionsSelectionAllergiesWidget(
model:model,
mySelectedAllergy: mySelectedAllergy,
addReactionFun: (AllergiesListVidaPlus mySelectedAllergy) {
Navigator.of(context).pop();
// } else {
// Utils.showErrorToast(TranslationBase.of(context).requiredMsg);
// }
});
});
}
}

@ -14,6 +14,9 @@ class AddSoapItem extends StatelessWidget{
children: [
Expanded(
child: AppButton(
elevation:0,
icon: SvgPicture.asset('assets/images/svgs/add-square.svg'),
title:this.title,
color: Color(0xffEAEAEA),

@ -274,6 +274,7 @@ class SMSOTP {
onTokenReceived: (token) {
setState(() {
print("Cloudflare token: $token");
//todo pass this token to checkActivcationCode
_token = token;
checkValue();
});

@ -8,10 +8,11 @@ import '../../config/config.dart';
class CustomBottomSheetContainer extends StatelessWidget {
final Function() onTap;
final String label;
final Color? buttonColor;
final Color? fontColor;
double headerHeight = SizeConfig.heightMultiplier! * 12;
CustomBottomSheetContainer({Key? key, required this.onTap, required this.label}) : super(key: key);
CustomBottomSheetContainer({Key? key, required this.onTap, required this.label, this.buttonColor = const Color(0xFF359846) , this.fontColor = Colors.white }) : super(key: key);
@override
Widget build(BuildContext context) {
@ -33,8 +34,9 @@ class CustomBottomSheetContainer extends StatelessWidget {
widthFactor: .80,
child: Center(
child: AppButton(
fontColor: fontColor!,
title: label,
color: AppGlobal.appGreenColor,
color: this.buttonColor ,
onPressed: onTap,
),
),

@ -22,7 +22,7 @@ class AppButton extends StatefulWidget {
final double vPadding;
final double hPadding;
final double height;
final double elevation;
AppButton({
required this.onPressed,
this.title = '',
@ -41,6 +41,7 @@ class AppButton extends StatefulWidget {
this.hasBorder = false,
this.borderColor = Colors.white,
this.height = 50,
this.elevation =2.0
});
_AppButtonState createState() => _AppButtonState();
@ -69,6 +70,7 @@ class _AppButtonState extends State<AppButton> {
child: IgnorePointer(
ignoring: widget.loading || widget.disabled,
child: RawMaterialButton(
elevation: widget.elevation,
fillColor: widget.disabled
? Colors.grey
: widget.color != null

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save