|
|
|
|
@ -18,15 +18,15 @@ import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
class MealPlanPage extends StatefulWidget {
|
|
|
|
|
const MealPlanPage({Key key}) : super(key: key);
|
|
|
|
|
const MealPlanPage({Key? key}) : super(key: key);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
State<MealPlanPage> createState() => _MealPlanPageState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
ProjectViewModel projectViewModel;
|
|
|
|
|
GetAdmittedPatientsResponseModel getAdmittedPatientsResponseModel;
|
|
|
|
|
late ProjectViewModel projectViewModel;
|
|
|
|
|
GetAdmittedPatientsResponseModel getAdmittedPatientsResponseModel = GetAdmittedPatientsResponseModel();
|
|
|
|
|
List<GetMealsScheduleResponseModel> getMealsScheduleResponseModelList = [];
|
|
|
|
|
|
|
|
|
|
List<GetMealItemsScheduleResponseModel> getMealItemsScheduleResponseModelBreakfast = [];
|
|
|
|
|
@ -69,13 +69,13 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
? Column(
|
|
|
|
|
children: [
|
|
|
|
|
Container(
|
|
|
|
|
decoration: containerRadius((getMealsScheduleResponseModelList[0].isShow) ? Colors.white : Colors.grey[300], 12),
|
|
|
|
|
decoration: containerRadius((getMealsScheduleResponseModelList[0].isShow)! ? Colors.white : Colors.grey[300]!, 12),
|
|
|
|
|
child: AppExpandableNotifier(
|
|
|
|
|
title: "Breakfast TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[0].tATTime),
|
|
|
|
|
title: "Breakfast TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[0].tATTime!),
|
|
|
|
|
isTitleSingleLine: false,
|
|
|
|
|
widgetColor: Colors.transparent,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[0].isShow,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[0].isShow,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[0].isShow!,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[0].isShow!,
|
|
|
|
|
bodyWidget: Column(
|
|
|
|
|
children: [
|
|
|
|
|
getDivider(),
|
|
|
|
|
@ -88,7 +88,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelBreakfast[index].filterName,
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelBreakfast[index].filterName!,
|
|
|
|
|
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 18.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 12.0,
|
|
|
|
|
@ -110,7 +110,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
groupValue: _getMealItemsScheduleResponseModelBreakfast[index].selectedItemID.value,
|
|
|
|
|
activeColor: Colors.red[800],
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
_getMealItemsScheduleResponseModelBreakfast[index].selectedItemID.value = value;
|
|
|
|
|
_getMealItemsScheduleResponseModelBreakfast[index].selectedItemID.value = value!;
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
@ -131,8 +131,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
MyRichText(
|
|
|
|
|
"",
|
|
|
|
|
projectViewModel.isArabic
|
|
|
|
|
? _getMealItemsScheduleResponseModelBreakfast[index].getMealItemsScheduleResponseModelList[index2].descriptionN
|
|
|
|
|
: _getMealItemsScheduleResponseModelBreakfast[index].getMealItemsScheduleResponseModelList[index2].description,
|
|
|
|
|
? _getMealItemsScheduleResponseModelBreakfast[index].getMealItemsScheduleResponseModelList[index2].descriptionN!
|
|
|
|
|
: _getMealItemsScheduleResponseModelBreakfast[index].getMealItemsScheduleResponseModelList[index2].description!,
|
|
|
|
|
projectViewModel.isArabic),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
@ -173,13 +173,13 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
),
|
|
|
|
|
mHeight(21),
|
|
|
|
|
Container(
|
|
|
|
|
decoration: containerRadius(getMealsScheduleResponseModelList[1].isShow ? Colors.white : Colors.grey[300], 12),
|
|
|
|
|
decoration: containerRadius(getMealsScheduleResponseModelList[1].isShow! ? Colors.white : Colors.grey[300]!, 12),
|
|
|
|
|
child: AppExpandableNotifier(
|
|
|
|
|
title: "Lunch TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[1].tATTime),
|
|
|
|
|
title: "Lunch TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[1].tATTime!),
|
|
|
|
|
isTitleSingleLine: false,
|
|
|
|
|
widgetColor: Colors.transparent,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[1].isShow,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[1].isShow,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[1].isShow!,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[1].isShow!,
|
|
|
|
|
bodyWidget: Column(
|
|
|
|
|
children: [
|
|
|
|
|
getDivider(),
|
|
|
|
|
@ -192,7 +192,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelLunch[index].filterName,
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelLunch[index].filterName!,
|
|
|
|
|
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 18.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 12.0,
|
|
|
|
|
@ -214,7 +214,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
groupValue: _getMealItemsScheduleResponseModelLunch[index].selectedItemID.value,
|
|
|
|
|
activeColor: Colors.red[800],
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
_getMealItemsScheduleResponseModelLunch[index].selectedItemID.value = value;
|
|
|
|
|
_getMealItemsScheduleResponseModelLunch[index].selectedItemID.value = value!;
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
@ -235,8 +235,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
MyRichText(
|
|
|
|
|
"",
|
|
|
|
|
projectViewModel.isArabic
|
|
|
|
|
? _getMealItemsScheduleResponseModelLunch[index].getMealItemsScheduleResponseModelList[index2].descriptionN
|
|
|
|
|
: _getMealItemsScheduleResponseModelLunch[index].getMealItemsScheduleResponseModelList[index2].description,
|
|
|
|
|
? _getMealItemsScheduleResponseModelLunch[index].getMealItemsScheduleResponseModelList[index2].descriptionN!
|
|
|
|
|
: _getMealItemsScheduleResponseModelLunch[index].getMealItemsScheduleResponseModelList[index2].description!,
|
|
|
|
|
projectViewModel.isArabic),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
@ -277,13 +277,13 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
),
|
|
|
|
|
mHeight(21),
|
|
|
|
|
Container(
|
|
|
|
|
decoration: containerRadius(getMealsScheduleResponseModelList[2].isShow ? Colors.white : Colors.grey[300], 12),
|
|
|
|
|
decoration: containerRadius(getMealsScheduleResponseModelList[2].isShow! ? Colors.white : Colors.grey[300]!, 12),
|
|
|
|
|
child: AppExpandableNotifier(
|
|
|
|
|
title: "Dinner TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[2].tATTime),
|
|
|
|
|
title: "Dinner TAT: " + DateUtil.convertTime(getMealsScheduleResponseModelList[2].tATTime!),
|
|
|
|
|
isTitleSingleLine: false,
|
|
|
|
|
widgetColor: Colors.transparent,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[2].isShow,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[2].isShow,
|
|
|
|
|
isExpand: getMealsScheduleResponseModelList[2].isShow!,
|
|
|
|
|
isDisabled: !getMealsScheduleResponseModelList[2].isShow!,
|
|
|
|
|
bodyWidget: Column(
|
|
|
|
|
children: [
|
|
|
|
|
getDivider(),
|
|
|
|
|
@ -296,7 +296,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelDinner[index].filterName,
|
|
|
|
|
Text(_getMealItemsScheduleResponseModelDinner[index].filterName!,
|
|
|
|
|
style: TextStyle(fontWeight: FontWeight.w600, fontSize: 18.0, letterSpacing: -0.64, color: CustomColors.darkGrey)),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 12.0,
|
|
|
|
|
@ -318,7 +318,7 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
groupValue: _getMealItemsScheduleResponseModelDinner[index].selectedItemID.value,
|
|
|
|
|
activeColor: Colors.red[800],
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
_getMealItemsScheduleResponseModelDinner[index].selectedItemID.value = value;
|
|
|
|
|
_getMealItemsScheduleResponseModelDinner[index].selectedItemID.value = value!;
|
|
|
|
|
},
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
@ -339,8 +339,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
MyRichText(
|
|
|
|
|
"",
|
|
|
|
|
projectViewModel.isArabic
|
|
|
|
|
? _getMealItemsScheduleResponseModelDinner[index].getMealItemsScheduleResponseModelList[index2].descriptionN
|
|
|
|
|
: _getMealItemsScheduleResponseModelDinner[index].getMealItemsScheduleResponseModelList[index2].description,
|
|
|
|
|
? _getMealItemsScheduleResponseModelDinner[index].getMealItemsScheduleResponseModelList[index2].descriptionN!
|
|
|
|
|
: _getMealItemsScheduleResponseModelDinner[index].getMealItemsScheduleResponseModelList[index2].description!,
|
|
|
|
|
projectViewModel.isArabic),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
@ -398,8 +398,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
valueListenable: isFasting,
|
|
|
|
|
builder: (context, val, child) {
|
|
|
|
|
return Checkbox(
|
|
|
|
|
onChanged: (bool value) {
|
|
|
|
|
isFasting.value = value;
|
|
|
|
|
onChanged: (bool? value) {
|
|
|
|
|
isFasting.value = value!;
|
|
|
|
|
isFastingVal = value;
|
|
|
|
|
},
|
|
|
|
|
value: isFastingVal,
|
|
|
|
|
@ -453,8 +453,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
ClinicListService service = new ClinicListService();
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service
|
|
|
|
|
.placeMealPlanOrder(getAdmittedPatientsResponseModel.projectID, selectedMealScheduleID, selectedItemIDs.join(","), projectViewModel.user.patientID,
|
|
|
|
|
getAdmittedPatientsResponseModel.admissionNo, getAdmittedPatientsResponseModel.isHasCompanion, isFastingVal, context)
|
|
|
|
|
.placeMealPlanOrder(getAdmittedPatientsResponseModel.projectID!, selectedMealScheduleID, selectedItemIDs.join(","), projectViewModel.user.patientID!,
|
|
|
|
|
getAdmittedPatientsResponseModel.admissionNo!, getAdmittedPatientsResponseModel.isHasCompanion!, isFastingVal, context)
|
|
|
|
|
.then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
AppToast.showSuccessToast(message: "Your meal order has been received successfully");
|
|
|
|
|
@ -479,13 +479,13 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
void getAdmittedPatientDetails() {
|
|
|
|
|
ClinicListService service = new ClinicListService();
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service.getAdmittedPatientDetails(projectViewModel.user.patientID, projectViewModel.inPatientProjectID, projectViewModel.getAdmissionInfoResponseModel.admissionNo, 0, 0, 0, context).then((res) {
|
|
|
|
|
service.getAdmittedPatientDetails(projectViewModel.user.patientID!, projectViewModel.inPatientProjectID, projectViewModel.getAdmissionInfoResponseModel.admissionNo!, 0, 0, 0, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (res["List_MOP_AdmittedPatients"] != null && res["List_MOP_AdmittedPatients"].length != 0) {
|
|
|
|
|
print(res["List_MOP_AdmittedPatients"]);
|
|
|
|
|
getAdmittedPatientsResponseModel = new GetAdmittedPatientsResponseModel.fromJson(res["List_MOP_AdmittedPatients"][0]);
|
|
|
|
|
print(getAdmittedPatientsResponseModel.dietType);
|
|
|
|
|
getCurrentWeekIDAndDay(getAdmittedPatientsResponseModel.dietType);
|
|
|
|
|
getCurrentWeekIDAndDay(getAdmittedPatientsResponseModel.dietType!);
|
|
|
|
|
} else {
|
|
|
|
|
AppToast.showErrorToast(message: "No data found for admitted patient");
|
|
|
|
|
getCurrentWeekIDAndDay(1);
|
|
|
|
|
@ -513,23 +513,23 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
void getMealsOfScheduleID(int dietType) {
|
|
|
|
|
ClinicListService service = new ClinicListService();
|
|
|
|
|
GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
service.getMealsOfScheduleID(projectViewModel.inPatientProjectID, projectViewModel.getAdmissionInfoResponseModel.admissionNo, dietType, currentWeek, currentDay, context).then((res) {
|
|
|
|
|
service.getMealsOfScheduleID(projectViewModel.inPatientProjectID, projectViewModel.getAdmissionInfoResponseModel.admissionNo!, dietType, currentWeek, currentDay, context).then((res) {
|
|
|
|
|
GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
if (res["List_MOP_MealsOfScheduleID_Mobile"] != null && res["List_MOP_MealsOfScheduleID_Mobile"].length != 0) {
|
|
|
|
|
res['List_MOP_MealsOfScheduleID_Mobile'].forEach((scheduleItem) {
|
|
|
|
|
getMealsScheduleResponseModelList.add(GetMealsScheduleResponseModel.fromJson(scheduleItem));
|
|
|
|
|
});
|
|
|
|
|
if (getMealsScheduleResponseModelList[0].isShow) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[0].scheduleID;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[0].scheduleID, 1);
|
|
|
|
|
if (getMealsScheduleResponseModelList[0].isShow!) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[0].scheduleID!;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[0].scheduleID!, 1);
|
|
|
|
|
}
|
|
|
|
|
if (getMealsScheduleResponseModelList[1].isShow) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[1].scheduleID;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[1].scheduleID, 2);
|
|
|
|
|
if (getMealsScheduleResponseModelList[1].isShow!) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[1].scheduleID!;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[1].scheduleID!, 2);
|
|
|
|
|
}
|
|
|
|
|
if (getMealsScheduleResponseModelList[2].isShow) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[2].scheduleID;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[2].scheduleID, 3);
|
|
|
|
|
if (getMealsScheduleResponseModelList[2].isShow!) {
|
|
|
|
|
selectedMealScheduleID = getMealsScheduleResponseModelList[2].scheduleID!;
|
|
|
|
|
getDefaultItemsOfScheduleID(getMealsScheduleResponseModelList[2].scheduleID!, 3);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
AppToast.showErrorToast(message: "No meal schedule found for admitted patient");
|
|
|
|
|
@ -589,8 +589,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
|
|
|
|
|
_getMealItemsScheduleResponseModelBreakfast.forEach((element) {
|
|
|
|
|
element.getMealItemsScheduleResponseModelList.forEach((elementInner) {
|
|
|
|
|
if (elementInner.isDefault) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID;
|
|
|
|
|
if (elementInner.isDefault!) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID!;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
@ -611,8 +611,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
|
|
|
|
|
_getMealItemsScheduleResponseModelLunch.forEach((element) {
|
|
|
|
|
element.getMealItemsScheduleResponseModelList.forEach((elementInner) {
|
|
|
|
|
if (elementInner.isDefault) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID;
|
|
|
|
|
if (elementInner.isDefault!) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID!;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
@ -632,8 +632,8 @@ class _MealPlanPageState extends State<MealPlanPage> {
|
|
|
|
|
});
|
|
|
|
|
_getMealItemsScheduleResponseModelDinner.forEach((element) {
|
|
|
|
|
element.getMealItemsScheduleResponseModelList.forEach((elementInner) {
|
|
|
|
|
if (elementInner.isDefault) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID;
|
|
|
|
|
if (elementInner.isDefault!) {
|
|
|
|
|
element.selectedItemID.value = elementInner.itemID!;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|