diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 79bc3dc4..1a3d4cfe 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -10,6 +10,7 @@
+
diff --git a/assets/images/new-design/video.png b/assets/images/new-design/video.png
new file mode 100644
index 00000000..2962aade
Binary files /dev/null and b/assets/images/new-design/video.png differ
diff --git a/assets/images/new-design/view_more.png b/assets/images/new-design/view_more.png
new file mode 100644
index 00000000..8b52a7e7
Binary files /dev/null and b/assets/images/new-design/view_more.png differ
diff --git a/assets/images/new-design/walkin.png b/assets/images/new-design/walkin.png
new file mode 100644
index 00000000..248c8788
Binary files /dev/null and b/assets/images/new-design/walkin.png differ
diff --git a/lib/config/config.dart b/lib/config/config.dart
index a6acecd6..d276d51a 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -231,6 +231,8 @@ const SEND_LIVECARE_INVOICE_EMAIL = 'Services/Notifications.svc/REST/SendInvoice
const GET_USER_TERMS = 'Services/Patients.svc/REST/GetUserTermsAndConditions';
const UPDATE_HEALTH_TERMS = 'services/Patients.svc/REST/UpdatePateintHealthSummaryReport';
+const GET_PATIENT_HEALTH_STATS = 'Services/Patients.svc/REST/Med_GetTransactionsSts';
+
//URL to get medicine and pharmacies list
const CHANNEL = 3;
const GENERAL_ID = 'Cs2020@2016\$2958';
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 533dd7e8..1601471a 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -2,23 +2,45 @@
// Used for Native through Platform Method Channel
// --------- - -- - - - - - - - - ----------------
const Map platformLocalizedValues = {
- "errorConnectingHmgNetwork": {"en": "Sorry you are not connecting to HMG network", "ar": "نعتذر لست متصل في شكبة مستشفى د.سليمان الحبيب"},
- "successConnectingHmgNetwork": {"en": "You connected to HMG network successfully, you can access the app", "ar": "تم التصال بشبكة د.سليمان الحبيب بنجاح, تستطيع الان استخدام تطبيق الحبيب"},
+ "errorConnectingHmgNetwork": {
+ "en": "Sorry you are not connecting to HMG network",
+ "ar": "نعتذر لست متصل في شكبة مستشفى د.سليمان الحبيب"
+ },
+ "successConnectingHmgNetwork": {
+ "en": "You connected to HMG network successfully, you can access the app",
+ "ar":
+ "تم التصال بشبكة د.سليمان الحبيب بنجاح, تستطيع الان استخدام تطبيق الحبيب"
+ },
"failedConnectingHmgNetwork": {
- "en": "Sorry the connection to HMG network had been failed, make sure you are in range of HMG network",
- "ar": "نعتذر لقد فشل الاتصال بشبكة د.سليمان الحبيب, تاكد من وجودك داخل نطاق الشبكة"
+ "en":
+ "Sorry the connection to HMG network had been failed, make sure you are in range of HMG network",
+ "ar":
+ "نعتذر لقد فشل الاتصال بشبكة د.سليمان الحبيب, تاكد من وجودك داخل نطاق الشبكة"
+ },
+ "alreadyConnectedHmgNetwork": {
+ "en": " You already connected to HMG network to access Alhabib app",
+ "ar": "انت متصل مسبقاً بالشبكة تستطيع استخدام تطبيق الحبيب"
+ },
+ "somethingWentWrong": {
+ "en": "Sorry something went wrong please try again later",
+ "ar": "نعتذر لخدمتكم يرجى المحاولة لاحقا"
},
- "alreadyConnectedHmgNetwork": {"en": " You already connected to HMG network to access Alhabib app", "ar": "انت متصل مسبقاً بالشبكة تستطيع استخدام تطبيق الحبيب"},
- "somethingWentWrong": {"en": "Sorry something went wrong please try again later", "ar": "نعتذر لخدمتكم يرجى المحاولة لاحقا"},
"enablingWifi": {"en": "Enabling wifi...", "ar": "Enabling wifi..."},
- "connectedHmgNetworkWithInternet": {"en": "Successfully connected to the HMG network to access internet", "ar": "Successfully connected to the HMG network to access internet"},
+ "connectedHmgNetworkWithInternet": {
+ "en": "Successfully connected to the HMG network to access internet",
+ "ar": "Successfully connected to the HMG network to access internet"
+ },
"connectedToHmgNetworkWithNoInternet": {
- "en": "Successfully connected to the HMG network but it have no internet access",
- "ar": "Successfully connected to the HMG network but it have no internet access"
+ "en":
+ "Successfully connected to the HMG network but it have no internet access",
+ "ar":
+ "Successfully connected to the HMG network but it have no internet access"
},
"notConnectedToHmgNetworkSecurityIssue": {
- "en": "We are not able to connect you to HMG network due to security reasons",
- "ar": "We are not able to connect you to HMG network due to security reasons"
+ "en":
+ "We are not able to connect you to HMG network due to security reasons",
+ "ar":
+ "We are not able to connect you to HMG network due to security reasons"
}
};
@@ -45,7 +67,10 @@ const Map localizedValues = {
'clinicName': {'en': 'Clinic Name', 'ar': 'اسم العيادة'},
'doctorName': {'en': 'Doctor Name', 'ar': 'إسم الطبيب'},
'nearestAppo': {'en': 'Nearest appointment', 'ar': 'أقرب موعد'},
- 'searchByDocText': {'en': 'Type the name of the doctor to help you find him', 'ar': 'اكتب اسم الطبيب لمساعدتك في العثور عليه'},
+ 'searchByDocText': {
+ 'en': 'Type the name of the doctor to help you find him',
+ 'ar': 'اكتب اسم الطبيب لمساعدتك في العثور عليه'
+ },
'enterDocName': {'en': 'Enter Doctor name', 'ar': 'أدخل إسم الطبيب'},
'search': {'en': 'Search', 'ar': 'بحث'},
'bookNow': {'en': 'BOOK NOW', 'ar': 'احجز الآن'},
@@ -55,11 +80,17 @@ const Map localizedValues = {
'gender': {'en': 'Gender', 'ar': 'الجنس'},
'nationality': {'en': 'Nationality', 'ar': 'الجنسية'},
'docQualifications': {'en': 'Doctor Qualifications', 'ar': 'مؤهلات الطبيب'},
- 'confirmAppoHeading': {'en': 'Kindly confirm your Appointment', 'ar': 'يرجى تأكيد موعدك'},
+ 'confirmAppoHeading': {
+ 'en': 'Kindly confirm your Appointment',
+ 'ar': 'يرجى تأكيد موعدك'
+ },
'patientInfo': {'en': 'Patient Information', 'ar': 'معلومات المريض'},
'bookSuccess': {'en': 'Book Success', 'ar': 'تم حجز الموعد بنجاح'},
'patientShare': {'en': 'Patient Share', 'ar': 'المبلغ المستحق'},
- 'patientShareWithTax': {'en': 'Patient Share with Tax', 'ar': 'المبلغ الإجمالي المستحق'},
+ 'patientShareWithTax': {
+ 'en': 'Patient Share with Tax',
+ 'ar': 'المبلغ الإجمالي المستحق'
+ },
'confirmAppo': {'en': 'Confirm Appointment', 'ar': 'تأكيد الموعد'},
'confirm': {'en': 'Confirm', 'ar': 'تأكيد'},
'confirmLiveCare': {'en': 'Confirm LiveCare', 'ar': 'تأكيد لايف كير'},
@@ -81,18 +112,41 @@ const Map localizedValues = {
'ar': 'هل أنت متأكد أنك تريد إلغاء هذا الموعد؟'
},
- 'upcoming-noAction': {'en': 'No Action Required', 'ar': 'لا يوجد إجراء مطلوب'},
- 'upcoming-confirm': {'en': 'Please confirm the appointment to avoid cancellation', 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'},
+ 'upcoming-noAction': {
+ 'en': 'No Action Required',
+ 'ar': 'لا يوجد إجراء مطلوب'
+ },
+ 'upcoming-confirm': {
+ 'en': 'Please confirm the appointment to avoid cancellation',
+ 'ar': 'يرجى تأكيد الموعد لتفادي الإلغاء'
+ },
"book-success-confirm-more-24-1-2": {
"en":
"The online payment process will be available 24 hours before the appointment.",
"ar": "- عملية الدفع الالكتروني ستكون متاحة قبل الموعد ب 24 ساعة."
},
- 'upcoming-payment-pending': {'en': 'Online Payment will be Activated before 24 Hours of Appointment Time', 'ar': 'سيتم تفعيل خدمة الدفع الالكتروني قبل 24 ساعة من موعد الحجز'},
- 'upcoming-payment-now': {'en': 'Pay Online now to avoid long waiting queue', 'ar': 'ادفع الآن لتفادي الانتظار'},
- 'upcoming-QR': {'en': 'Use the QR Code to Check-In in hospital', 'ar': 'استخدم الرمز لتسجيل الحضور في المستشفى'},
- 'upcoming-virtual': {'en': 'This is a virtual appointment, Please adhere to the instructions for a seamless experience.', 'ar': 'هذا موعد اتصال مرئي عن بعد ، يرجى اتباع تعليمات الخدمة.'},
- 'upcoming-livecare': {'en': 'This is a LiveCare appointment', 'ar': 'هذا موعد لايف كير'},
+ 'upcoming-payment-pending': {
+ 'en':
+ 'Online Payment will be Activated before 24 Hours of Appointment Time',
+ 'ar': 'سيتم تفعيل خدمة الدفع الالكتروني قبل 24 ساعة من موعد الحجز'
+ },
+ 'upcoming-payment-now': {
+ 'en': 'Pay Online now to avoid long waiting queue',
+ 'ar': 'ادفع الآن لتفادي الانتظار'
+ },
+ 'upcoming-QR': {
+ 'en': 'Use the QR Code to Check-In in hospital',
+ 'ar': 'استخدم الرمز لتسجيل الحضور في المستشفى'
+ },
+ 'upcoming-virtual': {
+ 'en':
+ 'This is a virtual appointment, Please adhere to the instructions for a seamless experience.',
+ 'ar': 'هذا موعد اتصال مرئي عن بعد ، يرجى اتباع تعليمات الخدمة.'
+ },
+ 'upcoming-livecare': {
+ 'en': 'This is a LiveCare appointment',
+ 'ar': 'هذا موعد لايف كير'
+ },
'upcoming-details': {'en': 'More Details', 'ar': 'المزيد'},
'reschedule': {'en': 'Reschedule', 'ar': 'إعادة جدولة'},
'raise': {'en': 'Raise', 'ar': 'رفع'},
@@ -340,35 +394,70 @@ const Map localizedValues = {
"seeDetails": {"en": "SEE DETAILS", "ar": "منافعك التامينية"},
"insuranceCards": {"en": "Insurance Cards", "ar": "بطاقات التأمين"},
"requestType": {"en": "Request Type", "ar": "نوع الاستفسار"},
- "register-info-family": {"en": "How would like to add the new member?", "ar": "كيف ترغب باضافة العضو الجديد؟"},
- "remove-family-member": {"en": "Remove this member?", "ar": "إزالة ملف العضو؟"},
+ "register-info-family": {
+ "en": "How would like to add the new member?",
+ "ar": "كيف ترغب باضافة العضو الجديد؟"
+ },
+ "remove-family-member": {
+ "en": "Remove this member?",
+ "ar": "إزالة ملف العضو؟"
+ },
"MyMedicalFile": {"en": "My Medical File", 'ar': 'ملف الطبي الالكتروني'},
- "myMedicalFileSubTitle": {"en": "All your medical records", 'ar': 'جميع سجلاتك الطبية'},
+ "myMedicalFileSubTitle": {
+ "en": "All your medical records",
+ 'ar': 'جميع سجلاتك الطبية'
+ },
"viewMore": {"en": "View More", 'ar': 'عرض المزيد'},
- "homeHealthCareService": {"en": "Home Health Care Service", 'ar': 'الرعاية الصحية المنزلية'},
+ "homeHealthCareService": {
+ "en": "Home Health Care Service",
+ 'ar': 'الرعاية الصحية المنزلية'
+ },
"OnlinePharmacy": {"en": "Online Pharmacy", 'ar': 'صيدليات الحبيب'},
"EmergencyService": {"en": "Emergency Service", 'ar': 'الفحص الطبي الشامل'},
- "OnlinePaymentService": {"en": "Online Payment Service", 'ar': 'خدمة الدفع الإلكتدوني'},
- "OffersAndPackages": {"en": "Online transfer request", 'ar': 'طلب التحويل الالكتروني'},
- "ComprehensiveMedicalCheckup": {"en": "Comprehensive Medical Check up", 'ar': 'فحص طبي شامل'},
+ "OnlinePaymentService": {
+ "en": "Online Payment Service",
+ 'ar': 'خدمة الدفع الإلكتدوني'
+ },
+ "OffersAndPackages": {
+ "en": "Online transfer request",
+ 'ar': 'طلب التحويل الالكتروني'
+ },
+ "ComprehensiveMedicalCheckup": {
+ "en": "Comprehensive Medical Check up",
+ 'ar': 'فحص طبي شامل'
+ },
"HMGService": {"en": "HMG Service", 'ar': 'جميع خدمات الحبيب'},
- "ViewAllHabibMedicalService": {"en": "View All Habib Medical Service", 'ar': 'عرض خدمات الحبيب الطبية'},
+ "ViewAllHabibMedicalService": {
+ "en": "View All Habib Medical Service",
+ 'ar': 'عرض خدمات الحبيب الطبية'
+ },
"viewAll": {"en": "View All", 'ar': 'عرض الكل'},
"view": {"en": "View", 'ar': 'عرض'},
"ContactUs": {"en": "Contact Us", 'ar': 'الوصول إلينا'},
- "ViewAllWaysReachUs": {"en": "View All Ways Reach Us", 'ar': 'جميع طرق الاتصال بنا'},
+ "ViewAllWaysReachUs": {
+ "en": "View All Ways Reach Us",
+ 'ar': 'جميع طرق الاتصال بنا'
+ },
"medicalProfile": {"en": "Medical Profile", 'ar': 'الملف الطبي'},
"consultation": {"en": "Consultation", "ar": "استشارة"},
"logs": {"en": "Logs", "ar": "السجلات"},
"textToSpeech": {"en": "How May I Help You?", "ar": "كيف يمكنني مساعدتك؟"},
"locationDialogMessage": {
- "en": "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.",
- "ar": "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."
+ "en":
+ "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.",
+ "ar":
+ "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."
},
- "user-view-requester": {"en": "User Wants To View Your Medical File", "ar": "أشخاص يرغبون الاطلاع على ملفك الطبي"},
- "user-view": {"en": "User Can View Your Medical File", "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": "خدمات الحبيب"},
@@ -493,12 +582,22 @@ const Map localizedValues = {
"MyBalances": {"en": "My Balances", "ar": "رصيدي"},
"BalanceAmount": {"en": "Balance Amount", "ar": "رصيدالحساب"},
"TotalBalance": {"en": "Total Balance", "ar": "الرصيد الكلي"},
- "CreateAdvancedPayment": {"en": "Create Advanced Payment", "ar": "إنشاء دفعة مقدمة"},
+ "CreateAdvancedPayment": {
+ "en": "Create Advanced Payment",
+ "ar": "إنشاء دفعة مقدمة"
+ },
"AdvancePayment": {"en": "Advance Payment", "ar": "الدفع مقدما"},
- "AdvancePaymentLabel": {"en": "You can create and add an Advanced Payment for you account or other accounts.", "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"},
+ "AdvancePaymentLabel": {
+ "en":
+ "You can create and add an Advanced Payment for you account or other accounts.",
+ "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"
+ },
"FileNumber": {"en": "File Number", "ar": "رقم الملف"},
"Amount": {"en": "Amount *", "ar": "المبلغ *"},
- "DepositorEmail": {"en": "Depositor Email *", "ar": "البريد الإلكتروني للمودع *"},
+ "DepositorEmail": {
+ "en": "Depositor Email *",
+ "ar": "البريد الإلكتروني للمودع *"
+ },
"Notes": {"en": "Notes", "ar": "ملاحظات"},
"SelectPatientName": {"en": "Select Patient Name", "ar": "اختر اسم المريض"},
"SelectFamilyPatientName": {"en": "Family Members", "ar": "أفراد الأسرة"},
@@ -714,9 +813,15 @@ const Map localizedValues = {
// pharmacy module
"medicationRefill": {"en": "MEDICATION REFILL", "ar": "إعادة تعبئة الدواء"},
- "offersAndPromotions": {"en": "OFFERS & SPECIAL PROMOTIONS", "ar": "العروض والترقيات الخاصة"},
+ "offersAndPromotions": {
+ "en": "OFFERS & SPECIAL PROMOTIONS",
+ "ar": "العروض والترقيات الخاصة"
+ },
"myPrescriptions": {"en": "MY PRESCRIPTIONS", "ar": "وصفاتي"},
- "searchAndScanMedication": {"en": "SEARCH & SCAN FOR MEDICATION", "ar": "البحث والمسح للأدوية"},
+ "searchAndScanMedication": {
+ "en": "SEARCH & SCAN FOR MEDICATION",
+ "ar": "البحث والمسح للأدوية"
+ },
"shopByBrands": {"en": "Shop By Brands", "ar": "تسوق حسب الماركات"},
"recentlyViewed": {"en": "Recently Viewed", "ar": "شوهدت مؤخرا"},
"bestSellers": {"en": "Best Sellers", "ar": "أفضل البائعين"},
@@ -774,7 +879,10 @@ const Map localizedValues = {
"profile": {"en": "Profile", "ar": "ملفي"},
"notifications": {"en": "Notifications", "ar": "إشعارات"},
"notificationDetails": {"en": "Notification Details", "ar": "تفاصيل الاشعار"},
- "notificationDetailsa": {"en": "Notification Details", "ar": "تفاصيل الاشعار"},
+ "notificationDetailsa": {
+ "en": "Notification Details",
+ "ar": "تفاصيل الاشعار"
+ },
"info-my-doctor-points": {
"en": [
@@ -783,15 +891,24 @@ const Map localizedValues = {
"View details of your appointments with the selected doctor.",
"Book appointment with the doctor. ",
],
- "ar": ["الاطلاع على معلومات الطبيب ومؤهلاته.", "الاطلاع على جدول الطبيب.", "الاطلاع على تفاصيل المواعيد التي تمت مع الطبيب.", "حجز موعد مع الطبيب."]
+ "ar": [
+ "الاطلاع على معلومات الطبيب ومؤهلاته.",
+ "الاطلاع على جدول الطبيب.",
+ "الاطلاع على تفاصيل المواعيد التي تمت مع الطبيب.",
+ "حجز موعد مع الطبيب."
+ ]
},
"info-my-doctor": {
- "en": "This service allows you to see all the doctors you have visited in Al Habib Medical Group, and through this service:",
- "ar": "خدمة اطبائي: هذه الخدمة تمكنك من الاطلاع على جميع الاطباء الذين قمت بزيارتهم في مجموعة الحبيب الطبية, كما تستطيع من خلال هذه الخدمة:"
+ "en":
+ "This service allows you to see all the doctors you have visited in Al Habib Medical Group, and through this service:",
+ "ar":
+ "خدمة اطبائي: هذه الخدمة تمكنك من الاطلاع على جميع الاطباء الذين قمت بزيارتهم في مجموعة الحبيب الطبية, كما تستطيع من خلال هذه الخدمة:"
},
"info-prescriptions": {
- "en": "This service allows you to view all the medical prescriptions issued by Al Habib Medical Group, and through this service, you can:",
- "ar": "خدمة الوصفات الطبية: هذه الخدمة تمكنك من الاطلاع على جميع الوصفات الطبية التي تم اصدارها في مجموعة الحبيب الطبية، كما تستطيع من خلال هذه الخدمة:"
+ "en":
+ "This service allows you to view all the medical prescriptions issued by Al Habib Medical Group, and through this service, you can:",
+ "ar":
+ "خدمة الوصفات الطبية: هذه الخدمة تمكنك من الاطلاع على جميع الوصفات الطبية التي تم اصدارها في مجموعة الحبيب الطبية، كما تستطيع من خلال هذه الخدمة:"
},
"info-my-prescription-points": {
"en": [
@@ -815,8 +932,10 @@ const Map localizedValues = {
},
"info-insurance-cards": {
- "en": "This service allows you to view all the insurance cards that recorded during your visits to Al Habib Medical Group in addition to:",
- "ar": "خدمة بطاقات التامين: هذه الخدمة تمكنك من الاطلاع على جميع بطاقات التامين والتي تم تسجيلها اثناء زياراتك لمجموعة الحبيب الطبية بالاضافة الى:"
+ "en":
+ "This service allows you to view all the insurance cards that recorded during your visits to Al Habib Medical Group in addition to:",
+ "ar":
+ "خدمة بطاقات التامين: هذه الخدمة تمكنك من الاطلاع على جميع بطاقات التامين والتي تم تسجيلها اثناء زياراتك لمجموعة الحبيب الطبية بالاضافة الى:"
},
"info-insurance-cards-points": {
@@ -989,7 +1108,10 @@ const Map localizedValues = {
"message-type": {"en": "Message Type", "ar": "نوع الرسالة"},
"compliment": {"en": "compliment", "ar": "ثناء"},
"suggestion": {"en": "Suggestion", "ar": "إقتراح"},
- "your-feedback": {"en": "Your feedback was sent", "ar": "لقد تم ارسال اقراحك شكرا لك"},
+ "your-feedback": {
+ "en": "Your feedback was sent",
+ "ar": "لقد تم ارسال اقراحك شكرا لك"
+ },
"select-part": {
"en": "Please select the part that complain about",
"ar": "يرجى تحديد الجزء الذي تشكو منه"
@@ -1004,10 +1126,15 @@ const Map localizedValues = {
"YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "},
"ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "},
"wantConnectHmgNetwork": {
- "en": "Dear customer there is no internet access, Do you want to connect with HMG network to use our app, make sure you are in range of HMG network",
- "ar": "عزيز العميل لا يوجد اتصال بالإنترنت, هل تريد الاتصال بشبكة مستشفى د. سليمان الحبيب لاستخدام التطبيق. يجب عليك ان تكون في نطاق شبكة المستشفى"
+ "en":
+ "Dear customer there is no internet access, Do you want to connect with HMG network to use our app, make sure you are in range of HMG network",
+ "ar":
+ "عزيز العميل لا يوجد اتصال بالإنترنت, هل تريد الاتصال بشبكة مستشفى د. سليمان الحبيب لاستخدام التطبيق. يجب عليك ان تكون في نطاق شبكة المستشفى"
+ },
+ "failedToAccessHmgServices": {
+ "en": "Connected with HMG Network,\n\nBut failed to access HMG services",
+ "ar": "Connected with HMG Network,\n\nBut failed to access HMG services"
},
- "failedToAccessHmgServices": {"en": "Connected with HMG Network,\n\nBut failed to access HMG services", "ar": "Connected with HMG Network,\n\nBut failed to access HMG services"},
"offerAndPackages": {"en": "Offers And Packages", "ar": "العروض والباقات"},
"InvoiceNo": {"en": " Invoice No", "ar": "رقم الفاتورة"},
"SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"},
@@ -1259,18 +1386,9 @@ const Map localizedValues = {
"selectFileSouse": {"en": "Select file souse", "ar": "حدد الملف"},
"gallery": {"en": "Gallery", "ar": "معرض الصور"},
"camera": {"en": "Camera", "ar": "كاميرا"},
- "med-report": {
- "en": "Medical Reports",
- "ar": "التقارير الطبية"
- },
- "new-med-report": {
- "en": "Requests",
- "ar": "الطلبات"
- },
- "requestReport":{
- "en":"Request a report",
- "ar":" طلب تقرير"
- },
+ "med-report": {"en": "Medical Reports", "ar": "التقارير الطبية"},
+ "new-med-report": {"en": "Requests", "ar": "الطلبات"},
+ "requestReport": {"en": "Request a report", "ar": " طلب تقرير"},
"confirm-msg-report": {
"en": "Request for medical report?",
"ar": "طلب تقرير طبي؟"
@@ -1279,26 +1397,11 @@ const Map localizedValues = {
"en": "The request has been submitted successfully",
"ar": "تم تنفيذ طلبك بنجاح"
},
- "pulseTitle": {
- "en": "Heart rate",
- "ar": "معدل النبض بالدقيقة"
- },
- "systolic-lng": {
- "en": "Systolic",
- "ar": "الإنقباض"
- },
- "diastolic-lng": {
- "en": "Diastolic",
- "ar": "الإنبساط"
- },
- "policy-holder": {
- "en": "Policy Holder",
- "ar": "حامل بطاقة التأمين"
- },
- "policy-no": {
- "en": "Policy Number",
- "ar": "رقم سياسات"
- },
+ "pulseTitle": {"en": "Heart rate", "ar": "معدل النبض بالدقيقة"},
+ "systolic-lng": {"en": "Systolic", "ar": "الإنقباض"},
+ "diastolic-lng": {"en": "Diastolic", "ar": "الإنبساط"},
+ "policy-holder": {"en": "Policy Holder", "ar": "حامل بطاقة التأمين"},
+ "policy-no": {"en": "Policy Number", "ar": "رقم سياسات"},
"agree": {
"en": "I agree, this is the correct information",
"ar": "موافق، هذه المعلومات صحيحة"
@@ -1307,30 +1410,12 @@ const Map localizedValues = {
"en": "No, this is not the correct information",
"ar": "غير موافق، هذه المعلومات غير الصحيحة"
},
- "expiry-date": {
- "en": "Expiry Date",
- "ar": "تاريخ انتهاء الصلاحية"
- },
- "class": {
- "en": "Class",
- "ar": "فئة"
- },
- "approval": {
- "en": "Approval",
- "ar": "موافقة"
- },
- "no-data": {
- "en": "No data found",
- "ar": "لاتوجد بيانات"
- },
- "insurance-details": {
- "en": "Insurance Details",
- "ar": "تفاصيل التأمين"
- },
- "nearest-hospital": {
- "en": "Nearest Hospital",
- "ar": "أقرب مستشفى"
- },
+ "expiry-date": {"en": "Expiry Date", "ar": "تاريخ انتهاء الصلاحية"},
+ "class": {"en": "Class", "ar": "فئة"},
+ "approval": {"en": "Approval", "ar": "موافقة"},
+ "no-data": {"en": "No data found", "ar": "لاتوجد بيانات"},
+ "insurance-details": {"en": "Insurance Details", "ar": "تفاصيل التأمين"},
+ "nearest-hospital": {"en": "Nearest Hospital", "ar": "أقرب مستشفى"},
"request-sent": {
"en": "Request sent successfully",
"ar": "تم إرسال الطلب بنجاح"
@@ -1339,10 +1424,7 @@ const Map localizedValues = {
"en": "Message sent successfully",
"ar": "تم إرسال الرسالة بنجاح"
},
- "sent-on": {
- "en": "Sent on",
- "ar": "أرسلت في"
- },
+ "sent-on": {"en": "Sent on", "ar": "أرسلت في"},
"attach-insurace-image": {
"en": "Attach insurance card image",
"ar": "إرفاق صورة بطاقة التأمين"
@@ -1352,56 +1434,31 @@ const Map localizedValues = {
"ar": "لا يزال بإمكانك الإرسال ، إذا لم يكن لديك صورة تأمين"
},
"info-insur-cards": {
- "en": "This service allows you to view all the insurance cards that recorded during your visits to Al Habib Medical Group in addition to:",
- "ar": "خدمة بطاقات التامين: هذه الخدمة تمكنك من الاطلاع على جميع بطاقات التامين والتي تم تسجيلها اثناء زياراتك لمجموعة الحبيب الطبية بالاضافة الى:"
+ "en":
+ "This service allows you to view all the insurance cards that recorded during your visits to Al Habib Medical Group in addition to:",
+ "ar":
+ "خدمة بطاقات التامين: هذه الخدمة تمكنك من الاطلاع على جميع بطاقات التامين والتي تم تسجيلها اثناء زياراتك لمجموعة الحبيب الطبية بالاضافة الى:"
},
"scan-now": {
"en": "If you have a card / Document Scan now",
"ar": "إذا كانت لديك بطاقة / مستند ارفقها الان"
},
- "liveCare": {
- "en": "Live Care",
- "ar": "لايف كير"
- },
- "topBrands":{
- "en":"Top Brands",
- "ar":"اعلى العلامات التجارية"
- },
+ "liveCare": {"en": "Live Care", "ar": "لايف كير"},
+ "topBrands": {"en": "Top Brands", "ar": "اعلى العلامات التجارية"},
- "notifyMe":{
- "en":"notify me",
- "ar":"اعلمني"
- },
- "specification":{
- "en":"Specification",
- "ar":"تخصيص"
- },
+ "notifyMe": {"en": "notify me", "ar": "اعلمني"},
+ "specification": {"en": "Specification", "ar": "تخصيص"},
- "availability":{
- "en":"Availability",
- "ar":"التوفر"
- },
-
- "quantitySize":{
- "en":"Quantity",
- "ar":"كميه"
- },
- "addToCart":{
- "en":"add to cart",
- "ar":"إضفة للسلة"
- },
- "buyNow":{
- "en":"buy now",
- "ar":"إشتري الان"
- },
- "quantityShortcut":{
- "en":"QTY",
- "ar":"كمية"
- },
+ "availability": {"en": "Availability", "ar": "التوفر"},
+ "quantitySize": {"en": "Quantity", "ar": "كميه"},
+ "addToCart": {"en": "add to cart", "ar": "إضفة للسلة"},
+ "buyNow": {"en": "buy now", "ar": "إشتري الان"},
+ "quantityShortcut": {"en": "QTY", "ar": "كمية"},
"pharmacyServiceTermsCondition": {
- "en": "I agree with the terms of service and I adhere to them unconditionally",
+ "en":
+ "I agree with the terms of service and I adhere to them unconditionally",
"ar": " أوافق على شروط الخدمة وألتزم بها دون قيد أو شرط"
},
"Year": {"en": "YEAR", "ar": "السنة"},
@@ -1464,109 +1521,118 @@ const Map localizedValues = {
"en": "Track Delivery Driver",
"ar": "trackDeliveryDriver"
},
- "covidTest": {
- "en": "COVID-19 TEST",
- "ar": "فحص كورونا"
- },
- "driveThru": {
- "en": "Drive-Thru",
- "ar": "من السيارة"
- },
+ "covidTest": {"en": "COVID-19 TEST", "ar": "فحص كورونا"},
+ "driveThru": {"en": "Drive-Thru", "ar": "من السيارة"},
"NearestErDesc": {
- "en": "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location",
- "ar": "\nتعرض هذه الخدمة أقرب فرع\n من بين جميع فروع مجموعة \nالحبيب الطبية بناءً على موقعك الحالي."
- },
- "NearestEr": {
- "en": "Nearest ER",
- "ar": "أقرب ER"
+ "en":
+ "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location",
+ "ar":
+ "\nتعرض هذه الخدمة أقرب فرع\n من بين جميع فروع مجموعة \nالحبيب الطبية بناءً على موقعك الحالي."
},
+ "NearestEr": {"en": "Nearest ER", "ar": "أقرب ER"},
"infoCMC": {
- "en": "Through this service, you can request a set of tests that help you and your doctor to understand the current health condition and then identify potential risks.",
- "ar": "من خلال هذه الخدمة يمكنك طلب مجموعة من الفحوصات التي تساعدك وتساعد طبيبك في فهم حالتك الصحية الحالية ومن ثم تحديد المخاطر المحتملة"
+ "en":
+ "Through this service, you can request a set of tests that help you and your doctor to understand the current health condition and then identify potential risks.",
+ "ar":
+ "من خلال هذه الخدمة يمكنك طلب مجموعة من الفحوصات التي تساعدك وتساعد طبيبك في فهم حالتك الصحية الحالية ومن ثم تحديد المخاطر المحتملة"
},
"instructionAgree": {
- "en": "This monthly Health Summary Report reflects the health indicators and analysis results of the latest visits. Please note that this will be sent automatically from the system and it's not considered as an official report so no medical decisions should be taken based on it.",
- "ar": "هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير هو تقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية"
- },
- "reqId": {
- "en": "Request ID:",
- "ar": " رقم الطلب"
- },
- "RRT-orders-log": {
- "en": "Orders Log",
- "ar": "سجل الطلبات"
- },
- "blood-sugar": {
- "en": "Blood Sugar",
- "ar": "سكر الدم"
+ "en":
+ "This monthly Health Summary Report reflects the health indicators and analysis results of the latest visits. Please note that this will be sent automatically from the system and it's not considered as an official report so no medical decisions should be taken based on it.",
+ "ar":
+ "هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير هو تقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية"
},
+ "reqId": {"en": "Request ID:", "ar": " رقم الطلب"},
+ "RRT-orders-log": {"en": "Orders Log", "ar": "سجل الطلبات"},
+ "blood-sugar": {"en": "Blood Sugar", "ar": "سكر الدم"},
"covid19_driveThrueTest": {
"en": "'Covid-19- Drive-Thru Test'",
"ar": "Covid-19- الفحص من خلال القيادة"
},
- "E-Referral": {
- "en": "'E-Referral'",
- "ar": "الإحالة الإلكترونية"
+ "E-Referral": {"en": "'E-Referral'", "ar": "الإحالة الإلكترونية"},
+ "childName": {"en": "'CHILD NAME'", "ar": "إسم الطفل"},
+ "recordDeleted": {"en": "'Record Deleted'", "ar": "تم حذف السجل"},
+ "msg_email_address_up_to_date": {
+ "en":
+ "Please ensure that the email address is up-to-date and process to view the schedule",
+ "ar":
+ "يرجى التأكد من أن عنوان البريد الإلكتروني محدث وأن العملية لعرض الجدول الزمني"
},
- "childName": {
- "en": "'CHILD NAME'",
- "ar": "إسم الطفل"
+ "add-new-child": {"en": "ADD NEW CHILD", "ar": "إضافة طفل جديد"},
+ "visit": {"en": "Visit", "ar": "الزيارة"},
+ "send-child-email-msg": {
+ "en": "Send the child's schedule to the email",
+ "ar": "أرسل جدول الطفل إلى البريد الإلكتروني"
},
- "recordDeleted": {
- "en": "'Record Deleted'",
- "ar": "تم حذف السجل"
+ "vaccination-add-child-msg": {
+ "en":
+ "Add the child's information below to receive the schedule of vaccinations.",
+ "ar": "أضف معلومات الطفل أدناه للحصول على جدول التطعيمات."
+ },
+ "child_added_successfully": {
+ "en": "Child added successfully",
+ "ar": "تمت إضافة الطفل بنجاح"
+ },
+ "bloodSugar": {"en": "Blood", "ar": "السكر في الدم"},
+ "sugar": {"en": "Sugar", "ar": ""},
+ "bloodCholesterol": {"en": "Blood", "ar": " الكولسترول في الدم"},
+
+ "cholesterol": {"en": "Cholesterol", "ar": ""},
+ "triglycerides": {"en": "Triglycerides", "ar": "الدهون الثلاثية"},
+
+ "fatInBlood": {"en": "Fat In Blood", "ar": ""},
+ "convertFrom": {"en": "Convert From", "ar": "تحويل من"},
+ "calculate": {"en": "calculate", "ar": "حساب"},
+ "enterReadingValue": {"en": "Enter the reading value", "ar": "ادخل القيمة"},
+ "result": {"en": "Result", "ar": "النتيجة"},
+ "bloodSugarConversion": {
+ "en": "Blood Sugar Conversion",
+ "ar": "السكر في الدم"
+ },
+ "convertBloodSugarStatement": {
+ "en":
+ "Convert blood sugar/glucose from mmol/l (UK standard) to mg/dlt (US standard) and vice versa.",
+ "ar":
+ "تحويل مستوى السكر في الدم من مليمول/ لتر (مقياس المملكة المتحدة) الى ملغ/ ديسيلتر (مقياس الولايات المتحدة) والعكس"
+ },
+ "convertCholesterolStatement": {
+ "en": "Convert blood cholesterol from\n mmol/l to mg/dlt and vice versa.",
+ "ar":
+ "تحويل مستوى الكولسترول في الدم من مليمول/ لتر (مقياس المملكة المتحدة) الى ملغ/ ديسيلتر (مقياس الولايات المتحدة) والعكس"
+ },
+ "triglyceridesConvertStatement": {
+ "en": "Convert Triglycerides from mmol/l to mg/dlt and vice versa.",
+ "ar":
+ "تحويل مستوى الدهون الثلاثية في الدم من مليمول/ لتر (مقياس المملكة المتحدة) الى ملغ/ ديسيلتر (مقياس الولايات المتحدة) والعكس"
+ },
+ "my-tracker": {"en": "My Tracker", "ar": "قراءاتي"},
+ "weekly": {"en": "Weekly", "ar": "أسبوعي"},
+ "monthly": {"en": "Monthly", "ar": "شهري"},
+ "yearly": {"en": "Yearly", "ar": "سنوي"},
+ "measured": {"en": "Measured", "ar": "قياس"},
+ "sugar-add": {"en": "Enter Blood Sugar Value", "ar": "أدخل قيمة قراءة السكر"},
+ "other": {"en": "Other", "ar": "آخر"},
+ "measure-unit": {"en": "Measure unit", "ar": "وحدة القياس"},
+ "measure-time": {"en": "Measure time", "ar": "وقت القياس"},
+ "update": {"en": "Update", "ar": "تعديل"},
+ "bloodD-enter-desc": {
+ "en":
+ "Enter the required information, In order to register for Blood Donation Service",
+ "ar": "أدخل المعلومات المطلوبة ، للتسجيل في خدمة التبرع بالدم"
+ },
+ "viewTermsConditions": {
+ "en": "To view the terms and conditions",
+ "ar": "لعرض الشروط والأحكام"
+ },
+ "WalkinAppo": {
+ "en": "Hospital Visit Appointment",
+ "ar": "موعد زيارة للمستشفى"
+ },
+ "videoAppo": {
+ "en": "Video Call Appointment",
+ "ar": "موعد اتصال فيديو"
},
- "msg_email_address_up_to_date": {
- "en": "Please ensure that the email address is up-to-date and process to view the schedule",
- "ar": "يرجى التأكد من أن عنوان البريد الإلكتروني محدث وأن العملية لعرض الجدول الزمني"
- },
- "add-new-child": {"en" : "ADD NEW CHILD", "ar": "إضافة طفل جديد"},
- "visit": {"en" : "Visit", "ar": "الزيارة"},
- "send-child-email-msg": {"en" : "Send the child's schedule to the email", "ar": "أرسل جدول الطفل إلى البريد الإلكتروني"},
- "vaccination-add-child-msg": {"en" : "Add the child's information below to receive the schedule of vaccinations.", "ar": "أضف معلومات الطفل أدناه للحصول على جدول التطعيمات."},
- "child_added_successfully": {"en" : "Child added successfully", "ar": "تمت إضافة الطفل بنجاح"},
- "my-tracker": {
- "en": "My Tracker",
- "ar": "قراءاتي"
- },
- "weekly": {
- "en": "Weekly",
- "ar": "أسبوعي"
- },
- "monthly": {
- "en": "Monthly",
- "ar": "شهري"
- },
- "yearly": {
- "en": "Yearly",
- "ar": "سنوي"
- },
- "measured": {
- "en": "Measured",
- "ar": "قياس"
- },
- "sugar-add": {
- "en": "Enter Blood Sugar Value",
- "ar": "أدخل قيمة قراءة السكر"
- },
- "other": {
- "en": "Other",
- "ar": "آخر"
- },
- "measure-unit": {
- "en": "Measure unit",
- "ar": "وحدة القياس"
- },
- "measure-time": {
- "en": "Measure time",
- "ar": "وقت القياس"
- },"update": {
- "en": "Update",
- "ar": "تعديل"
- },
- "bloodD-enter-desc": {"en" : "Enter the required information, In order to register for Blood Donation Service", "ar": "أدخل المعلومات المطلوبة ، للتسجيل في خدمة التبرع بالدم"},
- "viewTermsConditions": {"en" : "To view the terms and conditions", "ar": "لعرض الشروط والأحكام"},
// "visit": {"en" : "Visit", "ar": "الزيارة"},
"weight-add": {
"en": "Enter Weight Value",
diff --git a/lib/models/SmartWatch/HealthData.dart b/lib/models/SmartWatch/HealthData.dart
new file mode 100644
index 00000000..f01c3bf8
--- /dev/null
+++ b/lib/models/SmartWatch/HealthData.dart
@@ -0,0 +1,8 @@
+class healthData {
+ int MedCategoryID;
+ int MedSubCategoryID;
+ String Value;
+ String Notes;
+ String MachineDate;
+ int TransactionsListID;
+}
diff --git a/lib/models/SmartWatch/YearlyStepsResModel.dart b/lib/models/SmartWatch/YearlyStepsResModel.dart
new file mode 100644
index 00000000..728633d9
--- /dev/null
+++ b/lib/models/SmartWatch/YearlyStepsResModel.dart
@@ -0,0 +1,36 @@
+class YearlyStepsResModel {
+ double valueSum;
+ int medCategoryID;
+ int month;
+ String monthName;
+ int patientID;
+ int year;
+
+ YearlyStepsResModel(
+ {this.valueSum,
+ this.medCategoryID,
+ this.month,
+ this.monthName,
+ this.patientID,
+ this.year});
+
+ YearlyStepsResModel.fromJson(Map json) {
+ valueSum = json['ValueSum'];
+ medCategoryID = json['MedCategoryID'];
+ month = json['Month'];
+ monthName = json['MonthName'];
+ patientID = json['PatientID'];
+ year = json['Year'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ValueSum'] = this.valueSum;
+ data['MedCategoryID'] = this.medCategoryID;
+ data['Month'] = this.month;
+ data['MonthName'] = this.monthName;
+ data['PatientID'] = this.patientID;
+ data['Year'] = this.year;
+ return data;
+ }
+}
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 c84053c5..68cd2c99 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,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -490,11 +491,11 @@ class _BMICalculatorState extends State {
height: 25.0,
),
Container(
- height: 100.0,
+ height: 50.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
- onTap: () {
+ onTap: () => {
setState(() {
calculateBMI();
showTextResult();
@@ -510,7 +511,7 @@ class _BMICalculatorState extends State {
)),
);
}
- });
+ })
},
),
),
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 1af0f949..01393e0b 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/bmr_calculator/bmr_calculator.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -687,9 +688,9 @@ class _BmrCalculatorState extends State {
height: 30.0,
),
Container(
- height: 100.0,
+ height: 50.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
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 91847e37..51b4cad6 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/body_fat/body_fat.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -985,8 +986,13 @@ class _BodyFatState extends State {
Container(
height: 100.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
+ // onTap: () => {
+ // setState(() {
+ // print('hiii');
+ // })
+ // }
onTap: () {
setState(() {
calculateBodyFat();
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 4361425a..e2196540 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/calorie_calculator/calorie_calculator.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -648,7 +649,7 @@ class _CalorieCalculatorState extends State {
Container(
height: 100.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
index e273b075..50152328 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/carbs/carbs.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -329,9 +330,9 @@ class _CarbsState extends State {
height: 55.0,
),
Container(
- height: 100.0,
+ height: 50.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart
index c9993b95..c69f0564 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/delivery_due/delivery_due.dart
@@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -111,9 +112,9 @@ class _DeliveryDueState extends State {
height: 280.0,
),
Container(
- height: 100.0,
+ height: 50.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
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 9bdbfb36..2aff7836 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ideal_body/ideal_body.dart
@@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -518,7 +519,7 @@ class _IdealBodyState extends State {
Container(
height: 100.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart
index 1a272c11..9c5dc0d3 100644
--- a/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart
+++ b/lib/pages/AlHabibMedicalService/health_calculator/ovulation_period/ovulation_period.dart
@@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.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';
import 'package:flutter/material.dart';
@@ -319,9 +320,9 @@ class _OvulationPeriodState extends State {
height: 220.0,
),
Container(
- height: 100.0,
+ height: 50.0,
width: 350.0,
- child: Button(
+ child: SecondaryButton(
label: 'CALCULATE',
onTap: () {
setState(() {
diff --git a/lib/pages/AlHabibMedicalService/health_converter.dart b/lib/pages/AlHabibMedicalService/health_converter.dart
index 61ea406f..2b3b1a8e 100644
--- a/lib/pages/AlHabibMedicalService/health_converter.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter.dart
@@ -18,7 +18,7 @@ class _HealthConverterState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Health Converter',
+ appBarTitle: TranslationBase.of(context).converters,
body: Column(
children: [
Container(
@@ -37,9 +37,9 @@ class _HealthConverterState extends State {
);
},
child: MedicalProfileItem(
- title: 'Blood',
+ title: TranslationBase.of(context).bloodSugar,
imagePath: 'blood_sugar_icon.png',
- subTitle: 'Sugar',
+ subTitle: TranslationBase.of(context).sugar,
),
),
),
@@ -55,9 +55,9 @@ class _HealthConverterState extends State {
);
},
child: MedicalProfileItem(
- title: 'Blood',
+ title: TranslationBase.of(context).bloodCholesterol,
imagePath: 'blood_cholesterol_icon.png',
- subTitle: 'Cholesterol',
+ subTitle: TranslationBase.of(context).cholesterol,
),
),
),
@@ -77,9 +77,9 @@ class _HealthConverterState extends State {
);
},
child: MedicalProfileItem(
- title: 'Triglycerides',
+ title: TranslationBase.of(context).triglycerides,
imagePath: 'triglycerides_blood_icon.png',
- subTitle: 'Fat in blood',
+ subTitle: TranslationBase.of(context).fatInBlood,
),
),
),
diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
index 58caee36..513b50ab 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/blood_cholesterol.dart
@@ -1,3 +1,4 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
@@ -62,7 +63,7 @@ class _BloodCholesterolState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Blood Cholesterol ',
+ appBarTitle: TranslationBase.of(context).bloodCholesterol,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: SingleChildScrollView(
@@ -74,7 +75,7 @@ class _BloodCholesterolState extends State {
Container(
width: 350.0,
child: Text(
- 'Convert blood cholesterol from\n mmol/l to mg/dlt and vice versa.',
+ TranslationBase.of(context).convertCholesterolStatement,
//textAlign: TextAlign.center,
style: TextStyle(fontSize: 20.0),
),
@@ -95,7 +96,7 @@ class _BloodCholesterolState extends State {
child: Row(
children: [
Texts(
- 'Convert from',
+ TranslationBase.of(context).convertFrom,
),
],
),
@@ -117,7 +118,7 @@ class _BloodCholesterolState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
boxShadow: [
@@ -150,7 +151,7 @@ class _BloodCholesterolState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
color: cardMMOLColor,
@@ -196,7 +197,7 @@ class _BloodCholesterolState extends State {
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black45)),
- labelText: " Enter the reading value",
+ labelText: TranslationBase.of(context).enterReadingValue,
labelStyle: TextStyle(
color: Colors.black87,
),
@@ -209,7 +210,7 @@ class _BloodCholesterolState extends State {
Visibility(
visible: _visible,
child: Container(
- height: 95.0,
+ height: 115.0,
width: 350.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -222,7 +223,7 @@ class _BloodCholesterolState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
- Texts('Result:'),
+ Texts(TranslationBase.of(context).result + ":"),
Row(
children: [
Text(
@@ -252,10 +253,10 @@ class _BloodCholesterolState extends State {
),
Flexible(
child: Container(
- height: 100.0,
+ height: 60.0,
width: 150.0,
- child: Button(
- label: 'CALCULATE',
+ child: SecondaryButton(
+ label: TranslationBase.of(context).calculate,
onTap: () {
setState(() {
_visible == false
diff --git a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
index f5d66ccf..8a7e9792 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/blood_sugar.dart
@@ -64,7 +64,7 @@ class _BloodSugarState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Blood Sugar Conversion',
+ appBarTitle: TranslationBase.of(context).bloodSugarConversion,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: SingleChildScrollView(
@@ -76,7 +76,7 @@ class _BloodSugarState extends State {
Container(
width: 350.0,
child: Text(
- 'Convert blood sugar/glucose from mmol/l (UK standard) to mg/dlt (US standard) and vice versa.',
+ TranslationBase.of(context).convertBloodSugarStatement,
//textAlign: TextAlign.center,
style: TextStyle(fontSize: 20.0),
),
@@ -97,7 +97,7 @@ class _BloodSugarState extends State {
child: Row(
children: [
Texts(
- 'Convert from',
+ TranslationBase.of(context).convertFrom,
)
],
),
@@ -119,7 +119,7 @@ class _BloodSugarState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
boxShadow: [
@@ -152,7 +152,7 @@ class _BloodSugarState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
color: cardMMOLColor,
@@ -196,7 +196,7 @@ class _BloodSugarState extends State {
],
keyboardType: TextInputType.number,
decoration: InputDecoration(
- labelText: " Enter the reading value",
+ labelText: TranslationBase.of(context).enterReadingValue,
border: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black45)),
labelStyle: TextStyle(
@@ -211,7 +211,7 @@ class _BloodSugarState extends State {
Visibility(
visible: _visible,
child: Container(
- height: 95.0,
+ height: 115.0,
width: 350.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -224,7 +224,7 @@ class _BloodSugarState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
- Texts('Result:'),
+ Texts(TranslationBase.of(context).result + ": "),
Row(
children: [
Text(
@@ -254,10 +254,10 @@ class _BloodSugarState extends State {
),
Flexible(
child: Container(
- height: 100.0,
+ height: 60.0,
width: 150.0,
- child: Button(
- label: 'CALCULATE',
+ child: SecondaryButton(
+ label: TranslationBase.of(context).calculate,
onTap: () {
setState(() {
_visible == false
diff --git a/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart b/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
index a86fdb88..4c5f9a83 100644
--- a/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
+++ b/lib/pages/AlHabibMedicalService/health_converter/triglycerides.dart
@@ -1,3 +1,4 @@
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -64,7 +65,7 @@ class _TriglyceridesState extends State {
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
- appBarTitle: 'Triglycerides',
+ appBarTitle: TranslationBase.of(context).triglycerides,
body: Padding(
padding: const EdgeInsets.all(16.0),
child: SingleChildScrollView(
@@ -76,7 +77,7 @@ class _TriglyceridesState extends State {
Container(
width: 350.0,
child: Text(
- 'Convert Triglycerides from mmol/l to\n mg/dlt and vice versa.',
+ TranslationBase.of(context).triglyceridesConvertStatement,
//textAlign: TextAlign.center,
style: TextStyle(fontSize: 20.0),
),
@@ -95,7 +96,9 @@ class _TriglyceridesState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Row(
- children: [Texts('Convert from')],
+ children: [
+ Texts(TranslationBase.of(context).convertFrom)
+ ],
),
),
SizedBox(
@@ -115,7 +118,7 @@ class _TriglyceridesState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
boxShadow: [
@@ -148,7 +151,7 @@ class _TriglyceridesState extends State {
});
},
child: Container(
- height: 55.0,
+ height: 65.0,
width: 150.0,
decoration: BoxDecoration(
color: cardMMOLColor,
@@ -194,7 +197,7 @@ class _TriglyceridesState extends State {
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black45)),
- labelText: " Enter the reading value",
+ labelText: TranslationBase.of(context).enterReadingValue,
labelStyle: TextStyle(
color: Colors.black87,
),
@@ -207,7 +210,7 @@ class _TriglyceridesState extends State {
Visibility(
visible: _visible,
child: Container(
- height: 95.0,
+ height: 115.0,
width: 350.0,
decoration: BoxDecoration(
color: Colors.white,
@@ -220,7 +223,7 @@ class _TriglyceridesState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
- Texts('Result:'),
+ Texts(TranslationBase.of(context).result + ":"),
Row(
children: [
Text(
@@ -250,10 +253,11 @@ class _TriglyceridesState extends State {
),
Flexible(
child: Container(
- height: 100.0,
+ height: 60.0,
width: 250.0,
- child: Button(
- label: 'CALCULATE',
+ child: SecondaryButton(
+ label:
+ TranslationBase.of(context).calculate.toUpperCase(),
onTap: () {
setState(() {
_visible == false
diff --git a/lib/pages/Blood/confirm_payment_page.dart b/lib/pages/Blood/confirm_payment_page.dart
index 75282190..c384b7b5 100644
--- a/lib/pages/Blood/confirm_payment_page.dart
+++ b/lib/pages/Blood/confirm_payment_page.dart
@@ -2,7 +2,6 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/AdvanceModel.dart';
import 'package:diplomaticquarterapp/core/model/my_balance/patient_info_and_mobile_number.dart';
-import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
@@ -166,7 +165,7 @@ class ConfirmPaymentPage extends StatelessWidget {
patientID: int.parse(advanceModel.fileNumber),
projectID: advanceModel.hospitalsModel.iD)
.then((value) {
- GifLoaderDialogUtils.hideDialog(context);
+ GifLoaderDialogUtils.hideDialog(context);
if (model.state != ViewState.ErrorLocal &&
model.state != ViewState.Error) showSMSDialog();
});
@@ -218,7 +217,8 @@ class ConfirmPaymentPage extends StatelessWidget {
authenticatedUser.firstName,
authenticatedUser.patientID,
authenticatedUser,
- browser);
+ browser,
+ false);
}
onBrowserLoadStart(String url) {
@@ -277,8 +277,8 @@ class ConfirmPaymentPage extends StatelessWidget {
String paymentReference = res['Fort_id'].toString();
GifLoaderDialogUtils.showMyDialog(AppGlobal.context);
service
- .createAdvancePayment(appo, appo.projectID.toString(), res['Amount'], res['Fort_id'],
- res['PaymentMethod'], AppGlobal.context)
+ .createAdvancePayment(appo, appo.projectID.toString(), res['Amount'],
+ res['Fort_id'], res['PaymentMethod'], AppGlobal.context)
.then((res) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context);
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);
@@ -315,5 +315,4 @@ class ConfirmPaymentPage extends StatelessWidget {
Future navigateToHome(context) async {
Navigator.of(context).pushNamed(HOME);
}
-
}
diff --git a/lib/pages/BookAppointment/BookConfirm.dart b/lib/pages/BookAppointment/BookConfirm.dart
index d7e08a66..03a28d90 100644
--- a/lib/pages/BookAppointment/BookConfirm.dart
+++ b/lib/pages/BookAppointment/BookConfirm.dart
@@ -187,27 +187,29 @@ class _BookConfirmState extends State {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
- Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- Container(
- margin: EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0),
- child: Image.asset(
- "assets/images/new-design/icon_hospital.png"),
- ),
- Container(
- margin: EdgeInsets.fromLTRB(20.0, 5.0, 10.0, 5.0),
- child: Text(
- TranslationBase.of(context).hospital +
- ": " +
- widget.doctor.projectName,
- style: TextStyle(
- fontSize: 14.0,
- color: Colors.grey[700],
- letterSpacing: 1.0)),
- ),
- ],
- ),
+ !widget.isLiveCareAppointment ? Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Container(
+ margin:
+ EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0),
+ child: Image.asset(
+ "assets/images/new-design/icon_hospital.png"),
+ ),
+ Container(
+ margin:
+ EdgeInsets.fromLTRB(20.0, 5.0, 10.0, 5.0),
+ child: Text(
+ TranslationBase.of(context).hospital +
+ ": " +
+ widget.doctor.projectName,
+ style: TextStyle(
+ fontSize: 14.0,
+ color: Colors.grey[700],
+ letterSpacing: 1.0)),
+ ),
+ ],
+ ) : Container(),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
@@ -325,7 +327,8 @@ class _BookConfirmState extends State {
Container(
margin: EdgeInsets.only(top: 5.0),
child: Text(
- TranslationBase.of(context).gender + ": " +
+ TranslationBase.of(context).gender +
+ ": " +
widget.authUser.genderDescription,
style: TextStyle(
fontSize: 12.0,
@@ -335,7 +338,9 @@ class _BookConfirmState extends State {
Container(
margin: EdgeInsets.only(top: 5.0, bottom: 3.0),
child: Text(
- TranslationBase.of(context).age + ": " + widget.authUser.age.toString(),
+ TranslationBase.of(context).age +
+ ": " +
+ widget.authUser.age.toString(),
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
@@ -423,7 +428,8 @@ class _BookConfirmState extends State {
context)
.then((res) {
if (res['MessageStatus'] == 1) {
- AppToast.showSuccessToast(message: TranslationBase.of(context).bookedSuccess);
+ AppToast.showSuccessToast(
+ message: TranslationBase.of(context).bookedSuccess);
print(res['AppointmentNo']);
Future.delayed(new Duration(milliseconds: 500), () {
@@ -543,13 +549,13 @@ class _BookConfirmState extends State {
getLiveCareAppointmentPatientShare(context, String appointmentNo,
int clinicID, int projectID, DoctorList docObject) {
- GifLoaderDialogUtils.hideDialog(context);
widget.service
.getLiveCareAppointmentPatientShare(
appointmentNo, clinicID, projectID, context)
.then((res) {
print(res);
widget.patientShareResponse = new PatientShareResponse.fromJson(res);
+ GifLoaderDialogUtils.hideDialog(context);
navigateToBookSuccess(context, docObject, widget.patientShareResponse);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart
index f513c434..bd6c242c 100644
--- a/lib/pages/BookAppointment/BookSuccess.dart
+++ b/lib/pages/BookAppointment/BookSuccess.dart
@@ -255,7 +255,7 @@ class _BookSuccessState extends State {
minWidth: MediaQuery.of(context).size.width * 0.7,
height: 45.0,
child: RaisedButton(
- color: new Color(0xFF40ACC9),
+ color: new Color(0xffc5272d),
textColor: Colors.white,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
@@ -318,7 +318,7 @@ class _BookSuccessState extends State {
minWidth: MediaQuery.of(context).size.width * 0.7,
height: 45.0,
child: RaisedButton(
- color: new Color(0xFF40ACC9),
+ color: new Color(0xFFc5272d),
textColor: Colors.white,
disabledTextColor: Colors.white,
disabledColor: new Color(0xFFbcc2c4),
@@ -637,7 +637,12 @@ class _BookSuccessState extends State {
authenticatedUser.firstName,
authenticatedUser.patientID,
authenticatedUser,
- widget.browser);
+ widget.browser,
+ widget.patientShareResponse.isLiveCareAppointment,
+ widget.patientShareResponse.appointmentDate,
+ widget.patientShareResponse.appointmentNo,
+ widget.patientShareResponse.clinicID,
+ widget.patientShareResponse.doctorID);
}
}
diff --git a/lib/pages/BookAppointment/widgets/DoctorView.dart b/lib/pages/BookAppointment/widgets/DoctorView.dart
index d419e4af..1562c5f7 100644
--- a/lib/pages/BookAppointment/widgets/DoctorView.dart
+++ b/lib/pages/BookAppointment/widgets/DoctorView.dart
@@ -61,7 +61,7 @@ class DoctorView extends StatelessWidget {
letterSpacing: 1.0)),
Container(
margin: EdgeInsets.only(top: 3.0),
- child: Text(this.doctor.clinicName,
+ child: Text(this.doctor.clinicName != null ? this.doctor.clinicName : "",
style: TextStyle(
fontSize: 12.0,
color: Colors.grey[600],
diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
index 3e58b657..f21a9718 100644
--- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
+++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart
@@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/services/covid-drivethru/covid-drivethru.da
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -469,9 +470,7 @@ class _CovidTimeSlotsState extends State
}
bookCovidTestAppointment() {
-// Navigator.push(context,
-// MaterialPageRoute(builder: (context) => CovidPaymentAlert()));
-
+ GifLoaderDialogUtils.showMyDialog(context);
DoctorList docObject = new DoctorList();
docObject.doctorID = widget.selectedDoctorID;
docObject.clinicID = widget.selectedClinicID;
@@ -494,11 +493,12 @@ class _CovidTimeSlotsState extends State
print(res);
if (res['MessageStatus'] == 1) {
AppToast.showSuccessToast(message: "Appointment Booked Successfully");
- Future.delayed(new Duration(milliseconds: 1800), () {
- getPatientShare(context, res['AppointmentNo'], docObject.clinicID,
- docObject.projectID, docObject);
- });
+ // Future.delayed(new Duration(milliseconds: 1800), () {
+ getPatientShare(context, res['AppointmentNo'], docObject.clinicID,
+ docObject.projectID, docObject);
+ // });
} else {
+ GifLoaderDialogUtils.hideDialog(context);
appo = new AppoitmentAllHistoryResultList();
appo.appointmentNo = res['SameClinicApptList'][0]['AppointmentNo'];
appo.clinicID = res['SameClinicApptList'][0]['DoctorID'];
@@ -529,14 +529,16 @@ class _CovidTimeSlotsState extends State
cancelAppointment(DoctorList docObject, AppoitmentAllHistoryResultList appo,
BuildContext context) {
+ GifLoaderDialogUtils.showMyDialog(context);
ConfirmDialog.closeAlertDialog(context);
DoctorsListService service = new DoctorsListService();
service.cancelAppointment(appo, context).then((res) {
if (res['MessageStatus'] == 1) {
- Future.delayed(new Duration(milliseconds: 1500), () {
- insertAppointmentCovidTest(context, docObject);
- });
+ // Future.delayed(new Duration(milliseconds: 1500), () {
+ insertAppointmentCovidTest(context, docObject);
+ // });
} else {
+ GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
}).catchError((err) {
@@ -592,6 +594,7 @@ class _CovidTimeSlotsState extends State
});
} else {}
} else {
+ GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: res['ErrorEndUserMessage']);
}
}).catchError((err) {
diff --git a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
index c4299e33..0d3ac2e5 100644
--- a/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
+++ b/lib/pages/MyAppointments/widgets/AppointmentCardView.dart
@@ -166,7 +166,7 @@ class _ApointmentCardState extends State {
),
Container(
transform:
- Matrix4.translationValues(15.0, -40.0, 0.0),
+ Matrix4.translationValues(15.0, -40.0, 0.0),
child: projectViewModel.isArabic
? Image.asset(
"assets/images/new-design/arrow_menu_black-ar.png",
diff --git a/lib/pages/ToDoList/ToDo.dart b/lib/pages/ToDoList/ToDo.dart
index 1066ca15..383bedb3 100644
--- a/lib/pages/ToDoList/ToDo.dart
+++ b/lib/pages/ToDoList/ToDo.dart
@@ -13,7 +13,6 @@ import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/widgets/paymentDialog.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
-import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
@@ -26,7 +25,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_countdown_timer/countdown_timer_controller.dart';
import 'package:flutter_countdown_timer/current_remaining_time.dart';
import 'package:flutter_countdown_timer/flutter_countdown_timer.dart';
-import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:rating_bar/rating_bar.dart';
@@ -95,249 +93,315 @@ class _ToDoState extends State {
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.all(10.0),
- child: Card(
- margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 8.0),
- color: Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(10),
- ),
- child: Container(
- width: MediaQuery.of(context).size.width,
- padding: EdgeInsets.all(10.0),
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- mainAxisSize: MainAxisSize.max,
- children: [
- Row(
- children: [
- Image.asset(
- "assets/images/new-design/time_icon.png",
- width: 20.0,
- height: 20.0),
- Container(
- margin:
- EdgeInsets.only(left: 10.0, right: 10.0),
- child: Text(
- DateUtil.getWeekDayMonthDayYearDateFormatted(
- DateUtil.convertStringToDate(
- widget.appoList[index]
- .appointmentDate),
- projectViewModel.isArabic
- ? "ar"
- : "en") +
- " " +
- widget.appoList[index].startTime
- .substring(0, 5),
- style: TextStyle(fontSize: 10.0)),
- ),
- widget.appoList[index].isLiveCareAppointment
- ? SvgPicture.asset(
- "assets/images/new-design/liveCare_logo_icon.svg",
- width: 20.0,
- height: 20.0)
- : Image.asset(
- "assets/images/new-design/hospital_address_icon.png",
- width: 20.0,
- height: 20.0),
- Container(
- margin:
- EdgeInsets.only(left: 5.0, right: 5.0),
- child: widget
- .appoList[index].isLiveCareAppointment
- ? Text(
- TranslationBase.of(context)
- .liveCareAppo,
- style: TextStyle(fontSize: 12.0))
- : Text(
- widget.appoList[index].projectName !=
- null
- ? widget
- .appoList[index].projectName
- : "-",
- overflow: TextOverflow.clip,
- maxLines: 2,
- style: TextStyle(fontSize: 10.0)),
- ),
- ],
- ),
- Container(
- margin: EdgeInsets.only(top: 5.0),
- child: Divider(
- color: Colors.grey[500],
- ),
+ child: Column(
+ children: [
+ Container(
+ child: Card(
+ margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 8.0),
+ color: Colors.white,
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
),
- Flex(
- direction: Axis.horizontal,
- children: [
- Expanded(
- flex: 1,
- child: Container(
- height: MediaQuery.of(context).size.height *
- 0.1,
+ child: Container(
+ width: MediaQuery.of(context).size.width,
+ padding: EdgeInsets.all(10.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ Row(
+ children: [
+ Image.asset(
+ "assets/images/new-design/time_icon.png",
+ width: 20.0,
+ height: 20.0),
+ Container(
+ margin: EdgeInsets.only(
+ left: 10.0, right: 10.0),
+ child: Text(
+ DateUtil.getWeekDayMonthDayYearDateFormatted(
+ DateUtil.convertStringToDate(
+ widget.appoList[index]
+ .appointmentDate),
+ projectViewModel.isArabic
+ ? "ar"
+ : "en") +
+ " " +
+ widget.appoList[index].startTime
+ .substring(0, 5),
+ style: TextStyle(fontSize: 10.0)),
+ ),
+ !widget.appoList[index]
+ .isLiveCareAppointment
+ ? Image.asset(
+ "assets/images/new-design/hospital_address_icon.png",
+ width: 20.0,
+ height: 20.0)
+ : Container(),
+ Container(
+ margin: EdgeInsets.only(
+ left: 5.0, right: 5.0),
+ child: widget.appoList[index]
+ .isLiveCareAppointment
+ ? Container()
+ : Text(
+ widget.appoList[index]
+ .projectName !=
+ null
+ ? widget.appoList[index]
+ .projectName
+ : "-",
+ overflow: TextOverflow.clip,
+ maxLines: 2,
+ style:
+ TextStyle(fontSize: 10.0)),
+ ),
+ ],
+ ),
+ Container(
margin: EdgeInsets.only(top: 5.0),
- child: ClipRRect(
- borderRadius:
- BorderRadius.circular(100.0),
- child: Image.network(
- widget.appoList[index].doctorImageURL,
- fit: BoxFit.fill),
+ child: Divider(
+ color: Colors.grey[500],
),
),
- ),
- Expanded(
- flex: 3,
- child: Container(
- margin: EdgeInsets.only(
- top: 10.0, left: 20.0, right: 20.0),
- child: Column(
- crossAxisAlignment:
- CrossAxisAlignment.start,
- children: [
- Text(
- widget.appoList[index].doctorTitle +
- " " +
+ Flex(
+ direction: Axis.horizontal,
+ children: [
+ Expanded(
+ flex: 1,
+ child: Container(
+ height: MediaQuery.of(context)
+ .size
+ .height *
+ 0.1,
+ margin: EdgeInsets.only(top: 5.0),
+ child: ClipRRect(
+ borderRadius:
+ BorderRadius.circular(100.0),
+ child: Image.network(
widget.appoList[index]
- .doctorNameObj,
- style: TextStyle(
- fontSize: 14.0,
- color: Colors.black,
- fontWeight: FontWeight.bold,
- letterSpacing: 1.0)),
- Container(
- margin: EdgeInsets.only(
- top: 3.0, bottom: 3.0),
- child: Text(
- getDoctorSpeciality(widget
- .appoList[index]
- .doctorSpeciality)
- .trim(),
- style: TextStyle(
- fontSize: 12.0,
- color: Colors.grey[600],
- letterSpacing: 1.0)),
+ .doctorImageURL,
+ fit: BoxFit.fill),
+ ),
),
- Row(
- mainAxisAlignment:
- MainAxisAlignment.spaceBetween,
- mainAxisSize: MainAxisSize.max,
- children: [
- RatingBar.readOnly(
- initialRating: widget
- .appoList[index]
- .actualDoctorRate
- .toDouble(),
- size: 20.0,
- filledColor: Colors.yellow[700],
- emptyColor: Colors.grey[500],
- isHalfAllowed: true,
- halfFilledIcon: Icons.star_half,
- filledIcon: Icons.star,
- emptyIcon: Icons.star,
- ),
- ],
+ ),
+ Expanded(
+ flex: 3,
+ child: Container(
+ margin: EdgeInsets.only(
+ top: 10.0,
+ left: 20.0,
+ right: 20.0),
+ child: Column(
+ crossAxisAlignment:
+ CrossAxisAlignment.start,
+ children: [
+ Text(
+ widget.appoList[index]
+ .doctorTitle +
+ " " +
+ widget.appoList[index]
+ .doctorNameObj,
+ style: TextStyle(
+ fontSize: 14.0,
+ color: Colors.black,
+ fontWeight:
+ FontWeight.bold,
+ letterSpacing: 1.0)),
+ Container(
+ margin: EdgeInsets.only(
+ top: 3.0, bottom: 3.0),
+ child: Text(
+ getDoctorSpeciality(widget
+ .appoList[index]
+ .doctorSpeciality)
+ .trim(),
+ style: TextStyle(
+ fontSize: 12.0,
+ color: Colors.grey[600],
+ letterSpacing: 1.0)),
+ ),
+ Row(
+ mainAxisAlignment:
+ MainAxisAlignment
+ .spaceBetween,
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ RatingBar.readOnly(
+ initialRating: widget
+ .appoList[index]
+ .actualDoctorRate
+ .toDouble(),
+ size: 20.0,
+ filledColor:
+ Colors.yellow[700],
+ emptyColor:
+ Colors.grey[500],
+ isHalfAllowed: true,
+ halfFilledIcon:
+ Icons.star_half,
+ filledIcon: Icons.star,
+ emptyIcon: Icons.star,
+ ),
+ ],
+ ),
+ Container(
+ child: CountdownTimer(
+ controller: new CountdownTimerController(
+ endTime: DateTime.now()
+ .millisecondsSinceEpoch +
+ (widget
+ .appoList[
+ index]
+ .remaniningHoursTocanPay *
+ 1000) *
+ 60),
+ widgetBuilder: (_,
+ CurrentRemainingTime
+ time) {
+ return time != null
+ ? Text(
+ '${time.days != null ? time.days : "0"}:${time.hours.toString().length == 1 ? "0" + time.hours.toString() : time.hours}:${time.min}:${time.sec} ' +
+ TranslationBase.of(
+ context)
+ .upcomingTimeLeft,
+ style: TextStyle(
+ fontSize: 12.0,
+ color: Color(
+ 0xff40ACC9)))
+ : Container();
+ },
+ ),
+ ),
+ ],
+ ),
),
- Container(
- child: CountdownTimer(
- controller: new CountdownTimerController(
- endTime: DateTime.now()
- .millisecondsSinceEpoch +
- (widget.appoList[index]
- .remaniningHoursTocanPay *
- 1000) *
- 60),
- widgetBuilder:
- (_, CurrentRemainingTime time) {
- return time != null
- ? Text(
- '${time.days}:${time.hours}:${time.min}:${time.sec} ' +
- TranslationBase.of(
- context)
- .upcomingTimeLeft,
+ ),
+ Expanded(
+ flex: 1,
+ child: InkWell(
+ onTap: () => performNextAction(
+ widget.appoList[index]),
+ child: Container(
+ margin: EdgeInsets.only(top: 20.0),
+ child: Column(
+ children: [
+ Image.asset(
+ getNextActionImage(widget
+ .appoList[index]
+ .nextAction),
+ width: 50.0,
+ height: 50.0),
+ Container(
+ margin:
+ EdgeInsets.only(top: 5.0),
+ child: Text(
+ getNextActionText(widget
+ .appoList[index]
+ .nextAction),
+ textAlign:
+ TextAlign.center,
style: TextStyle(
- fontSize: 12.0,
- color: Color(
- 0xff40ACC9)))
- : Container();
- },
+ fontSize: 12.0)),
+ )
+ ],
+ ),
),
),
- ],
- ),
+ )
+ ],
),
- ),
- Expanded(
- flex: 1,
- child: InkWell(
- onTap: () => performNextAction(
- widget.appoList[index]),
- child: Container(
- margin: EdgeInsets.only(top: 20.0),
- child: Column(
- children: [
- Image.asset(
- getNextActionImage(widget
+ Divider(
+ color: Colors.grey[500],
+ ),
+ Flex(
+ direction: Axis.horizontal,
+ children: [
+ Expanded(
+ flex: 2,
+ child: Container(
+ child: Text(
+ getNextActionDescription(widget
.appoList[index].nextAction),
- width: 50.0,
- height: 50.0),
- Container(
- margin: EdgeInsets.only(top: 5.0),
- child: Text(
- getNextActionText(widget
- .appoList[index]
- .nextAction),
- textAlign: TextAlign.center,
- style:
- TextStyle(fontSize: 12.0)),
- )
- ],
+ style: TextStyle(
+ fontSize: 12.0,
+ color: Colors.grey[700])),
+ ),
),
- ),
+ Expanded(
+ flex: 1,
+ child: GestureDetector(
+ onTap: () {
+ navigateToAppointmentDetails(
+ context,
+ widget.appoList[index]);
+ },
+ child: Container(
+ child: Text(
+ TranslationBase.of(context)
+ .upcomingDetails,
+ textAlign: TextAlign.end,
+ style: TextStyle(
+ fontSize: 12.0,
+ color:
+ new Color(0xFF40ACC9),
+ decoration: TextDecoration
+ .underline)),
+ ),
+ ),
+ )
+ ],
),
- )
- ],
- ),
- Divider(
- color: Colors.grey[500],
+ ],
+ ),
),
- Flex(
- direction: Axis.horizontal,
- children: [
- Expanded(
- flex: 2,
- child: Container(
- child: Text(
- getNextActionDescription(
- widget.appoList[index].nextAction),
- style: TextStyle(
- fontSize: 12.0,
- color: Colors.grey[700])),
- ),
- ),
- Expanded(
- flex: 1,
- child: GestureDetector(
- onTap: () {
- navigateToAppointmentDetails(
- context, widget.appoList[index]);
- },
- child: Container(
- child: Text(
- TranslationBase.of(context)
- .upcomingDetails,
- textAlign: TextAlign.end,
- style: TextStyle(
- fontSize: 12.0,
- color: new Color(0xFF40ACC9),
- decoration:
- TextDecoration.underline)),
+ ),
+ ),
+ Container(
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.only(
+ bottomLeft: Radius.circular(10.0),
+ bottomRight: Radius.circular(10.0)),
+ color: Color(0xff20bc44),
+ ),
+ height: 30.0,
+ margin: projectViewModel.isArabic ? EdgeInsets.fromLTRB(160.0, 0.0, 30.0, 0.0) : EdgeInsets.fromLTRB(30.0, 0.0, 160.0, 0.0),
+ transform: Matrix4.translationValues(0.0, -8.0, 0.0),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ widget.appoList[index].isLiveCareAppointment
+ ? Container(
+ margin: EdgeInsets.fromLTRB(
+ 5.0, 0.0, 5.0, 0.0),
+ child: Image.asset(
+ "assets/images/new-design/video.png"),
+ )
+ : Container(
+ margin: EdgeInsets.fromLTRB(
+ 5.0, 0.0, 5.0, 0.0),
+ child: Image.asset(
+ "assets/images/new-design/walkin.png"),
),
- ),
- )
- ],
- ),
- ],
+ widget.appoList[index].isLiveCareAppointment
+ ? Container(
+ child: Text(TranslationBase.of(context).videoAppo,
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.bold,
+ fontSize: 12.0)),
+ )
+ : Container(
+ child: Text(TranslationBase.of(context).walkinAppo,
+ style: TextStyle(
+ color: Colors.white,
+ fontWeight: FontWeight.bold,
+ fontSize: 12.0)),
+ )
+ ],
+ ),
),
- ),
+ ],
),
);
},
@@ -567,12 +631,34 @@ class _ToDoState extends State {
}
getPatientShare(context, AppoitmentAllHistoryResultList appo) {
- GifLoaderDialogUtils.showMyDialog(context);
DoctorsListService service = new DoctorsListService();
+ if (appo.isLiveCareAppointment) {
+ getLiveCareAppointmentPatientShare(context, service, appo);
+ } else {
+ GifLoaderDialogUtils.showMyDialog(context);
+ service
+ .getPatientShare(appo.appointmentNo.toString(), appo.clinicID,
+ appo.projectID, context)
+ .then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ widget.patientShareResponse = new PatientShareResponse.fromJson(res);
+ openPaymentDialog(appo, widget.patientShareResponse);
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ AppToast.showErrorToast(message: err);
+ print(err);
+ });
+ }
+ }
+
+ getLiveCareAppointmentPatientShare(context, DoctorsListService service,
+ AppoitmentAllHistoryResultList appo) {
+ GifLoaderDialogUtils.showMyDialog(context);
service
- .getPatientShare(appo.appointmentNo.toString(), appo.clinicID,
- appo.projectID, context)
+ .getLiveCareAppointmentPatientShare(appo.appointmentNo.toString(),
+ appo.clinicID, appo.projectID, context)
.then((res) {
+ print(res);
GifLoaderDialogUtils.hideDialog(context);
widget.patientShareResponse = new PatientShareResponse.fromJson(res);
openPaymentDialog(appo, widget.patientShareResponse);
@@ -674,7 +760,12 @@ class _ToDoState extends State {
authenticatedUser.firstName,
authenticatedUser.patientID,
authenticatedUser,
- widget.browser);
+ widget.browser,
+ appo.isLiveCareAppointment,
+ appo.appointmentDate,
+ appo.appointmentNo,
+ appo.clinicID,
+ appo.doctorID);
}
onBrowserLoadStart(String url) {
diff --git a/lib/pages/ToDoList/widgets/upcomingCard.dart b/lib/pages/ToDoList/widgets/upcomingCard.dart
index 04930e59..3fefe616 100644
--- a/lib/pages/ToDoList/widgets/upcomingCard.dart
+++ b/lib/pages/ToDoList/widgets/upcomingCard.dart
@@ -197,7 +197,7 @@ class _TodoListCardState extends State {
),
)
],
- )
+ ),
],
),
),
diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart
index eabff77a..01a50fda 100644
--- a/lib/pages/landing/landing_page.dart
+++ b/lib/pages/landing/landing_page.dart
@@ -326,6 +326,7 @@ class _LandingPageState extends State with WidgetsBindingObserver {
Permission.notification,
Permission.accessMediaLocation,
Permission.calendar,
+ Permission.activityRecognition
].request();
var permissionsGranted = await deviceCalendarPlugin.hasPermissions();
diff --git a/lib/pages/livecare/livecare_home.dart b/lib/pages/livecare/livecare_home.dart
index fc5c4eab..1974753f 100644
--- a/lib/pages/livecare/livecare_home.dart
+++ b/lib/pages/livecare/livecare_home.dart
@@ -49,6 +49,7 @@ class _LiveCareHomeState extends State
child: Column(children: [
/// this is will not colored with theme data
TabBar(
+ labelColor: Colors.black,
tabs: [
Tab(text: TranslationBase.of(context).consultation),
Tab(text: TranslationBase.of(context).logs),
diff --git a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
index 4309cc62..19144263 100644
--- a/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
+++ b/lib/pages/livecare/livecare_scheduling/schedule_clinic_card.dart
@@ -21,7 +21,7 @@ class _ScheduleClinicCardState extends State {
return Container(
child: Card(
margin: EdgeInsets.fromLTRB(15.0, 10.0, 15.0, 8.0),
- color: widget.isSelected ? Colors.blue : Colors.white,
+ color: widget.isSelected ? Color(0xff06b806) : Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
@@ -35,8 +35,8 @@ class _ScheduleClinicCardState extends State {
Container(
child: Text(
widget.languageID == 'ar'
- ? widget.clinicsHaveScheduleList.clinicDescN
- : widget.clinicsHaveScheduleList.clinicDesc,
+ ? widget.clinicsHaveScheduleList.clinicDescN != null ? widget.clinicsHaveScheduleList.clinicDescN: ""
+ : widget.clinicsHaveScheduleList.clinicDesc != null ? widget.clinicsHaveScheduleList.clinicDesc: "Dermatology",
style: TextStyle(
fontSize: 16.0,
color:
diff --git a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
index 25ec8514..15c14557 100644
--- a/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
+++ b/lib/pages/livecare/widgets/LiveCareHistoryCard.dart
@@ -42,10 +42,11 @@ class _LiveCareHistoryCardState extends State {
),
child: Container(
width: MediaQuery.of(context).size.width,
- height: MediaQuery.of(context).size.height * 0.22,
+ // height: MediaQuery.of(context).size.height * 0.22,
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
+ mainAxisSize: MainAxisSize.min,
children: [
Text("Requested date:",
style:
diff --git a/lib/pages/livecare/widgets/clinic_list.dart b/lib/pages/livecare/widgets/clinic_list.dart
index fc27d92b..195d8879 100644
--- a/lib/pages/livecare/widgets/clinic_list.dart
+++ b/lib/pages/livecare/widgets/clinic_list.dart
@@ -283,7 +283,8 @@ class _clinic_listState extends State {
authenticatedUser.firstName,
authenticatedUser.patientID,
authenticatedUser,
- browser);
+ browser,
+ false);
}
onBrowserLoadStart(String url) {
diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart
index 8a69bf5d..eecb6abd 100644
--- a/lib/pages/medical/balance/confirm_payment_page.dart
+++ b/lib/pages/medical/balance/confirm_payment_page.dart
@@ -225,7 +225,8 @@ class ConfirmPaymentPage extends StatelessWidget {
advanceModel.patientName,
advanceModel.fileNumber,
authenticatedUser,
- browser);
+ browser,
+ false);
}
onBrowserLoadStart(String url) {
diff --git a/lib/pages/medical/smart_watch_health_data/stepsTracker.dart b/lib/pages/medical/smart_watch_health_data/stepsTracker.dart
new file mode 100644
index 00000000..467242e8
--- /dev/null
+++ b/lib/pages/medical/smart_watch_health_data/stepsTracker.dart
@@ -0,0 +1,248 @@
+import 'package:charts_flutter/flutter.dart' as charts;
+import 'package:diplomaticquarterapp/models/SmartWatch/YearlyStepsResModel.dart';
+import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
+import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/material.dart';
+
+class StepsTracker extends StatefulWidget {
+ @override
+ _StepsTrackerState createState() => _StepsTrackerState();
+}
+
+class _StepsTrackerState extends State
+ with SingleTickerProviderStateMixin {
+ TabController _tabController;
+
+ int weeklyStatsAvgValue = 0;
+ int monthlyStatsAvgValue = 0;
+ int yearlyStatsAvgValue = 0;
+
+ int avgStepsValue = 0;
+ int dataLength = 0;
+
+ List yearlyStepsList = List();
+
+ List yearlyTimeSeriesData = [];
+
+ bool isDataLoaded = false;
+
+ @override
+ void initState() {
+ _tabController = new TabController(length: 3, vsync: this);
+ WidgetsBinding.instance.addPostFrameCallback((_) {
+ getYearlyStepsData();
+ });
+ super.initState();
+ }
+
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: "Steps",
+ isShowDecPage: false,
+ body: Container(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ TabBar(
+ tabs: [
+ Tab(text: TranslationBase.of(context).weekly),
+ Tab(text: TranslationBase.of(context).monthly),
+ Tab(text: TranslationBase.of(context).yearly),
+ ],
+ controller: _tabController,
+ ),
+ Expanded(
+ child: new TabBarView(
+ physics: NeverScrollableScrollPhysics(),
+ children: [
+ isDataLoaded ? getWeeklyStepsDetails() : Container(),
+ isDataLoaded ? getMonthlyStepsDetails() : Container(),
+ isDataLoaded ? getYearlyStepsDetails() : Container()
+ ],
+ controller: _tabController,
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ getYearlyStepsData() {
+ avgStepsValue = 0;
+ dataLength = 0;
+
+ DoctorsListService service = new DoctorsListService();
+ GifLoaderDialogUtils.showMyDialog(context);
+ service.getPatientHealthDataStats(6, 3, context).then((res) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(res['Med_GetYearStepsTransactionsStsList']);
+ yearlyStepsList.clear();
+ res['Med_GetYearStepsTransactionsStsList'].forEach((element) {
+ yearlyStepsList.add(new YearlyStepsResModel.fromJson(element));
+ if (element['ValueSum'] != null) {
+ double value = element['ValueSum'];
+ avgStepsValue += value.toInt();
+ dataLength++;
+ }
+ });
+
+ print(avgStepsValue);
+ print(dataLength);
+ setState(() {
+ yearlyStatsAvgValue = avgStepsValue ~/ dataLength;
+ isDataLoaded = true;
+ });
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ // AppToast.showErrorToast(message: err);
+ print(err);
+ });
+ }
+
+ generateData() {
+ if (yearlyStepsList.length > 0) {
+ yearlyTimeSeriesData.clear();
+ yearlyStepsList.forEach(
+ (element) {
+ yearlyTimeSeriesData.add(
+ TimeSeriesSales(
+ new DateTime(element.year, element.month, 1),
+ element.valueSum != null ? element.valueSum.toInt() : 0,
+ ),
+ );
+ },
+ );
+ yearlyTimeSeriesData.forEach((element) {
+ print(element.sales);
+ print(element.time);
+ });
+ }
+ return [
+ new charts.Series(
+ id: 'Sales',
+ colorFn: (_, __) => charts.MaterialPalette.red.shadeDefault,
+ domainFn: (TimeSeriesSales sales, _) => sales.time,
+ measureFn: (TimeSeriesSales sales, _) => sales.sales,
+ data: yearlyTimeSeriesData,
+ )
+ ];
+ }
+
+ getWeeklyStepsDetails() {
+ return Container(
+ child: Text("Weekly"),
+ );
+ }
+
+ getMonthlyStepsDetails() {
+ return Container(
+ child: Text("Monthly"),
+ );
+ }
+
+ getYearlyStepsDetails() {
+ return Container(
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Container(
+ child: AppTimeSeriesChart(
+ seriesList: generateData(),
+ chartName: "Steps",
+ startDate: DateTime(
+ yearlyStepsList[0].year, yearlyStepsList[0].month, 1),
+ endDate: DateTime(
+ yearlyStepsList[yearlyStepsList.length - 1].year,
+ yearlyStepsList[yearlyStepsList.length - 1].month,
+ 1),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.only(top: 5.0),
+ child: Card(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
+ side: BorderSide(color: Colors.grey[400], width: 0.6)),
+ child: Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
+ child:
+ Text("Average Steps", style: TextStyle(fontSize: 18.0)),
+ ),
+ Container(
+ margin: EdgeInsets.only(bottom: 10.0),
+ child: Text(yearlyStatsAvgValue.toString() + " Steps",
+ style: TextStyle(
+ fontSize: 20.0, fontWeight: FontWeight.bold)),
+ ),
+ ],
+ ),
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.all(10.0),
+ child: Divider(
+ color: Colors.grey[500],
+ ),
+ ),
+ Container(
+ transform: Matrix4.translationValues(0.0, -10.0, 0.0),
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 5.0),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Text("History", style: TextStyle(fontSize: 14.0)),
+ Row(
+ children: [
+ Text("view more", style: TextStyle(fontSize: 14.0)),
+ Container(
+ margin: EdgeInsets.only(left: 3.0, right: 3.0),
+ transform: Matrix4.translationValues(0.0, 1.5, 0.0),
+ width: 30.0,
+ height: 30.0,
+ child: Image.asset(
+ "assets/images/new-design/view_more.png",
+ fit: BoxFit.contain),
+ ),
+ ],
+ ),
+ ],
+ ),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 5.0),
+ child: Card(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(10),
+ side: BorderSide(color: Colors.grey[400], width: 0.6)),
+ child: Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ Container(
+ padding: EdgeInsets.fromLTRB(30.0, 15.0, 30.0, 15.0),
+ child: Text("Date",
+ style: TextStyle(
+ fontSize: 18.0, fontWeight: FontWeight.bold)),
+ ),
+ Container(
+ padding: EdgeInsets.fromLTRB(30.0, 0.0, 30.0, 0.0),
+ child: Text("Steps", style: TextStyle(fontSize: 18.0)),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart
index d26c74ad..72f18979 100644
--- a/lib/services/appointment_services/GetDoctorsList.dart
+++ b/lib/services/appointment_services/GetDoctorsList.dart
@@ -41,7 +41,8 @@ class DoctorsListService extends BaseService {
long = await this.sharedPref.getDouble(USER_LONG);
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ var languageID =
+ await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Request req = appGlobal.getPublicRequest();
request = {
"LanguageID": languageID == 'ar' ? 1 : 2,
@@ -105,7 +106,8 @@ class DoctorsListService extends BaseService {
long = await this.sharedPref.getDouble(USER_LONG);
}
- var languageID = await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
+ var languageID =
+ await sharedPref.getStringWithDefaultValue(APP_LANGUAGE, 'ar');
Request req = appGlobal.getPublicRequest();
request = {
"LanguageID": languageID == 'ar' ? 1 : 2,
@@ -145,7 +147,8 @@ class DoctorsListService extends BaseService {
Future