diff --git a/android/app/build.gradle b/android/app/build.gradle
index 1f71421f..9640ea61 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -27,7 +27,7 @@ apply plugin: 'com.google.gms.google-services'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion 30
+ compileSdkVersion 28
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -41,7 +41,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.cloud.diplomaticquarterapp"
minSdkVersion 21
- targetSdkVersion 30
+ targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
diff --git a/android/gradle.properties b/android/gradle.properties
index 3f45ee5b..9c0729c9 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -2,4 +2,4 @@
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
-org.gradle.jvmargs=-Xmx4608m
\ No newline at end of file
+org.gradle.jvmargs=-Xmx4608m
diff --git a/assets/images/CloseIcon.png b/assets/images/CloseIcon.png
new file mode 100644
index 00000000..b8e68fea
Binary files /dev/null and b/assets/images/CloseIcon.png differ
diff --git a/assets/images/Wifi-AR.png b/assets/images/Wifi-AR.png
new file mode 100644
index 00000000..a8e2d9af
Binary files /dev/null and b/assets/images/Wifi-AR.png differ
diff --git a/assets/images/covid-car.png b/assets/images/covid-car.png
new file mode 100644
index 00000000..01090b74
Binary files /dev/null and b/assets/images/covid-car.png differ
diff --git a/assets/images/covid_bg_transparent.png b/assets/images/covid_bg_transparent.png
new file mode 100644
index 00000000..cd5f12f1
Binary files /dev/null and b/assets/images/covid_bg_transparent.png differ
diff --git a/assets/images/home_health_care_icon.png b/assets/images/home_health_care_icon.png
new file mode 100644
index 00000000..d80ec015
Binary files /dev/null and b/assets/images/home_health_care_icon.png differ
diff --git a/assets/images/robort.png b/assets/images/robort.png
new file mode 100644
index 00000000..320afcbc
Binary files /dev/null and b/assets/images/robort.png differ
diff --git a/assets/images/svg/robort_svg.svg b/assets/images/svg/robort_svg.svg
new file mode 100644
index 00000000..07d3d4b4
--- /dev/null
+++ b/assets/images/svg/robort_svg.svg
@@ -0,0 +1,82 @@
+
diff --git a/assets/images/svg/symptom.svg b/assets/images/svg/symptom.svg
new file mode 100644
index 00000000..aa670da1
--- /dev/null
+++ b/assets/images/svg/symptom.svg
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/assets/images/wifi-EN.png b/assets/images/wifi-EN.png
new file mode 100644
index 00000000..5711925c
Binary files /dev/null and b/assets/images/wifi-EN.png differ
diff --git a/lib/config/config.dart b/lib/config/config.dart
index d0cb3e58..ea738d5b 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -29,8 +29,10 @@ const GET_PRESCRIPTION_REPORT_ENH =
///Lab Order
const GET_Patient_LAB_ORDERS = 'Services/Patients.svc/REST/GetPatientLabOrders';
-const GET_Patient_LAB_SPECIAL_RESULT = 'Services/Patients.svc/REST/GetPatientLabSpecialResults';
-const GET_Patient_LAB_RESULT = '/Services/Patients.svc/REST/GetPatientLabResults';
+const GET_Patient_LAB_SPECIAL_RESULT =
+ 'Services/Patients.svc/REST/GetPatientLabSpecialResults';
+const GET_Patient_LAB_RESULT =
+ '/Services/Patients.svc/REST/GetPatientLabResults';
///
const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders';
@@ -43,8 +45,7 @@ const SEND_RAD_REPORT_EMAIL =
///Feedback
const SEND_FEEDBACK = 'Services/COCWS.svc/REST/InsertCOCItemInSPList';
const GET_STATUS_FOR_COCO = 'Services/COCWS.svc/REST/GetStatusforCOC';
-const GET_PATIENT_AppointmentHistory =
- 'Services'
+const GET_PATIENT_AppointmentHistory = 'Services'
'/Doctors.svc/REST/PateintHasAppoimentHistory';
///VITAL SIGN
@@ -52,52 +53,50 @@ const GET_PATIENT_VITAL_SIGN =
'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign';
///Er Nearest
-const GET_NEAREST_HOSPITAL=
+const GET_NEAREST_HOSPITAL =
'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime';
///Er Nearest
-const GET_AMBULANCE_REQUEST=
- 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod';
-
+const GET_AMBULANCE_REQUEST = 'Services/Patients.svc/REST/PatientER_RRT_GetAllTransportationMethod';
+const GET_PATIENT_ALL_PRES_ORDERS= 'Services/Patients.svc/REST/PatientER_GetPatientAllPresOrders';
+const GET_PICK_UP_REQUEST_BY_PRES_ORDER_ID= 'Services/Patients.svc/REST/PatientER_RRT_GetPickUpRequestByPresOrderID';
///FindUs
-const GET_FINDUS_REQUEST=
- 'Services/Lists.svc/REST/Get_HMG_Locations';
-
+const GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations';
///LiveChat
-const GET_LIVECHAT_REQUEST=
- 'Services/Patients.svc/REST/GetPatientICProjects';
+const GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects';
///babyInformation
-const GET_BABYINFORMATION_REQUEST=
+const GET_BABYINFORMATION_REQUEST =
'Services/Community.svc/REST/GetBabyByUserID';
+///Get Baby By User ID
+const GET_BABY_BY_USER_ID = 'Services/Community.svc/REST/GetBabyByUserID';
+
///userInformation
-const GET_USERINFORMATION_REQUEST=
+const GET_USERINFORMATION_REQUEST =
'Services/Community.svc/REST/GetUserInformation_New';
-
///addNewChild
-const GET_NEWCHILD_REQUEST=
- 'Services/Community.svc/REST/CreateNewBaby';
+const GET_NEWCHILD_REQUEST = 'Services/Community.svc/REST/CreateNewBaby';
+///newUserId
+const GET_NEW_USER_REQUEST = 'Services/Community.svc/REST/CreateNewUser_New';
-///addNewTABLE
-const GET_TABLE_REQUEST=
- 'Services/Community.svc/REST/CreateVaccinationTable';
-
+///delteChild
+const DELETE_CHILD_REQUEST = 'Services/Community.svc/REST/DeleteBaby';
+///addNewTABLE
+const GET_TABLE_REQUEST = 'Services/Community.svc/REST/CreateVaccinationTable';
///BloodDenote
-const GET_CITIES_REQUEST=
- 'Services/Lists.svc/REST/GetAllCities';
+const GET_CITIES_REQUEST = 'Services/Lists.svc/REST/GetAllCities';
///BloodDetails
-const GET_BLOOD_REQUEST=
+const GET_BLOOD_REQUEST =
'services/PatientVarification.svc/REST/BloodDonation_GetBloodGroupDetails';
-
///Reports
const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo';
const INSERT_REQUEST_FOR_MEDICAL_REPORT =
@@ -125,7 +124,8 @@ const GET_PROJECTS_LIST = 'Services/Lists.svc/REST/GetProject';
const GET_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/SearchDoctorsByTime";
//URL to dental doctors list
-const GET_DENTAL_DOCTORS_LIST_URL = "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping";
+const GET_DENTAL_DOCTORS_LIST_URL =
+ "Services/Doctors.svc/REST/Dental_DoctorChiefComplaintMapping";
//URL to get doctor free slots
const GET_DOCTOR_FREE_SLOTS = "Services/Doctors.svc/REST/GetDoctorFreeSlots";
@@ -139,8 +139,7 @@ const GET_PATIENT_SHARE =
"Services/Doctors.svc/REST/GetCheckinScreenAppointmentDetailsByAppointmentNO";
//URL to get patient appointment history
-const GET_PATIENT_APPOINTMENT_HISTORY =
- "Services/Doctors.svc/REST/PateintHasAppoimentHistory";
+const GET_PATIENT_APPOINTMENT_HISTORY = "Services/Doctors.svc/REST/PateintHasAppoimentHistory";
//URL to get patient appointment curfew history
const GET_PATIENT_APPOINTMENT_CURFEW_HISTORY =
@@ -215,9 +214,9 @@ const CANCEL_LIVECARE_REQUEST =
const SEND_LIVECARE_INVOICE_EMAIL =
'Services/Notifications.svc/REST/SendInvoiceForLiveCare';
-
-const GET_USER_TERMS ='/Services/Patients.svc/REST/GetUserTermsAndConditions';
-const UPDATE_HEALTH_TERMS ='/services/Patients.svc/REST/UpdatePateintHealthSummaryReport';
+const GET_USER_TERMS = '/Services/Patients.svc/REST/GetUserTermsAndConditions';
+const UPDATE_HEALTH_TERMS =
+ '/services/Patients.svc/REST/UpdatePateintHealthSummaryReport';
//URL to get medicine and pharmacies list
const CHANNEL = 3;
@@ -252,11 +251,17 @@ const GET_PATIENT_SICK_LEAVE = 'Services/Patients.svc/REST/GetPatientSickLeave';
const SendSickLeaveEmail = 'Services/Notifications.svc/REST/SendSickLeaveEmail';
-const GET_PATIENT_AdVANCE_BALANCE_AMOUNT = 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount';
-const GET_PATIENT_INFO_BY_ID = 'Services/Doctors.svc/REST/GetPatientInfoByPatientID';
-const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER = 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber';
-const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment';
-const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT = 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment';
+const GET_PATIENT_AdVANCE_BALANCE_AMOUNT =
+ 'Services/Patients.svc/REST/GetPatientAdvanceBalanceAmount';
+const GET_PATIENT_INFO_BY_ID =
+ 'Services/Doctors.svc/REST/GetPatientInfoByPatientID';
+const GET_PATIENT_INFO_BY_ID_AND_MOBILE_NUMBER =
+ 'Services/Patients.svc/REST/AP_GetPatientInfoByPatientIDandMobileNumber';
+const SEND_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT =
+ 'Services/Authentication.svc/REST/SendActivationCodeForAdvancePayment';
+const CHECK_ACTIVATION_CODE_FOR_ADVANCE_PAYMENT =
+ 'Services/Authentication.svc/REST/CheckActivationCodeForAdvancePayment';
+
const GET_COVID_DRIVETHRU_PROJECT_LIST = 'Services/Doctors.svc/REST/COVID19_ProjectDriveThroughTestingCenter';
@@ -265,51 +270,59 @@ const GET_COVID_DRIVETHRU_PAYMENT_INFO = 'Services/Doctors.svc/REST/COVID19_GetP
const GET_COVID_DRIVETHRU_FREE_SLOTS = 'Services/Doctors.svc/REST/COVID19_GetFreeSlots';
///My Trackers
-const GET_DIABETIC_RESULT_AVERAGE='Services/Patients.svc/REST/Patient_GetDiabeticResultAverage';
-const GET_DIABTEC_RESULT='Services/Patients.svc/REST/Patient_GetDiabtecResults';
-const ADD_DIABTEC_RESULT='Services/Patients.svc/REST/Patient_AddDiabtecResult';
-
-
-const GET_BLOOD_PRESSURE_RESULT_AVERAGE='Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage';
-const GET_BLOOD_PRESSURE_RESULT='Services/Patients.svc/REST/Patient_GetBloodPressureResult';
-const ADD_BLOOD_PRESSURE_RESULT='Services/Patients.svc/REST/Patient_AddBloodPressureResult';
-
-const GET_WEIGHT_PRESSURE_RESULT_AVERAGE='Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage';
-const GET_WEIGHT_PRESSURE_RESULT='Services/Patients.svc/REST/Patient_GetWeightMeasurementResult';
-const ADD_WEIGHT_PRESSURE_RESULT='Services/Patients.svc/REST/Patient_AddWeightMeasurementResult';
-
-
-const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID='Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID';
-
-const GET_CALL_INFO_HOURS_RESULT = 'Services/Doctors.svc/REST/GetCallInfoHoursResult';
-const GET_CALL_REQUEST_TYPE_LOV = 'Services/Doctors.svc/REST/GetCallRequestType_LOV';
+const GET_DIABETIC_RESULT_AVERAGE =
+ 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage';
+const GET_DIABTEC_RESULT =
+ 'Services/Patients.svc/REST/Patient_GetDiabtecResults';
+const ADD_DIABTEC_RESULT =
+ 'Services/Patients.svc/REST/Patient_AddDiabtecResult';
+
+const GET_BLOOD_PRESSURE_RESULT_AVERAGE =
+ 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage';
+const GET_BLOOD_PRESSURE_RESULT =
+ 'Services/Patients.svc/REST/Patient_GetBloodPressureResult';
+const ADD_BLOOD_PRESSURE_RESULT =
+ 'Services/Patients.svc/REST/Patient_AddBloodPressureResult';
+
+const GET_WEIGHT_PRESSURE_RESULT_AVERAGE =
+ 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage';
+const GET_WEIGHT_PRESSURE_RESULT =
+ 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult';
+const ADD_WEIGHT_PRESSURE_RESULT =
+ 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult';
+
+const ADD_ACTIVE_PRESCRIPTIONS_REPORT_BY_PATIENT_ID =
+ 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID';
+
+const GET_CALL_INFO_HOURS_RESULT =
+ 'Services/Doctors.svc/REST/GetCallInfoHoursResult';
+const GET_CALL_REQUEST_TYPE_LOV =
+ 'Services/Doctors.svc/REST/GetCallRequestType_LOV';
const GET_DOCTOR_RESPONSE = 'Services/Patients.svc/REST/GetDoctorResponse';
const UPDATE_READ_STATUS = 'Services/Patients.svc/REST/UpdateReadStatus';
const INSERT_CALL_INFO = 'Services/Doctors.svc/REST/InsertCallInfo';
const GET_PATIENT_ALLERGIES = 'Services/Patients.svc/REST/GetPatientAllergies';
-
-
-
-
// H2O
-const H2O_GET_USER_PROGRESS = "Services/H2ORemainder.svc/REST/H2O_GetUserProgress";
-const H2O_INSERT_USER_ACTIVITY="Services/H2ORemainder.svc/REST/H2O_InsertUserActivity";
-
-
-
-
+const H2O_GET_USER_PROGRESS =
+ "Services/H2ORemainder.svc/REST/H2O_GetUserProgress";
+const H2O_INSERT_USER_ACTIVITY =
+ "Services/H2ORemainder.svc/REST/H2O_InsertUserActivity";
//E_Referral Services
-const GET_ALL_RELATIONSHIP_TYPES = "Services/Patients.svc/REST/GetAllRelationshipTypes";
-const SEND_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/SendActivationCodeForEReferral';
-const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL = 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral';
+const GET_ALL_RELATIONSHIP_TYPES =
+ "Services/Patients.svc/REST/GetAllRelationshipTypes";
+const SEND_ACTIVATION_CODE_FOR_E_REFERRAL =
+ 'Services/Authentication.svc/REST/SendActivationCodeForEReferral';
+const CHECK_ACTIVATION_CODE_FOR_E_REFERRAL =
+ 'Services/Authentication.svc/REST/CheckActivationCodeForEReferral';
const GET_ALL_CITIES = 'services/Lists.svc/rest/GetAllCities';
const CREATE_E_REFERRAL = "Services/Patients.svc/REST/CreateEReferral";
const GET_E_REFERRALS = "Services/Patients.svc/REST/GetEReferrals";
+
const TIMER_MIN = 10;
class AppGlobal {
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 2f958d56..81f8a3d4 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -379,6 +379,16 @@ const Map> localizedValues = {
"ar":
"السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."
},
+
+ "user-view-requester": {
+ "en": "User Wants To View Your Medical File",
+ "ar": "أشخاص يرغبون الاطلاع على ملفك الطبي"
+ },
+ "user-view": {
+ "en": "User Can View Your Medical File",
+ "ar": "أشخاص يمكنهم الاطلاع على ملفك الطبي"
+ },
+
"parking": {"en": "Parking", "ar": "مواقف"},
"alhabiServices": {"en": "HMG Service", "ar": "خدمات الحبيب"},
"parkingTitle": {
@@ -569,6 +579,15 @@ const Map> localizedValues = {
"All":{"en":"All","ar":"الكل"},
"QuestionHere":{"en":"Enter the question here...","ar":"اضف الاستفسار هنا"},
"ViewDoctorResponses":{"en":"View Doctor Responses","ar":"الاطلاع على ردود الأطباء"},
-
+ "ServiceInformationButton":{"en":"LOGIN / REGISTER","ar":"دخول / تسجيل"},
+ "ServiceInformationTitle":{"en":"Service Information","ar":"معلومات الخدمة"},
+ "info-lab": {
+ "en": "This service allows you to view the results of all laboratory tests performed in Al Habib Medical Group as well as sending the report via e-mail.",
+ "ar": "خدمة نتائج المختبر: هذه الخدمة تمكنك من الاطلاع على نتائج جميع الفحوصات المخبرية التي تمت في مجموعة الحبيب الطبية."
+ },
+ "info-radiology": {
+ "en": "This service allows you to view the reports and photos of radiology in Al Habib Medical Group as well as send the report by e-mail.",
+ "ar": "خدمة الاشعة: هذه الخدمة تمكنك من الاطلاع على تقارير وصور الاشعة التي تمت في مجموعة الحبيب الطبية وكذلك ارسال التقرير عن طريق الايميل."
+ },
};
diff --git a/lib/config/shared_pref_kay.dart b/lib/config/shared_pref_kay.dart
index 8087a7f1..7422052d 100644
--- a/lib/config/shared_pref_kay.dart
+++ b/lib/config/shared_pref_kay.dart
@@ -14,4 +14,5 @@ const FAMILY_FILE = 'family-file';
const USER_LAT = 'user-lat';
const USER_LONG = 'user-long';
const IS_GO_TO_PARKING = 'IS_GO_TO_PARKING';
+const IS_SEARCH_APPO = 'is-search-appo';
const IS_LIVECARE_APPOINTMENT = 'is_livecare_appointment';
diff --git a/lib/core/enum/Ambulate.dart b/lib/core/enum/Ambulate.dart
new file mode 100644
index 00000000..f8b2e8be
--- /dev/null
+++ b/lib/core/enum/Ambulate.dart
@@ -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;
+ }
+}
diff --git a/lib/core/enum/OrderService.dart b/lib/core/enum/OrderService.dart
new file mode 100644
index 00000000..e6ce24eb
--- /dev/null
+++ b/lib/core/enum/OrderService.dart
@@ -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;
+ }
+}
diff --git a/lib/core/model/childvaccines/create_new_user_model.dart b/lib/core/model/childvaccines/create_new_user_model.dart
new file mode 100644
index 00000000..980567e2
--- /dev/null
+++ b/lib/core/model/childvaccines/create_new_user_model.dart
@@ -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 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 toJson() {
+ final Map data = new Map();
+ 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;
+ }
+}
\ No newline at end of file
diff --git a/lib/core/model/childvaccines/delete_baby_model.dart b/lib/core/model/childvaccines/delete_baby_model.dart
new file mode 100644
index 00000000..9274b1e8
--- /dev/null
+++ b/lib/core/model/childvaccines/delete_baby_model.dart
@@ -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 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 toJson() {
+ final Map data = new Map();
+ 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;
+ }
+}
\ No newline at end of file
diff --git a/lib/core/model/er/PatientAllPresOrders.dart b/lib/core/model/er/PatientAllPresOrders.dart
new file mode 100644
index 00000000..90ce074a
--- /dev/null
+++ b/lib/core/model/er/PatientAllPresOrders.dart
@@ -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 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 toJson() {
+ final Map data = new Map();
+ 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;
+ }
+}
diff --git a/lib/core/model/er/PatientER.dart b/lib/core/model/er/PatientER.dart
new file mode 100644
index 00000000..d0827311
--- /dev/null
+++ b/lib/core/model/er/PatientER.dart
@@ -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 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 toJson() {
+ final Map data = new Map();
+ 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;
+ }
+}
diff --git a/lib/core/model/er/PickUpRequestPresOrder.dart b/lib/core/model/er/PickUpRequestPresOrder.dart
new file mode 100644
index 00000000..9ce3e678
--- /dev/null
+++ b/lib/core/model/er/PickUpRequestPresOrder.dart
@@ -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 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 toJson() {
+ final Map data = new Map();
+ 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;
+ }
+}
diff --git a/lib/core/model/er/get_all_transportation_method_list_model.dart b/lib/core/model/er/get_all_transportation_method_list_model.dart
index 3402873e..ebc9caf7 100644
--- a/lib/core/model/er/get_all_transportation_method_list_model.dart
+++ b/lib/core/model/er/get_all_transportation_method_list_model.dart
@@ -1,23 +1,23 @@
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
-class PatientER_RRT_GetAllTransportationMethodListModel {
- int id;
+class PatientERTransportationMethod {
+ dynamic id;
DateTime createDate;
DateTime lastEditDate;
- int createdBy;
- int lastEditBy;
+ dynamic createdBy;
+ dynamic lastEditBy;
bool isActive;
String title;
String titleAR;
- int price;
- Null isDefault;
- int visibility;
- Null durationId;
+ dynamic price;
+ dynamic isDefault;
+ dynamic visibility;
+ dynamic durationId;
String description;
String descriptionAR;
- int totalPrice;
- int vAT;
+ dynamic totalPrice;
+ dynamic vAT;
- PatientER_RRT_GetAllTransportationMethodListModel(
+ PatientERTransportationMethod(
{
this.id,
this.createDate,
@@ -36,7 +36,7 @@ class PatientER_RRT_GetAllTransportationMethodListModel {
this.totalPrice,
this.vAT});
- PatientER_RRT_GetAllTransportationMethodListModel.fromJson(
+ PatientERTransportationMethod.fromJson(
Map json) {
id = json['Id'];
createDate = DateUtil.convertStringToDate(json['CreateDate']);
diff --git a/lib/core/service/AuthenticatedUserObject.dart b/lib/core/service/AuthenticatedUserObject.dart
index 1aaa4755..600e17e1 100644
--- a/lib/core/service/AuthenticatedUserObject.dart
+++ b/lib/core/service/AuthenticatedUserObject.dart
@@ -2,16 +2,17 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
-class AuthenticatedUserObject{
+class AuthenticatedUserObject {
AuthenticatedUser user;
AppSharedPreferences sharedPref = AppSharedPreferences();
bool isLogin = false;
- AuthenticatedUserObject(){
+
+ AuthenticatedUserObject() {
getUser();
}
getUser() async {
- if (user==null) {
+ if (user == null) {
var userData = await sharedPref.getObject(USER_PROFILE);
if (userData != null) user = AuthenticatedUser.fromJson(userData);
}
@@ -20,4 +21,7 @@ class AuthenticatedUserObject{
this.isLogin = isLogin != null;
}
+ logout() async {
+ isLogin = false;
+ }
}
diff --git a/lib/core/service/base_service.dart b/lib/core/service/base_service.dart
index f2820dc1..fdb80604 100644
--- a/lib/core/service/base_service.dart
+++ b/lib/core/service/base_service.dart
@@ -17,6 +17,7 @@ class BaseService {
AppSharedPreferences sharedPref = AppSharedPreferences();
BaseService() {
+ authenticatedUserObject.getUser();
user = authenticatedUserObject.user;
// getUser();
}
diff --git a/lib/core/service/childvaccines/add_new_child_service.dart b/lib/core/service/childvaccines/add_new_child_service.dart
index 22a081a3..5e4a4d86 100644
--- a/lib/core/service/childvaccines/add_new_child_service.dart
+++ b/lib/core/service/childvaccines/add_new_child_service.dart
@@ -1,26 +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 createNewBabyModelList = List();
+ List userModelList = List();
+ List newUserModelList = List();
- Future getCreateNewBabyOrders({ CreateNewBaby newChild}) async {
+
+ Future getCreateNewBabyOrders({CreateNewBaby newChild,int userID}) async {
hasError = false;
+ await getUser();
+ Map 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) {
- createNewBabyModelList.clear();
-
- response['List_UserInformationModel_New'].forEach((vital) {
- createNewBabyModelList.add(
- CreateNewBaby.fromJson(vital));
- });
- }, onFailure: (String error, int statusCode) {
- hasError = true;
- super.error = error;
- }, body: newChild.toJson());
+ var asd ="";
+ },
+ onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
}
-
-}
\ No newline at end of file
+}
diff --git a/lib/core/service/childvaccines/child_vaccines_service.dart b/lib/core/service/childvaccines/child_vaccines_service.dart
index 75a07338..09256f47 100644
--- a/lib/core/service/childvaccines/child_vaccines_service.dart
+++ b/lib/core/service/childvaccines/child_vaccines_service.dart
@@ -1,5 +1,6 @@
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';
@@ -8,22 +9,17 @@ import '../base_service.dart';
class ChildVaccinesService extends BaseService {
List babyInformationModelList = List();
List userInformationModelList = List();
+ int userID = 0;
- Map body = Map();
Future getAllBabyInformationOrders() async {
+ Map body = Map();
hasError = false;
-
body['isDentalAllowedBackend'] = false;
body['IsLogin'] = true;
-
- //body['UserID'] = userInformationModelList[0].userID;//AuthenticatedUser.fromJson(json['List'][0] //babyInformationModelList[0].userID;
- body['UserID'] = 46013;//42843;
-
-
- await baseAppClient.post(GET_BABYINFORMATION_REQUEST,
+ 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));
});
@@ -32,4 +28,29 @@ class ChildVaccinesService extends BaseService {
super.error = error;
}, body: body);
}
+
+ Future getNewUserOrders() async {
+ Map 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);
+ }
}
diff --git a/lib/core/service/childvaccines/delete_baby_service.dart b/lib/core/service/childvaccines/delete_baby_service.dart
new file mode 100644
index 00000000..115d13c5
--- /dev/null
+++ b/lib/core/service/childvaccines/delete_baby_service.dart
@@ -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 createNewBabyModelList = List();
+ List userModelList = List();
+ List newUserModelList = List();
+
+ List deleteBabyModelList= List();
+
+
+ Future getDeleteBabyOrder({DeleteBaby deleteChild,int babyID}) async {
+ hasError = false;
+ await getUser();
+ Map 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 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);
+ // }
+
+}
\ No newline at end of file
diff --git a/lib/core/service/childvaccines/get_vaccinations_item_services.dart b/lib/core/service/childvaccines/get_vaccinations_item_services.dart
index f7fe4662..5ff936af 100644
--- a/lib/core/service/childvaccines/get_vaccinations_item_services.dart
+++ b/lib/core/service/childvaccines/get_vaccinations_item_services.dart
@@ -11,17 +11,6 @@ class GetVccinationsItemsService extends BaseService {
Future getaccinationsitemOrders() 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) {
getVaccinationsItemModelList.clear();
diff --git a/lib/core/service/childvaccines/user_information_service.dart b/lib/core/service/childvaccines/user_information_service.dart
index 7651ef0f..0628920c 100644
--- a/lib/core/service/childvaccines/user_information_service.dart
+++ b/lib/core/service/childvaccines/user_information_service.dart
@@ -1,41 +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{
-
+class UserInformationService extends BaseService {
List userInformationModelList = List();
Map body = Map();
-
-
Future getUserInformationOrders() async {
hasError = false;
- await getUser();
- body['CreatedBy'] = 102;
- body['EditedBy'] = 102;
- body['EmailAddress'] = user.emailAddress;
- body['IsLogin'] =true;
- body['LogInTokenID'] = 'ZBGoQFUG50eQJd6Y7u1ykA==';
- body['MobileNumber'] = user.mobileNumber;
- body['NationalID'] = user.nationalityID;
- body['ZipCode'] = user.zipCode;
- body['isDentalAllowedBackend'] = 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);
+ 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);
}
-
-
-}
\ No newline at end of file
+}
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index f5494049..237245f8 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -15,7 +15,7 @@ AppSharedPreferences sharedPref = new AppSharedPreferences();
///await BaseAppClient.post('',
/// onSuccess: (dynamic response, int statusCode) {},
/// onFailure: (String error, int statusCode) {},
-/// body: null);
+/// body: Map();
class BaseAppClient {
post(String endPoint,
@@ -32,7 +32,9 @@ class BaseAppClient {
var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID')
- ? body['SetupID'] != null ? body['SetupID'] : SETUP_ID
+ ? body['SetupID'] != null
+ ? body['SetupID']
+ : SETUP_ID
: SETUP_ID;
}
body['VersionID'] = VERSION_ID;
@@ -41,7 +43,9 @@ class BaseAppClient {
body['IPAdress'] = IP_ADDRESS;
body['generalid'] = GENERAL_ID;
body['PatientOutSA'] = body.containsKey('PatientOutSA')
- ? body['PatientOutSA'] != null ? body['PatientOutSA'] : PATIENT_OUT_SA
+ ? body['PatientOutSA'] != null
+ ? body['PatientOutSA']
+ : PATIENT_OUT_SA
: PATIENT_OUT_SA;
if (body.containsKey('isDentalAllowedBackend')) {
@@ -55,30 +59,31 @@ class BaseAppClient {
body['DeviceTypeID'] = DeviceTypeID;
- if(!body.containsKey('IsPublicRequest')) {
+ if (!body.containsKey('IsPublicRequest')) {
body['PatientType'] = body.containsKey('PatientType')
- ? body['PatientType'] != null ? body['PatientType'] : PATIENT_TYPE
+ ? body['PatientType'] != null
+ ? body['PatientType']
+ : PATIENT_TYPE
: PATIENT_TYPE;
body['PatientTypeID'] = body.containsKey('PatientTypeID')
? body['PatientTypeID'] != null
- ? body['PatientTypeID']
- : PATIENT_TYPE_ID
+ ? body['PatientTypeID']
+ : PATIENT_TYPE_ID
: PATIENT_TYPE_ID;
if (user != null) {
body['TokenID'] = token;
body['PatientID'] =
- body['PatientID'] != null ? body['PatientID'] : user['PatientID'];
+ body['PatientID'] != null ? body['PatientID'] : user['PatientID'];
body['PatientOutSA'] = user['OutSA'];
- body['SessionID'] = getSessionId(token);
+ body['SessionID'] = SESSION_ID;//getSessionId(token);
}
}
print("URL : $url");
print("Body : ${json.encode(body)}");
- var asd="";
if (await Utils.checkConnection()) {
final response = await http.post(url.trim(),
body: json.encode(body),
@@ -139,6 +144,7 @@ class BaseAppClient {
}
String getSessionId(String id) {
- return id.replaceAll(RegExp('/[^a-zA-Z ]'), '');
+ ///return id.replaceAll(RegExp('/[^\w\s]/'), '');
+ // return id.replaceAll(RegExp('/[^a-zA-Z ]'), '');
}
}
diff --git a/lib/core/service/er/am_service.dart b/lib/core/service/er/am_service.dart
index 181ad37b..b654e0eb 100644
--- a/lib/core/service/er/am_service.dart
+++ b/lib/core/service/er/am_service.dart
@@ -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 AmModelList = List();
- Map body = Map();
+ List amModelList = List();
+ List patientAllPresOrdersList = List();
+ bool hasPendingOrder = false;
+ int pendingOrderID = 0;
+ String pendingOrderStatus = "";
+ String pendingOrderStatusAR = "";
+ PickUpRequestPresOrder pickUpRequestPresOrder;
Future getAllTransportationOrders() async {
hasError = false;
-
+ Map 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 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());
+ }
}
diff --git a/lib/core/service/medical/medical_service.dart b/lib/core/service/medical/medical_service.dart
index 90230f6d..f90280cf 100644
--- a/lib/core/service/medical/medical_service.dart
+++ b/lib/core/service/medical/medical_service.dart
@@ -1,13 +1,20 @@
import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
import 'package:diplomaticquarterapp/core/service/base_service.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+import 'package:flutter/cupertino.dart';
class MedicalService extends BaseService {
List appoitmentAllHistoryResultList = List();
- getAppointmentHistory() async {
+ getAppointmentHistory({bool isActiveAppointment = false}) async {
hasError = false;
super.error = "";
+ Map body = Map();
+ if(isActiveAppointment) {
+ body['IsActiveAppointment'] = true;
+ body['isDentalAllowedBackend'] = false;
+ }
await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY,
onSuccess: (response, statusCode) async {
@@ -19,6 +26,23 @@ class MedicalService extends BaseService {
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
- }, body: Map());
+ }, body: body);
+ }
+
+ addAmbulanceRequest({@required PatientER patientER}) async {
+ hasError = false;
+ super.error = "";
+ Map body = Map();
+ body['RequesterFileNo'] = user.patientID;
+ body['RequesterMobileNo'] = user.mobileNumber;
+ body['RequesterIsOutSA'] = user.outSA;
+ await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY,
+ onSuccess: (response, statusCode) async {
+
+
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
}
}
diff --git a/lib/core/viewModels/base_view_model.dart b/lib/core/viewModels/base_view_model.dart
index 7e16d22d..18ab02e3 100644
--- a/lib/core/viewModels/base_view_model.dart
+++ b/lib/core/viewModels/base_view_model.dart
@@ -18,6 +18,7 @@ class BaseViewModel extends ChangeNotifier {
AuthenticatedUser user;
AppSharedPreferences sharedPref = AppSharedPreferences();
+ AuthenticatedUserObject authenticatedUserObject = locator();
void setState(ViewState viewState) {
_state = viewState;
diff --git a/lib/core/viewModels/child_vaccines/add_new_child_view_model.dart b/lib/core/viewModels/child_vaccines/add_new_child_view_model.dart
index 26355bd7..eebaca02 100644
--- a/lib/core/viewModels/child_vaccines/add_new_child_view_model.dart
+++ b/lib/core/viewModels/child_vaccines/add_new_child_view_model.dart
@@ -1,28 +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{
+class AddNewChildViewModel extends BaseViewModel {
CreteNewBabyService _creteNewBabyService = locator();
-
-
-
- List get creteNewBabyModelList=> _creteNewBabyService.createNewBabyModelList;
- getNewBabyOrders({ CreateNewBaby newChild}) async {
+ ChildVaccinesService _childVaccinesService = locator();
+ // DeleteBabyService _deleteBabyService = locator();
+ bool isAdded = false;
+ ///create new baby
+ createNewBabyOrders({ CreateNewBaby newChild}) async {
setState(ViewState.Busy);
-
- await _creteNewBabyService.getCreateNewBabyOrders(newChild: newChild);
-
- if ( _creteNewBabyService.hasError) {
- error = _creteNewBabyService.error;
+ await _creteNewBabyService.getCreateNewBabyOrders(newChild: newChild, userID: _childVaccinesService.userID);
+ if (_creteNewBabyService.hasError) {
+ error = _creteNewBabyService.error;
setState(ViewState.Error);
- } else
+ } else {
+ isAdded = true;
setState(ViewState.Idle);
+ await _childVaccinesService.getAllBabyInformationOrders();
+ if (_childVaccinesService.hasError) {
+ error = _childVaccinesService.error;
+ setState(ViewState.Error);
+ } else{
+
+ }
+ }
}
+
+
+
+
}
diff --git a/lib/core/viewModels/child_vaccines/child_vaccines_view_model.dart b/lib/core/viewModels/child_vaccines/child_vaccines_view_model.dart
index e6a8ca60..7c4af285 100644
--- a/lib/core/viewModels/child_vaccines/child_vaccines_view_model.dart
+++ b/lib/core/viewModels/child_vaccines/child_vaccines_view_model.dart
@@ -1,24 +1,43 @@
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();
+ List get babyInformationModelList=> _childVaccinesService.babyInformationModelList;
- ChildVaccinesService _childVaccinesService = locator();
+//===========
+ CreteNewBabyService _creteNewBabyService = locator();
+ DeleteBabyService _deleteBabyService = locator();
+ bool isAdded = false;
+ bool isDeleted = false;
+ //============
- List get babyInformationModelList=> _childVaccinesService.babyInformationModelList;//BabyInformationModelList;
- getBabyInformatioRequestOrders() async {
+
+ 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);
@@ -26,4 +45,29 @@ class ChildVaccinesViewModel extends BaseViewModel{
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{
+
+ }
+ }
+ }
+
}
\ No newline at end of file
diff --git a/lib/core/viewModels/child_vaccines/user_information_view_model.dart b/lib/core/viewModels/child_vaccines/user_information_view_model.dart
index c362ef73..43269f42 100644
--- a/lib/core/viewModels/child_vaccines/user_information_view_model.dart
+++ b/lib/core/viewModels/child_vaccines/user_information_view_model.dart
@@ -11,11 +11,9 @@ class UserInformationViewModel extends BaseViewModel {
List get userInformationModelList =>
_userInformationService.userInformationModelList;
- getUserInformatioRequestOrders() async {
+ getUserInformationRequestOrders() async {
setState(ViewState.Busy);
-
await _userInformationService.getUserInformationOrders();
-
if (_userInformationService.hasError) {
error = _userInformationService.error;
setState(ViewState.Error);
diff --git a/lib/core/viewModels/er/am_request_view_model.dart b/lib/core/viewModels/er/am_request_view_model.dart
index db1acbf0..fbd3d95d 100644
--- a/lib/core/viewModels/er/am_request_view_model.dart
+++ b/lib/core/viewModels/er/am_request_view_model.dart
@@ -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();
+ HospitalService _hospitalService = locator();
+ MedicalService _medicalService = locator();
+ List get amRequestModeList =>
+ _amService.amModelList;
- AmService _amService = locator();
+ List get patientAllPresOrdersList =>
+ _amService.patientAllPresOrdersList;
- List get AmRequestModeList=>
- _amService.AmModelList;
+ List get appoitmentAllHistoryResultList =>
+ _medicalService.appoitmentAllHistoryResultList;
- getAmRequestOrders({int id, int projectID}) async {
- setState(ViewState.Busy);
+ List 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);
+ }
-}
\ No newline at end of file
+ Future getOrderDetails() async {
+ setState(ViewState.Busy);
+ await _amService.getOrderDetails();
+ if (_hospitalService.hasError) {
+ error = _hospitalService.error;
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
+}
diff --git a/lib/core/viewModels/medical/labs_view_model.dart b/lib/core/viewModels/medical/labs_view_model.dart
index 032aeb1e..8cbf0efc 100644
--- a/lib/core/viewModels/medical/labs_view_model.dart
+++ b/lib/core/viewModels/medical/labs_view_model.dart
@@ -21,52 +21,54 @@ class LabsViewModel extends BaseViewModel {
: _patientLabOrdersListHospital;
void getLabs() async {
- setState(ViewState.Busy);
- await _labsService.getPatientLabOrdersList();
- if (_labsService.hasError) {
- error = _labsService.error;
- setState(ViewState.Error);
- } else {
- _labsService.patientLabOrdersList.forEach((element) {
- List patientLabOrdersClinic =
- _patientLabOrdersListClinic
- .where((elementClinic) =>
- elementClinic.filterName == element.clinicDescription)
- .toList();
+ if (authenticatedUserObject.isLogin) {
+ setState(ViewState.Busy);
+ await _labsService.getPatientLabOrdersList();
+ if (_labsService.hasError) {
+ error = _labsService.error;
+ setState(ViewState.Error);
+ } else {
+ _labsService.patientLabOrdersList.forEach((element) {
+ List patientLabOrdersClinic =
+ _patientLabOrdersListClinic
+ .where((elementClinic) =>
+ elementClinic.filterName == element.clinicDescription)
+ .toList();
- if (patientLabOrdersClinic.length != 0) {
- _patientLabOrdersListClinic[_patientLabOrdersListClinic
- .indexOf(patientLabOrdersClinic[0])]
- .patientLabOrdersList
- .add(element);
- } else {
- _patientLabOrdersListClinic.add(PatientLabOrdersList(
- filterName: element.clinicDescription,
- patientDoctorAppointment: element));
- }
+ if (patientLabOrdersClinic.length != 0) {
+ _patientLabOrdersListClinic[_patientLabOrdersListClinic
+ .indexOf(patientLabOrdersClinic[0])]
+ .patientLabOrdersList
+ .add(element);
+ } else {
+ _patientLabOrdersListClinic.add(PatientLabOrdersList(
+ filterName: element.clinicDescription,
+ patientDoctorAppointment: element));
+ }
- // doctor list sort via project
- List patientLabOrdersHospital =
- _patientLabOrdersListHospital
- .where(
- (elementClinic) =>
- elementClinic.filterName == element.projectName,
- )
- .toList();
+ // doctor list sort via project
+ List patientLabOrdersHospital =
+ _patientLabOrdersListHospital
+ .where(
+ (elementClinic) =>
+ elementClinic.filterName == element.projectName,
+ )
+ .toList();
- if (patientLabOrdersHospital.length != 0) {
- _patientLabOrdersListHospital[_patientLabOrdersListHospital
- .indexOf(patientLabOrdersHospital[0])]
- .patientLabOrdersList
- .add(element);
- } else {
- _patientLabOrdersListHospital.add(PatientLabOrdersList(
- filterName: element.projectName,
- patientDoctorAppointment: element));
- }
- });
+ if (patientLabOrdersHospital.length != 0) {
+ _patientLabOrdersListHospital[_patientLabOrdersListHospital
+ .indexOf(patientLabOrdersHospital[0])]
+ .patientLabOrdersList
+ .add(element);
+ } else {
+ _patientLabOrdersListHospital.add(PatientLabOrdersList(
+ filterName: element.projectName,
+ patientDoctorAppointment: element));
+ }
+ });
- setState(ViewState.Idle);
+ setState(ViewState.Idle);
+ }
}
}
diff --git a/lib/core/viewModels/medical/medical_view_model.dart b/lib/core/viewModels/medical/medical_view_model.dart
index fa330aad..f8b14c6e 100644
--- a/lib/core/viewModels/medical/medical_view_model.dart
+++ b/lib/core/viewModels/medical/medical_view_model.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/service/medical/medical_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
@@ -11,13 +12,15 @@ class MedicalViewModel extends BaseViewModel {
_medicalService.appoitmentAllHistoryResultList;
getAppointmentHistory() async {
- setState(ViewState.Busy);
- if (_medicalService.appoitmentAllHistoryResultList.length == 0)
- await _medicalService.getAppointmentHistory();
- if (_medicalService.hasError) {
- error = _medicalService.error;
- setState(ViewState.Error);
- } else
- setState(ViewState.Idle);
+ if (authenticatedUserObject.isLogin) {
+ setState(ViewState.Busy);
+ if (_medicalService.appoitmentAllHistoryResultList.length == 0)
+ await _medicalService.getAppointmentHistory();
+ if (_medicalService.hasError) {
+ error = _medicalService.error;
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
}
}
diff --git a/lib/locator.dart b/lib/locator.dart
index 46b97fce..e6140ce1 100644
--- a/lib/locator.dart
+++ b/lib/locator.dart
@@ -13,6 +13,7 @@ import 'core/service/blood/blood_details_servies.dart';
import 'core/service/blood/blood_donation_service.dart';
import 'core/service/childvaccines/add_new_child_service.dart';
import 'core/service/childvaccines/child_vaccines_service.dart';
+import 'core/service/childvaccines/delete_baby_service.dart';
import 'core/service/childvaccines/user_information_service.dart';
import 'core/service/childvaccines/vaccination_table_service.dart';
import 'core/service/contactus/finadus_service.dart';
@@ -123,6 +124,10 @@ void setupLocator() {
locator.registerLazySingleton(() => ChildVaccinesService());
locator.registerLazySingleton(() => UserInformationService());
locator.registerLazySingleton(() => CreteNewBabyService());
+ locator.registerLazySingleton(() => DeleteBabyService());
+
+
+
locator.registerLazySingleton(() => VaccinationTableService());
diff --git a/lib/main.dart b/lib/main.dart
index ec42e7a3..d8e3307d 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -66,7 +66,8 @@ class MyApp extends StatelessWidget {
hintColor: Colors.grey[400],
disabledColor: Colors.grey[300],
errorColor: Color.fromRGBO(235, 80, 60, 1.0),
- scaffoldBackgroundColor:Hexcolor('#E9E9E9'),// Colors.grey[100],
+ scaffoldBackgroundColor:
+ HexColor('#E9E9E9'), // Colors.grey[100],
textSelectionColor: Color.fromRGBO(80, 100, 253, 0.5),
textSelectionHandleColor: Colors.grey,
canvasColor: Colors.white,
@@ -74,9 +75,8 @@ class MyApp extends StatelessWidget {
highlightColor: Colors.grey[100].withOpacity(0.4),
splashColor: Colors.transparent,
primaryColor: Colors.grey,
- bottomSheetTheme:BottomSheetThemeData(
- backgroundColor: Hexcolor('#E0E0E0')
- ) ,
+ bottomSheetTheme: BottomSheetThemeData(
+ backgroundColor: HexColor('#E0E0E0')),
cursorColor: Colors.grey,
iconTheme: IconThemeData(),
appBarTheme: AppBarTheme(
diff --git a/lib/models/Appointments/DoctorListResponse.dart b/lib/models/Appointments/DoctorListResponse.dart
index 65d28910..4c7241c8 100644
--- a/lib/models/Appointments/DoctorListResponse.dart
+++ b/lib/models/Appointments/DoctorListResponse.dart
@@ -174,7 +174,9 @@ class PatientDoctorAppointmentList {
List patientDoctorAppointmentList = List();
PatientDoctorAppointmentList(
- {this.filterName, this.distanceInKMs, DoctorList patientDoctorAppointment}) {
+ {this.filterName,
+ this.distanceInKMs,
+ DoctorList patientDoctorAppointment}) {
patientDoctorAppointmentList.add(patientDoctorAppointment);
}
}
diff --git a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
index 00148889..ef0be383 100644
--- a/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart
@@ -17,66 +17,63 @@ import 'e_referral_page.dart';
class EReferralIndexPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return AppScaffold(
- isShowAppBar: true,
- appBarTitle: "Service Information",
- body: SingleChildScrollView(
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: "Service Information",
+ body: SingleChildScrollView(
padding: EdgeInsets.all(12),
- child:
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Texts(
- "E-Referral: ",
- fontWeight: FontWeight.normal,
- fontSize: 25,
- color: Hexcolor("#60686b"),
- ),
- SizedBox(
- height: 12,
- ),
- Texts(
- "This service allows you to submit a Referral request from any health care providers either inside or outside the kingdom of Saudi Arabia to any of HMG Hospitals, By filling some of the patient's data and attaching the medical reports, moreover you can track the request status (Under process, Accepted or Rejected)",
- fontWeight: FontWeight.normal,
- fontSize: 17,
- ),
- SizedBox(
- height: 22,
- ),
- Center(
- child: SizedBox(
- height: MediaQuery.of(context).size.height * 0.55,
- width: MediaQuery.of(context).size.width * 0.50,
- child: CarouselSlider(
- imagesUrlList: [
- "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/0.png",
- "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/1.png"
- ],
- ),
- ),
- ),
- SizedBox(
- height: 77,
- ),
- ],
- )
-
- ),
- bottomSheet: Container(
- height: MediaQuery.of(context).size.height * 0.10,
- width: double.infinity,
child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
- Container(
- width: MediaQuery.of(context).size.width * 0.9,
- child: SecondaryButton(
- onTap: ()=> Navigator.push(context, FadePage(page: EReferralPage())),
- label: "E-Referral",
- textColor: Theme.of(context).backgroundColor),
+ Texts(
+ "E-Referral: ",
+ fontWeight: FontWeight.normal,
+ fontSize: 25,
+ color: HexColor("#60686b"),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts(
+ "This service allows you to submit a Referral request from any health care providers either inside or outside the kingdom of Saudi Arabia to any of HMG Hospitals, By filling some of the patient's data and attaching the medical reports, moreover you can track the request status (Under process, Accepted or Rejected)",
+ fontWeight: FontWeight.normal,
+ fontSize: 17,
+ ),
+ SizedBox(
+ height: 22,
+ ),
+ Center(
+ child: SizedBox(
+ height: MediaQuery.of(context).size.height * 0.55,
+ width: MediaQuery.of(context).size.width * 0.50,
+ child: CarouselSlider(
+ imagesUrlList: [
+ "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/0.png",
+ "https://hmgwebservices.com/Images/MobileApp/images-info-home/referal/en/1.png"
+ ],
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 77,
),
],
- ),
-
- ));
+ )),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.10,
+ width: double.infinity,
+ child: Column(
+ children: [
+ Container(
+ width: MediaQuery.of(context).size.width * 0.9,
+ child: SecondaryButton(
+ onTap: () => Navigator.push(
+ context, FadePage(page: EReferralPage())),
+ label: "E-Referral",
+ textColor: Theme.of(context).backgroundColor),
+ ),
+ ],
+ ),
+ ));
}
}
diff --git a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
index e1bc0af7..f717ba8e 100644
--- a/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
+++ b/lib/pages/AlHabibMedicalService/all_habib_medical_service_page.dart
@@ -17,6 +17,7 @@ import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dar
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
+import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -41,6 +42,7 @@ class _AllHabibMedicalServiceState extends State {
return AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).alhabiServices,
+ isShowDecPage: false,
body: Column(
children: [
Expanded(
@@ -212,9 +214,8 @@ class _AllHabibMedicalServiceState extends State {
title: TranslationBase.of(context).todoList,
),
ServicesContainer(
- onTap: () => Navigator.push(
- context,
- FadePage(),
+ onTap: () => Navigator.of(context).pushNamed(
+ SYMPTOM_CHECKER,
),
imageLocation: 'assets/images/new-design/body_icon.png',
title: 'Symptom Checker'),
diff --git a/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart b/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
index 9ce35d27..68ce1936 100644
--- a/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/h2o_index_page.dart
@@ -23,7 +23,7 @@ class H2OPageIndexPage extends StatelessWidget {
"Water Tracker:",
fontWeight: FontWeight.normal,
fontSize: 25,
- color: Hexcolor("#60686b"),
+ color: HexColor("#60686b"),
),
SizedBox(
height: 12,
diff --git a/lib/pages/AlHabibMedicalService/h2o/today_page.dart b/lib/pages/AlHabibMedicalService/h2o/today_page.dart
index 55767e5a..b92efc9e 100644
--- a/lib/pages/AlHabibMedicalService/h2o/today_page.dart
+++ b/lib/pages/AlHabibMedicalService/h2o/today_page.dart
@@ -6,10 +6,11 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:percent_indicator/circular_percent_indicator.dart';
+
class TodayPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
- return BaseView(
+ return BaseView(
onModelReady: (model) => model.getUserProgressForTodayData(),
builder: (_, model, widget) => AppScaffold(
isShowAppBar: false,
@@ -27,11 +28,11 @@ class TodayPage extends StatelessWidget {
animation: true,
animationDuration: 1200,
lineWidth: 15.0,
- percent:model.userProgressData ==null ?0.0:
- (model.userProgressData.percentageConsumed /
- 100) >= 1 ? 1 : (model.userProgressData
- .percentageConsumed /
- 100),
+ percent: model.userProgressData == null
+ ? 0.0
+ : (model.userProgressData.percentageConsumed / 100) >= 1
+ ? 1
+ : (model.userProgressData.percentageConsumed / 100),
//,
center: Center(
child: Column(
@@ -46,13 +47,16 @@ class TodayPage extends StatelessWidget {
SizedBox(
height: 4,
),
- Text(model.userProgressData ==null ?"0.0":
- model.userProgressData.quantityConsumed
- .toString() + 'ml',
+ Text(
+ model.userProgressData == null
+ ? "0.0"
+ : model.userProgressData.quantityConsumed
+ .toString() +
+ 'ml',
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 20.0,
- color: Hexcolor("#60BCF9")),
+ color: HexColor("#60BCF9")),
),
SizedBox(
height: 4,
@@ -60,9 +64,7 @@ class TodayPage extends StatelessWidget {
SizedBox(
height: 5,
width: 50,
- child: Container(
-
- ),
+ child: Container(),
),
SizedBox(
height: 4,
@@ -74,23 +76,28 @@ class TodayPage extends StatelessWidget {
SizedBox(
height: 4,
),
- Text(model.userProgressData ==null ?"0.0":
- (model.userProgressData.quantityLimit -
- model.userProgressData
- .quantityConsumed) < 0 ? "0 ml" :
- (model.userProgressData.quantityLimit -
- model.userProgressData
- .quantityConsumed).toString() + ' ml',
+ Text(
+ model.userProgressData == null
+ ? "0.0"
+ : (model.userProgressData.quantityLimit -
+ model.userProgressData
+ .quantityConsumed) <
+ 0
+ ? "0 ml"
+ : (model.userProgressData.quantityLimit -
+ model.userProgressData
+ .quantityConsumed)
+ .toString() +
+ ' ml',
style: TextStyle(
- fontWeight: FontWeight.bold,
- fontSize: 18.0),
+ fontWeight: FontWeight.bold, fontSize: 18.0),
),
],
),
),
circularStrokeCap: CircularStrokeCap.butt,
- backgroundColor: Hexcolor("#D1E3F6"),
- progressColor: Hexcolor("#60BCF9"),
+ backgroundColor: HexColor("#D1E3F6"),
+ progressColor: HexColor("#60BCF9"),
),
),
Row(
@@ -105,9 +112,9 @@ class TodayPage extends StatelessWidget {
height: 30,
width: 70,
decoration: BoxDecoration(
- color: Hexcolor("#D1E3F6"),
- borderRadius: BorderRadius.all(
- Radius.circular(30))),
+ color: HexColor("#D1E3F6"),
+ borderRadius:
+ BorderRadius.all(Radius.circular(30))),
),
),
Text(
@@ -125,9 +132,9 @@ class TodayPage extends StatelessWidget {
height: 30,
width: 70,
decoration: BoxDecoration(
- color: Hexcolor("#60BCF9"),
- borderRadius: BorderRadius.all(
- Radius.circular(30))),
+ color: HexColor("#60BCF9"),
+ borderRadius:
+ BorderRadius.all(Radius.circular(30))),
),
),
Text(
@@ -143,10 +150,7 @@ class TodayPage extends StatelessWidget {
),
SizedBox(
height: 0.5,
- width: MediaQuery
- .of(context)
- .size
- .width,
+ width: MediaQuery.of(context).size.width,
child: Container(
color: Colors.grey,
),
@@ -163,4 +167,3 @@ class TodayPage extends StatelessWidget {
);
}
}
-
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart
index 62729222..c84053c5 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmi_calculator/bmi_calculator.dart
@@ -1,4 +1,3 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/bmi_calculator/result_page.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';
@@ -6,6 +5,8 @@ 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);
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
index 05d3d07a..1af0f949 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
@@ -1,10 +1,11 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_result_page.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 'dart:math';
+import 'bmr_result_page.dart';
+
const activeCardColorGender = Color(0xffC5272D);
const inactiveCardColorGender = Color(0xffFAFAFd);
const activeCardColor = Color(0xff70777A);
@@ -207,7 +208,7 @@ class _BmrCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -306,7 +307,7 @@ class _BmrCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -481,7 +482,7 @@ class _BmrCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
index 4a939b3f..91847e37 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
@@ -1,10 +1,11 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat_result_page.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 'dart:math';
+import 'body_fat_result_page.dart';
+
const activeCardColorGender = Color(0xffC5272D);
const inactiveCardColorGender = Color(0xffFAFAFd);
const activeCardColor = Color(0xff70777A);
@@ -285,98 +286,101 @@ class _BodyFatState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(heightCm.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(heightCm.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ width: 0.5,
+ ),
+ ),
+ ),
+ child: InkWell(
+ child: Icon(
+ Icons.arrow_drop_up,
+ size: 18.0,
),
+ onTap: () {
+ setState(() {
+ if (heightCm < 250)
+ heightCm++;
+ });
+ },
),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (heightCm < 250)
- heightCm++;
+ if (heightCm > 0)
+ heightCm--;
});
},
),
- ),
- InkWell(
- child: Icon(
- Icons.arrow_drop_down,
- size: 18.0,
- ),
- onTap: () {
- setState(() {
- if (heightCm > 0)
- heightCm--;
- });
- },
- ),
- ],
+ ],
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
),
- ),
- Expanded(
- child: Slider(
- value: heightCm.toDouble(),
- min: 0,
- max: 250,
- onChanged: (double newValue) {
- setState(() {
- heightCm = newValue.round();
- });
- },
- activeColor: Color(0xffC5272D),
- inactiveColor: Color(0xffF3C5C6),
+ Expanded(
+ child: Slider(
+ value: heightCm.toDouble(),
+ min: 0,
+ max: 250,
+ onChanged: (double newValue) {
+ setState(() {
+ heightCm = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
@@ -458,96 +462,99 @@ class _BodyFatState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(neck.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(neck.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ width: 0.5,
+ ),
+ ),
+ ),
+ child: InkWell(
+ child: Icon(
+ Icons.arrow_drop_up,
+ size: 18.0,
),
+ onTap: () {
+ setState(() {
+ if (neck < 60) neck++;
+ });
+ },
),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (neck < 60) neck++;
+ if (neck > 5) neck--;
});
},
),
- ),
- InkWell(
- child: Icon(
- Icons.arrow_drop_down,
- size: 18.0,
- ),
- onTap: () {
- setState(() {
- if (neck > 5) neck--;
- });
- },
- ),
- ],
+ ],
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
),
- ),
- Expanded(
- child: Slider(
- value: neck.toDouble(),
- min: 5,
- max: 60,
- onChanged: (double newValue) {
- setState(() {
- neck = newValue.round();
- });
- },
- activeColor: Color(0xffC5272D),
- inactiveColor: Color(0xffF3C5C6),
+ Expanded(
+ child: Slider(
+ value: neck.toDouble(),
+ min: 5,
+ max: 60,
+ onChanged: (double newValue) {
+ setState(() {
+ neck = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
@@ -629,96 +636,100 @@ class _BodyFatState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(waist.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(waist.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ width: 0.5,
+ ),
+ ),
+ ),
+ child: InkWell(
+ child: Icon(
+ Icons.arrow_drop_up,
+ size: 18.0,
),
+ onTap: () {
+ setState(() {
+ if (waist < 200)
+ waist++;
+ });
+ },
),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (waist < 200) waist++;
+ if (waist > 5) waist--;
});
},
),
- ),
- InkWell(
- child: Icon(
- Icons.arrow_drop_down,
- size: 18.0,
- ),
- onTap: () {
- setState(() {
- if (waist > 5) waist--;
- });
- },
- ),
- ],
+ ],
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
),
- ),
- Expanded(
- child: Slider(
- value: waist.toDouble(),
- min: 5,
- max: 200,
- onChanged: (double newValue) {
- setState(() {
- waist = newValue.round();
- });
- },
- activeColor: Color(0xffC5272D),
- inactiveColor: Color(0xffF3C5C6),
+ Expanded(
+ child: Slider(
+ value: waist.toDouble(),
+ min: 5,
+ max: 200,
+ onChanged: (double newValue) {
+ setState(() {
+ waist = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
@@ -800,96 +811,99 @@ class _BodyFatState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(hip.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(hip.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ Container(
+ decoration: BoxDecoration(
+ border: Border(
+ bottom: BorderSide(
+ width: 0.5,
+ ),
+ ),
+ ),
+ child: InkWell(
+ child: Icon(
+ Icons.arrow_drop_up,
+ size: 18.0,
),
+ onTap: () {
+ setState(() {
+ if (hip < 140) hip++;
+ });
+ },
),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (hip < 140) hip++;
+ if (hip > 5) hip--;
});
},
),
- ),
- InkWell(
- child: Icon(
- Icons.arrow_drop_down,
- size: 18.0,
- ),
- onTap: () {
- setState(() {
- if (hip > 5) hip--;
- });
- },
- ),
- ],
+ ],
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
),
- ),
- Expanded(
- child: Slider(
- value: hip.toDouble(),
- min: 5,
- max: 140,
- onChanged: (double newValue) {
- setState(() {
- hip = newValue.round();
- });
- },
- activeColor: Color(0xffC5272D),
- inactiveColor: Color(0xffF3C5C6),
+ Expanded(
+ child: Slider(
+ value: hip.toDouble(),
+ min: 5,
+ max: 140,
+ onChanged: (double newValue) {
+ setState(() {
+ hip = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart
index ac1aacc3..4361425a 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart
@@ -1,9 +1,10 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_result_page.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 'calorie_result_page.dart';
+
const activeCardColorGender = Color(0xffC5272D);
const inactiveCardColorGender = Color(0xffFAFAFd);
const activeCardColor = Color(0xff70777A);
@@ -181,7 +182,7 @@ class _CalorieCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -280,7 +281,7 @@ class _CalorieCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -448,7 +449,7 @@ class _CalorieCalculatorState extends State {
Row(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
index 32ec9262..e273b075 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
@@ -1,13 +1,13 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart';
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/carbs/carbs_result_page.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 '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();
@@ -97,7 +97,7 @@ class _CarbsState extends State {
Column(
children: [
Container(
- width: 335.0,
+ width: 340.0,
height: 60.0,
decoration: BoxDecoration(
color: Colors.white,
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart
new file mode 100644
index 00000000..c9993b95
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart
@@ -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 {
+ 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,
+ )),
+ );
+ }
+ });
+ },
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart
new file mode 100644
index 00000000..fc53b044
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due_result_page.dart
@@ -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',
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
index f534416f..9bdbfb36 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
@@ -1,10 +1,11 @@
-import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body_result_page.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 'dart:math';
+import 'ideal_body_result_page.dart';
+
const activeCardColor = Color(0xff70777A);
const inactiveCardColor = Color(0xffFAFAFd);
@@ -29,7 +30,7 @@ class _IdealBodyState extends State {
double overWeightBy;
int weight = 0;
double idealWeight = 0;
- String dropdownValue;
+ String dropdownValue = 'Medium(fingers touch)';
double calories = 0;
String textResult = '';
double maxIdealWeight;
@@ -126,97 +127,100 @@ class _IdealBodyState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(height.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(height.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ 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++;
+ });
+ },
+ ),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (height < 250)
- height++;
+ if (height > 0) 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),
+ Expanded(
+ child: Slider(
+ value: height.toDouble(),
+ min: 0,
+ max: 250,
+ onChanged: (double newValue) {
+ setState(() {
+ height = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
@@ -304,97 +308,100 @@ class _IdealBodyState extends State {
),
Row(
children: [
- Container(
- width: 335.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,
+ 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: [
- Expanded(
- child: Center(
- child: Text(weight.toString()),
+ child: Row(
+ children: [
+ Expanded(
+ child: Center(
+ child: Text(weight.toString()),
+ ),
),
- ),
- Container(
- height: 38.0,
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.center,
- mainAxisAlignment:
- MainAxisAlignment.center,
- children: [
- Container(
- decoration: BoxDecoration(
- border: Border(
- bottom: BorderSide(
- width: 0.5,
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ 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++;
+ });
+ },
+ ),
),
- child: InkWell(
+ InkWell(
child: Icon(
- Icons.arrow_drop_up,
+ Icons.arrow_drop_down,
size: 18.0,
),
onTap: () {
setState(() {
- if (weight < 250)
- weight++;
+ if (weight > 0) 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),
+ Expanded(
+ child: Slider(
+ value: weight.toDouble(),
+ min: 0,
+ max: 250,
+ onChanged: (double newValue) {
+ setState(() {
+ weight = newValue.round();
+ });
+ },
+ activeColor: Color(0xffC5272D),
+ inactiveColor: Color(0xffF3C5C6),
+ ),
),
- ),
- ],
+ ],
+ ),
),
),
],
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart
new file mode 100644
index 00000000..1a272c11
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart
@@ -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 {
+ 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: [
+ Expanded(
+ child: Center(
+ child: Text(cycleLength.toString()),
+ ),
+ ),
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ 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: [
+ Expanded(
+ child: Center(
+ child:
+ Text(lutealPhaseLength.toString()),
+ ),
+ ),
+ Container(
+ height: 38.0,
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.center,
+ mainAxisAlignment:
+ MainAxisAlignment.center,
+ children: [
+ 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,
+ )),
+ );
+ }
+ });
+ },
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart
new file mode 100644
index 00000000..6669bf75
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_result_page.dart
@@ -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',
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/AlHabibMedicalService/ health_calculators.dart b/lib/pages/AlHabibMedicalService/ health_calculators.dart
index 97141716..d3bd4bed 100644
--- a/lib/pages/AlHabibMedicalService/ health_calculators.dart
+++ b/lib/pages/AlHabibMedicalService/ health_calculators.dart
@@ -1,5 +1,8 @@
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';
@@ -9,6 +12,7 @@ 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 {
@@ -233,10 +237,10 @@ class _HealthCalculatorsState extends State
flex: 1,
child: InkWell(
onTap: () {
- // Navigator.push(
- // context,
- // FadePage(page: BloodSugar()),
- // );
+ Navigator.push(
+ context,
+ FadePage(page: OvulationPeriod()),
+ );
},
child: MedicalProfileItem(
title: 'Ovulation',
@@ -249,12 +253,12 @@ class _HealthCalculatorsState extends State
flex: 1,
child: InkWell(
onTap: () {
- // Navigator.push(
- // context,
- // FadePage(
- // page: BloodCholesterol(),
- // ),
- // );
+ Navigator.push(
+ context,
+ FadePage(
+ page: DeliveryDue(),
+ ),
+ );
},
child: MedicalProfileItem(
title: 'Delivery',
diff --git a/lib/pages/Blood/my_balance_page.dart b/lib/pages/Blood/my_balance_page.dart
index 07d27e2d..26665c2b 100644
--- a/lib/pages/Blood/my_balance_page.dart
+++ b/lib/pages/Blood/my_balance_page.dart
@@ -39,7 +39,7 @@ class MyBalancePage extends StatelessWidget {
width: double.infinity,
height: 65,
decoration: BoxDecoration(
- color: Hexcolor('#B61422'),
+ color: HexColor('#B61422'),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(7),
),
@@ -97,7 +97,8 @@ class MyBalancePage extends StatelessWidget {
textColor: Colors.white,
label: TranslationBase.of(context).createAdvancedPayment,
onTap: () {
- Navigator.push(context,
+ Navigator.push(
+ context,
//FadePage(page: AdvancePaymentPage()));
FadePage(page: BloodDonationPage()));
},
diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart
index 2c7e723a..d6986f6f 100644
--- a/lib/pages/BookAppointment/DoctorProfile.dart
+++ b/lib/pages/BookAppointment/DoctorProfile.dart
@@ -47,16 +47,16 @@ class _DoctorProfileState extends State
vsync: this,
initialIndex: widget.isOpenAppt == true ? 1 : 0);
- event.controller.stream.listen((p) {
- if (p['clinic_id'] != null &&
- p['doctor_id'] != null &&
- p['project_id'] != null) {
- setState(() {
- // need to take the data from here
- // dropdownValue = p['clinic_id'];
- });
- }
- });
+ // event.controller.stream.listen((p) {
+ // if (p['clinic_id'] != null &&
+ // p['doctor_id'] != null &&
+ // p['project_id'] != null) {
+ // setState(() {
+ // // need to take the data from here
+ // // dropdownValue = p['clinic_id'];
+ // });
+ // }
+ // });
_tabController = new TabController(length: 2, vsync: this);
widget.authUser = new AuthenticatedUser();
widget.doctor.speciality = widget.docProfileList.specialty;
diff --git a/lib/pages/BookAppointment/Search.dart b/lib/pages/BookAppointment/Search.dart
index 08b49462..095d72a6 100644
--- a/lib/pages/BookAppointment/Search.dart
+++ b/lib/pages/BookAppointment/Search.dart
@@ -1,17 +1,18 @@
+import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/components/SearchByClinic.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/components/SearchByDoctor.dart';
import 'package:diplomaticquarterapp/uitl/location_util.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
+import 'package:diplomaticquarterapp/widgets/others/arrow_back.dart';
import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
class Search extends StatefulWidget {
final int type;
-
- Search({this.type = 0});
-
+ final List clnicIds;
+ Search({this.type = 0, this.clnicIds});
@override
_SearchState createState() => _SearchState();
}
@@ -29,24 +30,35 @@ class _SearchState extends State with TickerProviderStateMixin {
@override
Widget build(BuildContext context) {
+ AppGlobal.context = context;
return Scaffold(
- appBar: AppBar(
- bottom: TabBar(
- tabs: [
- Tab(text: TranslationBase.of(context).clinicName),
- Tab(
- text: TranslationBase.of(context).doctorName,
- )
- ],
- controller: _tabController,
- ),
- title: Text(TranslationBase.of(context).bookAppo,
- style: TextStyle(color: Colors.white)),
+ appBar: AppBar(
+ bottom: TabBar(
+ tabs: [
+ Tab(text: TranslationBase.of(context).clinicName),
+ Tab(
+ text: TranslationBase.of(context).doctorName,
+ )
+ ],
+ controller: _tabController,
+ ),
+ title: Text(TranslationBase.of(context).bookAppo,
+ style: TextStyle(color: Colors.white)),
+ leading: Builder(
+ builder: (BuildContext context) {
+ return ArrowBack();
+ },
),
- body: TabBarView(
- physics: NeverScrollableScrollPhysics(),
- children: [SearchByClinic(), SearchByDoctor()],
- controller: _tabController),
- bottomNavigationBar: BottomBarSearch());
+ ),
+ body: TabBarView(
+ physics: NeverScrollableScrollPhysics(),
+ children: [
+ SearchByClinic(
+ clnicIds: widget.clnicIds,
+ ),
+ SearchByDoctor()
+ ],
+ controller: _tabController),
+ );
}
}
diff --git a/lib/pages/BookAppointment/SearchResults.dart b/lib/pages/BookAppointment/SearchResults.dart
index 1ed1b6a0..055b0c41 100644
--- a/lib/pages/BookAppointment/SearchResults.dart
+++ b/lib/pages/BookAppointment/SearchResults.dart
@@ -1,6 +1,6 @@
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart';
-import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
+// import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -19,15 +19,9 @@ class SearchResults extends StatefulWidget {
}
class _SearchResultsState extends State {
- var event = RobotProvider();
+ // var event = RobotProvider();
List tempList = [];
- @override
- void initState() {
- event.controller.stream.listen((p) {});
- super.initState();
- }
-
@override
Widget build(BuildContext context) {
return AppScaffold(
@@ -42,9 +36,14 @@ class _SearchResultsState extends State {
...List.generate(
widget.patientDoctorAppointmentListHospital.length,
(index) => AppExpandableNotifier(
- title: widget
- .patientDoctorAppointmentListHospital[index].filterName + " - " +widget
- .patientDoctorAppointmentListHospital[index].distanceInKMs + " " + TranslationBase.of(context).km,
+ isExpand: index == 1 ? true : false,
+ title: widget.patientDoctorAppointmentListHospital[index]
+ .filterName +
+ " - " +
+ widget.patientDoctorAppointmentListHospital[index]
+ .distanceInKMs +
+ " " +
+ TranslationBase.of(context).km,
bodyWidget: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
diff --git a/lib/pages/BookAppointment/components/SearchByClinic.dart b/lib/pages/BookAppointment/components/SearchByClinic.dart
index 9c4d778f..9d833db1 100644
--- a/lib/pages/BookAppointment/components/SearchByClinic.dart
+++ b/lib/pages/BookAppointment/components/SearchByClinic.dart
@@ -11,10 +11,13 @@ import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service
import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:flutter/material.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart';
class SearchByClinic extends StatefulWidget {
+ final List clnicIds;
+ SearchByClinic({this.clnicIds});
@override
_SearchByClinicState createState() => _SearchByClinicState();
}
@@ -23,11 +26,11 @@ class _SearchByClinicState extends State {
bool nearestAppo = false;
String dropdownValue;
String projectDropdownValue;
- var event = RobotProvider();
+ // var event = RobotProvider();
List clinicsList = [];
List projectsList = [];
bool isMobileAppDentalAllow = false;
-
+ bool isLoaded = false;
@override
void initState() {
WidgetsBinding.instance.addPostFrameCallback((_) => getClinicsList());
@@ -56,40 +59,70 @@ class _SearchByClinicState extends State {
style: TextStyle(fontSize: 16.0, letterSpacing: 0.9)),
],
),
- Container(
- height: 60.0,
- decoration: BoxDecoration(
- color: Colors.white,
- border: Border.all(
- color: Colors.grey[400],
- width: 1.0,
- ),
- borderRadius: BorderRadius.circular(10),
- ),
- // margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 20.0),
- padding: EdgeInsets.all(8.0),
- width: MediaQuery.of(context).size.width,
- child: DropdownButtonHideUnderline(
- child: DropdownButton(
- hint: new Text("Select Clinic"),
- value: dropdownValue,
- items: clinicsList.map((item) {
- return new DropdownMenuItem(
- value: item.clinicID.toString(),
- child: new Text(item.clinicDescription),
- );
- }).toList(),
- onChanged: (newValue) {
- setState(() {
- dropdownValue = newValue;
- if (!isDentalSelectedAndSupported() && !nearestAppo) {
- projectDropdownValue = "";
- getDoctorsList(context);
- }
- });
- },
- ),
- )),
+ widget.clnicIds != null &&
+ widget.clnicIds.length > 1 &&
+ isLoaded == true
+ ? Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: clinicsList.map((result) {
+ return RoundedContainer(
+ child: ListTile(
+ onTap: () {
+ // setState(() {
+ dropdownValue = result.clinicID.toString();
+ setState(() {
+ if (!isDentalSelectedAndSupported()) {
+ projectDropdownValue = "";
+ getDoctorsList(context);
+ }
+ });
+ },
+ // trailing: Icon(TranslationBase.of(AppGlobal.context)
+ // .locale
+ // .languageCode ==
+ // 'en'
+ // ? Icons.keyboard_arrow_right
+ // : Icons.keyboard_arrow_left),
+ title: Text(result.clinicDescription,
+ style: TextStyle(
+ fontSize: 14.0,
+ color: Colors.grey[700],
+ letterSpacing: 1.0))));
+ }).toList())
+ : Container(
+ height: 60.0,
+ decoration: BoxDecoration(
+ color: Colors.white,
+ border: Border.all(
+ color: Colors.grey[400],
+ width: 1.0,
+ ),
+ borderRadius: BorderRadius.circular(10),
+ ),
+ // margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 20.0),
+ padding: EdgeInsets.all(8.0),
+ width: MediaQuery.of(context).size.width,
+ child: DropdownButtonHideUnderline(
+ child: DropdownButton(
+ hint: new Text("Select Clinic"),
+ value: dropdownValue,
+ items: clinicsList.map((item) {
+ return new DropdownMenuItem(
+ value: item.clinicID.toString(),
+ child: new Text(item.clinicDescription),
+ );
+ }).toList(),
+ onChanged: (newValue) {
+ setState(() {
+ dropdownValue = newValue;
+ if (!isDentalSelectedAndSupported() && !nearestAppo) {
+ projectDropdownValue = "";
+ getDoctorsList(context);
+ }
+ });
+ },
+ ),
+ )),
isDentalSelectedAndSupported() == true || nearestAppo
? Container(
height: 60.0,
@@ -168,6 +201,7 @@ class _SearchByClinicState extends State {
});
print(projectsList.length);
});
+ filterClinic();
} else {}
}).catchError((err) {
print(err);
@@ -254,4 +288,17 @@ class _SearchByClinicState extends State {
getProjectsList();
});
}
+
+ filterClinic() {
+ setState(() {
+ if (widget.clnicIds.length > 0) {
+ clinicsList = clinicsList
+ .where((i) => widget.clnicIds.indexOf(i.clinicID) > -1)
+ .toList();
+ isLoaded = true;
+
+ ///print(clinicsList);
+ }
+ });
+ }
}
diff --git a/lib/pages/BookAppointment/widgets/BranchView.dart b/lib/pages/BookAppointment/widgets/BranchView.dart
index 76741874..4ba5a9d3 100644
--- a/lib/pages/BookAppointment/widgets/BranchView.dart
+++ b/lib/pages/BookAppointment/widgets/BranchView.dart
@@ -27,9 +27,11 @@ class _BranchViewState extends State {
return AppScaffold(
appBarTitle: TranslationBase.of(context).bookAppo,
isShowAppBar: true,
+ isBottomBar: false,
body: new ListView.builder(
itemBuilder: (BuildContext context, int index) {
return new ExpandableListView(
+ isExpanded: index == 0 ? true : false,
result2: widget.result,
resultDistance: widget.resultDistance,
val: index,
@@ -46,9 +48,15 @@ class ExpandableListView extends StatefulWidget {
final List resultDistance;
final List doctorsList2;
final val;
-
+ static int doctorListheight = 0;
+ final bool isExpanded;
const ExpandableListView(
- {Key key, this.result2, this.resultDistance, this.val, this.doctorsList2})
+ {Key key,
+ this.result2,
+ this.resultDistance,
+ this.val,
+ this.doctorsList2,
+ this.isExpanded})
: super(key: key);
@override
@@ -57,9 +65,17 @@ class ExpandableListView extends StatefulWidget {
class _ExpandableListViewState extends State {
bool expandFlag = false;
-
+ @override
+ void initState() {
+ setState(() {
+ expandFlag = widget.isExpanded;
+ setDoctorViewHeight(widget.result2[widget.val].toString());
+ });
+ super.initState();
+ }
@override
Widget build(BuildContext context) {
+
return new Container(
width: MediaQuery.of(context).size.width * 0.6,
margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 0.0),
@@ -109,6 +125,10 @@ class _ExpandableListViewState extends State {
onPressed: () {
setState(() {
expandFlag = !expandFlag;
+ if (expandFlag == true) {
+ setDoctorViewHeight(
+ widget.result2[widget.val].toString());
+ }
});
}),
],
@@ -143,6 +163,11 @@ class _ExpandableListViewState extends State {
);
}
+ setDoctorViewHeight(name) {
+ ExpandableListView.doctorListheight =
+ widget.doctorsList2.where((e) => e.projectName == name).toList().length;
+ }
+
String getProjectDistance(String distance) {
if (distance != "0")
return " - " + distance + " " + TranslationBase.of(context).km;
@@ -150,6 +175,9 @@ class _ExpandableListViewState extends State {
return "";
}
}
+
+ sortByProject() {}
+ sortByClinic() {}
}
class ExpandableContainer extends StatelessWidget {
@@ -172,9 +200,12 @@ class ExpandableContainer extends StatelessWidget {
duration: new Duration(milliseconds: 500),
curve: Curves.easeInOut,
width: screenWidth,
- height: expanded ? MediaQuery.of(context).size.height : collapsedHeight,
+ height: expanded
+ ? (ExpandableListView.doctorListheight * 160).toDouble()
+ : collapsedHeight,
child: new Container(
child: child,
+ padding: EdgeInsets.only(bottom: 30),
decoration: new BoxDecoration(
border: new Border.all(width: 1.0, color: Colors.white)),
),
diff --git a/lib/pages/BookAppointment/widgets/DoctorView.dart b/lib/pages/BookAppointment/widgets/DoctorView.dart
index 441b7e10..40c0e2fc 100644
--- a/lib/pages/BookAppointment/widgets/DoctorView.dart
+++ b/lib/pages/BookAppointment/widgets/DoctorView.dart
@@ -14,6 +14,7 @@ class DoctorView extends StatelessWidget {
bool isLiveCareAppointment;
+
DoctorView({@required this.doctor, @required this.isLiveCareAppointment});
@override
diff --git a/lib/pages/ChildVaccines/add_newchild_page.dart b/lib/pages/ChildVaccines/add_newchild_page.dart
index f2970cad..51b89f98 100644
--- a/lib/pages/ChildVaccines/add_newchild_page.dart
+++ b/lib/pages/ChildVaccines/add_newchild_page.dart
@@ -1,6 +1,7 @@
import 'package:device_calendar/device_calendar.dart';
import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
import 'package:diplomaticquarterapp/core/model/childvaccines/add_newchild_model.dart';
+import 'package:diplomaticquarterapp/core/model/childvaccines/create_new_user_model.dart';
import 'package:diplomaticquarterapp/core/model/childvaccines/user_information_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/add_new_child_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart';
@@ -19,8 +20,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
-
-
enum Gender { Male, Female, NON }
enum BeneficiaryType { MyAccount, MyFamilyFiles, OtherAccount, NON }
@@ -56,6 +55,7 @@ class AddNewChildPage extends StatefulWidget {
DateTime.now().day, (hour * count)));
}
}
+
@override
_AddNewChildPageState createState() => _AddNewChildPageState();
}
@@ -75,15 +75,17 @@ class _AddNewChildPageState extends State {
TextEditingController _notesTextController = TextEditingController();
BeneficiaryType beneficiaryType = BeneficiaryType.NON;
Gender gender = Gender.Male;
+ CreateNewUser_New newUserChild = CreateNewUser_New();
+
//ChildVaccinesViewModel addvancedModel = ChildVaccinesViewModel();
List_BabyInformationModel addvancedModel = List_BabyInformationModel();
- CreateNewBaby newChild=CreateNewBaby();
- List_UserInformationModel informationModel =List_UserInformationModel();
+ CreateNewBaby newChild = CreateNewBaby();
+ List_UserInformationModel informationModel = List_UserInformationModel();
@override
Widget build(BuildContext context) {
return BaseView(
- builder: (_,model,w)=> AppScaffold(
+ builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
appBarTitle: "Vaccintion",
body: SingleChildScrollView(
@@ -97,7 +99,8 @@ class _AddNewChildPageState extends State {
height: 50,
),
Texts(
- "Add the child's information below to recieve the schedule of vaccinations.", //+model.user.firstName,
+ "Add the child's information below to recieve the schedule of vaccinations.",
+ //+model.user.firstName,
textAlign: TextAlign.center,
),
SizedBox(
@@ -130,22 +133,25 @@ class _AddNewChildPageState extends State {
height: MediaQuery.of(context).size.height * 0.12,
width: double.infinity,
padding: EdgeInsets.all(12),
+
+
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
height: MediaQuery.of(context).size.height * 0.12,
- width: 170,
+ width: 175,
+ color: Colors.white,
child: SecondaryButton(
textColor:
- checkedValue == 1 ? Colors.white : Colors.black,
+ checkedValue == 1 ? Colors.white : Colors.black,
color: checkedValue == 1 ? Colors.red : Colors.white,
label: "Male",
//
onTap: () {
- // bloodDetails.city=_selectedHospital.toString();
+
setState(() {
checkedValue = 1;
print("checkedValue=" + checkedValue.toString());
@@ -157,10 +163,11 @@ class _AddNewChildPageState extends State {
),
Container(
height: MediaQuery.of(context).size.height * 0.12,
- width: 170,
+ width: 175,
+ color: Colors.white,
child: SecondaryButton(
textColor:
- checkedValue == 2 ? Colors.white : Colors.black,
+ checkedValue == 2 ? Colors.white : Colors.black,
color: checkedValue == 2 ? Colors.red : Colors.white,
label: "Female",
//
@@ -220,9 +227,8 @@ class _AddNewChildPageState extends State {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(//getStartDay()
- // DateUtil.yearMonthDay(DateTime.now())
- getStartDay()
- ),
+ // DateUtil.yearMonthDay(DateTime.now())
+ getStartDay()),
Icon(
Icons.calendar_today,
color: Colors.black,
@@ -234,62 +240,47 @@ class _AddNewChildPageState extends State {
SizedBox(
height: 12,
),
- //=========
- ],
- ),
- ),
- ),
- bottomSheet: Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
- padding: EdgeInsets.all(12),
- child: SecondaryButton(
- textColor: Colors.white,
- color: checkedValue == false
- ? Colors.white24
- : Color.fromRGBO(
- 63,
- 72,
- 74,
- 1,
- ),
- label: "Add",
- //
- onTap: () {
-
- newChild.babyName =
- _firstTextController.text + " " + _secondTextController.text;
- newChild.gender = checkedValue.toString();
- newChild.strDOB=getStartDay() ;
- newChild.alertBy=addvancedModel.alertBy;
- newChild.createdBy=informationModel.createdBy ;
- newChild.editedBy=informationModel.createdBy;
- newChild.tempValue=true;
- // newChild.userID=46013;//informationModel.userID;
- newChild.isLogin=true;
- //newChild.tokenID='qMgbP94U23RkXtWWT0Sw==';
- //'ZBGoQFUG50eQJd6Y7u1ykA==';
-
-
- model.getNewBabyOrders(newChild: newChild);
-
+ Container(
+ height: MediaQuery.of(context).size.height * 0.12,
+ width: double.infinity,
+ padding: EdgeInsets.all(15),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: checkedValue == false
+ ? Colors.white24
+ : Color.fromRGBO(
+ 63,
+ 72,
+ 74,
+ 1,
+ ),
+ label: "Add",
+ //
+ onTap: () async{
+ newChild.babyName = _firstTextController.text + " " + _secondTextController.text;
+ newChild.gender = checkedValue.toString();
+ newChild.strDOB = getStartDay();
+ newChild.tempValue = true;
+ newChild.isLogin = true;
+ await model.createNewBabyOrders(newChild: newChild);
+ if(model.isAdded){
+ AppToast.showSuccessToast(message: "Record Added");
+ Navigator.pop(context,model.isAdded);
+ }else{
- AppToast.showSuccessToast(message: "Record Added");
- //============
- Navigator.push(
- context,
- FadePage(
- page: ChildPage(),
+ //TODO handling error
+ }
+ },
+ ),
),
- );
- //==============
-
- // bloodDetails.
- },
+ //=========
+ ],
+ ),
),
),
+ // bottomSheet:
),
);
}
diff --git a/lib/pages/ChildVaccines/child_page.dart b/lib/pages/ChildVaccines/child_page.dart
index 6a937aad..806a5b71 100644
--- a/lib/pages/ChildVaccines/child_page.dart
+++ b/lib/pages/ChildVaccines/child_page.dart
@@ -1,8 +1,10 @@
import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart';
+import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/add_newchild_page.dart';
import 'package:diplomaticquarterapp/pages/ChildVaccines/vaccinationtable_page.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -11,140 +13,190 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
-class ChildPage extends StatefulWidget {
-
+import 'dialogs/delete_child.dart';
+class ChildPage extends StatefulWidget {
@override
_ChildPageState createState() => _ChildPageState();
}
-class _ChildPageState extends State with SingleTickerProviderStateMixin {
+class _ChildPageState extends State
+ with SingleTickerProviderStateMixin {
+
+ DeleteBaby deleteBaby = DeleteBaby();
+
@override
Widget build(BuildContext context) {
- var checkedValue= true;
+ var checkedValue = true;
return BaseView(
- onModelReady: (model) => model.getBabyInformatioRequestOrders(),//model.getCOC(),getFindUsRequestOrders()
- builder: (_, model, widget) => AppScaffold(
- isShowAppBar: true,
- appBarTitle: " Vaccination",
- baseViewModel: model,
- body: SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.only(left: 15,right: 15,top: 70),
- child: Column(
- children: [
- ...List.generate(model.babyInformationModelList.length, (index) =>
- Container(
- decoration: BoxDecoration(
- shape: BoxShape.rectangle,
- border: Border.all(color: Colors.white, width: 0.5),
- borderRadius: BorderRadius.all(Radius.circular(5)),
- color: Colors.white,
-
- ),
- padding: EdgeInsets.all(12),
+ onModelReady: (model) => model.getNewUserOrders(),
+ builder: (_, model, widget) => AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: " Vaccination",
+ baseViewModel: model,
+ body: SingleChildScrollView(
+ child: Container(
+ margin: EdgeInsets.only(left: 15, right: 15, top: 70),
+ child: Column(
+ children: [
+ ...List.generate(
+ model.babyInformationModelList.length,
+ (index) => Container(
+ margin: EdgeInsets.only(
+ left: 0, right: 0, bottom: 20),
+
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ border: Border.all(
+ color: Colors.white, width: 0.5),
+ borderRadius:
+ BorderRadius.all(Radius.circular(5)),
+ color: Colors.white,
+ ),
+ padding: EdgeInsets.all(12),
+ width: 200,//double.infinity,
+ child: Column(
+ children: [
+ Row(children: [
+ Texts("CHILD NAME"),
+ ]),
+ Row(children: [
+ Texts(model
+ .babyInformationModelList[index]
+ .babyName
+ .trim()),
+ ]),
+ Row(children: [
+ IconButton(
+ icon: Image.asset(model
+ .babyInformationModelList[
+ index]
+ .gender ==
+ 1
+ ? 'assets/images/new-design/male.png'
+ : 'assets/images/new-design/female.png'),
+ tooltip: '',
+ onPressed: () {
+ setState(() {
+ // _volume += 10;
+ // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
+ });
+ },
+ ),
+ Texts(model
+ .babyInformationModelList[index]
+ .genderDescription),
+ IconButton(
+ icon: Icon(
+ Icons.remove_red_eye,
+ color: Colors.red,
+ ),
+ tooltip: '',
+ onPressed: () {
+ Navigator.push(
+ context,
+ FadePage(
+
+
+ page: VaccinationTablePage(),
+
+
+ ),
+ );
+
+ },
+ )
+ ]),
+ Row(children: [
+ Texts("Birthday"),
+ ]),
+ Row(children: [
+ IconButton(
+ icon: new Image.asset(
+ 'assets/images/new-design/calender-secondary.png'),
+ tooltip: '',
+ onPressed: () {
+ setState(() {
+
+ });
+ },
+ ),
+ Texts(DateUtil.yearMonthDay(model
+ .babyInformationModelList[index]
+ .dOB)),
+ ]),
+ Row(children: [
+ IconButton(
+ icon: new Image.asset(
+ 'assets/images/new-design/garbage.png'),
+ tooltip: '',
+ onPressed: ()async {
+
+ //=====================
+ await model.deleteBabyOrders(newChild:deleteBaby );
+
+
+ deleteBaby.babyID=model.babyInformationModelList[index]
+ .babyID;
+
+ await model.deleteBabyOrders(newChild:deleteBaby );
+ if(model.isDeleted){
+ AppToast.showSuccessToast(message: "Record Deleted");
+ Navigator.pop(context,model.isDeleted);
+ }else{
+
+ //TODO handling error
+ }
+
+
+
+
+
+ },
+ ),
+ Texts("Delete"),
+ ]),
+ SizedBox(
+ height: 12,
+ ),
+ ],
+ ),
+
+ ),
+
+
+ )
+ ],
+ ))
+ ),
+ bottomSheet: Container(
+ height: MediaQuery.of(context).size.height * 0.12,
width: double.infinity,
- child: Column(
-
- children: [
- Row(children:[Texts("CHILD NAME"),]),
- Row(children:[Texts(model.babyInformationModelList[index].babyName.trim()),]),
-
- Row(
- children: [IconButton(
- icon: Image.asset(model.babyInformationModelList[index].gender==1? 'assets/images/new-design/male.png':'assets/images/new-design/female.png'),
- tooltip: '',
- onPressed: () {
- setState(() {
- // _volume += 10;
- // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- });
- },
- ),
- Texts(model.babyInformationModelList[index].genderDescription),
- IconButton(
- icon: Icon(Icons.remove_red_eye,color: Colors.red,),
- tooltip: 'Increase volume by 10',
- onPressed: () {
- Navigator.push(
- context,
- FadePage(
- page: VaccinationTablePage(),
-
- //ChildPage(babyInformationModelList:model.BabyInformationModelList)
- // HospitalsPage(
- // findusHospitalModelList: model.FindusHospitalModelList,
- // )
-
- ),
- );
- // setState(() {
- // // _volume += 10;
- // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- // });
- },
- )]
- ),
- Row(children:[Texts("Birthday"),]),
- Row(children:[IconButton(
- icon: new Image.asset('assets/images/new-design/calender-secondary.png'),
- tooltip: 'Increase volume by 10',
- onPressed: () {
- setState(() {
- // _volume += 10;
- // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- });
- },
- ),
- Texts(DateUtil.yearMonthDay(model.babyInformationModelList[index].dOB)),]),
- Row(children:[IconButton(
- icon: new Image.asset('assets/images/new-design/garbage.png'),
- tooltip: '',
- onPressed: () {
- setState(() {
- // _volume += 10;
- // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- });
- },
- ),
- Texts("Birthday"),]),
- ],
- )
-
-
- )
-
- )
-
- ],
-
-
- )
- )
- ),
- bottomSheet: Container(
- height: MediaQuery.of(context).size.height * 0.12,
- width: double.infinity,
-
- padding: EdgeInsets.all(12),
- child: SecondaryButton(
- textColor: Colors.white,
- color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
- label: "ADD NEW CHILD ",
- //
- onTap: () => Navigator.push(
- context,
- FadePage(
- page: AddNewChildPage(),
-
-
- ),
- ),
-
-
- ),
- ),
- )
- );
+ padding: EdgeInsets.all(15),
+ child: SecondaryButton(
+ textColor: Colors.white,
+ color: checkedValue == false
+ ? Colors.white24
+ : Color.fromRGBO(
+ 63,
+ 72,
+ 74,
+ 1,
+ ),
+ label: "ADD NEW CHILD ",
+ //
+ onTap: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => AddNewChildPage(),
+ ),
+ ).then((value) {
+ if (value) model.getNewUserOrders();
+ });
+ },
+ ),
+ ),
+ ));
}
}
diff --git a/lib/pages/ChildVaccines/child_vaccines_page.dart b/lib/pages/ChildVaccines/child_vaccines_page.dart
index ba4589a9..92f3a0be 100644
--- a/lib/pages/ChildVaccines/child_vaccines_page.dart
+++ b/lib/pages/ChildVaccines/child_vaccines_page.dart
@@ -29,7 +29,7 @@ class _ChildVaccinesPageState extends State
Widget build(BuildContext context) {
return BaseView(
- onModelReady: (model) => model.getUserInformatioRequestOrders(),
+ onModelReady: (model) => model.getUserInformationRequestOrders(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
baseViewModel: model,
@@ -50,7 +50,8 @@ class _ChildVaccinesPageState extends State
child: Texts("Welcome back",fontSize: 20,),
) ,
),
- Divider(color:Colors.black ,),
+ Divider(color:Colors.black , indent: 10,
+ endIndent: 10,),
SizedBox(
height: 20,
),
@@ -61,13 +62,17 @@ class _ChildVaccinesPageState extends State
) ,
),
- Divider(color:Colors.black ,),
+ Divider(color:Colors.black , indent: 10,
+ endIndent: 10,),
Padding(
padding: const EdgeInsets.all(10.0),
child:Container(
+
margin: EdgeInsets.only(left: 10, right: 10, top: 15),
child: TextFields(
- hintText: model.user.emailAddress,//'Title',
+ fillColor: Colors.red,
+
+ hintText: model.user.emailAddress,
controller: titleController,
fontSize: 20,
hintColor: Colors.black,
@@ -75,9 +80,7 @@ class _ChildVaccinesPageState extends State
onChanged: (text) {
addEmail=text;
model.user.emailAddress==addEmail?checkedValue=false:checkedValue=true;
- // checkedValue=true;
- // print("First text field: $text");
- // print("First text field:"+ model.user.emailAddress);
+
},
validator: (value) {
@@ -99,7 +102,7 @@ class _ChildVaccinesPageState extends State
height: MediaQuery.of(context).size.height * 0.12,
width: double.infinity,
- padding: EdgeInsets.all(12),
+ padding: EdgeInsets.all(15),
child: SecondaryButton(
textColor: Colors.white,
color: checkedValue== false ?Colors.white24:Color.fromRGBO(63, 72, 74, 1,),
@@ -121,7 +124,7 @@ class _ChildVaccinesPageState extends State
height: MediaQuery.of(context).size.height * 0.12,
width: double.infinity,
- padding: EdgeInsets.all(12),
+ padding: EdgeInsets.all(15),
child: SecondaryButton(
textColor: Colors.white,
color: Color.fromRGBO(63, 72, 74, 1,),
@@ -132,10 +135,7 @@ class _ChildVaccinesPageState extends State
FadePage(
page: ChildPage(),
- //ChildPage(babyInformationModelList:model.BabyInformationModelList)
- // HospitalsPage(
- // findusHospitalModelList: model.FindusHospitalModelList,
- // )
+
),
),
@@ -143,6 +143,7 @@ class _ChildVaccinesPageState extends State
),
),
+
// Texts(
// // TranslationBase.of(context).advancePaymentLabel,
// model.user.emailAddress,
@@ -151,253 +152,21 @@ class _ChildVaccinesPageState extends State
SizedBox(
height: 12,
),
- // InkWell(
- // onTap: () => confirmSelectHospitalDialog(model.CitiesModelList),//model.hospitals
- // 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(getHospitalName()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
SizedBox(
height: 12,
),
- // InkWell(
- // //======Gender========
- // onTap: () => confirmSelectGenderDialog(),//confirmSelectBeneficiaryDialog(model),
- // 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(getBeneficiaryType()),
- // Texts(getGender()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
- // if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
- // SizedBox(
- // height: 12,
- // ),
- // if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
- // InkWell(
- // onTap: () {
- // model.getFamilyFiles().then((value) {
- // confirmSelectFamilyDialog(model
- // .getAllSharedRecordsByStatusResponse
- // .getAllSharedRecordsByStatusList);
- // }).showProgressBar(
- // text: "Loading",
- // backgroundColor: Colors.blue.withOpacity(0.6));
- // },
- // 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(getFamilyMembersName()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
SizedBox(
height: 12,
),
- // InkWell(
- // //======Gender========
- // onTap: () => confirmSelectBloodDialog(),//confirmSelectBeneficiaryDialog(model),
- // 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(getBeneficiaryType()),
- // Texts(getBlood()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
- // if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
- // SizedBox(
- // height: 12,
- // ),
- // if (beneficiaryType == BeneficiaryType.MyFamilyFiles)
- // InkWell(
- // onTap: () {
- // model.getFamilyFiles().then((value) {
- // confirmSelectFamilyDialog(model
- // .getAllSharedRecordsByStatusResponse
- // .getAllSharedRecordsByStatusList);
- // }).showProgressBar(
- // text: "Loading",
- // backgroundColor: Colors.blue.withOpacity(0.6));
- // },
- // 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(getFamilyMembersName()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
+
SizedBox(
height: 12,
),
- // Row(
- // children: [
- // Container(
- // child: Text(" To view the terms and conditions "),
- // ),
- // SizedBox(
- // width: MediaQuery.of(context).size.height * 0.10,
- // ),
- // // InkWell(
- // // onTap: () {
- // // Navigator.of(context).push(MaterialPageRoute(
- // // builder: (BuildContext context) => UserAgreementPage()));
- // // },
- // // child: Container(
- // // child: Texts(" Click here ",color: Colors.blue,),
- // // ),
- // // )
- // ],
- // ),
+
SizedBox(
height: 12,
),
- // Row(
- // children: [
- // Checkbox(
- // onChanged: (bool value) {
- // setState(() {
- // checkedValue = value;
- // });
- // },
- // // tristate: checkedValue==true,//i == 1,
- // value: checkedValue,
- // activeColor: Colors.red,//Color(0xFF6200EE),
- // ),
- // SizedBox(height: 10,),
- // Row(children: [
- //
- // ],),
- // SizedBox(
- // width: 10,
- // ),
- // Text(
- // 'I agree to the terms and conditions ',
- // style: Theme.of(context).textTheme.subtitle1.copyWith(color: checkedValue? Colors.red : Colors.black),
- // ),
- // ],
- // ),
- // NewTextFields(
- // hintText: TranslationBase.of(context).fileNumber,
- // controller: _fileTextController,
- // ),
- // if (beneficiaryType == BeneficiaryType.OtherAccount)
- // SizedBox(
- // height: 12,
- // ),
- // if (beneficiaryType == BeneficiaryType.OtherAccount)
- // InkWell(
- // onTap: () {
- // if (_fileTextController.text.isNotEmpty)
- // model
- // .getPatientInfoByPatientID(
- // id: _fileTextController.text)
- // .then((value) {
- // confirmSelectPatientDialog(model.patientInfoList);
- // }).showProgressBar(
- // text: "Loading",
- // backgroundColor:
- // Colors.blue.withOpacity(0.6));
- // else
- // AppToast.showErrorToast(
- // message: 'Please Enter The File Number');
- // },
- // 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(getPatientName()),
- // Icon(Icons.arrow_drop_down)
- // ],
- // ),
- // ),
- // ),
- // SizedBox(
- // height: 12,
- // ),
- // NewTextFields(
- // hintText: TranslationBase.of(context).amount,
- // keyboardType: TextInputType.number,
- // onChanged: (value) {
- // setState(() {
- // amount = value;
- // });
- // },
- // ),
- // SizedBox(
- // height: 12,
- // ),
- // NewTextFields(
- // hintText: TranslationBase.of(context).depositorEmail,
- // initialValue: model.user.emailAddress,
- // onChanged: (value) {
- // email = value;
- // },
- // ),
- // SizedBox(
- // height: 12,
- // ),
- // NewTextFields(
- // hintText: TranslationBase.of(context).notes,
- // controller: _notesTextController,
- // ),
SizedBox(
height: 10,
),
diff --git a/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart b/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
index f84dea29..259bbdb7 100644
--- a/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
+++ b/lib/pages/ChildVaccines/dialogs/SelectGenderDialog.dart
@@ -1,10 +1,14 @@
import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class SelectGenderDialog extends StatefulWidget {
+ final Email;
+
+ const SelectGenderDialog({Key key, this.Email}) : super(key: key);
@override
_SelectGenderDialogState createState() => _SelectGenderDialogState();
}
@@ -31,6 +35,7 @@ class _SelectGenderDialogState extends State {
child: ListTile(
title: Text("Send the child's schedule to the email\n Tamer.dasdasdas@gmail.com "),
+
),
),
)
@@ -77,6 +82,7 @@ class _SelectGenderDialogState extends State {
flex: 1,
child: InkWell(
onTap: () {
+ AppToast.showSuccessToast(message: "Email Sended");
// widget.onValueSelected(beneficiaryType);
Navigator.pop(context);
},
diff --git a/lib/pages/ChildVaccines/dialogs/delete_child.dart b/lib/pages/ChildVaccines/dialogs/delete_child.dart
new file mode 100644
index 00000000..250f40d3
--- /dev/null
+++ b/lib/pages/ChildVaccines/dialogs/delete_child.dart
@@ -0,0 +1,103 @@
+import 'package:diplomaticquarterapp/pages/Blood/blood_donation.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+
+class DeleteChild extends StatefulWidget {
+ @override
+ _DeleteChildState createState() => _DeleteChildState();
+}
+
+class _DeleteChildState extends State {
+ @override
+ Widget build(BuildContext context) {
+ return SimpleDialog(
+ children: [
+ Container(
+ child: Column(
+ children: [
+ Divider(),
+ Row(
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ //beneficiaryType = Gender.Male;
+ });
+ },
+ child: ListTile(
+ title: Text("Delete the child "),
+
+ ),
+ ),
+ )
+ ],
+ ),
+ SizedBox(
+ height: 5.0,
+ ),
+
+ SizedBox(
+ height: 5.0,
+ ),
+ SizedBox(
+ height: 5.0,
+ ),
+ Row(
+ // mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Container(
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).cancel.toUpperCase(),
+ color: Colors.red,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ Container(
+ width: 1,
+ height: 30,
+ color: Colors.grey[500],
+ ),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () {
+ // widget.onValueSelected(beneficiaryType);
+ Navigator.pop(context);
+ },
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Center(
+ child: Texts(
+ TranslationBase.of(context).ok,
+ fontWeight: FontWeight.w400,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ )
+ ],
+ ),
+ )
+ ],
+ );
+ }
+}
diff --git a/lib/pages/ChildVaccines/vaccinationtable_page.dart b/lib/pages/ChildVaccines/vaccinationtable_page.dart
index 6ac11e4f..c160acfb 100644
--- a/lib/pages/ChildVaccines/vaccinationtable_page.dart
+++ b/lib/pages/ChildVaccines/vaccinationtable_page.dart
@@ -61,67 +61,7 @@ class VaccinationTablePage extends StatelessWidget {
],),
Divider(color:Colors.black ,),
- // Row(children:[Texts("CHILD NAME"),]),
- // Row(children:[Texts(model.babyInformationModelList[index].babyName.trim()),]),
-
- // Row(
- // children: [IconButton(
- // icon: Image.asset(model.babyInformationModelList[index].gender==1? 'assets/images/new-design/male.png':'assets/images/new-design/female.png'),
- // tooltip: '',
- // onPressed: () {
- // setState(() {
- // // _volume += 10;
- // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- // });
- // },
- // ),
- // Texts(model.babyInformationModelList[index].genderDescription),
- // IconButton(
- // icon: Icon(Icons.remove_red_eye,color: Colors.red,),
- // tooltip: 'Increase volume by 10',
- // onPressed: () {
- // Navigator.push(
- // context,
- // FadePage(
- // page: VaccinationTablePage(),
- //
- // //ChildPage(babyInformationModelList:model.BabyInformationModelList)
- // // HospitalsPage(
- // // findusHospitalModelList: model.FindusHospitalModelList,
- // // )
- //
- // ),
- // );
- // // setState(() {
- // // // _volume += 10;
- // // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- // // });
- // },
- // )]
- // ),
- // Row(children:[Texts("Birthday"),]),
- // Row(children:[IconButton(
- // icon: new Image.asset('assets/images/new-design/calender-secondary.png'),
- // tooltip: 'Increase volume by 10',
- // onPressed: () {
- // setState(() {
- // // _volume += 10;
- // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- // });
- // },
- // ),
- // Texts(DateUtil.yearMonthDay(model.babyInformationModelList[index].dOB)),]),
- // Row(children:[IconButton(
- // icon: new Image.asset('assets/images/new-design/garbage.png'),
- // tooltip: '',
- // onPressed: () {
- // setState(() {
- // // _volume += 10;
- // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
- // });
- // },
- // ),
- // Texts("Birthday"),]),
+
],
)
diff --git a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart
index 65e2d7b2..5bffe17c 100644
--- a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart
+++ b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart
@@ -138,8 +138,7 @@ class _HospitalsLiveChatPageState extends State {
))), //model.cOCItemList[index].cOCTitl
IconButton(
icon: Icon(
- Icons
- .arrow_forward,
+ Icons.arrow_forward_ios,
color:
tappedIndex == index
? Colors.white
diff --git a/lib/pages/ContactUs/hmg_service.dart b/lib/pages/ContactUs/contact_us_page.dart
similarity index 93%
rename from lib/pages/ContactUs/hmg_service.dart
rename to lib/pages/ContactUs/contact_us_page.dart
index 4f19e8f8..7d2192f9 100644
--- a/lib/pages/ContactUs/hmg_service.dart
+++ b/lib/pages/ContactUs/contact_us_page.dart
@@ -6,12 +6,12 @@ import 'package:flutter/material.dart';
import '../../uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart';
-class HmgServicePage extends StatefulWidget {
+class ContactUsPage extends StatefulWidget {
@override
- _HmgServicePageState createState() => _HmgServicePageState();
+ _ContactUsPageState createState() => _ContactUsPageState();
}
-class _HmgServicePageState extends State {
+class _ContactUsPageState extends State {
LocationUtils locationUtils;
@@ -29,6 +29,7 @@ class _HmgServicePageState extends State {
return AppScaffold(
isShowAppBar: true,//widget.isAppbar,
appBarTitle: "HMG Services",//TranslationBase.of(context).bookAppo,
+ isShowDecPage: false,
body: Container(
margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
child: Column(
diff --git a/lib/pages/ContactUs/findus/hospitrals_page.dart b/lib/pages/ContactUs/findus/hospitrals_page.dart
index b883ae41..d8d898e3 100644
--- a/lib/pages/ContactUs/findus/hospitrals_page.dart
+++ b/lib/pages/ContactUs/findus/hospitrals_page.dart
@@ -115,7 +115,7 @@ class _HospitalsPageState extends State {
CrossAxisAlignment.center,
children: [
IconButton(
- // icon: Icon(Icons.person_pin_circle_outlined,color: Colors.red,),
+ // icon: Icon(Icons.location_on,color: Colors.red,),
icon: new Image.asset(
'assets/images/new-design/navigate.png'),
tooltip: '',
diff --git a/lib/pages/ContactUs/findus/pharmacies_page.dart b/lib/pages/ContactUs/findus/pharmacies_page.dart
index 5dc44019..663bd3ec 100644
--- a/lib/pages/ContactUs/findus/pharmacies_page.dart
+++ b/lib/pages/ContactUs/findus/pharmacies_page.dart
@@ -141,7 +141,7 @@ class _PharmaciesPageState extends State {
IconButton(
// icon: Icon(
// Icons
- // .person_pin_circle_outlined,
+ // .location_on,
// color: Colors.red,
// ),
icon: new Image.asset(
diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart
index 9c4dfa29..ec96f482 100644
--- a/lib/pages/ErService/AmbulanceReq.dart
+++ b/lib/pages/ErService/AmbulanceReq.dart
@@ -1,3 +1,4 @@
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_history_page.dart';
@@ -9,6 +10,9 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart';
+import 'OrderLogPage.dart';
+
class AmbulanceReq extends StatefulWidget {
@override
_AmbulanceReqState createState() => _AmbulanceReqState();
@@ -23,18 +27,21 @@ class _AmbulanceReqState extends State
super.initState();
_tabController = TabController(length: 2, vsync: this);
}
+
@override
void dispose() {
super.dispose();
_tabController.dispose();
}
+
@override
Widget build(BuildContext context) {
- return BaseView(
- onModelReady: (model) => model.getPrescriptions(),
+ return BaseView(
+ onModelReady: (model) => model.getAmRequestOrders(),
builder: (_, model, widget) => AppScaffold(
isShowAppBar: true,
appBarTitle: "Ambulance Request",
+ baseViewModel: model,
body: Scaffold(
extendBodyBehindAppBar: true,
appBar: PreferredSize(
@@ -76,13 +83,14 @@ class _AmbulanceReqState extends State
indicatorColor: Colors.red[800],
labelColor: Theme.of(context).primaryColor,
labelPadding:
- EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
+ EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
unselectedLabelColor: Colors.grey[800],
tabs: [
Container(
width: MediaQuery.of(context).size.width * 0.40,
child: Center(
- child: Texts("Ambulance Request"),//TranslationBase.of(context).prescriptions
+ child: Texts(
+ "Ambulance Request"), //TranslationBase.of(context).prescriptions
),
),
Container(
@@ -106,11 +114,13 @@ class _AmbulanceReqState extends State
physics: BouncingScrollPhysics(),
controller: _tabController,
children: [
- PrescriptionsPage(
- prescriptionsViewModel: model,
- ),
- PrescriptionsHistoryPage(
- prescriptionsViewModel: model,
+ model.hasPendingOrder
+ ? Container()
+ : AmbulanceRequestIndexPage(
+ amRequestViewModel: model,
+ ),
+ OrderLogPage(
+ amRequestViewModel: model,
)
],
),
@@ -121,5 +131,4 @@ class _AmbulanceReqState extends State
),
);
}
-
}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart
new file mode 100644
index 00000000..55e75e22
--- /dev/null
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/AmbulanceRequestIndex.dart
@@ -0,0 +1,87 @@
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/pages/ErService/widgets/StepsWidget.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+
+import 'BillAmount.dart';
+import 'PickupLocation.dart';
+import 'SelectTransportationMethod.dart';
+import 'Summary.dart';
+
+class AmbulanceRequestIndexPage extends StatefulWidget {
+ final AmRequestViewModel amRequestViewModel;
+
+ AmbulanceRequestIndexPage({Key key, this.amRequestViewModel});
+
+ @override
+ _AmbulanceRequestIndexPageState createState() => _AmbulanceRequestIndexPageState();
+}
+
+class _AmbulanceRequestIndexPageState extends State {
+ int currentIndex = 0;
+ PageController pageController;
+ PatientER _patientER = PatientER();
+
+ _changeCurrentTab(int tab) {
+ setState(() {
+ currentIndex = tab;
+ });
+ pageController.animateToPage(tab,
+ duration: Duration(milliseconds: 800), curve: Curves.easeOutQuart);
+ }
+
+ @override
+ void initState() {
+ super.initState();
+ pageController = new PageController();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ body: Column(
+ children: [
+ SizedBox(
+ height: 80,
+ ),
+ Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: StepsWidget(
+ index: currentIndex,
+ changeCurrentTab: _changeCurrentTab,
+ )),
+ Expanded(
+ child: PageView(
+ physics: NeverScrollableScrollPhysics(),
+ controller: pageController,
+ children: [
+ //Container(),
+ SelectTransportationMethod(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ PickupLocation(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ BillAmount(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ Summary(
+ changeCurrentTab: _changeCurrentTab,
+ patientER: _patientER,
+ amRequestViewModel: widget.amRequestViewModel,
+ ),
+ ],
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart
new file mode 100644
index 00000000..cc6af0f2
--- /dev/null
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart
@@ -0,0 +1,351 @@
+import 'package:diplomaticquarterapp/core/enum/Ambulate.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/pages/Blood/new_text_Field.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+
+class BillAmount extends StatefulWidget {
+ final Function changeCurrentTab;
+ final PatientER patientER;
+ final AmRequestViewModel amRequestViewModel;
+
+ BillAmount(
+ {Key key,
+ this.changeCurrentTab,
+ this.patientER,
+ this.amRequestViewModel});
+
+ @override
+ _BillAmountState createState() => _BillAmountState();
+}
+
+class _BillAmountState extends State {
+ Ambulate _ambulate = Ambulate.None;
+ String note ="";
+
+
+ @override
+ void initState() {
+
+ if(widget.patientER.ambulate!=null)
+ {
+ setState(() {
+ _ambulate = widget.patientER.ambulate;
+ note = widget.patientER.requesterNote;
+ });
+ }
+ super.initState();
+ }
+
+
+ @override
+ Widget build(BuildContext context) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Bill Amount '),
+ SizedBox(
+ height: 10,
+ ),
+ Table(
+ border: TableBorder.symmetric(
+ inside: BorderSide(width: 1.0, color: Colors.grey[300]),
+ outside: BorderSide(width: 1.0, color: Colors.grey[300])),
+ children: [
+ TableRow(
+ children: [
+ Container(
+ height: MediaQuery.of(context).size.height * 0.09,
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.only(
+ topLeft: Radius.circular(10.0),
+ ),
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'Amount before tax: ',
+ textAlign: TextAlign.start,
+ color: Colors.black,
+ fontSize: 15,
+ ),
+ ),
+ ),
+ Container(
+ height: MediaQuery.of(context).size.height * 0.09,
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.only(
+ topRight: Radius.circular(10.0),
+ ),
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'SR ${widget.patientER.patientERTransportationMethod.price}',
+ color: Colors.black,
+ textAlign: TextAlign.start,
+ fontSize: 15,
+ ),
+ ),
+ ),
+ ],
+ ),
+ TableRow(
+ children: [
+ Container(
+ color: Colors.white,
+ height: MediaQuery.of(context).size.height * 0.09,
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'Tax amount :',
+ color: Colors.black,
+ fontSize: 15,
+ textAlign: TextAlign.start,
+ ),
+ ),
+ ),
+ Container(
+ height: MediaQuery.of(context).size.height * 0.09,
+ color: Colors.white,
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'SR ${widget.patientER.patientERTransportationMethod.vAT}',
+ color: Colors.black,
+ fontSize: 15,
+ textAlign: TextAlign.start,
+ ),
+ ),
+ ),
+ ],
+ ),
+ TableRow(
+ children: [
+ Container(
+ height: MediaQuery.of(context).size.height * 0.09,
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.only(
+ bottomLeft: Radius.circular(10.0),
+ ),
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'Total amount payable',
+ color: Colors.black,
+ fontSize: 15,
+ textAlign: TextAlign.start,
+ bold: true,
+ ),
+ ),
+ ),
+ Container(
+ height: MediaQuery.of(context).size.height * 0.09,
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.only(
+ bottomRight: Radius.circular(10.0),
+ ),
+ ),
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Texts(
+ 'SR ${widget.patientER.patientERTransportationMethod.totalPrice}',
+ color: Colors.black,
+ fontSize: 15,
+ textAlign: TextAlign.start,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ SizedBox(
+ height: 10,
+ ),
+ Texts('Select Ambulate',bold: true,),
+ SizedBox(height: 5,),
+ Row(
+ children: [
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _ambulate = Ambulate.Wheelchair;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Wheelchair'),
+ leading: Radio(
+ value: Ambulate.Wheelchair,
+ groupValue: _ambulate,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _ambulate = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _ambulate = Ambulate.Walker;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Walker'),
+ leading: Radio(
+ value: Ambulate.Walker,
+ groupValue: _ambulate,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _ambulate = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ SizedBox(height: 5,),
+ Row(
+ children: [
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _ambulate = Ambulate.Stretcher;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Stretcher'),
+ leading: Radio(
+ value: Ambulate.Stretcher,
+ groupValue: _ambulate,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _ambulate = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _ambulate = Ambulate.None;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('None'),
+ leading: Radio(
+ value: Ambulate.None,
+ groupValue: _ambulate,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _ambulate = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ SizedBox(height: 12,),
+ NewTextFields(
+ hintText: 'Note',
+ initialValue: note,
+ onChanged: (value){
+ setState(() {
+ note = value;
+ });
+ },
+ ),
+
+ SizedBox(
+ height: 15,
+ ),
+ Container(
+ padding: EdgeInsets.all(15),
+ width: double.maxFinite,
+ height: 76,
+ child: SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ onTap: () {
+ setState(() {
+ widget.patientER.ambulate = _ambulate;
+ widget.patientER.requesterNote = note;
+ widget.patientER.selectedAmbulate = _ambulate.selectAmbulateNumber();
+ widget.changeCurrentTab(3);
+ });
+ },
+ label: 'Next',
+ ),
+ )
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
new file mode 100644
index 00000000..795f4dcc
--- /dev/null
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
@@ -0,0 +1,473 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/model/hospitals/hospitals_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+import 'package:diplomaticquarterapp/pages/Blood/dialogs/SelectHospitalDialog.dart';
+import 'package:diplomaticquarterapp/pages/ErService/widgets/AppointmentCard.dart';
+import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
+import 'package:diplomaticquarterapp/uitl/ProgressDialog.dart';
+import 'package:diplomaticquarterapp/uitl/app_toast.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:font_awesome_flutter/font_awesome_flutter.dart';
+import 'package:geolocator/geolocator.dart';
+import 'package:google_maps_place_picker/google_maps_place_picker.dart';
+import 'package:google_maps_flutter/google_maps_flutter.dart';
+
+import '../AmbulanceReq.dart';
+import '../AvailableAppointmentsPage.dart';
+
+enum HaveAppointment { YES, NO }
+
+class PickupLocation extends StatefulWidget {
+ final Function changeCurrentTab;
+ final PatientER patientER;
+ final AmRequestViewModel amRequestViewModel;
+
+ PickupLocation(
+ {Key key,
+ this.changeCurrentTab,
+ this.patientER,
+ this.amRequestViewModel});
+
+ @override
+ _PickupLocationState createState() => _PickupLocationState();
+}
+
+class _PickupLocationState extends State {
+ bool _isInsideHome = false;
+ HaveAppointment _haveAppointment = HaveAppointment.NO;
+ double _latitude;
+ double _longitude;
+ AppoitmentAllHistoryResultList myAppointment;
+ HospitalsModel _selectedHospital;
+ PickResult _result;
+
+ @override
+ void initState() {
+ super.initState();
+ _getCurrentLocation();
+ }
+
+ _getCurrentLocation() async {
+ await getLastKnownPosition().then((value) {
+ _latitude = value.latitude;
+ _longitude = value.longitude;
+ }).catchError((e) {
+ _longitude = 0;
+ _latitude = 0;
+ });
+ // currentLocation = LatLng(position.latitude, position.longitude);
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ if (widget.patientER.direction == 1)
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Pickup Location'),
+ SizedBox(
+ height: 15,
+ ),
+ Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts('Select From Map'),
+ Icon(
+ FontAwesomeIcons.mapMarkerAlt,
+ size: 24,
+ color: Colors.black,
+ )
+ ],
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Pickup Spot'),
+ SizedBox(
+ height: 5,
+ ),
+ InkWell(
+ onTap: () {
+ setState(() {
+ _isInsideHome = !_isInsideHome;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Texts('Inside Home'),
+ leading: Checkbox(
+ activeColor: Colors.red[800],
+ value: _isInsideHome,
+ onChanged: (value) {
+ setState(() {
+ _isInsideHome = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Do you have an appointment ?'),
+ SizedBox(
+ height: 5,
+ ),
+ Row(
+ children: [
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ if (myAppointment == null) {
+ getAppointment();
+ setState(() {
+ _haveAppointment = HaveAppointment.YES;
+ });
+ }
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Yes'),
+ leading: Radio(
+ value: HaveAppointment.YES,
+ groupValue: _haveAppointment,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ if (myAppointment == null) {
+ getAppointment();
+ setState(() {
+ _haveAppointment = value;
+ });
+ }
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _haveAppointment = HaveAppointment.NO;
+ myAppointment = null;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('No'),
+ leading: Radio(
+ value: HaveAppointment.NO,
+ groupValue: _haveAppointment,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _haveAppointment = value;
+ myAppointment = null;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ if (myAppointment != null)
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ AppointmentCard(
+ appointment: myAppointment,
+ )
+ ],
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Drop off Location'),
+ SizedBox(
+ height: 8,
+ ),
+ InkWell(
+ onTap: () {
+ confirmSelectHospitalDialog(
+ widget.amRequestViewModel.hospitals);
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(getHospitalName('Pickup Location')),
+ Icon(
+ Icons.arrow_drop_down,
+ size: 24,
+ color: Colors.black,
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ if (widget.patientER.direction == 1)
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Pickup Location'),
+ SizedBox(
+ height: 15,
+ ),
+ InkWell(
+ onTap: () {
+ confirmSelectHospitalDialog(
+ widget.amRequestViewModel.hospitals);
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts(getHospitalName('Pickup Location')),
+ Icon(
+ Icons.arrow_drop_down,
+ size: 24,
+ color: Colors.black,
+ )
+ ],
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Drop off Location'),
+ SizedBox(
+ height: 8,
+ ),
+ InkWell(
+ onTap: () {
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => PlacePicker(
+ apiKey: 'AIzaSyCiD4YqVqLNYbt8-htvFy4Wp8XSph9E3wM',
+ // Put YOUR OWN KEY here.
+ onPlacePicked: (PickResult result) {
+ print(result.adrAddress);
+ setState(() {
+ _result = result;
+ });
+ Navigator.of(context).pop();
+ },
+ initialPosition: LatLng(_latitude, _longitude),
+ useCurrentLocation: true,
+ ),
+ ),
+ );
+ },
+ child: Container(
+ padding: EdgeInsets.all(12),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts('Select From Map'),
+ Icon(
+ FontAwesomeIcons.mapMarkerAlt,
+ size: 24,
+ color: Colors.black,
+ )
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ //TODO show dialog projects
+
+ SizedBox(
+ height: 45,
+ ),
+ Container(
+ padding: EdgeInsets.all(15),
+ width: double.maxFinite,
+ height: 76,
+ child: SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ onTap: () {
+ if(_result==null || _selectedHospital == null)
+ AppToast.showErrorToast(message: 'please select all fields');
+ else
+ setState(() {
+ widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
+ if (widget.patientER.direction == 0) {
+ widget.patientER.pickupLocationLattitude = _result.geometry.location.lat.toString();
+ widget.patientER.pickupLocationLongitude = _result.geometry.location.lng.toString();
+ widget.patientER.dropoffLocationLattitude = _selectedHospital.latitude;
+ widget.patientER.dropoffLocationLongitude = _selectedHospital.longitude;
+
+ } else {
+ widget.patientER.pickupLocationLattitude = _selectedHospital.latitude;
+ widget.patientER.pickupLocationLongitude = _selectedHospital.longitude;
+ widget.patientER.dropoffLocationLattitude = _result.geometry.location.lat.toString();
+ widget.patientER.dropoffLocationLongitude = _result.geometry.location.lng.toString();
+ }
+
+ widget.patientER.latitude = widget.patientER.pickupLocationLattitude;
+ widget.patientER.longitude = widget.patientER.pickupLocationLongitude;
+
+ if(_haveAppointment == HaveAppointment.YES){
+ widget.patientER.appointmentNo = myAppointment.appointmentNo.toString();
+ widget.patientER.appointmentClinicName = myAppointment.clinicName;
+ widget.patientER.appointmentDoctorName = myAppointment.doctorNameObj;
+ widget.patientER.appointmentBranch = myAppointment.projectName;
+ widget.patientER.appointmentTime = myAppointment.appointmentDate;
+ }else{
+ widget.patientER.appointmentNo ="0";
+ widget.patientER.appointmentClinicName = null;
+ widget.patientER.appointmentDoctorName = null;
+ widget.patientER.appointmentBranch = null;
+ widget.patientER.appointmentTime = null;
+ }
+
+ widget.patientER.pickupSpot = _isInsideHome ? 1 : 0;
+ widget.changeCurrentTab(2);
+ });
+ },
+ label: 'Next',
+ ),
+ )
+ ],
+ ),
+ ),
+ );
+ }
+
+ void confirmSelectHospitalDialog(List hospitals) {
+ showDialog(
+ context: context,
+ child: SelectHospitalDialog(
+ hospitals: hospitals,
+ selectedHospital: _selectedHospital,
+ onValueSelected: (value) {
+ setState(() {
+ _selectedHospital = value;
+ });
+ },
+ ),
+ );
+ }
+
+ String getHospitalName(String title) {
+ return _selectedHospital == null ? title : _selectedHospital.name;
+ }
+
+ getAppointment() {
+ ProgressDialogUtil.showProgressDialog(context);
+ widget.amRequestViewModel.getAppointmentHistory().then((value) {
+ if (widget.amRequestViewModel.state == ViewState.Error ||
+ widget.amRequestViewModel.state == ViewState.ErrorLocal) {
+ AppToast.showErrorToast(message: widget.amRequestViewModel.error);
+ } else if (widget
+ .amRequestViewModel.appoitmentAllHistoryResultList.length >
+ 0) {
+ ProgressDialogUtil.hideProgressDialog(context);
+ Navigator.push(
+ context,
+ MaterialPageRoute(
+ builder: (context) => AvailableAppointmentsPage(
+ appointmentsAllHistoryList:
+ widget.amRequestViewModel.appoitmentAllHistoryResultList,
+ ),
+ ),
+ ).then((value) {
+ if (value != null)
+ setState(() {
+ myAppointment = value;
+ });
+ else {
+ ProgressDialogUtil.hideProgressDialog(context);
+ setState(() {
+ _haveAppointment = HaveAppointment.NO;
+ });
+ }
+ });
+ } else {
+ ProgressDialogUtil.hideProgressDialog(context);
+ setState(() {
+ _haveAppointment = HaveAppointment.NO;
+ });
+ AppToast.showErrorToast(message: 'You don\'t have any appointment');
+ }
+ }).catchError((e) {
+ ProgressDialogUtil.hideProgressDialog(context);
+ AppToast.showErrorToast(message: e);
+ });
+ }
+}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
new file mode 100644
index 00000000..59c3b85c
--- /dev/null
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
@@ -0,0 +1,309 @@
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/enum/OrderService.dart';
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/model/er/get_all_transportation_method_list_model.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+enum Direction { ToHospital, FromHospital }
+enum Way { OneWay, TwoWays }
+
+class SelectTransportationMethod extends StatefulWidget {
+ final Function changeCurrentTab;
+ final PatientER patientER;
+ final AmRequestViewModel amRequestViewModel;
+
+ SelectTransportationMethod(
+ {Key key,
+ this.changeCurrentTab,
+ this.patientER,
+ this.amRequestViewModel});
+
+ @override
+ _SelectTransportationMethodState createState() =>
+ _SelectTransportationMethodState();
+}
+
+class _SelectTransportationMethodState
+ extends State {
+ PatientERTransportationMethod _erTransportationMethod =
+ PatientERTransportationMethod();
+ Direction _direction = Direction.FromHospital;
+ Way _way = Way.OneWay;
+
+ OrderService _orderService = OrderService.AMBULANCE;
+
+ @override
+ void initState() {
+ super.initState();
+ if (widget.patientER.direction != null) {
+ _direction = widget.patientER.direction == 0
+ ? Direction.ToHospital
+ : Direction.FromHospital;
+ _way = widget.patientER.tripType == 1 ? Way.OneWay : Way.TwoWays;
+ _erTransportationMethod = widget.amRequestViewModel
+ .amRequestModeList[(widget.patientER.selectedAmbulate - 1)];
+ } else {
+ if (widget.amRequestViewModel.amRequestModeList.length != 0)
+ _erTransportationMethod = widget.amRequestViewModel.amRequestModeList[
+ widget.amRequestViewModel.amRequestModeList.length - 1];
+ }
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Select Transportation Method'),
+ ...List.generate(
+ widget.amRequestViewModel.amRequestModeList.length,
+ (index) => InkWell(
+ onTap: () {
+ setState(() {
+ _erTransportationMethod =
+ widget.amRequestViewModel.amRequestModeList[index];
+ });
+ },
+ child: Container(
+ margin: EdgeInsets.all(5),
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child: ListTile(
+ title: Text(widget.amRequestViewModel
+ .amRequestModeList[index].title),
+ leading: Radio(
+ value: widget
+ .amRequestViewModel.amRequestModeList[index],
+ groupValue: _erTransportationMethod,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _erTransportationMethod = value;
+ });
+ },
+ ),
+ ),
+ ),
+ Expanded(
+ flex: 1,
+ child: Texts(
+ 'SR ${widget.amRequestViewModel.amRequestModeList[index].price}'),
+ )
+ ],
+ ),
+ ),
+ ),
+ ),
+ SizedBox(
+ height: 12,
+ ),
+ Texts('Select Direction'),
+ SizedBox(
+ height: 5,
+ ),
+ Container(
+ width: double.maxFinite,
+ child: Row(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _direction = Direction.ToHospital;
+ });
+ },
+ child: Container(
+ width: double.maxFinite,
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('To Hospital'),
+ leading: Radio(
+ value: Direction.ToHospital,
+ groupValue: _direction,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _direction = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _direction = Direction.FromHospital;
+ });
+ },
+ child: Container(
+ width: double.maxFinite,
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border: Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Form Hospital'),
+ leading: Radio(
+ value: Direction.FromHospital,
+ groupValue: _direction,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _direction = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ if (_direction == Direction.ToHospital)
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ SizedBox(
+ height: 8,
+ ),
+ Texts('Select Direction'),
+ SizedBox(
+ height: 5,
+ ),
+ Row(
+ children: [
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _way = Way.OneWay;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('One Way'),
+ leading: Radio(
+ value: Way.OneWay,
+ groupValue: _way,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _way = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ Expanded(
+ child: InkWell(
+ onTap: () {
+ setState(() {
+ _way = Way.TwoWays;
+ });
+ },
+ child: Container(
+ decoration: BoxDecoration(
+ shape: BoxShape.rectangle,
+ borderRadius: BorderRadius.circular(8),
+ border:
+ Border.all(color: Colors.grey, width: 0.5),
+ color: Colors.white,
+ ),
+ child: ListTile(
+ title: Text('Two Ways'),
+ leading: Radio(
+ value: Way.TwoWays,
+ groupValue: _way,
+ activeColor: Colors.red[800],
+ onChanged: (value) {
+ setState(() {
+ _way = value;
+ });
+ },
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ),
+ ],
+ ),
+ SizedBox(
+ height: 15,
+ ),
+ Container(
+ padding: EdgeInsets.all(15),
+ width: double.maxFinite,
+ height: 76,
+ child: SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ onTap: () {
+ setState(() {
+ widget.patientER.direction = _direction == Direction.ToHospital ? 0 : 1;
+ widget.patientER.tripType = _way == Way.TwoWays ? 2 : 1;
+ widget.patientER.selectedAmbulate = (widget.amRequestViewModel.amRequestModeList.indexOf(_erTransportationMethod) + 1);
+ widget.patientER.patientERTransportationMethod = _erTransportationMethod;
+ widget.patientER.orderServiceID = _orderService.getIdOrderService();
+ widget.patientER.pickupUrgency = 1;
+ widget.patientER.lineItemNo = 1;
+ widget.patientER.cost = _erTransportationMethod.price;
+ widget.patientER.vAT = _erTransportationMethod.vAT ?? 0;
+ widget.patientER.totalPrice = _erTransportationMethod.totalPrice;
+
+ widget.changeCurrentTab(1);
+ });
+ },
+ label: 'Next',
+ ),
+ )
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
new file mode 100644
index 00000000..4c189707
--- /dev/null
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
@@ -0,0 +1,105 @@
+import 'package:diplomaticquarterapp/core/model/er/PatientER.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:diplomaticquarterapp/core/enum/Ambulate.dart';
+
+class Summary extends StatefulWidget {
+ final Function changeCurrentTab;
+ final PatientER patientER;
+ final AmRequestViewModel amRequestViewModel;
+
+ Summary({Key key, this.changeCurrentTab, this.patientER, this.amRequestViewModel});
+
+ @override
+ _SummaryState createState() => _SummaryState();
+}
+
+class _SummaryState extends State {
+ @override
+ Widget build(BuildContext context) {
+ return SingleChildScrollView(
+ child: Container(
+ margin: EdgeInsets.only(left: 12, right: 12),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Summary'),
+ SizedBox(height: 5,),
+ Container(
+ width: double.infinity,
+
+ padding: EdgeInsets.all(10),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(12),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts('Transportation Method',color: Colors.grey,),
+ Texts('${widget.patientER.patientERTransportationMethod.title}',bold: true,),
+ SizedBox(height: 8,),
+
+ Texts('Direction',color: Colors.grey,),
+ Texts('From Hospital',bold: true,),
+ SizedBox(height: 8,),
+
+ Texts('Pickup Location',color: Colors.grey,),
+ Texts('SZR Medical Center',bold: true,),
+ SizedBox(height: 8,),
+
+ Texts('Drop off location',color: Colors.grey,),
+ Texts('6199, Al Ameen wlfn nif',bold: true,),
+ SizedBox(height: 8,),
+
+ Texts('Select Ambulate',color: Colors.grey,),
+ Texts('${widget.patientER.ambulate.getAmbulateTitle(context)}',bold: true,),
+ SizedBox(height: 8,),
+
+ Texts('Note',color: Colors.grey,),
+ Texts('${widget.patientER.requesterNote?? '---'}',bold: true,),
+ SizedBox(height: 8,),
+ ],
+ ),
+ ),
+ SizedBox(height: 20,),
+ Texts('Bill Amount',textAlign: TextAlign.start,),
+ SizedBox(height: 5,),
+ Container(
+ height: 55,
+ padding: EdgeInsets.all(10),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8)
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Texts('Total amount payable:'),
+ Texts('SR ${widget.patientER.patientERTransportationMethod.totalPrice}')
+ ],
+ ),
+ ),
+
+ SizedBox(height: 45,),
+ Container(
+ padding: EdgeInsets.all(15),
+ width: double.maxFinite,
+ height: 76,
+ child:SecondaryButton(
+ color: Colors.grey[800],
+ textColor: Colors.white,
+ label: 'Next',
+
+ // onTap: ()=> widget.changeCurrentTab(2),
+ ),
+ )
+ ],
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/AvailableAppointmentsPage.dart b/lib/pages/ErService/AvailableAppointmentsPage.dart
new file mode 100644
index 00000000..7180d5dd
--- /dev/null
+++ b/lib/pages/ErService/AvailableAppointmentsPage.dart
@@ -0,0 +1,45 @@
+import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+import 'package:diplomaticquarterapp/pages/ErService/widgets/AppointmentCard.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class AvailableAppointmentsPage extends StatelessWidget {
+ final List appointmentsAllHistoryList;
+
+ const AvailableAppointmentsPage({Key key, this.appointmentsAllHistoryList})
+ : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: 'Available Appointments',
+ body: SingleChildScrollView(
+ child: Container(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Texts('Available Appointments'),
+ SizedBox(
+ height: 12,
+ ),
+ ...List.generate(
+ appointmentsAllHistoryList.length,
+ (index) => InkWell(
+ onTap: (){
+ Navigator.pop(context, appointmentsAllHistoryList[index]);
+ },
+ child: AppointmentCard(appointment: appointmentsAllHistoryList[index],),
+ ),
+ )
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
+
+
diff --git a/lib/pages/ErService/OrderLogPage.dart b/lib/pages/ErService/OrderLogPage.dart
new file mode 100644
index 00000000..cbb508e5
--- /dev/null
+++ b/lib/pages/ErService/OrderLogPage.dart
@@ -0,0 +1,62 @@
+import 'package:diplomaticquarterapp/core/model/er/PatientAllPresOrders.dart';
+import 'package:diplomaticquarterapp/core/viewModels/er/am_request_view_model.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/OrderLogItem.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class OrderLogPage extends StatelessWidget {
+ final AmRequestViewModel amRequestViewModel;
+
+ OrderLogPage({Key key, @required this.amRequestViewModel});
+
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ margin: EdgeInsets.all(10),
+ padding: EdgeInsets.all(8),
+ child: ListView.builder(
+ itemCount: amRequestViewModel.patientAllPresOrdersList.length,
+ itemBuilder: (context, index) => Container(
+ margin: EdgeInsets.all(8),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(2),
+ ),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ OrderLogItem(
+ title: 'Request ID',
+ value: amRequestViewModel.patientAllPresOrdersList[index].iD
+ .toString(),
+ ),
+ OrderLogItem(
+ title: 'Status',
+ value: amRequestViewModel
+ .patientAllPresOrdersList[index].description,
+ ),
+ OrderLogItem(
+ title: 'Pickup Date',
+ value: DateUtil.getDayMonthYearDateFormatted(
+ DateUtil.convertStringToDate(amRequestViewModel
+ .patientAllPresOrdersList[index].createdOn)),
+ ),
+ OrderLogItem(
+ title: 'Pickup Location',
+ value: amRequestViewModel
+ .patientAllPresOrdersList[index].pickupLocationName,
+ ),
+ OrderLogItem(
+ title: 'Drop off Location',
+ value: amRequestViewModel
+ .patientAllPresOrdersList[index].dropoffLocationName,
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/widgets/AppointmentCard.dart b/lib/pages/ErService/widgets/AppointmentCard.dart
new file mode 100644
index 00000000..0437c32f
--- /dev/null
+++ b/lib/pages/ErService/widgets/AppointmentCard.dart
@@ -0,0 +1,47 @@
+import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
+import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+
+class AppointmentCard extends StatelessWidget {
+ final AppoitmentAllHistoryResultList appointment;
+
+ const AppointmentCard({Key key, this.appointment}) : super(key: key);
+ @override
+ Widget build(BuildContext context) {
+ return Container(
+ width: double.infinity,
+ margin: EdgeInsets.all(8),
+ padding: EdgeInsets.all(10),
+ decoration: BoxDecoration(
+ color: Colors.white,
+ borderRadius: BorderRadius.circular(8),
+ ),
+ child: Row(
+ children: [
+ LargeAvatar(
+ url: appointment.doctorImageURL,
+ name: appointment.doctorNameObj,
+ ),
+ Expanded(
+ child: Padding(
+ padding: const EdgeInsets.all(8.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Texts(appointment.doctorNameObj,bold: true,),
+ SizedBox(height: 4,),
+ Texts(appointment.projectName),
+ Texts(appointment.clinicName),
+ Texts(DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDate(appointment.bookDate))),
+ ],
+ ),
+ ),
+ )
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/pages/ErService/widgets/StepsWidget.dart b/lib/pages/ErService/widgets/StepsWidget.dart
new file mode 100644
index 00000000..c5864710
--- /dev/null
+++ b/lib/pages/ErService/widgets/StepsWidget.dart
@@ -0,0 +1,226 @@
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+
+class StepsWidget extends StatelessWidget {
+ final int index;
+ final Function changeCurrentTab;
+
+ StepsWidget({Key key, this.index, this.changeCurrentTab});
+
+ @override
+ Widget build(BuildContext context) {
+ ProjectViewModel projectViewModel = Provider.of(context);
+ return projectViewModel.isArabic? Stack(
+ children: [
+ Container(
+ height: 50,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.transparent,
+ child: Center(
+ child: Divider(
+ color: Colors.grey,
+ height: 0.75,
+ thickness: 0.75,
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: 0,
+ child: InkWell(
+ onTap: () => changeCurrentTab(0),
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '1',
+ color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: MediaQuery.of(context).size.width * 0.3,
+ child: InkWell(
+ onTap: () => index >= 2 ? changeCurrentTab(1) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '2',
+ color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: MediaQuery.of(context).size.width * 0.6,
+ child: InkWell(
+ onTap: () => index >= 3 ? changeCurrentTab(2) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
+ color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '3',
+ color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: 0,
+ child: InkWell(
+ onTap: () => index == 2 ?changeCurrentTab(3):null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: Border.all(color: Colors.black,width: 0.75),
+
+ shape: BoxShape.circle,
+ color: index == 3 ? Colors.grey[800] : Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '4',
+ color: index == 3 ? Colors.white : Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ ):Stack(
+ children: [
+ Container(
+ height: 50,
+ width: MediaQuery.of(context).size.width,
+ color: Colors.transparent,
+ child: Center(
+ child: Divider(
+ color: Colors.grey,
+ height: 0.75,
+ thickness: 0.75,
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: 0,
+ child: InkWell(
+ onTap: () => changeCurrentTab(0),
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '1',
+ color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: MediaQuery.of(context).size.width * 0.3,
+ child: InkWell(
+ onTap: () => index >= 2 ? changeCurrentTab(1) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
+ shape: BoxShape.circle,
+ color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '2',
+ color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ right: MediaQuery.of(context).size.width * 0.6,
+ child: InkWell(
+ onTap: () => index >= 3 ? changeCurrentTab(2) : null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ border: index > 2 ? null:Border.all(color: Colors.black,width: 0.75),
+ color: index == 2 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '3',
+ color: index == 2? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ Positioned(
+ top: 10,
+ left: 0,
+ child: InkWell(
+ onTap: () => index == 2 ?changeCurrentTab(3):null,
+ child: Container(
+ width: 35,
+ height: 35,
+ decoration: BoxDecoration(
+ border: Border.all(color: Colors.black,width: 0.75),
+
+ shape: BoxShape.circle,
+ color: index == 3 ? Colors.grey[800] : Colors.white,
+ ),
+ child: Center(
+ child: Texts(
+ '4',
+ color: index == 3 ? Colors.white : Colors.grey[800],
+ ),
+ ),
+ ),
+ ),
+ ),
+ ],
+ );
+ }
+}
diff --git a/lib/pages/MyAppointments/MyAppointments.dart b/lib/pages/MyAppointments/MyAppointments.dart
index dc6fc65c..379c6e71 100644
--- a/lib/pages/MyAppointments/MyAppointments.dart
+++ b/lib/pages/MyAppointments/MyAppointments.dart
@@ -1,7 +1,9 @@
+import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/models/AppointmentType.dart';
import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/AppointmentCardView.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
+import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_expandable_notifier.dart';
@@ -30,7 +32,7 @@ class _MyAppointmentsState extends State
TabController _tabController;
bool isDataLoaded = false;
-
+ var sharedPref = new AppSharedPreferences();
@override
void initState() {
_tabController = new TabController(length: 3, vsync: this);
@@ -203,100 +205,114 @@ class _MyAppointmentsState extends State
});
}
- openAppointmentsTab() {
- if (widget._patientBookedAppointmentListHospital.length != 0) {
+ openAppointmentsTab() async {
+ var flag = await this.sharedPref.getInt(IS_SEARCH_APPO);
+
+ if (flag == 1) {
_tabController.index = 0;
- } else if (widget._patientConfirmedAppointmentListHospital.length != 0) {
+ } else if (flag == 2) {
_tabController.index = 1;
- } else if (widget._patientArrivedAppointmentListHospital.length != 0) {
+ } else if (flag == 3) {
_tabController.index = 2;
- return;
+ } else {
+ if (widget._patientBookedAppointmentListHospital.length != 0) {
+ _tabController.index = 0;
+ } else if (widget._patientConfirmedAppointmentListHospital.length != 0) {
+ _tabController.index = 1;
+ } else if (widget._patientArrivedAppointmentListHospital.length != 0) {
+ _tabController.index = 2;
+ return;
+ }
}
}
Widget getBookedAppointments() {
return Container(
- child: widget.bookedAppoList.length != 0
- ? new ListView.builder(
- itemCount: widget.bookedAppoList.length,
- itemBuilder: (context, i) {
- return AppointmentCard(
- appo: widget.bookedAppoList[i],
- onReloadAppointmentHistory: getPatientAppointmentHistory,
- );
- },
- )
- : Container(
- child: Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Image.asset(
- "assets/images/new-design/noAppointmentIcon.png"),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Text(TranslationBase.of(context).noBookedAppointments,
- style: TextStyle(
- fontSize: 16.0,
- )),
- ),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Container(
- child: widget.bookedAppoList.length != 0
- ? SingleChildScrollView(
- physics: BouncingScrollPhysics(),
- child: Column(
- children: [
- ...List.generate(
- widget._patientBookedAppointmentListHospital.length,
+ child: widget.bookedAppoList.length != 0
+ ? new ListView.builder(
+ itemCount: widget.bookedAppoList.length,
+ itemBuilder: (context, i) {
+ return AppointmentCard(
+ appo: widget.bookedAppoList[i],
+ onReloadAppointmentHistory: getPatientAppointmentHistory,
+ );
+ },
+ )
+ : Container(
+ child: Center(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ // Image.asset(
+ // "assets/images/new-design/noAppointmentIcon.png"),
+ // Container(
+ // margin: EdgeInsets.only(top: 10.0),
+ // child: Text(TranslationBase.of(context).noBookedAppointments,
+ // style: TextStyle(
+ // fontSize: 16.0,
+ // )),
+ // ),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Container(
+ child: widget.bookedAppoList.length != 0
+ ? SingleChildScrollView(
+ physics: BouncingScrollPhysics(),
+ child: Column(
+ children: [
+ ...List.generate(
+ widget._patientBookedAppointmentListHospital
+ .length,
(index) => AppExpandableNotifier(
- title: widget
- ._patientBookedAppointmentListHospital[index]
- .filterName,
- bodyWidget: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: widget
- ._patientBookedAppointmentListHospital[index]
- .patientDoctorAppointmentList
- .map((doctor) {
- return AppointmentCard(
- appo: doctor,
- onReloadAppointmentHistory:
- getPatientAppointmentHistory,
- );
- }).toList(),
- )),
- )
- ],
- ),
- )
- : Container(
- child: Center(
- child: Column(
- mainAxisAlignment: MainAxisAlignment.center,
- crossAxisAlignment: CrossAxisAlignment.center,
- children: [
- Image.asset(
- "assets/images/new-design/noAppointmentIcon.png"),
- Container(
- margin: EdgeInsets.only(top: 10.0),
- child: Text("No Booked Appointments",
- style: TextStyle(
- fontSize: 16.0,
- )),
+ title: widget
+ ._patientBookedAppointmentListHospital[
+ index]
+ .filterName,
+ bodyWidget: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
+ children: widget
+ ._patientBookedAppointmentListHospital[
+ index]
+ .patientDoctorAppointmentList
+ .map((doctor) {
+ return AppointmentCard(
+ appo: doctor,
+ onReloadAppointmentHistory:
+ getPatientAppointmentHistory,
+ );
+ }).toList(),
+ )),
+ )
+ ],
+ ),
+ )
+ : Container(
+ child: Center(
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Image.asset(
+ "assets/images/new-design/noAppointmentIcon.png"),
+ Container(
+ margin: EdgeInsets.only(top: 10.0),
+ child: Text("No Booked Appointments",
+ style: TextStyle(
+ fontSize: 16.0,
+ )),
+ ),
+ ],
),
- ],
+ ),
),
- ),
- ),
- ),
- )
- ],
-
- ))));
+ ),
+ )
+ ],
+ ))));
}
Widget getConfirmedAppointments() {
@@ -341,7 +357,8 @@ class _MyAppointmentsState extends State
Image.asset("assets/images/new-design/noAppointmentIcon.png"),
Container(
margin: EdgeInsets.only(top: 10.0),
- child: Text(TranslationBase.of(context).noConfirmedAppointments ,
+ child: Text(
+ TranslationBase.of(context).noConfirmedAppointments,
style: TextStyle(
fontSize: 16.0,
)),
@@ -363,23 +380,24 @@ class _MyAppointmentsState extends State
...List.generate(
widget._patientArrivedAppointmentListHospital.length,
(index) => AppExpandableNotifier(
- title: widget
+ title: widget
+ ._patientArrivedAppointmentListHospital[index]
+ .filterName,
+ bodyWidget: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: widget
._patientArrivedAppointmentListHospital[index]
- .filterName,
- bodyWidget: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: widget
- ._patientArrivedAppointmentListHospital[index]
- .patientDoctorAppointmentList
- .map((doctor) {
- return AppointmentCard(
- appo: doctor,
- onReloadAppointmentHistory:
- getPatientAppointmentHistory,
- );
- }).toList(),
- )),
+ .patientDoctorAppointmentList
+ .map((doctor) {
+ return AppointmentCard(
+ appo: doctor,
+ onReloadAppointmentHistory:
+ getPatientAppointmentHistory,
+ );
+ }).toList(),
+ ),
+ ),
)
],
),
@@ -394,10 +412,11 @@ class _MyAppointmentsState extends State
Image.asset("assets/images/new-design/noAppointmentIcon.png"),
Container(
margin: EdgeInsets.only(top: 10.0),
- child: Text(TranslationBase.of(context).noArrivedAppointments,
- style: TextStyle(
- fontSize: 16.0,
- )),
+ child:
+ Text(TranslationBase.of(context).noArrivedAppointments,
+ style: TextStyle(
+ fontSize: 16.0,
+ )),
),
],
),
diff --git a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
index 2e5c88b0..71bde484 100644
--- a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
+++ b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
@@ -24,7 +24,7 @@ class _ApointmentCardState extends State {
navigateToAppointmentDetails(context, widget.appo);
},
child: Card(
- margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0),
+ // margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
@@ -95,7 +95,8 @@ class _ApointmentCardState extends State {
emptyIcon: Icons.star,
),
Container(
- transform: Matrix4.translationValues(15.0, -40.0, 0.0),
+ transform:
+ Matrix4.translationValues(15.0, -40.0, 0.0),
child: Image.asset(
"assets/images/new-design/arrow.png",
width: 25.0,
diff --git a/lib/pages/base/base_view.dart b/lib/pages/base/base_view.dart
index 6014b6c3..f5311aae 100644
--- a/lib/pages/base/base_view.dart
+++ b/lib/pages/base/base_view.dart
@@ -1,3 +1,4 @@
+import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -19,10 +20,11 @@ class BaseView extends StatefulWidget {
class _BaseViewState extends State> {
T model = locator();
+ AuthenticatedUserObject authenticatedUserObject = locator();
@override
void initState() {
- if (widget.onModelReady != null) {
+ if (widget.onModelReady != null && authenticatedUserObject.isLogin) {
widget.onModelReady(model);
}
super.initState();
diff --git a/lib/pages/family/my-family.dart b/lib/pages/family/my-family.dart
index b2757514..b4024b0a 100644
--- a/lib/pages/family/my-family.dart
+++ b/lib/pages/family/my-family.dart
@@ -1,114 +1,358 @@
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/others/bottom_bar.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
+import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/routes.dart';
-class MyFamily extends StatelessWidget {
- //bool isLoading = true;
+class MyFamily extends StatefulWidget {
+ @override
+ _MyFamily createState() => _MyFamily();
+}
+
+class _MyFamily extends State with TickerProviderStateMixin {
final familyFileProvider = FamilyFilesProvider();
AppSharedPreferences sharedPref = new AppSharedPreferences();
var userID;
+ TabController _tabController;
+
+ @override
+ void initState() {
+ _tabController = new TabController(length: 2, vsync: this, initialIndex: 0);
+
+ super.initState();
+ }
+ bool expandFlag = false;
Widget build(BuildContext context) {
- return AppScaffold(
- appBarTitle: TranslationBase.of(context).myFamilyFiles,
- isShowAppBar: true,
- body: DefaultTabController(
- length: 2,
- child: SingleChildScrollView(
- padding: EdgeInsets.all(20),
- child: Container(
- height: SizeConfig.realScreenHeight,
- width: SizeConfig.realScreenWidth,
- child: Stack(
- children: [
- TabBar(
- indicatorColor: Colors.red,
- tabs: [
- Padding(
- padding: EdgeInsets.all(6),
- child:
- Text(TranslationBase.of(context).family)),
- Padding(
- padding: EdgeInsets.all(6),
- child:
- Text(TranslationBase.of(context).request)),
- ],
- ),
- TabBarView(
- children: [
- myFamilyDetails(context),
- myFamilyRequest(context)
- ],
- )
- ],
- )))));
+ return Scaffold(
+ appBar: AppBar(
+ bottom: TabBar(
+ indicatorColor: Colors.red,
+ tabs: [
+ Padding(
+ padding: EdgeInsets.all(6),
+ child: AppText(
+ TranslationBase.of(context).family,
+ color: Colors.white,
+ )),
+ Padding(
+ padding: EdgeInsets.all(6),
+ child: AppText(
+ TranslationBase.of(context).request,
+ color: Colors.white,
+ )),
+ ],
+ controller: _tabController,
+ ),
+ title: AppText(TranslationBase.of(context).myFamilyFiles,
+ color: Colors.white)),
+ body: TabBarView(
+ // physics: NeverScrollableScrollPhysics(),
+ children: [myFamilyDetails(context), myFamilyRequest(context)],
+ controller: _tabController),
+ bottomNavigationBar: BottomBarSearch());
+
+ // AppScaffold(
+ // appBarTitle: TranslationBase.of(context).myFamilyFiles,
+ // isShowAppBar: true,
+ // body: SingleChildScrollView(
+ // child: Container(
+ // height: SizeConfig.screenHeight,
+ // width: SizeConfig.realScreenWidth,
+ // padding: EdgeInsets.all(20),
+ // child: Stack(
+ // children: [
+ // TabBar(
+ // controller: _tabController,
+ // indicatorColor: Colors.red,
+ // tabs: [
+ // Padding(
+ // padding: EdgeInsets.all(6),
+ // child: Text(TranslationBase.of(context).family)),
+ // Padding(
+ // padding: EdgeInsets.all(6),
+ // child: Text(TranslationBase.of(context).request)),
+ // ],
+ // ),
+ // TabBarView(
+ // controller: _tabController,
+ // children: [
+ // myFamilyDetails(context),
+ // myFamilyRequest(context)
+ // ],
+ // )
+ // ],
+ // ))));
}
Widget myFamilyDetails(context) {
- return // Padding(
- //padding: EdgeInsets.only(top: 50),
- //child:
- Column(
- // mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Expanded(
- flex: 3,
- child: FutureBuilder(
- future: getFamilyFiles(), // async work
- builder: (BuildContext context,
- AsyncSnapshot snapshot) {
- switch (snapshot.connectionState) {
- case ConnectionState.waiting:
- return Padding(
- padding: EdgeInsets.only(top: 50),
- child: Text('Loading....'));
- default:
- if (snapshot.hasError)
- return Padding(
- padding: EdgeInsets.all(10),
- child: Text(snapshot.error));
- else
+ return Container(
+ height: MediaQuery.of(context).size.height,
+ margin: EdgeInsets.fromLTRB(20.0, 0, 20.0, 0.0),
+ child: Column(
+ children: [
+ Expanded(
+ flex: 4,
+ child: FutureBuilder(
+ future: getFamilyFiles(), // async work
+ builder: (BuildContext context,
+ AsyncSnapshot
+ snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
return Padding(
padding: EdgeInsets.only(top: 50),
- child: Column(children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Expanded(
- flex: 3,
- child: Text(
- TranslationBase.of(context).request)),
- Expanded(
- flex: 2,
- child: Text(
- TranslationBase.of(context).switchUser,
- )),
- Expanded(
- flex: 1,
- child: Text(
- TranslationBase.of(context).deleteView,
- )),
+ child: Text('Loading....'));
+ default:
+ if (snapshot.hasError)
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Text("No data found"));
+ else
+ return Padding(
+ padding: EdgeInsets.only(top: 50),
+ child: Column(children: [
+ Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 3,
+ child: Text(
+ TranslationBase.of(context).request)),
+ Expanded(
+ flex: 2,
+ child: Text(
+ TranslationBase.of(context).switchUser,
+ )),
+ Expanded(
+ flex: 1,
+ child: Text(
+ TranslationBase.of(context).deleteView,
+ )),
+ ],
+ ),
+ Column(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: snapshot
+ .data.getAllSharedRecordsByStatusList
+ .map((result) {
+ return result.status == 3
+ ? Padding(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child: Text(
+ result.patientName)),
+ Expanded(
+ flex: 2,
+ child: IconButton(
+ icon: Icon(Icons.group),
+ color: Colors.black,
+ onPressed: () {
+ switchUser(
+ result, context);
+ },
+ )),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: Icon(
+ Icons.delete,
+ color: Colors.black,
+ ),
+ onPressed: () {
+ deleteFamily(
+ result, context);
+ },
+ )),
+ ],
+ ))
+ : SizedBox();
+ }).toList())
+ ]));
+ }
+ },
+ ),
+ ),
+ Expanded(
+ flex: 1,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.end,
+ children: [
+ Row(
+ children: [
+ Expanded(
+ child: DefaultButton(
+ TranslationBase.of(context).addFamilyMember,
+ () => {
+ Navigator.of(context)
+ .pushNamed(ADD_FAMILY_MEMBER_TYPE)
+ },
+ color: Colors.grey[900],
+ textColor: Colors.white,
+ ))
+ ],
+ ),
+ ],
+ ),
+ )
+ ],
+ ));
+ }
+
+ Widget myFamilyRequest(context) {
+ return Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 10.0),
+ child: Column(
+ children: [
+ // SizedBox(height: 20.0),
+ RoundedContainer(
+ child: ExpansionTile(
+ title: Text(
+ TranslationBase.of(context).userViewRequest,
+ style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
+ ),
+ children: [
+ FutureBuilder(
+ future: getUserViewRequest(), // async work
+ builder: (BuildContext context,
+ AsyncSnapshot snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return Padding(
+ padding: EdgeInsets.only(top: 50),
+ child: Text('Loading....'));
+ default:
+ if (snapshot.hasError)
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Text('No data found'));
+ else
+ return Column(
+ children: [
+ Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 3,
+ child: Text(TranslationBase.of(context)
+ .request)),
+ Expanded(
+ flex: 2,
+ child: Text(
+ TranslationBase.of(context)
+ .switchUser,
+ )),
+ Expanded(
+ flex: 1,
+ child: Text(
+ TranslationBase.of(context)
+ .deleteView,
+ )),
+ ],
+ ),
+ Column(children: [
+ Row(children: [
+ Expanded(flex: 3, child: AppText('Name')),
+ Expanded(flex: 1, child: AppText('Allow')),
+ Expanded(flex: 1, child: AppText('Reject')),
+ ]),
+ Column(
+ children: snapshot
+ .data['GetAllPendingRecordsList']
+ .map((result) {
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child:
+ Text(result.patientName)),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: Icon(
+ Icons.check_circle,
+ color: Colors.black,
+ ),
+ onPressed: () {
+ acceptRequest(
+ result, context);
+ },
+ )),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: Icon(
+ Icons.delete,
+ color: Colors.black,
+ ),
+ onPressed: () {
+ deleteRequest(
+ result, context);
+ },
+ ))
+ ],
+ ));
+ }).toList())
+ ])
],
- ),
- Column(
- mainAxisAlignment: MainAxisAlignment.start,
- children: snapshot
- .data.getAllSharedRecordsByStatusList
- .map((result) {
- return result.status == 3
- ? Padding(
+ );
+ }
+ })
+ ],
+ ),
+ ),
+ RoundedContainer(
+ child: ExpansionTile(
+ title: Text(
+ TranslationBase.of(context).sentRequest,
+ style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
+ ),
+ children: [
+ FutureBuilder(
+ future: getSentRequest(), // async work
+ builder: (BuildContext context,
+ AsyncSnapshot
+ snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return Padding(
+ padding: EdgeInsets.only(top: 50),
+ child: Text('Loading....'));
+ default:
+ if (snapshot.hasError)
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Text('No data found'));
+ else
+ return SingleChildScrollView(
+ child: Container(
+ height: SizeConfig.screenHeight * .3,
+ child: ListView(
+ children: snapshot
+ .data.getAllSharedRecordsByStatusList
+ .map((result) {
+ return Padding(
padding: EdgeInsets.all(10),
child: Row(
children: [
@@ -118,61 +362,102 @@ class MyFamily extends StatelessWidget {
Text(result.patientName)),
Expanded(
flex: 2,
- child: IconButton(
- icon: Icon(Icons.group),
- color: Colors.black,
- onPressed: () {
- switchUser(
- result, context);
- },
- )),
- Expanded(
- flex: 1,
- child: IconButton(
- icon: Icon(
- Icons.delete,
- color: Colors.black,
- ),
- onPressed: () {
- deleteFamily(
- result, context);
- },
+ child: AppText(
+ result.statusDescription,
+ color: Colors.red,
)),
],
- ))
- : SizedBox();
+ ));
+ }).toList(),
+ )));
+ }
+ })
+ ],
+ )),
+ RoundedContainer(
+ child: ExpansionTile(
+ title: Text(
+ TranslationBase.of(context).userView,
+ style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
+ ),
+ children: [
+ FutureBuilder(
+ future: getUserViewRequest(), // async work
+ builder:
+ (BuildContext context, AsyncSnapshot snapshot) {
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return Padding(
+ padding: EdgeInsets.only(top: 50),
+ child: Text('Loading....'));
+ default:
+ if (snapshot.hasError)
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Text('No data found'));
+ else
+ return Column(
+ children: [
+ Row(
+ mainAxisAlignment:
+ MainAxisAlignment.spaceBetween,
+ children: [
+ Expanded(
+ flex: 3,
+ child: Text(
+ TranslationBase.of(context).request)),
+ Expanded(
+ flex: 2,
+ child: Text(
+ TranslationBase.of(context).switchUser,
+ )),
+ Expanded(
+ flex: 1,
+ child: Text(
+ TranslationBase.of(context).deleteView,
+ )),
+ ],
+ ),
+ Column(children: [
+ Row(children: [
+ Expanded(flex: 3, child: AppText('Name')),
+ Expanded(flex: 1, child: AppText('Delete')),
+ ]),
+ Column(
+ children: snapshot
+ .data['GetAllPendingRecordsList']
+ .map((result) {
+ return Padding(
+ padding: EdgeInsets.all(10),
+ child: Row(
+ children: [
+ Expanded(
+ flex: 3,
+ child: Text(result.patientName)),
+ Expanded(
+ flex: 1,
+ child: IconButton(
+ icon: Icon(
+ Icons.delete,
+ color: Colors.black,
+ ),
+ onPressed: () {
+ deleteRequest(
+ result, context);
+ },
+ )),
+ ],
+ ));
}).toList())
- ]));
- }
- },
- )),
- Expanded(
- flex: 1,
- child: Column(
- children: [
- Row(
- children: [
- Expanded(
- child: DefaultButton(
- TranslationBase.of(context).addFamilyMember,
- () => {
- Navigator.of(context).pushNamed(ADD_FAMILY_MEMBER_TYPE)
- },
- color: Colors.grey[900],
- textColor: Colors.white,
- ))
- ],
- ),
- ],
- ))
- ],
- );
- }
-
- addMember() {}
- Widget myFamilyRequest(context) {
- return Column(
- children: [],
+ ])
+ ],
+ );
+ }
+ })
+ ],
+ ))
+ ],
+ ),
);
}
@@ -186,6 +471,16 @@ class MyFamily extends StatelessWidget {
}
}
+ Future getUserViewRequest() async {
+ var user = await sharedPref.getObject(USER_PROFILE);
+ return familyFileProvider.getUserViewRequest(user['PatientID']);
+ }
+
+ Future getSentRequest() async {
+ // var user = await sharedPref.getObject(USER_PROFILE);
+ return familyFileProvider.getUserSentRequest();
+ }
+
deleteFamily(family, context) {
ConfirmDialog dialog = new ConfirmDialog(
context: context,
@@ -236,4 +531,7 @@ class MyFamily extends StatelessWidget {
HOME,
);
}
+
+ deleteRequest(result, context) {}
+ acceptRequest(result, context) {}
}
diff --git a/lib/pages/feedback/feedback_home_page.dart b/lib/pages/feedback/feedback_home_page.dart
index 68f0bfab..d7c7361f 100644
--- a/lib/pages/feedback/feedback_home_page.dart
+++ b/lib/pages/feedback/feedback_home_page.dart
@@ -33,6 +33,7 @@ class _FeedbackHomePageState extends State
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
+ isBottomBar: false,
appBarTitle: 'Feedback',
body: Scaffold(
extendBodyBehindAppBar: true,
@@ -62,8 +63,7 @@ class _FeedbackHomePageState extends State
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
- color: Theme.of(context).dividerColor,
- width: 0.7),
+ color: Theme.of(context).dividerColor, width: 0.7),
),
color: Colors.white),
child: Center(
@@ -75,7 +75,7 @@ class _FeedbackHomePageState extends State
indicatorColor: Colors.red[800],
labelColor: Theme.of(context).primaryColor,
labelPadding:
- EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
+ EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
unselectedLabelColor: Colors.grey[800],
tabs: [
Container(
@@ -104,10 +104,7 @@ class _FeedbackHomePageState extends State
child: TabBarView(
physics: BouncingScrollPhysics(),
controller: _tabController,
- children: