Merge pull request 'crash resolutions' (#362) from appointment_changes into master

Reviewed-on: https://34.17.182.140/Haroon6138/HMG_Patient_App_New/pulls/362
pull/372/head
Haroon6138 1 month ago
commit d0de916bcf

File diff suppressed because it is too large Load Diff

@ -53,7 +53,7 @@ class _SelectDoctorPageState extends State<SelectDoctorPage> {
bookAppointmentsViewModel.getLiveCareDoctorsList();
} else {
if (bookAppointmentsViewModel.selectedClinic.clinicID == 17) {
if (appState.getAuthenticatedUser()!.age! > 12) {
if (appState.isAuthenticated && appState.getAuthenticatedUser()!.age! > 12) {
bookAppointmentsViewModel.getDentalChiefComplaintDoctorsList();
} else {
bookAppointmentsViewModel.getDoctorsList(isNearest: false);

@ -278,7 +278,7 @@ class _AppointmentCalendarState extends State<AppointmentCalendar> {
bookAppointmentsViewModel.setProjectID(bookAppointmentsViewModel.selectedDoctor.projectID.toString());
bookAppointmentsViewModel.setSelectedClinic(selectedClinic);
bookAppointmentsViewModel.setIsChiefComplaintsListLoading(true);
if(appState.getAuthenticatedUser()!.age! > 12) {
if(appState.isAuthenticated && appState.getAuthenticatedUser()!.age! > 12) {
Navigator.of(context).push(
CustomPageRoute(
page: DentalChiefComplaintsPage(),

@ -45,89 +45,110 @@ class _HealthCalculatorDetailedPageState extends State<HealthCalculatorDetailedP
return CollapsingListView(
title: widget.calculatorType.displayName,
bottomChild: widget.calculatorType == HealthCalculatorsTypeEnum.bloodSugar ||
widget.calculatorType == HealthCalculatorsTypeEnum.bloodCholesterol ||
widget.calculatorType == HealthCalculatorsTypeEnum.triglycerides
widget.calculatorType == HealthCalculatorsTypeEnum.bloodCholesterol ||
widget.calculatorType == HealthCalculatorsTypeEnum.triglycerides
? SizedBox()
: Container(
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor, customBorder: BorderRadius.only(topLeft: Radius.circular(24.r), topRight: Radius.circular(24.r))),
padding: EdgeInsets.symmetric(vertical: 20.h, horizontal: 20.h),
child: CustomButton(
text: widget.calculatorType == HealthCalculatorsTypeEnum.bloodSugar ||
widget.calculatorType == HealthCalculatorsTypeEnum.bloodCholesterol ||
widget.calculatorType == HealthCalculatorsTypeEnum.triglycerides
? LocaleKeys.convert.tr(context: context)
: LocaleKeys.calculate.tr(context: context),
onPressed: () {
if (calculatedResult == null) return;
Navigator.of(context).push(CustomPageRoute(
page: SelectClinicPage(calculatorType: widget.calculatorType, calculatedResult: calculatedResult),
));
},
icon: null,
fontSize: 16.f,
backgroundColor: calculatedResult == null ? AppColors.bgRedLightColor : AppColors.primaryRedColor,
borderColor: calculatedResult == null ? AppColors.bgRedLightColor : AppColors.primaryRedColor,
borderRadius: 12.r,
isBold: true)),
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
color: AppColors.whiteColor, customBorder: BorderRadius.only(topLeft: Radius.circular(24.r), topRight: Radius.circular(24.r))),
padding: EdgeInsets.symmetric(vertical: 20.h, horizontal: 20.h),
child: CustomButton(
text: widget.calculatorType == HealthCalculatorsTypeEnum.bloodSugar ||
widget.calculatorType == HealthCalculatorsTypeEnum.bloodCholesterol ||
widget.calculatorType == HealthCalculatorsTypeEnum.triglycerides
? LocaleKeys.convert.tr(context: context)
: LocaleKeys.calculate.tr(context: context),
onPressed: () {
if (calculatedResult == null) return;
Navigator.of(context).push(CustomPageRoute(
page: SelectClinicPage(calculatorType: widget.calculatorType, calculatedResult: calculatedResult),
));
},
icon: null,
fontSize: 16.f,
backgroundColor: calculatedResult == null ? AppColors.bgRedLightColor : AppColors.primaryRedColor,
borderColor: calculatedResult == null ? AppColors.bgRedLightColor : AppColors.primaryRedColor,
borderRadius: 12.r,
isBold: true)),
child: getCalculatorWidget(
type: widget.calculatorType,
onCalculate: (result) {
// result may be directly provided by widget, but prefer provider maps if available
switch (widget.calculatorType) {
case HealthCalculatorsTypeEnum.bmi:
calculatedResult = provider.bmiResultMap != null
? {...?provider.bmiResultMap, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.calories:
case HealthCalculatorsTypeEnum.bmr:
calculatedResult = provider.caloriesResultMap != null
? {...?provider.caloriesResultMap, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.idealBodyWeight:
calculatedResult = provider.ibwResultMap != null
? {...?provider.ibwResultMap, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.bodyFat:
calculatedResult = provider.bodyFatResultMap != null
? {...?provider.bodyFatResultMap, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.crabsProteinFat:
calculatedResult = provider.macrosResultMap != null
? {...?provider.macrosResultMap, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.ovulation:
calculatedResult = (provider.ovulationResult is Map)
? {...provider.ovulationResult as Map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': provider.ovulationResult ?? result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.deliveryDueDate:
calculatedResult = (provider.deliveryResult is Map)
? {...provider.deliveryResult as Map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': provider.deliveryResult ?? result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.bloodSugar:
calculatedResult = (provider.bloodSugarResult is Map)
? {...provider.bloodSugarResult as Map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': provider.bloodSugarResult ?? result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.bloodCholesterol:
calculatedResult = (provider.bloodCholesterolResult is Map)
? {...provider.bloodCholesterolResult as Map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': provider.bloodCholesterolResult ?? result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
case HealthCalculatorsTypeEnum.triglycerides:
calculatedResult = (provider.triglyceridesResult is Map)
? {...provider.triglyceridesResult as Map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: {'result': provider.triglyceridesResult ?? result, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID};
break;
}
setState(() {
switch (widget.calculatorType) {
case HealthCalculatorsTypeEnum.bmi:
final map = provider.bmiResultMap ?? (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.calories:
case HealthCalculatorsTypeEnum.bmr:
final map = provider.caloriesResultMap ?? (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.idealBodyWeight:
final map = provider.ibwResultMap ?? (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.bodyFat:
final map = provider.bodyFatResultMap ?? (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.crabsProteinFat:
final map = provider.macrosResultMap ?? (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.ovulation:
final map = (provider.ovulationResult is Map)
? provider.ovulationResult
: (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.deliveryDueDate:
final map = (provider.deliveryResult is Map)
? provider.deliveryResult
: (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.bloodSugar:
final map = (provider.bloodSugarResult is Map)
? provider.bloodSugarResult
: (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.bloodCholesterol:
final map = (provider.bloodCholesterolResult is Map)
? provider.bloodCholesterolResult
: (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
case HealthCalculatorsTypeEnum.triglycerides:
final map = (provider.triglyceridesResult is Map)
? provider.triglyceridesResult
: (result is Map ? Map<String, dynamic>.from(result) : null);
calculatedResult = map != null
? {...map, 'clinicId': widget.clinicID, 'calculationID': widget.calculationID}
: null;
break;
}
});
},
).paddingSymmetrical(20.w, 24.h),
);
@ -140,68 +161,68 @@ class _HealthCalculatorDetailedPageState extends State<HealthCalculatorDetailedP
case HealthCalculatorsTypeEnum.bmi:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: BMIWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.calories:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: CaloriesWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.bmr:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: BMRWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.idealBodyWeight:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: IdealBodyWeightWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.bodyFat:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: BodyFatWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.crabsProteinFat:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: CrabsWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.ovulation:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: OvulationWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.deliveryDueDate:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: DeliveryDueDWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.bloodSugar:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: BloodSugarWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.bloodCholesterol:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: BloodCholesterolWidget(onChange: onCalculate),
);
case HealthCalculatorsTypeEnum.triglycerides:
return Container(
decoration:
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, customBorder: BorderRadius.all(Radius.circular(24.r))),
child: TriglyceridesWidget(onChange: onCalculate),
);
}

Loading…
Cancel
Save