Merge branch 'pharmacy' of https://gitlab.com/Cloud_Solution/diplomatic-quarter into enad_pharmacy
# Conflicts: # lib/config/config.dart # lib/widgets/others/app_scaffold_widget.dartmerge-update-with-lab-changes
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 19 KiB |
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict/>
|
||||
<dict>
|
||||
<key>aps-environment</key>
|
||||
<string>development</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@ -0,0 +1,60 @@
|
||||
import 'package:flutter/cupertino.dart';
|
||||
|
||||
enum Ambulate { Wheelchair, Walker, Stretcher, None }
|
||||
|
||||
extension SelectedAmbulate on Ambulate {
|
||||
String getAmbulateTitle(BuildContext context) {
|
||||
switch (this) {
|
||||
case Ambulate.Wheelchair:
|
||||
return 'Wheelchair';
|
||||
break;
|
||||
case Ambulate.Walker:
|
||||
return 'Walker';
|
||||
break;
|
||||
case Ambulate.Stretcher:
|
||||
return 'Stretcher';
|
||||
break;
|
||||
case Ambulate.None:
|
||||
return 'None';
|
||||
break;
|
||||
}
|
||||
return 'None';
|
||||
}
|
||||
|
||||
int selectAmbulateNumber() {
|
||||
switch (this) {
|
||||
case Ambulate.Wheelchair:
|
||||
return 0;
|
||||
break;
|
||||
case Ambulate.Walker:
|
||||
return 1;
|
||||
break;
|
||||
case Ambulate.Stretcher:
|
||||
return 2;
|
||||
break;
|
||||
case Ambulate.None:
|
||||
return 3;
|
||||
break;
|
||||
}
|
||||
return 3;
|
||||
}
|
||||
|
||||
Ambulate getAmbulateById(int id) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
return Ambulate.Wheelchair;
|
||||
break;
|
||||
case 1:
|
||||
return Ambulate.Walker;
|
||||
break;
|
||||
case 2:
|
||||
return Ambulate.Stretcher;
|
||||
break;
|
||||
case 3:
|
||||
return Ambulate.None;
|
||||
break;
|
||||
}
|
||||
|
||||
return Ambulate.None;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
enum OrderService { AMBULANCE }
|
||||
|
||||
extension SelectedOrderService on OrderService {
|
||||
int getIdOrderService() {
|
||||
switch (this) {
|
||||
case OrderService.AMBULANCE:
|
||||
return 4;
|
||||
break;
|
||||
}
|
||||
return 4;
|
||||
}
|
||||
|
||||
OrderService getOrderServiceById(int id) {
|
||||
switch (id) {
|
||||
case 4:
|
||||
return OrderService.AMBULANCE;
|
||||
break;
|
||||
}
|
||||
|
||||
return OrderService.AMBULANCE;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
class List_BabyInformationModel {
|
||||
int alertBy;
|
||||
int babyID;
|
||||
String babyName;
|
||||
DateTime dOB;
|
||||
int gender;
|
||||
String genderDescription;
|
||||
int patientID;
|
||||
int userID;
|
||||
|
||||
List_BabyInformationModel(
|
||||
{this.alertBy,
|
||||
this.babyID,
|
||||
this.babyName,
|
||||
this.dOB,
|
||||
this.gender,
|
||||
this.genderDescription,
|
||||
this.patientID,
|
||||
this.userID});
|
||||
|
||||
List_BabyInformationModel.fromJson(Map<String, dynamic> json) {
|
||||
alertBy = json['AlertBy'];
|
||||
babyID = json['BabyID'];
|
||||
babyName = json['BabyName'];
|
||||
dOB = DateUtil.convertStringToDate(json['DOB']);
|
||||
gender = json['Gender'];
|
||||
genderDescription = json['GenderDescription'];
|
||||
patientID = json['PatientID'];
|
||||
userID = json['UserID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['AlertBy'] = this.alertBy;
|
||||
data['BabyID'] = this.babyID;
|
||||
data['BabyName'] = this.babyName;
|
||||
data['DOB'] = this.dOB;
|
||||
data['Gender'] = this.gender;
|
||||
data['GenderDescription'] = this.genderDescription;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['UserID'] = this.userID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,100 @@
|
||||
class CreateNewBaby {
|
||||
String babyName;
|
||||
String gender;
|
||||
String strDOB;
|
||||
int editedBy;
|
||||
int createdBy;
|
||||
bool tempValue;
|
||||
int userID;
|
||||
bool isLogin;
|
||||
int alertBy;
|
||||
double versionID;
|
||||
int channel;
|
||||
int languageID;
|
||||
String iPAdress;
|
||||
String generalid;
|
||||
int patientOutSA;
|
||||
String sessionID;
|
||||
bool isDentalAllowedBackend;
|
||||
int deviceTypeID;
|
||||
int patientID;
|
||||
String tokenID;
|
||||
int patientTypeID;
|
||||
int patientType;
|
||||
|
||||
CreateNewBaby(
|
||||
{this.babyName,
|
||||
this.gender,
|
||||
this.strDOB,
|
||||
this.editedBy,
|
||||
this.createdBy,
|
||||
this.tempValue,
|
||||
this.userID,
|
||||
this.isLogin,
|
||||
this.alertBy,
|
||||
this.versionID,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.iPAdress,
|
||||
this.generalid,
|
||||
this.patientOutSA,
|
||||
this.sessionID,
|
||||
this.isDentalAllowedBackend,
|
||||
this.deviceTypeID,
|
||||
this.patientID,
|
||||
this.tokenID,
|
||||
this.patientTypeID,
|
||||
this.patientType});
|
||||
|
||||
CreateNewBaby.fromJson(Map<String, dynamic> json) {
|
||||
babyName = json['BabyName'];
|
||||
gender = json['Gender'];
|
||||
strDOB = json['StrDOB'];
|
||||
editedBy = json['EditedBy'];
|
||||
createdBy = json['CreatedBy'];
|
||||
tempValue = json['TempValue'];
|
||||
userID = json['UserID'];
|
||||
isLogin = json['IsLogin'];
|
||||
alertBy = json['AlertBy'];
|
||||
versionID = json['VersionID'];
|
||||
channel = json['Channel'];
|
||||
languageID = json['LanguageID'];
|
||||
iPAdress = json['IPAdress'];
|
||||
generalid = json['generalid'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
sessionID = json['SessionID'];
|
||||
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||
deviceTypeID = json['DeviceTypeID'];
|
||||
patientID = json['PatientID'];
|
||||
tokenID = json['TokenID'];
|
||||
patientTypeID = json['PatientTypeID'];
|
||||
patientType = json['PatientType'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['BabyName'] = this.babyName;
|
||||
data['Gender'] = this.gender;
|
||||
data['StrDOB'] = this.strDOB;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['TempValue'] = this.tempValue;
|
||||
data['UserID'] = this.userID;
|
||||
data['IsLogin'] = this.isLogin;
|
||||
data['AlertBy'] = this.alertBy;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Channel'] = this.channel;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['generalid'] = this.generalid;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||
data['DeviceTypeID'] = this.deviceTypeID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['PatientTypeID'] = this.patientTypeID;
|
||||
data['PatientType'] = this.patientType;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,165 @@
|
||||
class CreateNewUser_New {
|
||||
Null date;
|
||||
int languageID;
|
||||
int serviceName;
|
||||
Null time;
|
||||
Null androidLink;
|
||||
Null authenticationTokenID;
|
||||
Null data;
|
||||
bool dataw;
|
||||
int dietType;
|
||||
Null errorCode;
|
||||
Null errorEndUserMessage;
|
||||
Null errorEndUserMessageN;
|
||||
Null errorMessage;
|
||||
int errorType;
|
||||
int foodCategory;
|
||||
Null iOSLink;
|
||||
bool isAuthenticated;
|
||||
int mealOrderStatus;
|
||||
int mealType;
|
||||
int messageStatus;
|
||||
int numberOfResultRecords;
|
||||
Null patientBlodType;
|
||||
Null successMsg;
|
||||
Null successMsgN;
|
||||
Null htmlResult;
|
||||
bool isHMGPatient;
|
||||
bool isRegister;
|
||||
bool isSendSMS;
|
||||
Null listBabyInformationModel;
|
||||
Null listBabyNeedReminderModel;
|
||||
Null listCreateVaccinationTableModel;
|
||||
Null listHisPatientModel;
|
||||
Null listUserInformationModel;
|
||||
Null listUserInformationModelNew;
|
||||
Null listVaccinationTableModel;
|
||||
Null tokinID;
|
||||
int userID;
|
||||
Null verificationCode;
|
||||
|
||||
CreateNewUser_New(
|
||||
{this.date,
|
||||
this.languageID,
|
||||
this.serviceName,
|
||||
this.time,
|
||||
this.androidLink,
|
||||
this.authenticationTokenID,
|
||||
this.data,
|
||||
this.dataw,
|
||||
this.dietType,
|
||||
this.errorCode,
|
||||
this.errorEndUserMessage,
|
||||
this.errorEndUserMessageN,
|
||||
this.errorMessage,
|
||||
this.errorType,
|
||||
this.foodCategory,
|
||||
this.iOSLink,
|
||||
this.isAuthenticated,
|
||||
this.mealOrderStatus,
|
||||
this.mealType,
|
||||
this.messageStatus,
|
||||
this.numberOfResultRecords,
|
||||
this.patientBlodType,
|
||||
this.successMsg,
|
||||
this.successMsgN,
|
||||
this.htmlResult,
|
||||
this.isHMGPatient,
|
||||
this.isRegister,
|
||||
this.isSendSMS,
|
||||
this.listBabyInformationModel,
|
||||
this.listBabyNeedReminderModel,
|
||||
this.listCreateVaccinationTableModel,
|
||||
this.listHisPatientModel,
|
||||
this.listUserInformationModel,
|
||||
this.listUserInformationModelNew,
|
||||
this.listVaccinationTableModel,
|
||||
this.tokinID,
|
||||
this.userID,
|
||||
this.verificationCode});
|
||||
|
||||
CreateNewUser_New.fromJson(Map<String, dynamic> json) {
|
||||
date = json['Date'];
|
||||
languageID = json['LanguageID'];
|
||||
serviceName = json['ServiceName'];
|
||||
time = json['Time'];
|
||||
androidLink = json['AndroidLink'];
|
||||
authenticationTokenID = json['AuthenticationTokenID'];
|
||||
data = json['Data'];
|
||||
dataw = json['Dataw'];
|
||||
dietType = json['DietType'];
|
||||
errorCode = json['ErrorCode'];
|
||||
errorEndUserMessage = json['ErrorEndUserMessage'];
|
||||
errorEndUserMessageN = json['ErrorEndUserMessageN'];
|
||||
errorMessage = json['ErrorMessage'];
|
||||
errorType = json['ErrorType'];
|
||||
foodCategory = json['FoodCategory'];
|
||||
iOSLink = json['IOSLink'];
|
||||
isAuthenticated = json['IsAuthenticated'];
|
||||
mealOrderStatus = json['MealOrderStatus'];
|
||||
mealType = json['MealType'];
|
||||
messageStatus = json['MessageStatus'];
|
||||
numberOfResultRecords = json['NumberOfResultRecords'];
|
||||
patientBlodType = json['PatientBlodType'];
|
||||
successMsg = json['SuccessMsg'];
|
||||
successMsgN = json['SuccessMsgN'];
|
||||
htmlResult = json['HtmlResult'];
|
||||
isHMGPatient = json['IsHMGPatient'];
|
||||
isRegister = json['IsRegister'];
|
||||
isSendSMS = json['IsSendSMS'];
|
||||
listBabyInformationModel = json['List_BabyInformationModel'];
|
||||
listBabyNeedReminderModel = json['List_BabyNeedReminderModel'];
|
||||
listCreateVaccinationTableModel = json['List_CreateVaccinationTableModel'];
|
||||
listHisPatientModel = json['List_His_PatientModel'];
|
||||
listUserInformationModel = json['List_UserInformationModel'];
|
||||
listUserInformationModelNew = json['List_UserInformationModel_New'];
|
||||
listVaccinationTableModel = json['List_VaccinationTableModel'];
|
||||
tokinID = json['TokinID'];
|
||||
userID = json['UserID'];
|
||||
verificationCode = json['VerificationCode'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Date'] = this.date;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['ServiceName'] = this.serviceName;
|
||||
data['Time'] = this.time;
|
||||
data['AndroidLink'] = this.androidLink;
|
||||
data['AuthenticationTokenID'] = this.authenticationTokenID;
|
||||
data['Data'] = this.data;
|
||||
data['Dataw'] = this.dataw;
|
||||
data['DietType'] = this.dietType;
|
||||
data['ErrorCode'] = this.errorCode;
|
||||
data['ErrorEndUserMessage'] = this.errorEndUserMessage;
|
||||
data['ErrorEndUserMessageN'] = this.errorEndUserMessageN;
|
||||
data['ErrorMessage'] = this.errorMessage;
|
||||
data['ErrorType'] = this.errorType;
|
||||
data['FoodCategory'] = this.foodCategory;
|
||||
data['IOSLink'] = this.iOSLink;
|
||||
data['IsAuthenticated'] = this.isAuthenticated;
|
||||
data['MealOrderStatus'] = this.mealOrderStatus;
|
||||
data['MealType'] = this.mealType;
|
||||
data['MessageStatus'] = this.messageStatus;
|
||||
data['NumberOfResultRecords'] = this.numberOfResultRecords;
|
||||
data['PatientBlodType'] = this.patientBlodType;
|
||||
data['SuccessMsg'] = this.successMsg;
|
||||
data['SuccessMsgN'] = this.successMsgN;
|
||||
data['HtmlResult'] = this.htmlResult;
|
||||
data['IsHMGPatient'] = this.isHMGPatient;
|
||||
data['IsRegister'] = this.isRegister;
|
||||
data['IsSendSMS'] = this.isSendSMS;
|
||||
data['List_BabyInformationModel'] = this.listBabyInformationModel;
|
||||
data['List_BabyNeedReminderModel'] = this.listBabyNeedReminderModel;
|
||||
data['List_CreateVaccinationTableModel'] =
|
||||
this.listCreateVaccinationTableModel;
|
||||
data['List_His_PatientModel'] = this.listHisPatientModel;
|
||||
data['List_UserInformationModel'] = this.listUserInformationModel;
|
||||
data['List_UserInformationModel_New'] = this.listUserInformationModelNew;
|
||||
data['List_VaccinationTableModel'] = this.listVaccinationTableModel;
|
||||
data['TokinID'] = this.tokinID;
|
||||
data['UserID'] = this.userID;
|
||||
data['VerificationCode'] = this.verificationCode;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
class CreateVaccinationTable {
|
||||
String givenAt;
|
||||
String status;
|
||||
String vaccinesDescription;
|
||||
String visit;
|
||||
|
||||
CreateVaccinationTable(
|
||||
{this.givenAt, this.status, this.vaccinesDescription, this.visit});
|
||||
|
||||
CreateVaccinationTable.fromJson(Map<String, dynamic> json) {
|
||||
givenAt = json['GivenAt'];
|
||||
status = json['Status'];
|
||||
vaccinesDescription = json['VaccinesDescription'];
|
||||
visit = json['Visit'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['GivenAt'] = this.givenAt;
|
||||
data['Status'] = this.status;
|
||||
data['VaccinesDescription'] = this.vaccinesDescription;
|
||||
data['Visit'] = this.visit;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
class DeleteBaby {
|
||||
bool isLogin;
|
||||
int babyID;
|
||||
int editedBy;
|
||||
double versionID;
|
||||
int channel;
|
||||
int languageID;
|
||||
String iPAdress;
|
||||
String generalid;
|
||||
int patientOutSA;
|
||||
String sessionID;
|
||||
bool isDentalAllowedBackend;
|
||||
int deviceTypeID;
|
||||
int patientID;
|
||||
String tokenID;
|
||||
int patientTypeID;
|
||||
int patientType;
|
||||
|
||||
DeleteBaby(
|
||||
{this.isLogin,
|
||||
this.babyID,
|
||||
this.editedBy,
|
||||
this.versionID,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.iPAdress,
|
||||
this.generalid,
|
||||
this.patientOutSA,
|
||||
this.sessionID,
|
||||
this.isDentalAllowedBackend,
|
||||
this.deviceTypeID,
|
||||
this.patientID,
|
||||
this.tokenID,
|
||||
this.patientTypeID,
|
||||
this.patientType});
|
||||
|
||||
DeleteBaby.fromJson(Map<String, dynamic> json) {
|
||||
isLogin = json['IsLogin'];
|
||||
babyID = json['BabyID'];
|
||||
editedBy = json['EditedBy'];
|
||||
versionID = json['VersionID'];
|
||||
channel = json['Channel'];
|
||||
languageID = json['LanguageID'];
|
||||
iPAdress = json['IPAdress'];
|
||||
generalid = json['generalid'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
sessionID = json['SessionID'];
|
||||
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||
deviceTypeID = json['DeviceTypeID'];
|
||||
patientID = json['PatientID'];
|
||||
tokenID = json['TokenID'];
|
||||
patientTypeID = json['PatientTypeID'];
|
||||
patientType = json['PatientType'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['IsLogin'] = this.isLogin;
|
||||
data['BabyID'] = this.babyID;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Channel'] = this.channel;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['generalid'] = this.generalid;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||
data['DeviceTypeID'] = this.deviceTypeID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['PatientTypeID'] = this.patientTypeID;
|
||||
data['PatientType'] = this.patientType;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class GET_VACCINATIONS_ITEMSMODEL {
|
||||
String dESCRIPTION;
|
||||
String iTEMCODE;
|
||||
|
||||
GET_VACCINATIONS_ITEMSMODEL({this.dESCRIPTION, this.iTEMCODE});
|
||||
|
||||
GET_VACCINATIONS_ITEMSMODEL.fromJson(Map<String, dynamic> json) {
|
||||
dESCRIPTION = json['DESCRIPTION'];
|
||||
iTEMCODE = json['ITEM_CODE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['DESCRIPTION'] = this.dESCRIPTION;
|
||||
data['ITEM_CODE'] = this.iTEMCODE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
class List_UserInformationModel {
|
||||
int userID;
|
||||
String mobileNumber;
|
||||
String nationalID;
|
||||
String emailAddress;
|
||||
int patientID;
|
||||
int patientType;
|
||||
bool patientOutSA;
|
||||
int createdBy;
|
||||
int editedBy;
|
||||
|
||||
List_UserInformationModel(
|
||||
{this.userID,
|
||||
this.mobileNumber,
|
||||
this.nationalID,
|
||||
this.emailAddress,
|
||||
this.patientID,
|
||||
this.patientType,
|
||||
this.patientOutSA,
|
||||
this.createdBy,
|
||||
this.editedBy});
|
||||
|
||||
List_UserInformationModel.fromJson(Map<String, dynamic> json) {
|
||||
userID = json['UserID'];
|
||||
mobileNumber = json['MobileNumber'];
|
||||
nationalID = json['NationalID'];
|
||||
emailAddress = json['EmailAddress'];
|
||||
patientID = json['PatientID'];
|
||||
patientType = json['PatientType'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
createdBy = json['CreatedBy'];
|
||||
editedBy = json['EditedBy'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['UserID'] = this.userID;
|
||||
data['MobileNumber'] = this.mobileNumber;
|
||||
data['NationalID'] = this.nationalID;
|
||||
data['EmailAddress'] = this.emailAddress;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['PatientType'] = this.patientType;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
class PatientAllPresOrders {
|
||||
int iD;
|
||||
String patientID;
|
||||
bool patientOutSA;
|
||||
bool isOutPatient;
|
||||
int projectID;
|
||||
int nearestProjectID;
|
||||
double longitude;
|
||||
double latitude;
|
||||
String appointmentNo;
|
||||
String dischargeID;
|
||||
int lineItemNo;
|
||||
int status;
|
||||
String description;
|
||||
String descriptionN;
|
||||
String createdOn;
|
||||
int serviceID;
|
||||
int createdBy;
|
||||
String editedOn;
|
||||
int editedBy;
|
||||
int channel;
|
||||
dynamic clientRequestID;
|
||||
bool returnedToQueue;
|
||||
dynamic pickupDateTime;
|
||||
dynamic pickupLocationName;
|
||||
dynamic dropoffLocationName;
|
||||
int realRRTHaveTransactions;
|
||||
String nearestProjectDescription;
|
||||
String nearestProjectDescriptionN;
|
||||
String projectDescription;
|
||||
String projectDescriptionN;
|
||||
|
||||
PatientAllPresOrders(
|
||||
{this.iD,
|
||||
this.patientID,
|
||||
this.patientOutSA,
|
||||
this.isOutPatient,
|
||||
this.projectID,
|
||||
this.nearestProjectID,
|
||||
this.longitude,
|
||||
this.latitude,
|
||||
this.appointmentNo,
|
||||
this.dischargeID,
|
||||
this.lineItemNo,
|
||||
this.status,
|
||||
this.description,
|
||||
this.descriptionN,
|
||||
this.createdOn,
|
||||
this.serviceID,
|
||||
this.createdBy,
|
||||
this.editedOn,
|
||||
this.editedBy,
|
||||
this.channel,
|
||||
this.clientRequestID,
|
||||
this.returnedToQueue,
|
||||
this.pickupDateTime,
|
||||
this.pickupLocationName,
|
||||
this.dropoffLocationName,
|
||||
this.realRRTHaveTransactions,
|
||||
this.nearestProjectDescription,
|
||||
this.nearestProjectDescriptionN,
|
||||
this.projectDescription,
|
||||
this.projectDescriptionN});
|
||||
|
||||
PatientAllPresOrders.fromJson(Map<String, dynamic> json) {
|
||||
iD = json['ID'];
|
||||
patientID = json['PatientID'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
isOutPatient = json['IsOutPatient'];
|
||||
projectID = json['ProjectID'];
|
||||
nearestProjectID = json['NearestProjectID'];
|
||||
longitude = json['Longitude'];
|
||||
latitude = json['Latitude'];
|
||||
appointmentNo = json['AppointmentNo'];
|
||||
dischargeID = json['DischargeID'];
|
||||
lineItemNo = json['LineItemNo'];
|
||||
status = json['Status'];
|
||||
description = json['Description'];
|
||||
descriptionN = json['DescriptionN'];
|
||||
createdOn = json['CreatedOn'];
|
||||
serviceID = json['ServiceID'];
|
||||
createdBy = json['CreatedBy'];
|
||||
editedOn = json['EditedOn'];
|
||||
editedBy = json['EditedBy'];
|
||||
channel = json['Channel'];
|
||||
clientRequestID = json['ClientRequestID'];
|
||||
returnedToQueue = json['ReturnedToQueue'];
|
||||
pickupDateTime = json['PickupDateTime'];
|
||||
pickupLocationName = json['PickupLocationName'];
|
||||
dropoffLocationName = json['DropoffLocationName'];
|
||||
realRRTHaveTransactions = json['RealRRT_HaveTransactions'];
|
||||
nearestProjectDescription = json['NearestProjectDescription'];
|
||||
nearestProjectDescriptionN = json['NearestProjectDescriptionN'];
|
||||
projectDescription = json['ProjectDescription'];
|
||||
projectDescriptionN = json['ProjectDescriptionN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ID'] = this.iD;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['IsOutPatient'] = this.isOutPatient;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['NearestProjectID'] = this.nearestProjectID;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['AppointmentNo'] = this.appointmentNo;
|
||||
data['DischargeID'] = this.dischargeID;
|
||||
data['LineItemNo'] = this.lineItemNo;
|
||||
data['Status'] = this.status;
|
||||
data['Description'] = this.description;
|
||||
data['DescriptionN'] = this.descriptionN;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['ServiceID'] = this.serviceID;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['EditedOn'] = this.editedOn;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['Channel'] = this.channel;
|
||||
data['ClientRequestID'] = this.clientRequestID;
|
||||
data['ReturnedToQueue'] = this.returnedToQueue;
|
||||
data['PickupDateTime'] = this.pickupDateTime;
|
||||
data['PickupLocationName'] = this.pickupLocationName;
|
||||
data['DropoffLocationName'] = this.dropoffLocationName;
|
||||
data['RealRRT_HaveTransactions'] = this.realRRTHaveTransactions;
|
||||
data['NearestProjectDescription'] = this.nearestProjectDescription;
|
||||
data['NearestProjectDescriptionN'] = this.nearestProjectDescriptionN;
|
||||
data['ProjectDescription'] = this.projectDescription;
|
||||
data['ProjectDescriptionN'] = this.projectDescriptionN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,207 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/Ambulate.dart';
|
||||
|
||||
import 'get_all_transportation_method_list_model.dart';
|
||||
|
||||
class PatientER {
|
||||
double versionID;
|
||||
int channel;
|
||||
int languageID;
|
||||
String iPAdress;
|
||||
String generalid;
|
||||
int patientOutSA;
|
||||
String sessionID;
|
||||
bool isDentalAllowedBackend;
|
||||
int deviceTypeID;
|
||||
int patientID;
|
||||
String tokenID;
|
||||
int patientTypeID;
|
||||
int patientType;
|
||||
int orderServiceID;
|
||||
String patientIdentificationID;
|
||||
int direction;
|
||||
bool haveAppointment;
|
||||
int tripType;
|
||||
int pickupUrgency;
|
||||
int pickupSpot;
|
||||
String pickupDateTime;
|
||||
int transportationMethodId;
|
||||
int selectedAmbulate;
|
||||
String requesterNote;
|
||||
int requesterFileNo;
|
||||
String requesterMobileNo;
|
||||
bool requesterIsOutSA;
|
||||
int isOutPatient;
|
||||
String pickupLocationName;
|
||||
String dropoffLocationName;
|
||||
int projectID;
|
||||
int createdBy;
|
||||
int lineItemNo;
|
||||
int cost;
|
||||
double vAT;
|
||||
double totalPrice;
|
||||
String pickupLocationLattitude;
|
||||
String pickupLocationLongitude;
|
||||
String dropoffLocationLattitude;
|
||||
String dropoffLocationLongitude;
|
||||
String latitude;
|
||||
String longitude;
|
||||
String appointmentNo;
|
||||
dynamic appointmentClinicName;
|
||||
dynamic appointmentDoctorName;
|
||||
dynamic appointmentBranch;
|
||||
dynamic appointmentTime;
|
||||
PatientERTransportationMethod patientERTransportationMethod;
|
||||
Ambulate ambulate;
|
||||
PatientER(
|
||||
{this.versionID,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.iPAdress,
|
||||
this.generalid,
|
||||
this.patientOutSA,
|
||||
this.sessionID,
|
||||
this.isDentalAllowedBackend,
|
||||
this.deviceTypeID,
|
||||
this.patientID,
|
||||
this.tokenID,
|
||||
this.patientTypeID,
|
||||
this.patientType,
|
||||
this.orderServiceID = 4,
|
||||
this.patientIdentificationID,
|
||||
this.direction,
|
||||
this.haveAppointment,
|
||||
this.tripType,
|
||||
this.pickupUrgency,
|
||||
this.pickupSpot,
|
||||
this.pickupDateTime,
|
||||
this.transportationMethodId,
|
||||
this.selectedAmbulate,
|
||||
this.requesterNote,
|
||||
this.requesterFileNo,
|
||||
this.requesterMobileNo,
|
||||
this.requesterIsOutSA,
|
||||
this.isOutPatient,
|
||||
this.pickupLocationName,
|
||||
this.dropoffLocationName,
|
||||
this.projectID,
|
||||
this.createdBy,
|
||||
this.lineItemNo,
|
||||
this.cost,
|
||||
this.vAT,
|
||||
this.totalPrice,
|
||||
this.pickupLocationLattitude,
|
||||
this.pickupLocationLongitude,
|
||||
this.dropoffLocationLattitude,
|
||||
this.dropoffLocationLongitude,
|
||||
this.latitude,
|
||||
this.longitude,
|
||||
this.appointmentNo,
|
||||
this.appointmentClinicName,
|
||||
this.appointmentDoctorName,
|
||||
this.appointmentBranch,
|
||||
this.appointmentTime,
|
||||
this.patientERTransportationMethod,
|
||||
this.ambulate});
|
||||
|
||||
PatientER.fromJson(Map<String, dynamic> json) {
|
||||
versionID = json['VersionID'];
|
||||
channel = json['Channel'];
|
||||
languageID = json['LanguageID'];
|
||||
iPAdress = json['IPAdress'];
|
||||
generalid = json['generalid'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
sessionID = json['SessionID'];
|
||||
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||
deviceTypeID = json['DeviceTypeID'];
|
||||
patientID = json['PatientID'];
|
||||
tokenID = json['TokenID'];
|
||||
patientTypeID = json['PatientTypeID'];
|
||||
patientType = json['PatientType'];
|
||||
orderServiceID = json['OrderServiceID'];
|
||||
patientIdentificationID = json['PatientIdentificationID'];
|
||||
direction = json['Direction'];
|
||||
haveAppointment = json['HaveAppointment'];
|
||||
tripType = json['TripType'];
|
||||
pickupUrgency = json['PickupUrgency'];
|
||||
pickupSpot = json['PickupSpot'];
|
||||
pickupDateTime = json['PickupDateTime'];
|
||||
transportationMethodId = json['TransportationMethodId'];
|
||||
selectedAmbulate = json['SelectedAmbulate'];
|
||||
requesterNote = json['RequesterNote'];
|
||||
requesterFileNo = json['RequesterFileNo'];
|
||||
requesterMobileNo = json['RequesterMobileNo'];
|
||||
requesterIsOutSA = json['RequesterIsOutSA'];
|
||||
isOutPatient = json['IsOutPatient'];
|
||||
pickupLocationName = json['PickupLocationName'];
|
||||
dropoffLocationName = json['DropoffLocationName'];
|
||||
projectID = json['ProjectID'];
|
||||
createdBy = json['CreatedBy'];
|
||||
lineItemNo = json['LineItemNo'];
|
||||
cost = json['Cost'];
|
||||
vAT = json['VAT'];
|
||||
totalPrice = json['TotalPrice'];
|
||||
pickupLocationLattitude = json['PickupLocationLattitude'];
|
||||
pickupLocationLongitude = json['PickupLocationLongitude'];
|
||||
dropoffLocationLattitude = json['DropoffLocationLattitude'];
|
||||
dropoffLocationLongitude = json['DropoffLocationLongitude'];
|
||||
latitude = json['Latitude'];
|
||||
longitude = json['Longitude'];
|
||||
appointmentNo = json['AppointmentNo'];
|
||||
appointmentClinicName = json['AppointmentClinicName'];
|
||||
appointmentDoctorName = json['AppointmentDoctorName'];
|
||||
appointmentBranch = json['AppointmentBranch'];
|
||||
appointmentTime = json['AppointmentTime'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Channel'] = this.channel;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['generalid'] = this.generalid;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||
data['DeviceTypeID'] = this.deviceTypeID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['TokenID'] = this.tokenID;
|
||||
data['PatientTypeID'] = this.patientTypeID;
|
||||
data['PatientType'] = this.patientType;
|
||||
data['OrderServiceID'] = this.orderServiceID;
|
||||
data['PatientIdentificationID'] = this.patientIdentificationID;
|
||||
data['Direction'] = this.direction;
|
||||
data['HaveAppointment'] = this.haveAppointment;
|
||||
data['TripType'] = this.tripType;
|
||||
data['PickupUrgency'] = this.pickupUrgency;
|
||||
data['PickupSpot'] = this.pickupSpot;
|
||||
data['PickupDateTime'] = this.pickupDateTime;
|
||||
data['TransportationMethodId'] = this.transportationMethodId;
|
||||
data['SelectedAmbulate'] = this.selectedAmbulate;
|
||||
data['RequesterNote'] = this.requesterNote;
|
||||
data['RequesterFileNo'] = this.requesterFileNo;
|
||||
data['RequesterMobileNo'] = this.requesterMobileNo;
|
||||
data['RequesterIsOutSA'] = this.requesterIsOutSA;
|
||||
data['IsOutPatient'] = this.isOutPatient;
|
||||
data['PickupLocationName'] = this.pickupLocationName;
|
||||
data['DropoffLocationName'] = this.dropoffLocationName;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['LineItemNo'] = this.lineItemNo;
|
||||
data['Cost'] = this.cost;
|
||||
data['VAT'] = this.vAT;
|
||||
data['TotalPrice'] = this.totalPrice;
|
||||
data['PickupLocationLattitude'] = this.pickupLocationLattitude;
|
||||
data['PickupLocationLongitude'] = this.pickupLocationLongitude;
|
||||
data['DropoffLocationLattitude'] = this.dropoffLocationLattitude;
|
||||
data['DropoffLocationLongitude'] = this.dropoffLocationLongitude;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['AppointmentNo'] = this.appointmentNo;
|
||||
data['AppointmentClinicName'] = this.appointmentClinicName;
|
||||
data['AppointmentDoctorName'] = this.appointmentDoctorName;
|
||||
data['AppointmentBranch'] = this.appointmentBranch;
|
||||
data['AppointmentTime'] = this.appointmentTime;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,204 @@
|
||||
class PickUpRequestPresOrder {
|
||||
int id;
|
||||
int presOrderID;
|
||||
String createDate;
|
||||
String lastEditDate;
|
||||
int createdBy;
|
||||
int lastEditBy;
|
||||
bool isActive;
|
||||
String requestNo;
|
||||
int requesterId;
|
||||
int direction;
|
||||
bool haveAppointment;
|
||||
dynamic appointmentId;
|
||||
int tripType;
|
||||
int pickupUrgency;
|
||||
String pickupDateTime;
|
||||
dynamic pickupLocationId;
|
||||
int pickupSpot;
|
||||
dynamic dropoffLocationId;
|
||||
int transportationMethodId;
|
||||
int cost;
|
||||
double vAT;
|
||||
double totalPrice;
|
||||
int amountCollected;
|
||||
int selectedAmbulate;
|
||||
String requesterNote;
|
||||
int status;
|
||||
int paymentStatus;
|
||||
dynamic rejectReason;
|
||||
int visibility;
|
||||
dynamic durationId;
|
||||
dynamic imageId;
|
||||
String requesterFileNo;
|
||||
String requesterMobileNo;
|
||||
bool requesterIsOutSA;
|
||||
String pickupLocationLongitude;
|
||||
String pickupLocationLattitude;
|
||||
String dropoffLocationLongitude;
|
||||
String dropoffLocationLattitude;
|
||||
dynamic appointmentClinicName;
|
||||
dynamic appointmentDoctorName;
|
||||
dynamic appointmentBranch;
|
||||
dynamic appointmentTime;
|
||||
String pickupLocationName;
|
||||
String dropoffLocationName;
|
||||
String title;
|
||||
String titleAR;
|
||||
String ambulateDescription;
|
||||
String ambulateDescriptionN;
|
||||
|
||||
PickUpRequestPresOrder(
|
||||
{this.id,
|
||||
this.presOrderID,
|
||||
this.createDate,
|
||||
this.lastEditDate,
|
||||
this.createdBy,
|
||||
this.lastEditBy,
|
||||
this.isActive,
|
||||
this.requestNo,
|
||||
this.requesterId,
|
||||
this.direction,
|
||||
this.haveAppointment,
|
||||
this.appointmentId,
|
||||
this.tripType,
|
||||
this.pickupUrgency,
|
||||
this.pickupDateTime,
|
||||
this.pickupLocationId,
|
||||
this.pickupSpot,
|
||||
this.dropoffLocationId,
|
||||
this.transportationMethodId,
|
||||
this.cost,
|
||||
this.vAT,
|
||||
this.totalPrice,
|
||||
this.amountCollected,
|
||||
this.selectedAmbulate,
|
||||
this.requesterNote,
|
||||
this.status,
|
||||
this.paymentStatus,
|
||||
this.rejectReason,
|
||||
this.visibility,
|
||||
this.durationId,
|
||||
this.imageId,
|
||||
this.requesterFileNo,
|
||||
this.requesterMobileNo,
|
||||
this.requesterIsOutSA,
|
||||
this.pickupLocationLongitude,
|
||||
this.pickupLocationLattitude,
|
||||
this.dropoffLocationLongitude,
|
||||
this.dropoffLocationLattitude,
|
||||
this.appointmentClinicName,
|
||||
this.appointmentDoctorName,
|
||||
this.appointmentBranch,
|
||||
this.appointmentTime,
|
||||
this.pickupLocationName,
|
||||
this.dropoffLocationName,
|
||||
this.title,
|
||||
this.titleAR,
|
||||
this.ambulateDescription,
|
||||
this.ambulateDescriptionN});
|
||||
|
||||
PickUpRequestPresOrder.fromJson(Map<String, dynamic> json) {
|
||||
id = json['Id'];
|
||||
presOrderID = json['PresOrderID'];
|
||||
createDate = json['CreateDate'];
|
||||
lastEditDate = json['LastEditDate'];
|
||||
createdBy = json['CreatedBy'];
|
||||
lastEditBy = json['LastEditBy'];
|
||||
isActive = json['IsActive'];
|
||||
requestNo = json['RequestNo'];
|
||||
requesterId = json['RequesterId'];
|
||||
direction = json['Direction'];
|
||||
haveAppointment = json['HaveAppointment'];
|
||||
appointmentId = json['AppointmentId'];
|
||||
tripType = json['TripType'];
|
||||
pickupUrgency = json['PickupUrgency'];
|
||||
pickupDateTime = json['PickupDateTime'];
|
||||
pickupLocationId = json['PickupLocationId'];
|
||||
pickupSpot = json['PickupSpot'];
|
||||
dropoffLocationId = json['DropoffLocationId'];
|
||||
transportationMethodId = json['TransportationMethodId'];
|
||||
cost = json['Cost'];
|
||||
vAT = json['VAT'];
|
||||
totalPrice = json['TotalPrice'];
|
||||
amountCollected = json['AmountCollected'];
|
||||
selectedAmbulate = json['SelectedAmbulate'];
|
||||
requesterNote = json['RequesterNote'];
|
||||
status = json['Status'];
|
||||
paymentStatus = json['PaymentStatus'];
|
||||
rejectReason = json['RejectReason'];
|
||||
visibility = json['Visibility'];
|
||||
durationId = json['DurationId'];
|
||||
imageId = json['ImageId'];
|
||||
requesterFileNo = json['RequesterFileNo'];
|
||||
requesterMobileNo = json['RequesterMobileNo'];
|
||||
requesterIsOutSA = json['RequesterIsOutSA'];
|
||||
pickupLocationLongitude = json['PickupLocationLongitude'];
|
||||
pickupLocationLattitude = json['PickupLocationLattitude'];
|
||||
dropoffLocationLongitude = json['DropoffLocationLongitude'];
|
||||
dropoffLocationLattitude = json['DropoffLocationLattitude'];
|
||||
appointmentClinicName = json['AppointmentClinicName'];
|
||||
appointmentDoctorName = json['AppointmentDoctorName'];
|
||||
appointmentBranch = json['AppointmentBranch'];
|
||||
appointmentTime = json['AppointmentTime'];
|
||||
pickupLocationName = json['PickupLocationName'];
|
||||
dropoffLocationName = json['DropoffLocationName'];
|
||||
title = json['Title'];
|
||||
titleAR = json['TitleAR'];
|
||||
ambulateDescription = json['AmbulateDescription'];
|
||||
ambulateDescriptionN = json['AmbulateDescriptionN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Id'] = this.id;
|
||||
data['PresOrderID'] = this.presOrderID;
|
||||
data['CreateDate'] = this.createDate;
|
||||
data['LastEditDate'] = this.lastEditDate;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['LastEditBy'] = this.lastEditBy;
|
||||
data['IsActive'] = this.isActive;
|
||||
data['RequestNo'] = this.requestNo;
|
||||
data['RequesterId'] = this.requesterId;
|
||||
data['Direction'] = this.direction;
|
||||
data['HaveAppointment'] = this.haveAppointment;
|
||||
data['AppointmentId'] = this.appointmentId;
|
||||
data['TripType'] = this.tripType;
|
||||
data['PickupUrgency'] = this.pickupUrgency;
|
||||
data['PickupDateTime'] = this.pickupDateTime;
|
||||
data['PickupLocationId'] = this.pickupLocationId;
|
||||
data['PickupSpot'] = this.pickupSpot;
|
||||
data['DropoffLocationId'] = this.dropoffLocationId;
|
||||
data['TransportationMethodId'] = this.transportationMethodId;
|
||||
data['Cost'] = this.cost;
|
||||
data['VAT'] = this.vAT;
|
||||
data['TotalPrice'] = this.totalPrice;
|
||||
data['AmountCollected'] = this.amountCollected;
|
||||
data['SelectedAmbulate'] = this.selectedAmbulate;
|
||||
data['RequesterNote'] = this.requesterNote;
|
||||
data['Status'] = this.status;
|
||||
data['PaymentStatus'] = this.paymentStatus;
|
||||
data['RejectReason'] = this.rejectReason;
|
||||
data['Visibility'] = this.visibility;
|
||||
data['DurationId'] = this.durationId;
|
||||
data['ImageId'] = this.imageId;
|
||||
data['RequesterFileNo'] = this.requesterFileNo;
|
||||
data['RequesterMobileNo'] = this.requesterMobileNo;
|
||||
data['RequesterIsOutSA'] = this.requesterIsOutSA;
|
||||
data['PickupLocationLongitude'] = this.pickupLocationLongitude;
|
||||
data['PickupLocationLattitude'] = this.pickupLocationLattitude;
|
||||
data['DropoffLocationLongitude'] = this.dropoffLocationLongitude;
|
||||
data['DropoffLocationLattitude'] = this.dropoffLocationLattitude;
|
||||
data['AppointmentClinicName'] = this.appointmentClinicName;
|
||||
data['AppointmentDoctorName'] = this.appointmentDoctorName;
|
||||
data['AppointmentBranch'] = this.appointmentBranch;
|
||||
data['AppointmentTime'] = this.appointmentTime;
|
||||
data['PickupLocationName'] = this.pickupLocationName;
|
||||
data['DropoffLocationName'] = this.dropoffLocationName;
|
||||
data['Title'] = this.title;
|
||||
data['TitleAR'] = this.titleAR;
|
||||
data['AmbulateDescription'] = this.ambulateDescription;
|
||||
data['AmbulateDescriptionN'] = this.ambulateDescriptionN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/create_new_user_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
class CreteNewBabyService extends BaseService {
|
||||
List<CreateNewBaby> createNewBabyModelList = List();
|
||||
List<List_UserInformationModel> userModelList = List();
|
||||
List<CreateNewUser_New> newUserModelList = List();
|
||||
|
||||
|
||||
|
||||
Future getCreateNewBabyOrders({CreateNewBaby newChild,int userID}) async {
|
||||
hasError = false;
|
||||
await getUser();
|
||||
Map<String, dynamic> body = Map.from(newChild.toJson());
|
||||
body['CreatedBy'] = 102;
|
||||
body['EditedBy'] = 102;
|
||||
body['UserID'] = userID;
|
||||
body['AlertBy'] = 2;
|
||||
body['EmailAddress'] = user.emailAddress;
|
||||
body['IsLogin'] = true;
|
||||
body['LogInTokenID'] = await sharedPref.getString(TOKEN);
|
||||
body['MobileNumber'] = user.mobileNumber;
|
||||
body['NationalID'] = user.nationalityID;
|
||||
body['ZipCode'] = user.zipCode;
|
||||
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
|
||||
await baseAppClient.post(GET_NEWCHILD_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
var asd ="";
|
||||
},
|
||||
onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
class ChildVaccinesService extends BaseService {
|
||||
List<List_BabyInformationModel> babyInformationModelList = List();
|
||||
List<List_UserInformationModel> userInformationModelList = List();
|
||||
int userID = 0;
|
||||
|
||||
Future getAllBabyInformationOrders() async {
|
||||
Map<String, dynamic> body = Map();
|
||||
hasError = false;
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
body['IsLogin'] = true;
|
||||
body['UserID'] = userID;
|
||||
await baseAppClient.post(GET_BABY_BY_USER_ID,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
babyInformationModelList.clear();
|
||||
response['List_BabyInformationModel'].forEach((vital) {
|
||||
babyInformationModelList.add(List_BabyInformationModel.fromJson(vital));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
|
||||
Future getNewUserOrders() async {
|
||||
Map<String, dynamic> body = Map();
|
||||
hasError = false;
|
||||
await getUser();
|
||||
body['CreatedBy'] = 102;
|
||||
body['EditedBy'] = 102;
|
||||
body['UserID'] = userID;
|
||||
body['AlertBy'] = 2;
|
||||
body['EmailAddress'] = user.emailAddress;
|
||||
body['IsLogin'] = true;
|
||||
body['LogInTokenID'] = await sharedPref.getString(TOKEN);
|
||||
body['MobileNumber'] = user.mobileNumber;
|
||||
body['NationalID'] = user.nationalityID;
|
||||
body['ZipCode'] = user.zipCode;
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
|
||||
await baseAppClient.post(GET_NEW_USER_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
userID = response['UserID'];
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/create_new_user_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
|
||||
|
||||
class DeleteBabyService extends BaseService{
|
||||
|
||||
List<CreateNewBaby> createNewBabyModelList = List();
|
||||
List<List_UserInformationModel> userModelList = List();
|
||||
List<CreateNewUser_New> newUserModelList = List();
|
||||
|
||||
List<DeleteBaby> deleteBabyModelList= List();
|
||||
|
||||
|
||||
Future getDeleteBabyOrder({DeleteBaby deleteChild,int babyID}) async {
|
||||
hasError = false;
|
||||
await getUser();
|
||||
Map<String, dynamic> body = Map.from(deleteChild.toJson());
|
||||
// body['CreatedBy'] = 102;
|
||||
body['EditedBy'] = 102;
|
||||
//body['BabyID'] = babyID;
|
||||
//body['BabyID'] = createNewBabyModelList ;
|
||||
// body['AlertBy'] = 2;
|
||||
// body['EmailAddress'] = user.emailAddress;
|
||||
body['IsLogin'] = true;
|
||||
body['LogInTokenID'] = await sharedPref.getString(TOKEN);
|
||||
body['MobileNumber'] = user.mobileNumber;
|
||||
body['NationalID'] = user.nationalityID;
|
||||
body['ZipCode'] = user.zipCode;
|
||||
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
|
||||
await baseAppClient.post(DELETE_CHILD_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
var asd ="";
|
||||
},
|
||||
onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
|
||||
// Future getCreateNewBabyOrders({CreateNewBaby newChild,int userID}) async {
|
||||
// hasError = false;
|
||||
// await getUser();
|
||||
// Map<String, dynamic> body = Map.from(newChild.toJson());
|
||||
// body['CreatedBy'] = 102;
|
||||
// body['EditedBy'] = 102;
|
||||
// body['UserID'] = userID;
|
||||
// body['AlertBy'] = 2;
|
||||
// body['EmailAddress'] = user.emailAddress;
|
||||
// body['IsLogin'] = true;
|
||||
// body['LogInTokenID'] = await sharedPref.getString(TOKEN);
|
||||
// body['MobileNumber'] = user.mobileNumber;
|
||||
// body['NationalID'] = user.nationalityID;
|
||||
// body['ZipCode'] = user.zipCode;
|
||||
//
|
||||
// body['isDentalAllowedBackend'] = false;
|
||||
//
|
||||
// await baseAppClient.post(GET_NEWCHILD_REQUEST,
|
||||
// onSuccess: (dynamic response, int statusCode) {
|
||||
// var asd ="";
|
||||
// },
|
||||
// onFailure: (String error, int statusCode) {
|
||||
// hasError = true;
|
||||
// super.error = error;
|
||||
// }, body: body);
|
||||
// }
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/get_vacainations_itemsmodel.dart';
|
||||
|
||||
import '../base_service.dart';
|
||||
|
||||
class GetVccinationsItemsService extends BaseService {
|
||||
List<GET_VACCINATIONS_ITEMSMODEL> getVaccinationsItemModelList = List();
|
||||
Map<String, dynamic> body = Map();
|
||||
|
||||
|
||||
|
||||
Future getaccinationsitemOrders() async {
|
||||
hasError = false;
|
||||
await baseAppClient.post(GET_TABLE_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
getVaccinationsItemModelList.clear();
|
||||
response['List_CreateVaccinationTableModel'].forEach((vital) {
|
||||
getVaccinationsItemModelList.add(
|
||||
GET_VACCINATIONS_ITEMSMODEL.fromJson(vital));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
class UserInformationService extends BaseService {
|
||||
List<List_UserInformationModel> userInformationModelList = List();
|
||||
Map<String, dynamic> body = Map();
|
||||
|
||||
Future getUserInformationOrders() async {
|
||||
hasError = false;
|
||||
await getUser();
|
||||
body['CreatedBy'] = 102;
|
||||
body['EditedBy'] = 102;
|
||||
body['EmailAddress'] = user.emailAddress;
|
||||
body['IsLogin'] = true;
|
||||
body['LogInTokenID'] = await sharedPref.getString(TOKEN);
|
||||
body['MobileNumber'] = user.mobileNumber;
|
||||
body['NationalID'] = user.nationalityID;
|
||||
body['ZipCode'] = user.zipCode;
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
|
||||
await baseAppClient.post(GET_USERINFORMATION_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
userInformationModelList.clear();
|
||||
|
||||
response['List_UserInformationModel_New'].forEach((vital) {
|
||||
userInformationModelList.add(List_UserInformationModel.fromJson(vital));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/create_vaccination_table.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
class VaccinationTableService extends BaseService {
|
||||
List<CreateVaccinationTable> createVaccinationTableModelList = List();
|
||||
Map<String, dynamic> body = Map();
|
||||
|
||||
|
||||
|
||||
Future getCreateVaccinationTableOrders() async {
|
||||
hasError = false;
|
||||
await getUser();
|
||||
body['BabyName']="fffffffffff eeeeeeeeeeeeee";
|
||||
body['DOB'] = "/Date(1585774800000+0300)/";
|
||||
body['EmailAddress'] = user.emailAddress;
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
body['SendEmail'] = false;
|
||||
body['IsLogin'] =true;
|
||||
|
||||
|
||||
|
||||
|
||||
await baseAppClient.post(GET_TABLE_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
createVaccinationTableModelList.clear();
|
||||
response['List_CreateVaccinationTableModel'].forEach((vital) {
|
||||
createVaccinationTableModelList.add(
|
||||
CreateVaccinationTable.fromJson(vital));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,25 +1,76 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/PickUpRequestPresOrder.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
|
||||
import '../base_service.dart';
|
||||
|
||||
class AmService extends BaseService {
|
||||
List<PatientER_RRT_GetAllTransportationMethodListModel> AmModelList = List();
|
||||
Map<String, dynamic> body = Map();
|
||||
List<PatientERTransportationMethod> amModelList = List();
|
||||
List<PatientAllPresOrders> patientAllPresOrdersList = List();
|
||||
bool hasPendingOrder = false;
|
||||
int pendingOrderID = 0;
|
||||
String pendingOrderStatus = "";
|
||||
String pendingOrderStatusAR = "";
|
||||
PickUpRequestPresOrder pickUpRequestPresOrder;
|
||||
|
||||
Future getAllTransportationOrders() async {
|
||||
hasError = false;
|
||||
|
||||
Map<String, dynamic> body = Map();
|
||||
body['isDentalAllowedBackend'] = false;
|
||||
body['IdentificationNo'] = user.patientIdentificationNo;
|
||||
await baseAppClient.post(GET_AMBULANCE_REQUEST,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
AmModelList.clear();
|
||||
response['AmModelList'].forEach((vital) {
|
||||
AmModelList.add(
|
||||
PatientER_RRT_GetAllTransportationMethodListModel.fromJson(vital));
|
||||
amModelList.clear();
|
||||
response['PatientER_RRT_GetAllTransportationMethodList'].forEach((item) {
|
||||
amModelList.add(PatientERTransportationMethod.fromJson(item));
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
|
||||
Future getPatientAllPresOrdersList() async {
|
||||
hasError = false;
|
||||
hasPendingOrder = false;
|
||||
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
patientAllPresOrdersList.clear();
|
||||
response['PatientER_GetPatientAllPresOrdersList'].forEach((item) {
|
||||
if (item['ServiceID'] == OrderService.AMBULANCE.getIdOrderService()) {
|
||||
var order = PatientAllPresOrders.fromJson(item);
|
||||
patientAllPresOrdersList.add(order);
|
||||
if (order.status == 1) {
|
||||
hasPendingOrder = true;
|
||||
pendingOrderID = order.iD;
|
||||
pendingOrderStatus = order.description;
|
||||
pendingOrderStatusAR = order.descriptionN;
|
||||
}
|
||||
}
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: Map());
|
||||
}
|
||||
|
||||
Future getOrderDetails() async {
|
||||
hasError = false;
|
||||
hasPendingOrder = false;
|
||||
Map<String, dynamic> body = Map();
|
||||
body['PresOrderID'] = pendingOrderID;
|
||||
await baseAppClient.post(GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
patientAllPresOrdersList.clear();
|
||||
response['PatientER_RRT_GetPickUpRequestByPresOrderIDList']
|
||||
.forEach((item) {
|
||||
pickUpRequestPresOrder = PickUpRequestPresOrder.fromJson(item);
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: Map());
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,42 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/add_new_child_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/child_vaccines_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/delete_baby_service.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
|
||||
|
||||
class AddNewChildViewModel extends BaseViewModel {
|
||||
|
||||
CreteNewBabyService _creteNewBabyService = locator<CreteNewBabyService>();
|
||||
ChildVaccinesService _childVaccinesService = locator<ChildVaccinesService>();
|
||||
// DeleteBabyService _deleteBabyService = locator<DeleteBabyService>();
|
||||
bool isAdded = false;
|
||||
///create new baby
|
||||
createNewBabyOrders({ CreateNewBaby newChild}) async {
|
||||
setState(ViewState.Busy);
|
||||
await _creteNewBabyService.getCreateNewBabyOrders(newChild: newChild, userID: _childVaccinesService.userID);
|
||||
if (_creteNewBabyService.hasError) {
|
||||
error = _creteNewBabyService.error;
|
||||
setState(ViewState.Error);
|
||||
} else {
|
||||
isAdded = true;
|
||||
setState(ViewState.Idle);
|
||||
await _childVaccinesService.getAllBabyInformationOrders();
|
||||
if (_childVaccinesService.hasError) {
|
||||
error = _childVaccinesService.error;
|
||||
setState(ViewState.Error);
|
||||
} else{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
|
||||
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/child_vaccines_service.dart';
|
||||
//========
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/add_new_child_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/child_vaccines_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/delete_baby_service.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
|
||||
class ChildVaccinesViewModel extends BaseViewModel{
|
||||
ChildVaccinesService _childVaccinesService = locator<ChildVaccinesService>();
|
||||
|
||||
List<List_BabyInformationModel> get babyInformationModelList=> _childVaccinesService.babyInformationModelList;
|
||||
|
||||
|
||||
//===========
|
||||
CreteNewBabyService _creteNewBabyService = locator<CreteNewBabyService>();
|
||||
|
||||
DeleteBabyService _deleteBabyService = locator<DeleteBabyService>();
|
||||
bool isAdded = false;
|
||||
bool isDeleted = false;
|
||||
//============
|
||||
|
||||
|
||||
getNewUserOrders() async {
|
||||
setState(ViewState.Busy);
|
||||
await _childVaccinesService.getNewUserOrders();
|
||||
if (_childVaccinesService.hasError) {
|
||||
error = _childVaccinesService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
getBabyInformatioRequestOrders();
|
||||
}
|
||||
|
||||
getBabyInformatioRequestOrders() async {
|
||||
await _childVaccinesService.getAllBabyInformationOrders();
|
||||
if (_childVaccinesService.hasError) {
|
||||
error = _childVaccinesService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
|
||||
|
||||
///delete baby
|
||||
deleteBabyOrders({ DeleteBaby newChild}) async {
|
||||
setState(ViewState.Busy);
|
||||
//await _creteNewBabyService.getCreateNewBabyOrders(newChild: newChild, userID: _childVaccinesService.userID);
|
||||
await _deleteBabyService.getDeleteBabyOrder(deleteChild: newChild,babyID: newChild.babyID);
|
||||
//getDeleteBabyOrder(deleteChild: newChild,);
|
||||
// getDeleteBabyOrder
|
||||
if (_creteNewBabyService.hasError) {
|
||||
error = _creteNewBabyService.error;
|
||||
setState(ViewState.Error);
|
||||
} else {
|
||||
isDeleted = true;
|
||||
setState(ViewState.Idle);
|
||||
await _childVaccinesService.getAllBabyInformationOrders();
|
||||
if (_childVaccinesService.hasError) {
|
||||
error = _childVaccinesService.error;
|
||||
setState(ViewState.Error);
|
||||
} else{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/user_information_service.dart';
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
|
||||
class UserInformationViewModel extends BaseViewModel {
|
||||
UserInformationService _userInformationService =
|
||||
locator<UserInformationService>();
|
||||
|
||||
List<List_UserInformationModel> get userInformationModelList =>
|
||||
_userInformationService.userInformationModelList;
|
||||
|
||||
getUserInformationRequestOrders() async {
|
||||
setState(ViewState.Busy);
|
||||
await _userInformationService.getUserInformationOrders();
|
||||
if (_userInformationService.hasError) {
|
||||
error = _userInformationService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/childvaccines/create_vaccination_table.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/add_new_child_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/childvaccines/vaccination_table_service.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
|
||||
|
||||
class VaccinationTableViewModel extends BaseViewModel{
|
||||
|
||||
VaccinationTableService _creteVaccinationTableService = locator<VaccinationTableService>();
|
||||
|
||||
// String get creteVaccinationTableContent => _creteVaccinationTableService.userAgreementContent;
|
||||
//String get userAgreementContent => _creteNewBabyService.v//_reportsService.userAgreementContent;
|
||||
List<CreateVaccinationTable> get creteVaccinationTableModelList=> _creteVaccinationTableService.createVaccinationTableModelList;//.createNewBabyModelList;
|
||||
getCreateVaccinationTable() async {
|
||||
setState(ViewState.Busy);
|
||||
|
||||
await _creteVaccinationTableService.getCreateVaccinationTableOrders();//getCreateNewBabyOrders();
|
||||
|
||||
if ( _creteVaccinationTableService.hasError) {
|
||||
error = _creteVaccinationTableService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,32 +1,82 @@
|
||||
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/er/am_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/hospital_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
|
||||
import '../base_view_model.dart';
|
||||
import '../../../locator.dart';
|
||||
|
||||
class AmRequestViewModel extends BaseViewModel{
|
||||
class AmRequestViewModel extends BaseViewModel {
|
||||
AmService _amService = locator<AmService>();
|
||||
HospitalService _hospitalService = locator<HospitalService>();
|
||||
MedicalService _medicalService = locator<MedicalService>();
|
||||
|
||||
List<PatientERTransportationMethod> get amRequestModeList =>
|
||||
_amService.amModelList;
|
||||
|
||||
AmService _amService = locator<AmService>();
|
||||
List<PatientAllPresOrders> get patientAllPresOrdersList =>
|
||||
_amService.patientAllPresOrdersList;
|
||||
|
||||
List<PatientER_RRT_GetAllTransportationMethodListModel> get AmRequestModeList=>
|
||||
_amService.AmModelList;
|
||||
List<AppoitmentAllHistoryResultList> get appoitmentAllHistoryResultList =>
|
||||
_medicalService.appoitmentAllHistoryResultList;
|
||||
|
||||
getAmRequestOrders({int id, int projectID}) async {
|
||||
setState(ViewState.Busy);
|
||||
List<HospitalsModel> get hospitals => _hospitalService.hospitals;
|
||||
|
||||
bool get hasPendingOrder =>_amService.hasPendingOrder;
|
||||
|
||||
await _amService.getAllTransportationOrders();
|
||||
Future getAppointmentHistory() async {
|
||||
setState(ViewState.BusyLocal);
|
||||
await _medicalService.getAppointmentHistory(isActiveAppointment: true);
|
||||
if (_medicalService.hasError) {
|
||||
error = _medicalService.error;
|
||||
setState(ViewState.ErrorLocal);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
if ( _amService.hasError) {
|
||||
error = _amService.error;
|
||||
Future getAmRequestOrders() async {
|
||||
setState(ViewState.Busy);
|
||||
await _amService.getAllTransportationOrders();
|
||||
if (_amService.hasError) {
|
||||
error = _amService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
getHospitals();
|
||||
}
|
||||
|
||||
Future getHospitals() async {
|
||||
setState(ViewState.Busy);
|
||||
await _hospitalService.getHospitals();
|
||||
if (_hospitalService.hasError) {
|
||||
error = _hospitalService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
getPatientAllPresOrdersList();
|
||||
}
|
||||
|
||||
Future getPatientAllPresOrdersList() async {
|
||||
setState(ViewState.Busy);
|
||||
await _amService.getPatientAllPresOrdersList();
|
||||
if (_hospitalService.hasError) {
|
||||
error = _hospitalService.error;
|
||||
setState(ViewState.Error);
|
||||
} else if (_amService.hasPendingOrder) {
|
||||
getOrderDetails();
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
}
|
||||
Future getOrderDetails() async {
|
||||
setState(ViewState.Busy);
|
||||
await _amService.getOrderDetails();
|
||||
if (_hospitalService.hasError) {
|
||||
error = _hospitalService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,96 @@
|
||||
class CovidPaymentInfoResponse {
|
||||
dynamic propertyChanged;
|
||||
dynamic cashPriceField;
|
||||
dynamic cashPriceTaxField;
|
||||
dynamic cashPriceWithTaxField;
|
||||
dynamic companyIdField;
|
||||
String companyNameField;
|
||||
dynamic companyShareWithTaxField;
|
||||
dynamic errCodeField;
|
||||
dynamic groupIDField;
|
||||
dynamic insurancePolicyNoField;
|
||||
String messageField;
|
||||
dynamic patientCardIDField;
|
||||
dynamic patientShareField;
|
||||
dynamic patientShareWithTaxField;
|
||||
dynamic patientTaxAmountField;
|
||||
dynamic policyIdField;
|
||||
dynamic policyNameField;
|
||||
String procedureNameField;
|
||||
dynamic setupIDField;
|
||||
dynamic statusCodeField;
|
||||
dynamic subPolicyNoField;
|
||||
|
||||
CovidPaymentInfoResponse(
|
||||
{this.propertyChanged,
|
||||
this.cashPriceField,
|
||||
this.cashPriceTaxField,
|
||||
this.cashPriceWithTaxField,
|
||||
this.companyIdField,
|
||||
this.companyNameField,
|
||||
this.companyShareWithTaxField,
|
||||
this.errCodeField,
|
||||
this.groupIDField,
|
||||
this.insurancePolicyNoField,
|
||||
this.messageField,
|
||||
this.patientCardIDField,
|
||||
this.patientShareField,
|
||||
this.patientShareWithTaxField,
|
||||
this.patientTaxAmountField,
|
||||
this.policyIdField,
|
||||
this.policyNameField,
|
||||
this.procedureNameField,
|
||||
this.setupIDField,
|
||||
this.statusCodeField,
|
||||
this.subPolicyNoField});
|
||||
|
||||
CovidPaymentInfoResponse.fromJson(Map<String, dynamic> json) {
|
||||
propertyChanged = json['PropertyChanged'];
|
||||
cashPriceField = json['cashPriceField'];
|
||||
cashPriceTaxField = json['cashPriceTaxField'];
|
||||
cashPriceWithTaxField = json['cashPriceWithTaxField'];
|
||||
companyIdField = json['companyIdField'];
|
||||
companyNameField = json['companyNameField'];
|
||||
companyShareWithTaxField = json['companyShareWithTaxField'];
|
||||
errCodeField = json['errCodeField'];
|
||||
groupIDField = json['groupIDField'];
|
||||
insurancePolicyNoField = json['insurancePolicyNoField'];
|
||||
messageField = json['messageField'];
|
||||
patientCardIDField = json['patientCardIDField'];
|
||||
patientShareField = json['patientShareField'];
|
||||
patientShareWithTaxField = json['patientShareWithTaxField'];
|
||||
patientTaxAmountField = json['patientTaxAmountField'];
|
||||
policyIdField = json['policyIdField'];
|
||||
policyNameField = json['policyNameField'];
|
||||
procedureNameField = json['procedureNameField'];
|
||||
setupIDField = json['setupIDField'];
|
||||
statusCodeField = json['statusCodeField'];
|
||||
subPolicyNoField = json['subPolicyNoField'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['PropertyChanged'] = this.propertyChanged;
|
||||
data['cashPriceField'] = this.cashPriceField;
|
||||
data['cashPriceTaxField'] = this.cashPriceTaxField;
|
||||
data['cashPriceWithTaxField'] = this.cashPriceWithTaxField;
|
||||
data['companyIdField'] = this.companyIdField;
|
||||
data['companyNameField'] = this.companyNameField;
|
||||
data['companyShareWithTaxField'] = this.companyShareWithTaxField;
|
||||
data['errCodeField'] = this.errCodeField;
|
||||
data['groupIDField'] = this.groupIDField;
|
||||
data['insurancePolicyNoField'] = this.insurancePolicyNoField;
|
||||
data['messageField'] = this.messageField;
|
||||
data['patientCardIDField'] = this.patientCardIDField;
|
||||
data['patientShareField'] = this.patientShareField;
|
||||
data['patientShareWithTaxField'] = this.patientShareWithTaxField;
|
||||
data['patientTaxAmountField'] = this.patientTaxAmountField;
|
||||
data['policyIdField'] = this.policyIdField;
|
||||
data['policyNameField'] = this.policyNameField;
|
||||
data['procedureNameField'] = this.procedureNameField;
|
||||
data['setupIDField'] = this.setupIDField;
|
||||
data['statusCodeField'] = this.statusCodeField;
|
||||
data['subPolicyNoField'] = this.subPolicyNoField;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,68 @@
|
||||
class DriveThroughTestingCenterModel {
|
||||
int rowID;
|
||||
int iD;
|
||||
int projectID;
|
||||
String setupID;
|
||||
double longitude;
|
||||
double latitude;
|
||||
int numberOfTracks;
|
||||
bool isActive;
|
||||
int createdBy;
|
||||
String createdOn;
|
||||
dynamic editedBy;
|
||||
dynamic editedON;
|
||||
dynamic projectName;
|
||||
dynamic projectNameN;
|
||||
|
||||
DriveThroughTestingCenterModel(
|
||||
{this.rowID,
|
||||
this.iD,
|
||||
this.projectID,
|
||||
this.setupID,
|
||||
this.longitude,
|
||||
this.latitude,
|
||||
this.numberOfTracks,
|
||||
this.isActive,
|
||||
this.createdBy,
|
||||
this.createdOn,
|
||||
this.editedBy,
|
||||
this.editedON,
|
||||
this.projectName,
|
||||
this.projectNameN});
|
||||
|
||||
DriveThroughTestingCenterModel.fromJson(Map<String, dynamic> json) {
|
||||
rowID = json['RowID'];
|
||||
iD = json['ID'];
|
||||
projectID = json['ProjectID'];
|
||||
setupID = json['SetupID'];
|
||||
longitude = json['Longitude'];
|
||||
latitude = json['Latitude'];
|
||||
numberOfTracks = json['NumberOfTracks'];
|
||||
isActive = json['IsActive'];
|
||||
createdBy = json['CreatedBy'];
|
||||
createdOn = json['CreatedOn'];
|
||||
editedBy = json['EditedBy'];
|
||||
editedON = json['EditedON'];
|
||||
projectName = json['ProjectName'];
|
||||
projectNameN = json['ProjectNameN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['RowID'] = this.rowID;
|
||||
data['ID'] = this.iD;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['SetupID'] = this.setupID;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['NumberOfTracks'] = this.numberOfTracks;
|
||||
data['IsActive'] = this.isActive;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['EditedBy'] = this.editedBy;
|
||||
data['EditedON'] = this.editedON;
|
||||
data['ProjectName'] = this.projectName;
|
||||
data['ProjectNameN'] = this.projectNameN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
class LiveCareScheduleClinicsListResponse {
|
||||
List<ClinicsHaveScheduleList> clinicsHaveScheduleList;
|
||||
|
||||
LiveCareScheduleClinicsListResponse({this.clinicsHaveScheduleList});
|
||||
|
||||
LiveCareScheduleClinicsListResponse.fromJson(Map<String, dynamic> json) {
|
||||
if (json['ClinicsHaveScheduleList'] != null) {
|
||||
clinicsHaveScheduleList = new List<ClinicsHaveScheduleList>();
|
||||
json['ClinicsHaveScheduleList'].forEach((v) {
|
||||
clinicsHaveScheduleList.add(new ClinicsHaveScheduleList.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.clinicsHaveScheduleList != null) {
|
||||
data['ClinicsHaveScheduleList'] =
|
||||
this.clinicsHaveScheduleList.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ClinicsHaveScheduleList {
|
||||
int clinicID;
|
||||
int serviceID;
|
||||
int projectID;
|
||||
String clinicDesc;
|
||||
String clinicDescN;
|
||||
String projectDesc;
|
||||
String projectDescN;
|
||||
|
||||
ClinicsHaveScheduleList(
|
||||
{this.clinicID,
|
||||
this.serviceID,
|
||||
this.projectID,
|
||||
this.clinicDesc,
|
||||
this.clinicDescN,
|
||||
this.projectDesc,
|
||||
this.projectDescN});
|
||||
|
||||
ClinicsHaveScheduleList.fromJson(Map<String, dynamic> json) {
|
||||
clinicID = json['ClinicID'];
|
||||
serviceID = json['ServiceID'];
|
||||
projectID = json['ProjectID'];
|
||||
clinicDesc = json['ClinicDesc'];
|
||||
clinicDescN = json['ClinicDescN'];
|
||||
projectDesc = json['ProjectDesc'];
|
||||
projectDescN = json['ProjectDescN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['ServiceID'] = this.serviceID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ClinicDesc'] = this.clinicDesc;
|
||||
data['ClinicDescN'] = this.clinicDescN;
|
||||
data['ProjectDesc'] = this.projectDesc;
|
||||
data['ProjectDescN'] = this.projectDescN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,92 @@
|
||||
class insertVIDARequest {
|
||||
int patientID;
|
||||
int acceptedBy;
|
||||
int appointmentNo;
|
||||
String deviceToken;
|
||||
double latitude;
|
||||
double longitude;
|
||||
int serviceID;
|
||||
int projectID;
|
||||
int clinicID;
|
||||
String deviceType;
|
||||
String voipToken;
|
||||
double versionID;
|
||||
int channel;
|
||||
int languageID;
|
||||
String iPAdress;
|
||||
String generalid;
|
||||
int patientOutSA;
|
||||
String sessionID;
|
||||
bool isDentalAllowedBackend;
|
||||
int deviceTypeID;
|
||||
|
||||
insertVIDARequest(
|
||||
{this.patientID,
|
||||
this.acceptedBy,
|
||||
this.appointmentNo,
|
||||
this.deviceToken,
|
||||
this.latitude,
|
||||
this.longitude,
|
||||
this.serviceID,
|
||||
this.projectID,
|
||||
this.clinicID,
|
||||
this.deviceType,
|
||||
this.voipToken,
|
||||
this.versionID,
|
||||
this.channel,
|
||||
this.languageID,
|
||||
this.iPAdress,
|
||||
this.generalid,
|
||||
this.patientOutSA,
|
||||
this.sessionID,
|
||||
this.isDentalAllowedBackend,
|
||||
this.deviceTypeID});
|
||||
|
||||
insertVIDARequest.fromJson(Map<String, dynamic> json) {
|
||||
patientID = json['PatientID'];
|
||||
acceptedBy = json['AcceptedBy'];
|
||||
appointmentNo = json['AppointmentNo'];
|
||||
deviceToken = json['DeviceToken'];
|
||||
latitude = json['Latitude'];
|
||||
longitude = json['Longitude'];
|
||||
serviceID = json['ServiceID'];
|
||||
projectID = json['ProjectID'];
|
||||
clinicID = json['ClinicID'];
|
||||
deviceType = json['DeviceType'];
|
||||
voipToken = json['VoipToken'];
|
||||
versionID = json['VersionID'];
|
||||
channel = json['Channel'];
|
||||
languageID = json['LanguageID'];
|
||||
iPAdress = json['IPAdress'];
|
||||
generalid = json['generalid'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
sessionID = json['SessionID'];
|
||||
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||
deviceTypeID = json['DeviceTypeID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['PatientID'] = this.patientID;
|
||||
data['AcceptedBy'] = this.acceptedBy;
|
||||
data['AppointmentNo'] = this.appointmentNo;
|
||||
data['DeviceToken'] = this.deviceToken;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['ServiceID'] = this.serviceID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['DeviceType'] = this.deviceType;
|
||||
data['VoipToken'] = this.voipToken;
|
||||
data['VersionID'] = this.versionID;
|
||||
data['Channel'] = this.channel;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['IPAdress'] = this.iPAdress;
|
||||
data['generalid'] = this.generalid;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['SessionID'] = this.sessionID;
|
||||
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||
data['DeviceTypeID'] = this.deviceTypeID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,522 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'dart:math';
|
||||
|
||||
import 'result_page.dart';
|
||||
|
||||
const activeCardColor = Color(0xff70777A);
|
||||
const inactiveCardColor = Color(0xffFAFAFd);
|
||||
|
||||
class BMICalculator extends StatefulWidget {
|
||||
@override
|
||||
_BMICalculatorState createState() => _BMICalculatorState();
|
||||
}
|
||||
|
||||
class _BMICalculatorState extends State<BMICalculator> {
|
||||
TextEditingController textController = new TextEditingController();
|
||||
String textResult;
|
||||
String msg;
|
||||
double bmiResult;
|
||||
int height = 150;
|
||||
int weight = 40;
|
||||
Color cmCard = activeCardColor;
|
||||
Color ftCard = inactiveCardColor;
|
||||
Color lbCard = inactiveCardColor;
|
||||
Color kgCard = activeCardColor;
|
||||
void updateColor(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (cmCard == inactiveCardColor) {
|
||||
cmCard = activeCardColor;
|
||||
ftCard = inactiveCardColor;
|
||||
} else {
|
||||
cmCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (ftCard == inactiveCardColor) {
|
||||
ftCard = activeCardColor;
|
||||
cmCard = inactiveCardColor;
|
||||
} else {
|
||||
ftCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateColorWeight(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (kgCard == inactiveCardColor) {
|
||||
kgCard = activeCardColor;
|
||||
lbCard = inactiveCardColor;
|
||||
} else {
|
||||
kgCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (lbCard == inactiveCardColor) {
|
||||
lbCard = activeCardColor;
|
||||
kgCard = inactiveCardColor;
|
||||
} else {
|
||||
lbCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
double convertToCm(double number) {
|
||||
return number * 30.48;
|
||||
}
|
||||
|
||||
double convertToKg(double number) {
|
||||
return number / 2.205;
|
||||
}
|
||||
|
||||
double calculateBMI() {
|
||||
if (ftCard == activeCardColor) {
|
||||
convertToCm(height.toDouble());
|
||||
}
|
||||
bmiResult = weight / pow(height / 100, 2);
|
||||
|
||||
return bmiResult;
|
||||
}
|
||||
|
||||
void showTextResult() {
|
||||
if (bmiResult >= 30) {
|
||||
textResult = 'Obese';
|
||||
} else if (bmiResult < 30 && bmiResult >= 25) {
|
||||
textResult = 'OverWeight';
|
||||
} else if (bmiResult < 25 && bmiResult >= 18.5) {
|
||||
textResult = 'Healthy';
|
||||
} else if (bmiResult < 18.5) {
|
||||
textResult = 'UnderWeight';
|
||||
}
|
||||
}
|
||||
|
||||
void showMsg() {
|
||||
if (bmiResult >= 30) {
|
||||
msg =
|
||||
'A BMI of over 30 indicates that are heavily overweight. Health may be at risk if not lose weight. Recommended talking to a doctor or a dietician for advice. To book an appointment, click below to get started.';
|
||||
} else if (bmiResult < 30 && bmiResult >= 25) {
|
||||
msg =
|
||||
'A BMI of 25 - 30 indicates that are slightly overweight. May be advised to lose some weight for health reasons. Recommended talking to a doctor or a dietician for advice. To book an appointment, click below to get ';
|
||||
} else if (bmiResult < 25 && bmiResult >= 18.5) {
|
||||
msg =
|
||||
'A BMI of 18.5 - 25 indicates that are at a healthy weight for the height. By maintaining a healthy weight, lower the risk of developing severe health problems. To book an appointment, click below to get started.';
|
||||
} else if (bmiResult < 18.5) {
|
||||
msg =
|
||||
'A BMI of less than 18.5 indicates that are underweight, so may need to put on some weight. Recommended talking to a doctor or a dietician for advice. To book an appointment, click below to get started.';
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
textController.text = '0'; // Setting the initial value for the field.
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'BMI Calculator',
|
||||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Center(
|
||||
child: Container(
|
||||
width: 350.0,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 15.0),
|
||||
child: Text(
|
||||
'Calculate the BMI value and weight\n status to identify the healthy weight .\n Not appropriate for children and women\n who are pregnant or breastfeeding',
|
||||
style: TextStyle(fontSize: 18.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 200.0,
|
||||
width: 350.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Texts('Height'),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(height.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height < 250) height++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height > 120) height--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
value: height.toDouble(),
|
||||
min: 120,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
height = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Texts('Select Unit'),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColor(1);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: cmCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('CM')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColor(2);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: ftCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('FT')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 25.0,
|
||||
),
|
||||
Container(
|
||||
height: 200.0,
|
||||
width: 350.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Texts('Weight'),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(weight.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight < 250) weight++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight > 40) weight--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Slider(
|
||||
value: weight.toDouble(),
|
||||
min: 40,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
weight = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: Texts('Select Unit'),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(1);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: kgCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('KG')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(2);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: lbCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('LB')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 25.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
calculateBMI();
|
||||
showTextResult();
|
||||
showMsg();
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => ResultPage(
|
||||
finalResult: bmiResult,
|
||||
textResult: textResult,
|
||||
msg: msg,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,101 @@
|
||||
import 'dart:ffi';
|
||||
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:percent_indicator/percent_indicator.dart';
|
||||
|
||||
class ResultPage extends StatelessWidget {
|
||||
final double finalResult;
|
||||
final String textResult;
|
||||
final String msg;
|
||||
|
||||
ResultPage({this.finalResult, this.textResult, this.msg});
|
||||
Color inductorColor;
|
||||
double percent;
|
||||
|
||||
Color colorInductor() {
|
||||
if (finalResult >= 30) {
|
||||
inductorColor = Color(0xffC70D00);
|
||||
} else if (finalResult < 30 && finalResult >= 25) {
|
||||
inductorColor = Color(0xffC25400);
|
||||
} else if (finalResult < 25 && finalResult >= 18.5) {
|
||||
inductorColor = Color(0xff36D600);
|
||||
} else if (finalResult < 18.5) {
|
||||
inductorColor = Color(0xff1BE0EE);
|
||||
}
|
||||
return inductorColor;
|
||||
}
|
||||
|
||||
double percentInductor() {
|
||||
if (finalResult >= 30) {
|
||||
percent = 1.0;
|
||||
} else if (finalResult < 30 && finalResult >= 25) {
|
||||
percent = 0.73;
|
||||
} else if (finalResult < 25 && finalResult >= 18.5) {
|
||||
percent = 0.5;
|
||||
} else if (finalResult < 18.5) {
|
||||
percent = 0.25;
|
||||
}
|
||||
return percent;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: "BMI Calculator",
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
SizedBox(
|
||||
// height: 40.0,
|
||||
),
|
||||
Center(
|
||||
child: CircularPercentIndicator(
|
||||
radius: 220.0,
|
||||
lineWidth: 20.0,
|
||||
percent: percentInductor(),
|
||||
center: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
finalResult.toStringAsFixed(1),
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Text(
|
||||
textResult,
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
progressColor: colorInductor(),
|
||||
backgroundColor: Colors.white,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 120,
|
||||
width: 280.0,
|
||||
child: Texts(msg),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:percent_indicator/circular_percent_indicator.dart';
|
||||
|
||||
class BmrResultPage extends StatelessWidget {
|
||||
final double bmrResult;
|
||||
final double calories;
|
||||
BmrResultPage({this.bmrResult, this.calories});
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'BMR Calculator',
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Center(
|
||||
child: CircularPercentIndicator(
|
||||
radius: 220.0,
|
||||
lineWidth: 20.0,
|
||||
percent: ((this.bmrResult > 3500) ? 100 : this.bmrResult / 3500),
|
||||
center: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
bmrResult.toStringAsFixed(1),
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Text(
|
||||
'Calories/Day',
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
progressColor: Color(0xff3C3939),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 120,
|
||||
width: 280.0,
|
||||
child: Texts(
|
||||
'This means the body will burn ( ${bmrResult.toStringAsFixed(1)} ) calories each day, if engaged in no activity for the entire day.. Note: Daily calorie requirement is ( ${calories.toStringAsFixed(1)} ) calories, to maintain the current weight.'),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:percent_indicator/circular_percent_indicator.dart';
|
||||
|
||||
class FatResult extends StatelessWidget {
|
||||
final double bodyFat;
|
||||
final double fat;
|
||||
final String textResult;
|
||||
|
||||
FatResult({this.bodyFat, this.fat, this.textResult = ''});
|
||||
Color inductorColor;
|
||||
Color colorInductor() {
|
||||
if (bodyFat >= 17) {
|
||||
inductorColor = Color(0xffC70D00);
|
||||
} else if (bodyFat < 20 && bodyFat >= 24) {
|
||||
inductorColor = Color(0xffC25400);
|
||||
} else if (bodyFat < 24 && bodyFat >= 31) {
|
||||
inductorColor = Color(0xff36D600);
|
||||
} else if (bodyFat > 45) {
|
||||
inductorColor = Color(0xff1BE0EE);
|
||||
}
|
||||
return inductorColor;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Body Fat',
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
SizedBox(
|
||||
// height: 40.0,
|
||||
),
|
||||
Center(
|
||||
child: CircularPercentIndicator(
|
||||
radius: 220.0,
|
||||
lineWidth: 20.0,
|
||||
percent: ((fat > 70) ? 100 : fat / 100),
|
||||
center: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
fat.toStringAsFixed(1) + '%',
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
],
|
||||
),
|
||||
progressColor: inductorColor,
|
||||
backgroundColor: Colors.white,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 120,
|
||||
width: 280.0,
|
||||
child: Texts(textResult),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,677 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'calorie_result_page.dart';
|
||||
|
||||
const activeCardColorGender = Color(0xffC5272D);
|
||||
const inactiveCardColorGender = Color(0xffFAFAFd);
|
||||
const activeCardColor = Color(0xff70777A);
|
||||
const inactiveCardColor = Color(0xffFAFAFd);
|
||||
|
||||
class CalorieCalculator extends StatefulWidget {
|
||||
@override
|
||||
_CalorieCalculatorState createState() => _CalorieCalculatorState();
|
||||
}
|
||||
|
||||
class _CalorieCalculatorState extends State<CalorieCalculator> {
|
||||
bool isMale = false;
|
||||
Color maleCard = activeCardColorGender;
|
||||
Color femaleCard = inactiveCardColorGender;
|
||||
Color kgCard = activeCardColor;
|
||||
Color lbCard = inactiveCardColor;
|
||||
Color cmCard = activeCardColor;
|
||||
Color ftCard = inactiveCardColor;
|
||||
int age = 0;
|
||||
int height = 0;
|
||||
int weight = 0;
|
||||
double calories;
|
||||
String dropdownValue;
|
||||
void updateColor(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (maleCard == inactiveCardColorGender) {
|
||||
maleCard = activeCardColorGender;
|
||||
femaleCard = inactiveCardColorGender;
|
||||
} else {
|
||||
maleCard = inactiveCardColorGender;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (femaleCard == inactiveCardColorGender) {
|
||||
femaleCard = activeCardColorGender;
|
||||
maleCard = inactiveCardColorGender;
|
||||
} else {
|
||||
femaleCard = inactiveCardColorGender;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateColorWeight(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (kgCard == inactiveCardColor) {
|
||||
kgCard = activeCardColor;
|
||||
lbCard = inactiveCardColor;
|
||||
} else {
|
||||
kgCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (lbCard == inactiveCardColor) {
|
||||
lbCard = activeCardColor;
|
||||
kgCard = inactiveCardColor;
|
||||
} else {
|
||||
lbCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateColorHeight(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (cmCard == inactiveCardColor) {
|
||||
cmCard = activeCardColor;
|
||||
ftCard = inactiveCardColor;
|
||||
} else {
|
||||
cmCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (ftCard == inactiveCardColor) {
|
||||
ftCard = activeCardColor;
|
||||
cmCard = inactiveCardColor;
|
||||
} else {
|
||||
ftCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void calculateCalories() {
|
||||
if (isMale == true) {
|
||||
calories = 66.5 + (13.75 * weight) + (5.003 * height) - (6.755 * age);
|
||||
} else if (isMale == false) {
|
||||
calories =
|
||||
655.0955 + (9.5634 * weight) + (1.850 * height) - (4.676 * age);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Calorie Calculator',
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
height: 890.0,
|
||||
child: Column(
|
||||
//mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(10.0),
|
||||
child: Texts(
|
||||
'Calculates daily calorie intake based on several factors, like height, weight, age, gender and daily physical activity rate',
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.symmetric(horizontal: 10.0, vertical: 15.0),
|
||||
child: Texts('Gender'),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(35.0),
|
||||
color: Colors.white,
|
||||
border: Border.all(
|
||||
color: Colors.black45,
|
||||
)),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColor(1);
|
||||
isMale = false;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 170.0,
|
||||
decoration: BoxDecoration(
|
||||
color: maleCard,
|
||||
borderRadius: BorderRadius.circular(35.0),
|
||||
),
|
||||
child: Center(child: Texts('FEMALE')),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColor(2);
|
||||
isMale = true;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 170.0,
|
||||
decoration: BoxDecoration(
|
||||
color: femaleCard,
|
||||
borderRadius: BorderRadius.circular(35.0),
|
||||
),
|
||||
child: Center(child: Texts('MALE')),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.0,
|
||||
),
|
||||
Texts(
|
||||
'The Age ( 11 - 120 ) yrs',
|
||||
),
|
||||
SizedBox(
|
||||
height: 10.0,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(age.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (age < 120) age++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (age > 0) age--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: age.toDouble(),
|
||||
min: 0,
|
||||
max: 120,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
age = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts(
|
||||
'Height',
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(height.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height < 250) height++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height > 0) height--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: height.toDouble(),
|
||||
min: 0,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
height = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts('Select Unit'),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorHeight(1);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: cmCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('CM')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorHeight(2);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: ftCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('Ft')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Texts(
|
||||
'Weight',
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(weight.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight < 250) weight++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight > 0) weight--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: weight.toDouble(),
|
||||
min: 0,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
weight = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts('Select Unit'),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(1);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: kgCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('KG')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(2);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: lbCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset:
|
||||
Offset(0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('LB')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Texts('Activity level'),
|
||||
Container(
|
||||
width: 300,
|
||||
child: DropdownButton<String>(
|
||||
value: dropdownValue,
|
||||
icon: Icon(Icons.arrow_downward),
|
||||
iconSize: 24,
|
||||
elevation: 16,
|
||||
style: TextStyle(color: Colors.black87),
|
||||
underline: Container(
|
||||
height: 2,
|
||||
color: Colors.black54,
|
||||
),
|
||||
onChanged: (String newValue) {
|
||||
setState(() {
|
||||
dropdownValue = newValue;
|
||||
});
|
||||
},
|
||||
items: <String>[
|
||||
'Almost Inactive(Little or no exercises)',
|
||||
'Lighty Active (1-3) days per week',
|
||||
'very Active(6-7) days per week',
|
||||
'Super Active(very hard exercises)'
|
||||
].map<DropdownMenuItem<String>>((String value) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(value),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 25.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
calculateCalories();
|
||||
print(calories);
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => CalorieResultPage(
|
||||
calorie: calories,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:percent_indicator/circular_percent_indicator.dart';
|
||||
|
||||
class CalorieResultPage extends StatelessWidget {
|
||||
final double calorie;
|
||||
|
||||
CalorieResultPage({this.calorie});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
appBarTitle: 'Calorie Calculator',
|
||||
isShowAppBar: true,
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Center(
|
||||
child: CircularPercentIndicator(
|
||||
radius: 220.0,
|
||||
lineWidth: 20.0,
|
||||
percent: ((this.calorie > 3500) ? 100 : this.calorie / 3500),
|
||||
center: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
calorie.toStringAsFixed(1),
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Texts('Calories'),
|
||||
],
|
||||
),
|
||||
progressColor: Color(0xff3C3939),
|
||||
backgroundColor: Colors.white,
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child:
|
||||
Texts('Daily intake is ${calorie.toStringAsFixed(1)} calories'),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,367 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math';
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'carbs_result_page.dart';
|
||||
|
||||
class Carbs extends StatefulWidget {
|
||||
@override
|
||||
_CarbsState createState() => _CarbsState();
|
||||
}
|
||||
|
||||
class _CarbsState extends State<Carbs> {
|
||||
TextEditingController textController = new TextEditingController();
|
||||
int calories;
|
||||
String dropdownValue;
|
||||
bool _visible = false;
|
||||
int meals;
|
||||
int protein;
|
||||
int carbs;
|
||||
|
||||
int fat;
|
||||
double pCal;
|
||||
double cCal;
|
||||
double fCal;
|
||||
double pCalGram;
|
||||
double cCalGram;
|
||||
double fCalGram;
|
||||
double pCalMeal;
|
||||
double cCalMeal;
|
||||
double fCalMeal;
|
||||
|
||||
void calculateDietRatios() {
|
||||
if (dropdownValue == 'Very Low Carb') {
|
||||
meals = 3;
|
||||
protein = 45;
|
||||
carbs = 10;
|
||||
fat = 45;
|
||||
} else if (dropdownValue == 'Low Carb') {
|
||||
meals = 3;
|
||||
protein = 40;
|
||||
carbs = 30;
|
||||
fat = 30;
|
||||
} else if (dropdownValue == 'Moderate Carb') {
|
||||
meals = 3;
|
||||
protein = 25;
|
||||
carbs = 50;
|
||||
fat = 25;
|
||||
} else if (dropdownValue == 'USDA Gudilines') {
|
||||
meals = 3;
|
||||
protein = 15;
|
||||
carbs = 55;
|
||||
fat = 30;
|
||||
} else if (dropdownValue == 'Zone Diet') {
|
||||
meals = 3;
|
||||
protein = 30;
|
||||
carbs = 40;
|
||||
fat = 30;
|
||||
}
|
||||
}
|
||||
|
||||
void calculate() {
|
||||
pCal = (protein / 100.0) * int.parse(textController.text).ceil();
|
||||
cCal = (carbs / 100.0) * int.parse(textController.text);
|
||||
;
|
||||
fCal = (fat / 100) * int.parse(textController.text);
|
||||
;
|
||||
pCalGram = pCal / 4.0;
|
||||
cCalGram = cCal / 4.0;
|
||||
fCalGram = fCal / 9.0;
|
||||
pCalMeal = pCalGram / meals.ceil();
|
||||
cCalMeal = cCalGram / meals.ceil();
|
||||
fCalMeal = fCalGram / meals.ceil();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Carb Protein Fat',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Texts(
|
||||
'Calculates carbohydrate protein and fat\n ratio in calories and grams according to a\n pre-set ratio',
|
||||
),
|
||||
SizedBox(
|
||||
height: 15.0,
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 300.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: TextFormField(
|
||||
controller: textController,
|
||||
inputFormatters: <TextInputFormatter>[
|
||||
FilteringTextInputFormatter
|
||||
.digitsOnly
|
||||
],
|
||||
keyboardType: TextInputType.number,
|
||||
decoration: InputDecoration(
|
||||
hintText: " The Calories per day ",
|
||||
labelStyle: TextStyle(
|
||||
color: Colors.black87,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
int currentValue = int.parse(
|
||||
textController.text);
|
||||
currentValue++;
|
||||
textController.text =
|
||||
(currentValue).toString();
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
int currentValue = int.parse(
|
||||
textController.text);
|
||||
currentValue--;
|
||||
textController.text =
|
||||
(currentValue).toString();
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 20.0,
|
||||
),
|
||||
Button(
|
||||
backgroundColor: Color(0xffC5272D),
|
||||
label: 'NOT SURE? CLICK HERE ',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => CalorieCalculator()),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Texts('Select Diet Type'),
|
||||
Container(
|
||||
width: 400,
|
||||
child: DropdownButton<String>(
|
||||
value: dropdownValue,
|
||||
icon: Icon(Icons.arrow_downward),
|
||||
iconSize: 24,
|
||||
elevation: 16,
|
||||
style: TextStyle(color: Colors.black87),
|
||||
underline: Container(
|
||||
height: 2,
|
||||
color: Colors.black54,
|
||||
),
|
||||
onChanged: (String newValue) {
|
||||
setState(() {
|
||||
dropdownValue = newValue;
|
||||
calculateDietRatios();
|
||||
|
||||
dropdownValue == null
|
||||
? _visible = false
|
||||
: _visible = true;
|
||||
});
|
||||
},
|
||||
items: <String>[
|
||||
'Very Low Carb',
|
||||
'Low Carb',
|
||||
'Moderate Carb',
|
||||
'USDA Gudilines',
|
||||
'Zone Diet',
|
||||
].map<DropdownMenuItem<String>>((String value) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(value),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
Visibility(
|
||||
visible: _visible,
|
||||
child: Container(
|
||||
height: 170.0,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Texts(
|
||||
'Ratios are divided according to the selected diet'),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: TextStyle(color: Colors.black),
|
||||
children: [
|
||||
TextSpan(text: 'Meals Per Day '),
|
||||
TextSpan(
|
||||
text: '$meals',
|
||||
style: TextStyle(color: Color(0xffC5272D)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: TextStyle(color: Colors.black),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: 'Protein ',
|
||||
),
|
||||
TextSpan(
|
||||
text: '$protein%',
|
||||
style: TextStyle(color: Color(0xffC5272D)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: TextStyle(color: Colors.black),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: 'Carbohydrate ',
|
||||
),
|
||||
TextSpan(
|
||||
text: '$carbs%',
|
||||
style: TextStyle(color: Color(0xffC5272D)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
RichText(
|
||||
text: TextSpan(
|
||||
style: TextStyle(color: Colors.black),
|
||||
children: [
|
||||
TextSpan(
|
||||
text: 'Fat ',
|
||||
),
|
||||
TextSpan(
|
||||
text: '$fat%',
|
||||
style: TextStyle(color: Color(0xffC5272D)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 55.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
{
|
||||
calculate();
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => CarbsResult(
|
||||
cCal: cCal,
|
||||
pCal: pCal,
|
||||
fCal: fCal,
|
||||
pCalGram: pCalGram,
|
||||
pCalMeal: pCalMeal,
|
||||
fCalGram: fCalGram,
|
||||
fCalMeal: fCalMeal,
|
||||
cCalGram: cCalGram,
|
||||
cCalMeal: cCalMeal,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,175 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/painting.dart';
|
||||
|
||||
class CarbsResult extends StatelessWidget {
|
||||
double pCal;
|
||||
double cCal;
|
||||
double fCal;
|
||||
double pCalGram;
|
||||
double cCalGram;
|
||||
double fCalGram;
|
||||
double pCalMeal;
|
||||
double cCalMeal;
|
||||
double fCalMeal;
|
||||
|
||||
CarbsResult(
|
||||
{this.pCal,
|
||||
this.cCal,
|
||||
this.fCal,
|
||||
this.pCalGram,
|
||||
this.cCalGram,
|
||||
this.fCalGram,
|
||||
this.fCalMeal,
|
||||
this.cCalMeal,
|
||||
this.pCalMeal});
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Carb Protein Fat',
|
||||
body: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 30.0, horizontal: 10.0),
|
||||
child: Table(
|
||||
border: TableBorder(
|
||||
verticalInside: BorderSide(width: 1, color: Colors.black54),
|
||||
bottom: BorderSide(width: 1, color: Colors.black54),
|
||||
left: BorderSide(width: 1, color: Colors.black54),
|
||||
right: BorderSide(width: 1, color: Colors.black54),
|
||||
top: BorderSide(width: 1, color: Colors.black54),
|
||||
),
|
||||
children: [
|
||||
TableRow(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
children: [
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts('Description'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts('Protein'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(
|
||||
'Carbohydrate',
|
||||
),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts('Fat'),
|
||||
),
|
||||
),
|
||||
]),
|
||||
TableRow(children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: TableCell(
|
||||
child: Center(
|
||||
child: Texts('Calories\n Per Day'),
|
||||
),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(pCal.ceil().toString() + ' Cals'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(cCal.ceil().toString() + ' Cals'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(fCal.ceil().toString() + ' Cals'),
|
||||
),
|
||||
),
|
||||
]),
|
||||
TableRow(children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: TableCell(
|
||||
child: Center(
|
||||
child: Texts('Grams Per\n Day'),
|
||||
),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(pCalGram.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(cCalGram.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(fCalGram.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
]),
|
||||
TableRow(children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: TableCell(
|
||||
child: Center(
|
||||
child: Texts('Grams Per\n Meal'),
|
||||
),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(pCalMeal.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(cCalMeal.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
TableCell(
|
||||
child: Center(
|
||||
child: Texts(fCalMeal.ceil().toString() + ' gr'),
|
||||
),
|
||||
),
|
||||
]),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
// Texts(pCal.ceil().toString()),
|
||||
// Texts(cCal.ceil().toString()),
|
||||
// Texts(fCal.ceil().toString()),
|
||||
// Texts(pCalGram.ceil().toString()),
|
||||
// Texts(cCalGram.ceil().toString()),
|
||||
// Texts(fCalGram.ceil().toString()),
|
||||
// Texts(pCalMeal.ceil().toString()),
|
||||
// Texts(cCalMeal.ceil().toString()),
|
||||
// Texts(fCalMeal.ceil().toString()),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,146 @@
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'delivery_due_result_page.dart';
|
||||
|
||||
class DeliveryDue extends StatefulWidget {
|
||||
@override
|
||||
_DeliveryDueState createState() => _DeliveryDueState();
|
||||
}
|
||||
|
||||
class _DeliveryDueState extends State<DeliveryDue> {
|
||||
DateTime bloodSugarDate = DateTime.now();
|
||||
DateTime timeSugarDate = DateTime.now();
|
||||
var dateFrom = DateTime.now();
|
||||
var dateTo = DateTime.now();
|
||||
var conceivedDate = DateTime.now();
|
||||
var deliveryDue = DateTime.now();
|
||||
var firstTrimester = DateTime.now();
|
||||
var secondTrimester = DateTime.now();
|
||||
var thirdTrimester = DateTime.now();
|
||||
var dt = DateTime.now();
|
||||
var newFormat = DateFormat("yy-MM-dd");
|
||||
|
||||
String getDate() {
|
||||
return "${DateUtil.getMonth(bloodSugarDate.month)} ${bloodSugarDate.day}, ${bloodSugarDate.year}";
|
||||
}
|
||||
|
||||
String getTime() {
|
||||
return " ${timeSugarDate.hour}:${timeSugarDate.minute}";
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Delivery Due Date',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 35.0, vertical: 20.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
child: Column(
|
||||
//mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
children: [
|
||||
Texts(
|
||||
'Congratulations, you are pregnant! Now when will the new baby arrive? To estimate the due date, enter the date when the last menstrual perios began (the first day), then click calculate.',
|
||||
),
|
||||
Divider(
|
||||
//height: 2,
|
||||
thickness: 2,
|
||||
),
|
||||
Column(
|
||||
children: [
|
||||
Texts(
|
||||
'What was the date of the first day of the last period?',
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
DatePicker.showDatePicker(
|
||||
context,
|
||||
showTitleActions: true,
|
||||
minTime: DateTime(DateTime.now().year - 1, 1, 1),
|
||||
maxTime: DateTime.now(),
|
||||
onConfirm: (date) {
|
||||
print('confirm $date');
|
||||
setState(() {
|
||||
bloodSugarDate == date
|
||||
? null
|
||||
: bloodSugarDate = DateTime.now();
|
||||
dateFrom = date.add(Duration(days: 10));
|
||||
|
||||
dateTo = date.add(Duration(days: 20));
|
||||
conceivedDate = date.add(Duration(days: 14));
|
||||
deliveryDue = date.add(Duration(days: 280));
|
||||
firstTrimester = date.add(Duration(days: 85));
|
||||
secondTrimester = date.add(Duration(days: 190));
|
||||
thirdTrimester = date.add(Duration(days: 280));
|
||||
});
|
||||
},
|
||||
currentTime: DateTime.now(),
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(12),
|
||||
width: double.infinity,
|
||||
height: 65,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
color: Colors.white),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Icon(Icons.date_range),
|
||||
Texts('Date'),
|
||||
],
|
||||
),
|
||||
Texts(getDate()),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 280.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => DeliveryDueResult(
|
||||
conceivedDate: conceivedDate,
|
||||
dateFrom: dateFrom,
|
||||
dateTo: dateTo,
|
||||
deliveryDue: deliveryDue,
|
||||
firstTrimester: firstTrimester,
|
||||
secondTrimester: secondTrimester,
|
||||
thirdTrimester: thirdTrimester,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class DeliveryDueResult extends StatelessWidget {
|
||||
var dateFrom;
|
||||
var dateTo;
|
||||
var conceivedDate;
|
||||
var deliveryDue;
|
||||
var firstTrimester;
|
||||
var secondTrimester;
|
||||
var thirdTrimester;
|
||||
DeliveryDueResult(
|
||||
{this.dateFrom,
|
||||
this.dateTo,
|
||||
this.conceivedDate,
|
||||
this.deliveryDue,
|
||||
this.firstTrimester,
|
||||
this.secondTrimester,
|
||||
this.thirdTrimester});
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Delivery Due Date',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 12.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
height: 750.0,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Texts(
|
||||
'The next ovulation period is estimated to be:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
'From:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(DateFormat.yMMMEd().format(dateFrom),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
color: Color(0xffC5272D)),
|
||||
Texts(
|
||||
'To:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(DateFormat.yMMMEd().format(dateTo),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
color: Color(0xffC5272D)),
|
||||
Texts(
|
||||
'You have conceived on:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(conceivedDate),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'First Trimester Ends (12 weeks):',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(firstTrimester),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'Second Trimester Ends (27 weeks):',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(secondTrimester),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'Third Trimester, Estimated Due Date (40 weeks):',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(thirdTrimester),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,557 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math';
|
||||
|
||||
import 'ideal_body_result_page.dart';
|
||||
|
||||
const activeCardColor = Color(0xff70777A);
|
||||
const inactiveCardColor = Color(0xffFAFAFd);
|
||||
|
||||
class IdealBody extends StatefulWidget {
|
||||
@override
|
||||
_IdealBodyState createState() => _IdealBodyState();
|
||||
}
|
||||
|
||||
class _IdealBodyState extends State<IdealBody> {
|
||||
bool isMale = false;
|
||||
bool isHeightCm = true;
|
||||
|
||||
Color kgCard = activeCardColor;
|
||||
Color lbCard = inactiveCardColor;
|
||||
Color cmCard = activeCardColor;
|
||||
Color ftCard = inactiveCardColor;
|
||||
int age = 0;
|
||||
int height = 0;
|
||||
double heightInches;
|
||||
double minRange;
|
||||
double maxRange;
|
||||
double overWeightBy;
|
||||
int weight = 0;
|
||||
double idealWeight = 0;
|
||||
String dropdownValue = 'Medium(fingers touch)';
|
||||
double calories = 0;
|
||||
String textResult = '';
|
||||
double maxIdealWeight;
|
||||
double heightFeet;
|
||||
|
||||
void updateColorHeight(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (cmCard == inactiveCardColor) {
|
||||
cmCard = activeCardColor;
|
||||
ftCard = inactiveCardColor;
|
||||
} else {
|
||||
cmCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (ftCard == inactiveCardColor) {
|
||||
ftCard = activeCardColor;
|
||||
cmCard = inactiveCardColor;
|
||||
} else {
|
||||
ftCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateColorWeight(int type) {
|
||||
//MG/DLT card
|
||||
if (type == 1) {
|
||||
if (kgCard == inactiveCardColor) {
|
||||
kgCard = activeCardColor;
|
||||
lbCard = inactiveCardColor;
|
||||
} else {
|
||||
kgCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
if (type == 2) {
|
||||
if (lbCard == inactiveCardColor) {
|
||||
lbCard = activeCardColor;
|
||||
kgCard = inactiveCardColor;
|
||||
} else {
|
||||
lbCard = inactiveCardColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void calculateIdealWeight() {
|
||||
heightInches = height * .39370078740157477;
|
||||
heightFeet = heightInches / 12;
|
||||
idealWeight = (50 + 2.3 * (heightInches - 60));
|
||||
if (dropdownValue == 'Small(fingers overlap)') {
|
||||
idealWeight = idealWeight - 10;
|
||||
} else if (dropdownValue == 'Medium(fingers touch)') {
|
||||
idealWeight = idealWeight;
|
||||
} else if (dropdownValue == 'Large(fingers don\'n touch)') {
|
||||
idealWeight = idealWeight + 10;
|
||||
}
|
||||
|
||||
maxIdealWeight = (((idealWeight) * 1.1).round() * 100) / 100;
|
||||
overWeightBy = weight - maxIdealWeight.roundToDouble();
|
||||
minRange = ((idealWeight / 1.1) * 10).round() / 10;
|
||||
maxRange = maxIdealWeight;
|
||||
idealWeight = idealWeight;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Ideal Body Weight',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(vertical: 15.0, horizontal: 25.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
height: 800.0,
|
||||
child: Column(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.all(10.0),
|
||||
child: Texts(
|
||||
'Calculates the ideal body weight based on height, Weight, and Body Size',
|
||||
),
|
||||
),
|
||||
Divider(
|
||||
thickness: 2.0,
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Texts(
|
||||
'Height',
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(height.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height < 250)
|
||||
height++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (height > 0) height--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: height.toDouble(),
|
||||
min: 0,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
height = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts('Select Unit'),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorHeight(1);
|
||||
isHeightCm = true;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset: Offset(
|
||||
0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: cmCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('CM')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorHeight(2);
|
||||
isHeightCm = false;
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: ftCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset: Offset(
|
||||
0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('Ft')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 45.0,
|
||||
),
|
||||
Divider(
|
||||
thickness: 2.0,
|
||||
),
|
||||
Texts(
|
||||
'Weight',
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius:
|
||||
BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(weight.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight < 250)
|
||||
weight++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (weight > 0) weight--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: weight.toDouble(),
|
||||
min: 0,
|
||||
max: 250,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
weight = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts('Select Unit'),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(1);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset: Offset(
|
||||
0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
color: kgCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(
|
||||
vertical: 0.0, horizontal: 18.0),
|
||||
child: Center(child: Texts('KG')),
|
||||
),
|
||||
),
|
||||
),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
setState(() {
|
||||
updateColorWeight(2);
|
||||
});
|
||||
},
|
||||
child: Container(
|
||||
height: 55.0,
|
||||
width: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: lbCard,
|
||||
borderRadius: BorderRadius.circular(3.0),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: Colors.grey.withOpacity(0.5),
|
||||
spreadRadius: 3,
|
||||
blurRadius: 7,
|
||||
offset: Offset(
|
||||
0, 3), // changes position of shadow
|
||||
),
|
||||
],
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16.0),
|
||||
child: Center(child: Texts('LB')),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 45.0,
|
||||
),
|
||||
Divider(
|
||||
thickness: 2.0,
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Texts('Body Frame Size'),
|
||||
Container(
|
||||
width: 300,
|
||||
child: DropdownButton<String>(
|
||||
value: dropdownValue,
|
||||
icon: Icon(Icons.arrow_downward),
|
||||
iconSize: 24,
|
||||
elevation: 16,
|
||||
style: TextStyle(color: Colors.black87),
|
||||
underline: Container(
|
||||
height: 2,
|
||||
color: Colors.black54,
|
||||
),
|
||||
onChanged: (String newValue) {
|
||||
setState(() {
|
||||
dropdownValue = newValue;
|
||||
});
|
||||
},
|
||||
items: <String>[
|
||||
'Small(fingers overlap)',
|
||||
'Medium(fingers touch)',
|
||||
'Large(fingers don\'n touch)',
|
||||
].map<DropdownMenuItem<String>>((String value) {
|
||||
return DropdownMenuItem<String>(
|
||||
value: value,
|
||||
child: Text(value),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 30.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
// calculateBmr();
|
||||
// calculateCalories();
|
||||
calculateIdealWeight();
|
||||
|
||||
print(idealWeight);
|
||||
//print(overWeightBy);
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => IdealBodyResult(
|
||||
idealBodyWeight: idealWeight,
|
||||
minRange: minRange,
|
||||
mixRange: maxRange,
|
||||
overWeightBy: overWeightBy,
|
||||
textResult: textResult,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,170 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:math';
|
||||
|
||||
class IdealBodyResult extends StatelessWidget {
|
||||
final double idealBodyWeight;
|
||||
final double minRange;
|
||||
final double mixRange;
|
||||
final double overWeightBy;
|
||||
final String textResult;
|
||||
|
||||
IdealBodyResult(
|
||||
{this.idealBodyWeight,
|
||||
this.minRange,
|
||||
this.mixRange,
|
||||
this.overWeightBy,
|
||||
this.textResult});
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Ideal Body Weight',
|
||||
body: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Texts(
|
||||
'Ideal weight range is',
|
||||
fontSize: 23.0,
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Texts(
|
||||
minRange.toStringAsFixed(1),
|
||||
fontSize: 30.0,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8.0, left: 4.0),
|
||||
child: Text(
|
||||
'Kg',
|
||||
style: TextStyle(color: Colors.red),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Icon(
|
||||
Icons.arrow_forward,
|
||||
color: Colors.red,
|
||||
size: 55.0,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Texts(
|
||||
mixRange.toStringAsFixed(1),
|
||||
fontSize: 30.0,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 8.0, left: 4.0),
|
||||
child: Text(
|
||||
'Kg',
|
||||
style: TextStyle(color: Colors.red),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
overWeightBy >= 0 && overWeightBy <= 10
|
||||
? Column(
|
||||
children: [
|
||||
Texts(
|
||||
'Congratulations! The current weight is\n perfect and considered healthy',
|
||||
fontSize: 20.0,
|
||||
),
|
||||
],
|
||||
)
|
||||
: overWeightBy > 10 && overWeightBy < 17
|
||||
? Column(
|
||||
children: [
|
||||
Texts(
|
||||
'This means that the weight is a little bit more than ideal weight by'),
|
||||
Texts(overWeightBy.toStringAsFixed(1)),
|
||||
Texts(
|
||||
'May wish to consult with the doctor for medical help. Click to view our list of Doctors'),
|
||||
],
|
||||
)
|
||||
: overWeightBy >= 18
|
||||
? Container(
|
||||
height: 250.0,
|
||||
width: 350,
|
||||
child: Column(
|
||||
children: [
|
||||
Texts(
|
||||
'Means that you suffer from excessive\n obesity by',
|
||||
),
|
||||
SizedBox(
|
||||
height: 55.0,
|
||||
),
|
||||
Texts(
|
||||
overWeightBy.toStringAsFixed(1),
|
||||
fontSize: 40.0,
|
||||
),
|
||||
SizedBox(
|
||||
height: 25.0,
|
||||
),
|
||||
Texts(
|
||||
'May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
|
||||
],
|
||||
),
|
||||
)
|
||||
: overWeightBy < -18
|
||||
? Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Texts(
|
||||
'Under Weight',
|
||||
fontSize: 18.0,
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 55.0,
|
||||
),
|
||||
Texts(
|
||||
overWeightBy.toStringAsFixed(1),
|
||||
fontSize: 20.0,
|
||||
),
|
||||
],
|
||||
)
|
||||
: Container(
|
||||
height: 250.0,
|
||||
width: 350.0,
|
||||
child: Column(
|
||||
children: [
|
||||
Texts(
|
||||
'under wheight',
|
||||
fontSize: 20.0,
|
||||
),
|
||||
SizedBox(
|
||||
height: 55.0,
|
||||
),
|
||||
Texts(
|
||||
overWeightBy.toStringAsFixed(1),
|
||||
fontSize: 20.0,
|
||||
),
|
||||
SizedBox(
|
||||
height: 25.0,
|
||||
),
|
||||
Texts(
|
||||
'May wish to consult with the doctor for\n medical help. Click to view our list of\n Doctors'),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,351 @@
|
||||
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'ovulation_result_page.dart';
|
||||
|
||||
class OvulationPeriod extends StatefulWidget {
|
||||
@override
|
||||
_OvulationPeriodState createState() => _OvulationPeriodState();
|
||||
}
|
||||
|
||||
class _OvulationPeriodState extends State<OvulationPeriod> {
|
||||
DateTime bloodSugarDate = DateTime.now();
|
||||
DateTime timeSugarDate = DateTime.now();
|
||||
int cycleLength = 0;
|
||||
int lutealPhaseLength = 0;
|
||||
String selectedDate;
|
||||
var dateFrom = DateTime.now();
|
||||
var dateTo = DateTime.now();
|
||||
var conceivedDate = DateTime.now();
|
||||
var deliveryDue = DateTime.now();
|
||||
var dt = DateTime.now();
|
||||
var newFormat = DateFormat("yy-MM-dd");
|
||||
String updatedDt;
|
||||
|
||||
String getTime() {
|
||||
return " ${timeSugarDate.hour}:${timeSugarDate.minute}";
|
||||
}
|
||||
|
||||
String getDate() {
|
||||
return "${DateUtil.getMonth(bloodSugarDate.month)} ${bloodSugarDate.day}, ${bloodSugarDate.year}";
|
||||
}
|
||||
|
||||
// void calculate() {}
|
||||
//
|
||||
// void calculateFertility(DateTime selectedDate) {const diff = Date.}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Ovulation Period',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 25.0, vertical: 15.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
height: 700.0,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Texts('Calculates Ovulation Period'),
|
||||
SizedBox(
|
||||
height: 12.0,
|
||||
),
|
||||
Divider(
|
||||
//height: 2,
|
||||
thickness: 2,
|
||||
),
|
||||
SizedBox(
|
||||
height: 12.0,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
DatePicker.showDatePicker(
|
||||
context,
|
||||
showTitleActions: true,
|
||||
minTime: DateTime(DateTime.now().year - 1, 1, 1),
|
||||
maxTime: DateTime.now(),
|
||||
onConfirm: (date) {
|
||||
print('confirm $date');
|
||||
setState(() {
|
||||
bloodSugarDate = date;
|
||||
dateFrom = date.add(Duration(days: 10));
|
||||
updatedDt = DateFormat.yMMMEd().format(dateFrom);
|
||||
|
||||
dateTo = date.add(Duration(days: 20));
|
||||
conceivedDate = date.add(Duration(days: 14));
|
||||
deliveryDue = date.add(Duration(days: 280));
|
||||
});
|
||||
},
|
||||
currentTime: DateTime.now(),
|
||||
);
|
||||
},
|
||||
child: Container(
|
||||
padding: EdgeInsets.all(12),
|
||||
width: double.infinity,
|
||||
height: 65,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
color: Colors.white),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Texts('Date'),
|
||||
Texts(getDate()),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Texts(
|
||||
'Average Cycle Length (usually 28 days):',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(cycleLength.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (cycleLength < 45)
|
||||
cycleLength++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (cycleLength > 0)
|
||||
cycleLength--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: cycleLength.toDouble(),
|
||||
min: 0,
|
||||
max: 45,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
cycleLength = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Texts(
|
||||
'Average Luteal Phase Length (usually 14 days):',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
SizedBox(
|
||||
height: 5.0,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 340.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 10.0, horizontal: 8.0),
|
||||
child: Center(
|
||||
child: Container(
|
||||
width: 60.0,
|
||||
foregroundDecoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(5.0),
|
||||
border: Border.all(
|
||||
color: Colors.blueGrey,
|
||||
width: 2.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child:
|
||||
Text(lutealPhaseLength.toString()),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 38.0,
|
||||
child: Column(
|
||||
crossAxisAlignment:
|
||||
CrossAxisAlignment.center,
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
width: 0.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
child: InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_up,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (lutealPhaseLength < 15)
|
||||
lutealPhaseLength++;
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
child: Icon(
|
||||
Icons.arrow_drop_down,
|
||||
size: 18.0,
|
||||
),
|
||||
onTap: () {
|
||||
setState(() {
|
||||
if (lutealPhaseLength > 0)
|
||||
lutealPhaseLength--;
|
||||
});
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: lutealPhaseLength.toDouble(),
|
||||
min: 0,
|
||||
max: 15,
|
||||
onChanged: (double newValue) {
|
||||
setState(() {
|
||||
lutealPhaseLength = newValue.round();
|
||||
});
|
||||
},
|
||||
activeColor: Color(0xffC5272D),
|
||||
inactiveColor: Color(0xffF3C5C6),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 220.0,
|
||||
),
|
||||
Container(
|
||||
height: 100.0,
|
||||
width: 350.0,
|
||||
child: Button(
|
||||
label: 'CALCULATE',
|
||||
onTap: () {
|
||||
setState(() {
|
||||
{
|
||||
Navigator.push(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => OvulationResult(
|
||||
conceivedDate: conceivedDate,
|
||||
dateFrom: dateFrom,
|
||||
dateTo: dateTo,
|
||||
deliveryDue: deliveryDue,
|
||||
)),
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
class OvulationResult extends StatelessWidget {
|
||||
var dateFrom;
|
||||
var dateTo;
|
||||
var conceivedDate;
|
||||
var deliveryDue;
|
||||
OvulationResult(
|
||||
{this.dateFrom, this.dateTo, this.deliveryDue, this.conceivedDate});
|
||||
//var newFormat = DateFormat("yy-MM-dd");
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Ovulation Period',
|
||||
body: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 30.0, vertical: 15.0),
|
||||
child: SingleChildScrollView(
|
||||
child: Container(
|
||||
height: 750.0,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
Texts(
|
||||
'The next ovulation period is estimated to be:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
'From:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(dateFrom),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'To:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(dateTo),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'Useful Information:',
|
||||
color: Color(0xffC5272D),
|
||||
),
|
||||
Texts(
|
||||
'You have conceived on:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(conceivedDate),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'The baby\'s age right now:',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
'5 Weeks, 2',
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Texts(
|
||||
'The delivery due date is estimated to be on the: ',
|
||||
fontWeight: FontWeight.w400,
|
||||
),
|
||||
Texts(
|
||||
DateFormat.yMMMEd().format(deliveryDue),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontSize: 21.0,
|
||||
),
|
||||
Container(
|
||||
width: 350,
|
||||
child: Button(
|
||||
label: 'See List Of Doctors',
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,283 @@
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart';
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart';
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart';
|
||||
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||
|
||||
import 'health_calculator/bmi_calculator/bmi_calculator.dart';
|
||||
import 'health_calculator/bmr_calculator/bmr_calculator.dart';
|
||||
import 'health_calculator/calorie_calculator/calorie_calculator.dart';
|
||||
import 'health_calculator/delivery_due/delivery_due.dart';
|
||||
import 'health_calculator/ideal_body/ideal_body.dart';
|
||||
|
||||
class HealthCalculators extends StatefulWidget {
|
||||
@override
|
||||
_HealthCalculatorsState createState() => _HealthCalculatorsState();
|
||||
}
|
||||
|
||||
class _HealthCalculatorsState extends State<HealthCalculators>
|
||||
with SingleTickerProviderStateMixin {
|
||||
TabController _tabController;
|
||||
void initState() {
|
||||
super.initState();
|
||||
_tabController = TabController(length: 2, vsync: this);
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
_tabController.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Health Calculators',
|
||||
body: Scaffold(
|
||||
extendBodyBehindAppBar: true,
|
||||
appBar: PreferredSize(
|
||||
preferredSize: Size.fromHeight(70.0),
|
||||
child: Stack(
|
||||
children: [
|
||||
Center(
|
||||
child: Container(
|
||||
height: 60.0,
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
width: MediaQuery.of(context).size.width * 1.9,
|
||||
decoration: BoxDecoration(
|
||||
border: Border(
|
||||
bottom: BorderSide(
|
||||
color: Theme.of(context).dividerColor,
|
||||
width: 5.7,
|
||||
),
|
||||
),
|
||||
color: Colors.white,
|
||||
),
|
||||
child: Center(
|
||||
child: TabBar(
|
||||
controller: _tabController,
|
||||
isScrollable: true,
|
||||
indicatorWeight: 4.0,
|
||||
indicatorColor: Colors.red,
|
||||
labelColor: Theme.of(context).primaryColor,
|
||||
labelPadding:
|
||||
EdgeInsets.symmetric(horizontal: 13.0, vertical: 2.0),
|
||||
unselectedLabelColor: Colors.grey,
|
||||
tabs: <Widget>[
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.35,
|
||||
child: Center(
|
||||
child: Texts('General Health'),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.35,
|
||||
child: Center(
|
||||
child: Texts("Women's Health"),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
Expanded(
|
||||
child: TabBarView(
|
||||
physics: BouncingScrollPhysics(),
|
||||
controller: _tabController,
|
||||
children: [
|
||||
Container(
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: 80,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(page: BMICalculator()),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'BMI',
|
||||
imagePath: 'bmi_health_calculator.png',
|
||||
subTitle: 'Calculators',
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: CalorieCalculator(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Calories',
|
||||
imagePath: 'calories-calculator.png',
|
||||
subTitle: 'Calculators',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: BmrCalculator(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'BMR',
|
||||
imagePath: 'BMR_calculator.png',
|
||||
subTitle: 'Calculators',
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: IdealBody(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Ideal Body',
|
||||
imagePath: 'body_weight.png',
|
||||
subTitle: 'Weight',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: BodyFat(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Body',
|
||||
imagePath: 'body_fat.png',
|
||||
subTitle: 'Fat',
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: Carbs(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Carbohydrate',
|
||||
imagePath: 'carb_protein.png',
|
||||
subTitle: 'Protein Fat',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
width: double.infinity,
|
||||
height: 80,
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(page: OvulationPeriod()),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Ovulation',
|
||||
imagePath: 'ovulation_period_icon.png',
|
||||
subTitle: 'Period',
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
FadePage(
|
||||
page: DeliveryDue(),
|
||||
),
|
||||
);
|
||||
},
|
||||
child: MedicalProfileItem(
|
||||
title: 'Delivery',
|
||||
imagePath: 'delivery_date_icon.png',
|
||||
subTitle: 'Due Date',
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||