diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart index 3481441c..f9946ea6 100644 --- a/lib/config/localized_values.dart +++ b/lib/config/localized_values.dart @@ -50,7 +50,7 @@ const Map localizedValues = { 'searchByDocText': {'en': 'Type the name of the doctor to help you find him', 'ar': 'اكتب اسم الطبيب لمساعدتك في العثور عليه'}, 'enterDocName': {'en': 'Enter Doctor name', 'ar': 'أدخل إسم الطبيب'}, 'search': {'en': 'Search', 'ar': 'بحث'}, - 'noResultFound': {'en': 'No Result Found', 'ar': 'المنتج غير موجود'}, + 'noResultFound': {'en': 'No Result Found', 'ar': 'لم يتم العثور على نتائج'}, 'pleaseEnterProductName': {'en': 'Please Enter Product Name', 'ar': 'ادخل اسم المنتج'}, 'bookNow': {'en': 'BOOK NOW', 'ar': 'احجز الآن'}, 'docInfo': {'en': 'Doctor Information', 'ar': 'معلومات الطبيب'}, @@ -60,10 +60,7 @@ const Map localizedValues = { 'nationality': {'en': 'Nationality', 'ar': 'الجنسية'}, 'neverWait': {'en': 'Never wait in queue', 'ar': 'لا تنتظر في قائمة الانتظار'}, 'reminderTitle': {'en': 'You have appointment with Dr. ', 'ar': 'لديك موعد مع د'}, - 'appointmentCalendar': {'en': 'Would you like to set a reminder for this appointment in your calendar?', 'ar': 'هل ترغب في تعيين تذكير لهذا الموعد في التقويم الخاص بك؟'}, - 'appointmentReminder': {'en': 'Would you like to set a reminder for this appointment?', 'ar': 'هل ترغب في تعيين تذكير لهذا الموعد؟'}, - 'prescriptionReminder': {'en': 'Would you like to set a reminder for this prescription?', 'ar': 'هل ترغب في تعيين تذكير لهذه الوصفة؟'}, - 'please_select_from_below_options': {'en': 'Please select from below options:', 'ar': 'الرجاء التحديد من الخيارات أدناه:'}, + 'appointmentCalendar': {'en': 'Would you like to set a reminder for this appointment in your calendar?', 'ar': 'هل ترغب في إضافة تذكير لهذا الموعد في التقويم الخاص بك؟'}, 'appointmentSuccess': {'en': 'Appointment is successfully booked', 'ar': 'تم حجز الموعد بنجاح'}, 'docQualifications': {'en': 'Doctor Qualifications', 'ar': 'مؤهلات الطبيب'}, 'pressAgain': {'en': 'Press again to exit the app', 'ar': 'اضغط مرة أخرى للخروج من التطبيق'}, @@ -71,14 +68,14 @@ const Map localizedValues = { 'patientInfo': {'en': 'Patient Information', 'ar': 'معلومات المريض'}, 'doctorFilter': {'en': 'Doctors will be filtered based on your gender and age', 'ar': 'سيتم تصفية الأطباء بناءً على جنسك وعمرك'}, 'bookSuccess': {'en': 'Book Success', 'ar': 'تم حجز الموعد بنجاح'}, - 'patientShare': {'en': 'Patient Share', 'ar': 'المبلغ المستحق'}, - 'patientShareWithTax': {'en': 'Patient Share with Tax', 'ar': 'المبلغ الإجمالي المستحق'}, + 'patientShare': {'en': 'Patient Share', 'ar': 'نسبة العميل'}, + 'patientShareWithTax': {'en': 'Patient Share with Tax', 'ar': 'المبلغ الإجمالي المستحق مع الضريبة'}, 'confirmAppo': {'en': 'Confirm Appointment', 'ar': 'تأكيد الموعد'}, 'confirm': {'en': 'Confirm', 'ar': 'تأكيد'}, 'confirmLiveCare': {'en': 'Confirm LiveCare', 'ar': 'تأكيد لايف كير'}, 'waitingForDoctor': {'en': 'Waiting for doctor', 'ar': 'في انتظار الطبيب'}, 'appointment': {'en': 'Appointment', 'ar': 'الموعد'}, - 'confirmLater': {'en': 'Confirm Later', 'ar': 'تأكيد لاحقا'}, + 'confirmLater': {'en': 'Confirm Later', 'ar': 'التاكيد لاحقا'}, 'todoList': {'en': 'Todo List', 'ar': 'مهامي'}, 'appoActions': {'en': 'Appointment Actions', 'ar': 'إجراءات الموعد'}, 'date': {'en': 'Date', 'ar': 'التاريخ'}, @@ -92,13 +89,13 @@ const Map localizedValues = { 'agreeTo': {'en': 'I agree the', 'ar': 'أوافق على'}, 'termsConditoins': {'en': 'Terms and Conditions', 'ar': 'الأحكام والشروط'}, 'cancelAppoMsg': {'en': 'Are you sure you want to cancel this appointment?', 'ar': 'هل أنت متأكد أنك تريد إلغاء هذا الموعد؟'}, - 'changePayment': {'en': 'Change Payment Method', 'ar': 'قم بتغيير آلية الدفع'}, - 'upcoming-noAction': {'en': 'No Action Required', 'ar': 'لا يوجد إجراء مطلوب'}, + 'changePayment': {'en': 'Change Payment Method', '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-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': 'المزيد'}, @@ -111,33 +108,32 @@ const Map localizedValues = { 'online': {'en': 'Online', 'ar': 'الالكترونية'}, 'payment': {'en': 'Payment', 'ar': 'الدفع'}, 'cancel-nocaps': {'en': 'Cancel', 'ar': 'الغاء'}, - 'set-reminder': {'en': 'Set Reminder', 'ar': 'تعيين تذكير'}, - "national-id-number": {"en": "National ID Number", "ar": "رقم الهوية الوطنيةالاقامة"}, + 'set-reminder': {'en': 'Set Reminder', 'ar': 'إضافة تذكير'}, + "national-id-number": {"en": "National ID Number", "ar": "رقم الهوية الوطنية / الاقامة"}, "medical-file-number": {"en": "Medical File Number", "ar": "رقم الملف الطبي"}, 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, - 'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'}, - 'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'}, + 'loginregister': {'en': 'Login / Register', 'ar': 'دخول/ تسجيل'}, + 'poweredBy': {'en': 'Powered by', 'ar': 'مشغل بواسطة'}, "welcome": {"en": "Welcome", "ar": "مرحبا"}, "welcome-to": {"en": "Welcome to", "ar": "مرحبا بك في"}, - "patient-app": {"en": "Patient App", "ar": "تطبيق المريض"}, - "welcome_text": {"en": "Dr. Sulaiman Al Habib Mobile Application", "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك"}, + "patient-app": {"en": "Patient App", "ar": "تطبيق المرضى"}, + "welcome_text": {"en": "Dr. Sulaiman Al Habib Mobile Application", "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف"}, "dr-sulaiman-text": {"en": "Dr. Sulaiman Al Habib", "ar": "د. سليمان الحبيب"}, 'welcome_text2': {'en': 'Have you visited AlHabib Medical Group before? ', 'ar': 'هل قمت بزيارة مجموعة الحبيب الطبية من قبل؟'}, 'yes': {'en': 'Yes', 'ar': 'نعم'}, 'no': {'en': 'No', 'ar': 'لا'}, - "logintyperadio": {"en": "Choose from below options to login to your medical file.", "ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي."}, - "registernow": {"en": "Register Now", "ar": "تسجيل الان"}, + "logintyperadio": {"en": " Choose from the below options to login to your medical file.", "ar": " اختر احدى الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي "}, + "registernow": {"en": "Register Now", "ar": "سجل الان"}, "nationalID": {"en": "Enter the Identification Number", "ar": "أدخل رقم الهوية الوطنية او الاقامة"}, "national-id": {"en": "National ID", "ar": "رقم الهوية"}, "fileNo": {"en": "File Number", "ar": "رقم الملف"}, "fileno": {"en": "File No", "ar": "رقم الملف"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, - "forgotFileNoTitle": {"en": "Forgot medical file", "ar": "نسيت رقم الملف"}, - + "forgotFileNoTitle": {"en": "Forgot medical file", "ar": "نسيت رقم الملف الطبي"}, "enter-national-id": {"en": "Please enter mobile number and identification number", "ar": "الرجاء إدخال رقم الجوال ورقم الهوية"}, "profile-info": {"en": "Please enter profile information", "ar": "الرجاء إدخال معلومات الملف الشخصي"}, "submit": {"en": "Submit", "ar": "ارسال"}, - "forgot-desc": {"en": "Enter the mobile number to receive the Medical file Number via SMS", "ar": "أدخل رقم الجوال المسجل لاستلام رقم الملف عن طريق الرسائل النصية"}, + "forgot-desc": {"en": "Enter the mobile number to receive the Medical File Number via SMS", "ar": "أدخل رقم الجوال المسجل لاستلام رقم الملف عن طريق الرسائل النصية"}, "dob": {"en": "Birth Date:", "ar": "تاريخ الميلاد"}, "hijri-date": {"en": "Hijri Date", "ar": "التاريخ الهجري"}, "gregorian-date": {"en": "Gregorian Date", "ar": "التاريخ الميلادي"}, @@ -149,19 +145,19 @@ const Map localizedValues = { "verify-with-whatsapp": {"en": "Whatsapp", "ar": " الواتس اب"}, "verify-through": {"en": "Verify Through", "ar": " تحقق من خلال"}, "last-login": {"en": "LAST LOGIN AT:", "ar": "آخر تسجيل دخول"}, - "last-login-with": {"en": "VERIFICATION TYPE:", "ar": "نوع التحقق:"}, + "last-login-with": {"en": "VERIFICATION TYPE:", "ar": "طريقة التحقق:"}, "verify-fingerprint": { "en": "To activate the fingerprint login service, please verify data by using one of the following options.", "ar": "لتفعيل خدمة الدخول بالبصمة، يرجى اختيار احدى القنوات التالية للتحقق من البيانات" }, 'searchMedicine': {'en': 'Search Medicine', 'ar': 'البحث عن الدواء'}, - 'pharmaciesList': {'en': 'Pharmacies List', 'ar': 'قائمة الصيدلايات'}, + 'pharmaciesList': {'en': 'Pharmacies List', 'ar': 'قائمة الصيدليات'}, 'searchMedicineHere': {'en': 'Search Medicine Here', 'ar': 'ابحث عن الدواء هنا'}, 'description': {'en': 'Description', 'ar': 'الوصف'}, 'howToUse': {'en': 'How to Use', 'ar': 'طريقة الأستخدام'}, 'price': {'en': 'Price', 'ar': 'السعر'}, - 'youCanFindItIn': {'en': 'You can find it in', 'ar': 'يمكنكة ان تجده في'}, - 'pleaseEnterMedicineName': {'en': 'Please Enter Medicine Name', 'ar': 'الرجائ ادخال اسم الدواء'}, + 'youCanFindItIn': {'en': 'You can find it in', 'ar': 'يمكنك ان تجده في'}, + 'pleaseEnterMedicineName': {'en': 'Please Enter Medicine Name', 'ar': 'الرجاء ادخال اسم الدواء'}, "verification_message": {"en": "Please enter the Verification Code sent to", "ar": "الرجاء ادخال رمز التحقق الذي تم إرساله إلى"}, "validation_message": {"en": "The verification code expires in", "ar": "تنتهي صلاحية رمز التحقق خلال"}, "arabic-change": {"en": "عربي", "ar": "English"}, @@ -171,7 +167,7 @@ const Map localizedValues = { "before": {"en": "Before", "ar": "قبل"}, "minute": {"en": "Minutes", "ar": "دقيقة"}, "hour": {"en": "Hour", "ar": "ساعة"}, - "reminderSuccess": {"en": "The reminder has been added successfully", "ar": "يضاف التذكير بنجاح"}, + "reminderSuccess": {"en": "The reminder has been added successfully", "ar": "تمت إضافة التذكير بنجاح"}, "patientShareToDo": {"en": "Amount before tax: ", "ar": "المبلغ قبل الضريبة:"}, "patientTaxToDo": {"en": "Tax amount: ", "ar": "قيمة الضريبة:"}, "patientShareTotalToDo": {"en": "Total amount Due: ", "ar": "المبلغ الإجمالي المستحق:"}, @@ -192,10 +188,10 @@ const Map localizedValues = { "confirmed": {"en": "Confirmed", "ar": "مؤكد"}, "arrived": {"en": "Arrived", "ar": "تم الحضور"}, "payNowBookSuccess": {"en": "Pay now via Al Habib App", "ar": "ادفع الآن عبر تطبيق الحبيب"}, - "payNowBookSuccesstext1": {"en": "Pay Now using online payment service From secure payment gateways", "ar": "ادفع الآن باستخدام خدمة الدفع عبر الإنترنت من بوابات الدفع الآمنة"}, - "payNowBookSuccesstext2": {"en": "You can also Pay Later via online payment Or in Hospital", "ar": "يمكنك أيضًا الدفع لاحقًا عبر الدفع عبر الإنترنت أو في المستشفى"}, + "payNowBookSuccesstext1": {"en": "Pay Now using online payment service from secure payment gateways", "ar": " ادفع الآن من خلال خدمة الدفع الالكتروني الآمنة"}, + "payNowBookSuccesstext2": {"en": "You can also Pay Later via online payment or in Hospital", "ar": "يمكنك أيضًا الدفع لاحقًا عبر الدفع الالكتروني أو في المستشفى"}, 'payLater': {'en': 'Pay Later', 'ar': 'ادفع لاحقا'}, - 'askDocNotAllowed': {'en': 'This service will be available for last 15 days doctor Visit only', 'ar': 'هذه الخدمة متاحة للزيارات خلال اخر 15 يوم فقط'}, + 'askDocNotAllowed': {'en': 'This service will be available for last 15 days’ doctor Visit only', 'ar': 'هذه الخدمة متاحة للزيارات خلال اخر 15 يوم فقط'}, "more-verify": {"en": "More Verification Options", "ar": "المزيد من خيارات التحقق"}, "welcome-back": {"en": "Welcome back!", "ar": "مرحبا بعودتك!"}, "account-info": {"en": "Would you like to login with current username?", "ar": "هل ترغب في تسجيل الدخول باسم المستخدم الحالي؟"}, @@ -239,7 +235,7 @@ const Map localizedValues = { "allow-view": {"en": "Allow", "ar": "قبول"}, "reject-view": {"en": "Reject", "ar": "رفض"}, "delete-view": {"en": "Delete", "ar": "حذف"}, - // "my-family": {"en": "MY FAMILY", "ar": "عائلتي"}, + "my-family": {"en": "MY FAMILY", "ar": "عائلتي"}, "approvals": {"en": "Approvals", "ar": "موافقات التأمين"}, "approvalNo": {"en": "Approval No:", "ar": "رقم الموافقة: "}, "companyName": {"en": "Company Name:", "ar": "اسم الشركة: "}, @@ -249,13 +245,13 @@ const Map localizedValues = { "procedureName": {"en": "Procedure Name:", "ar": "اسم الاجراء:"}, "procedure": {"en": "Procedure", "ar": "اسم الاجراء:"}, "procedureStatus": {"en": "Procedure Status: ", "ar": "حالة الاجراء"}, - "usageStatus": {"en": "Usage Status", "ar": "جالة الاستخدام"}, - "unusedCount": {"en": "Unused Count:", "ar": "غير مستخدم: "}, + "usageStatus": {"en": "Usage Status", "ar": "حالة الاستخدام"}, + "unusedCount": {"en": "Unused Count:", "ar": "غير مستخدم:"}, "totalApproval": {"en": "Total approval unused", "ar": "اجمالي الموافقات الغير مستخدمة"}, "category": {"en": "Category: ", "ar": "الفئة"}, "expirationDate": {"en": "Expiration Date: ", "ar": "تاريخ الانتهاء"}, "patientCard": {"en": "Patient Card ID: ", "ar": "رقم الاشتراك"}, - "policyNumber": {"en": "Policy Number: ", "ar": "رقم بوليصة التاميت:"}, + "policyNumber": {"en": "Policy Number: ", "ar": "رقم بوليصة التامين:"}, "seeDetails": {"en": "SEE DETAILS", "ar": "منافعك التامينية"}, "insuranceCards": {"en": "Insurance Cards", "ar": "بطاقات التأمين"}, "requestType": {"en": "Request Type", "ar": "نوع الاستفسار"}, @@ -263,14 +259,13 @@ const Map localizedValues = { "remove-family-member": {"en": "Remove this member?", "ar": "إزالة ملف العضو؟"}, "MyMedicalFile": {"en": "My Medical File", 'ar': 'ملف الطبي الالكتروني'}, "myMedicalFileSubTitle": {"en": "All your medical records", 'ar': 'جميع سجلاتك الطبية'}, - "viewMore": {"en": "View More", 'ar': 'عرض المزيد'}, "homeHealthCareService": {"en": "Home Health Care Service", 'ar': 'الرعاية الصحية المنزلية'}, "OnlinePharmacy": {"en": "Online Pharmacy", 'ar': 'صيدليات الحبيب'}, "EmergencyService": {"en": "Emergency Service", 'ar': 'الفحص الطبي الشامل'}, - "OnlinePaymentService": {"en": "Online Payment Service", 'ar': 'خدمة الدفع الإلكتدوني'}, + "OnlinePaymentService": {"en": "Online Payment Service", 'ar': 'خدمة الدفع الإلكتروني'}, "OffersAndPackages": {"en": "Online transfer request", 'ar': 'طلب التحويل الالكتروني'}, - "ComprehensiveMedicalCheckup": {"en": "Comprehensive Medical Check up", 'ar': 'فحص طبي شامل'}, + "ComprehensiveMedicalCheckup": {"en": "Comprehensive Medical Check-up", 'ar': 'فحص طبي شامل'}, "HMGService": {"en": "HMG Service", 'ar': 'جميع خدمات الحبيب'}, "ViewAllHabibMedicalService": {"en": "View All Habib Medical Service", 'ar': 'عرض خدمات الحبيب الطبية'}, "viewAll": {"en": "View All", 'ar': 'عرض الكل'}, @@ -285,30 +280,28 @@ const Map localizedValues = { "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": "خدمات الحبيب"}, "parkingTitle": { "en": "Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the car’s location in Google Maps. 3- Read another position by pressing the Clear Position Data button.", "ar": - " خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). " + " خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر (قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). " }, "parkingDescription": { "en": "Parking service is for you to scan the car location so you can find it easy on you way out. click on (scan parking) button to save the parking location, then (show my park) button will appear to show you the way for the parking. if you want to rescan parking QR just click on (Clear My Data).", "ar": - "خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف)." + "خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر (قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف)." }, - "appointments": {"en": "Appointments", "ar": "تعيينات"}, + "appointments": {"en": "Appointments", "ar": "مواعيد"}, "all2": {"en": "All", "ar": "الكل"}, "checkinOption": {"en": "Check-In Options", "ar": "تحقق في الخيارات"}, "readBarcode": {"en": "Read Barcode", "ar": "قراءة الكود"}, - "showMyPark": {"en": "Show My Park", "ar": "عرض بارك"}, - "clearMyData": {"en": "clear My Data", "ar": "امسح البيانات"}, + "showMyPark": {"en": "Show My Park", "ar": "عرض الموقف"}, + "clearMyData": {"en": "Clear My Data", "ar": "امسح البيانات"}, "floor": {"en": "Floor:", "ar": "الطابق"}, "gate": {"en": "Gate:", "ar": "بوابة"}, "building": {"en": "Building:", "ar": "المبنى"}, @@ -321,7 +314,7 @@ const Map localizedValues = { "MyAppointments": {"en": "My", "ar": "مواعيدي"}, "NoBookedAppointments": {"en": "No Booked Appointments", "ar": "لا توجد مواعيد محجوزة"}, "NoConfirmedAppointments": {"en": "No Confirmed Appointments", "ar": "لا توجد مواعيد مؤكدة"}, - "noArrivedAppointments": {"en": "No Arrived Appointments", "ar": "لم تصل المواعيد"}, + "noArrivedAppointments": {"en": "No Arrived Appointments", "ar": "لم يتم حضورها"}, "MyAppointmentsList": {"en": "Appointments", "ar": "قائمة بمواعدي"}, "Radiology": {"en": "Radiology", "ar": "الأشعة"}, "RadiologySubtitle": {"en": "Result", "ar": "صور وتقارير"}, @@ -353,23 +346,23 @@ const Map localizedValues = { "MonthlySubtitle": {"en": "Report", "ar": "الشهرية"}, "Sick": {"en": "Sick", "ar": "الإجازات"}, "SickSubtitle": {"en": "Leaves", "ar": "المرضية"}, - "MyBalance": {"en": "My Balance", "ar": "ارصدتي"}, + "MyBalance": {"en": "My Balance", "ar": "رصيدي"}, "MyBalanceSubtitle": {"en": "Credit", "ar": "المبالغ"}, "PatientCall": {"en": "Patient Call", "ar": "النداء للموعد"}, "PatientCallSubtitle": {"en": "Service", "ar": "خدمة"}, - "SmartWatches": {"en": "Smart Watches", "ar": "الساعة الذكية"}, + "SmartWatches": {"en": "Smart Watches", "ar": "الساعات الذكية"}, "SmartWatchesSubtitle": {"en": "Pairing", "ar": "ربط البيانات"}, "MyTrackers": {"en": "My Trackers", "ar": "تتبع قراءاتي"}, "MyTrackersSubtitle": {"en": "Service", "ar": "الطبية"}, - "AskYour": {"en": "Ask Your", "ar": "إرسل طبيبك"}, + "AskYour": {"en": "Ask Your", "ar": "إسال طبيبك"}, "AskYourSubtitle": {"en": "Doctor", "ar": "خدمة"}, "Internet": {"en": "Internet", "ar": "الاتصال"}, "InternetSubtitle": {"en": "Pairing", "ar": "بالإنترنت"}, - "Chatbot": {"en": "Chatbot", "ar": "تاشت بوت"}, + "Chatbot": {"en": "Chatbot", "ar": "شات بوت"}, "ChatbotSubtitle": {"en": "", "ar": ""}, "TimeLine": {"en": "Timeline", "ar": "الجدول الزمني"}, "LabOrders": {"en": "Lab Orders", "ar": "تحاليل المختبر"}, - "BillNo": {"en": "Bill No :", "ar": "رقم الفاتورة"}, + "BillNo": {"en": "Bill No:", "ar": "رقم الفاتورة"}, "Prescriptions": {"en": "Prescriptions", "ar": "الوصفات الطبية"}, "History": {"en": "History", "ar": "السجلات"}, "OrderNo": {"en": "Order No", "ar": "رقم الطلب"}, @@ -382,18 +375,18 @@ const Map localizedValues = { "km": {"en": "KMs:", "ar": "كم"}, "km_": {"en": "KM", "ar": "كم"}, "PatientHealthSummaryReport": {"en": "Patient Health Summary Report", "ar": " ملخص التقارير الشهرية"}, - "ToViewTheTermsAndConditions": {"en": "To View The Terms And Conditions Report", "ar": " عرض الشروط والأحكام "}, + "ToViewTheTermsAndConditions": {"en": "To View the Terms and Conditions Report", "ar": " عرض الشروط والأحكام "}, "ClickHere": {"en": "Click here", "ar": "أنقر هنا"}, - "IAgreeToTheTermsAndConditions": {"en": "I agree to the terms and conditions ", "ar": "أوافق على الشروط والاحكام "}, + "IAgreeToTheTermsAndConditions": {"en": "I agree to the terms and conditions ", "ar": "موافق على الشروط والاحكام "}, "IAgreeToTheTermsAndConditionsSubtitle": { "en": "I agree to the terms and conditions ", "ar": - "هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير هو تقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية" + "هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية" }, "Save": {"en": "Save", "ar": "حفظ "}, "UserAgreement": {"en": "User Agreement", "ar": "اتفاقية الخصوصية "}, "UpdateSuccessfully": {"en": "Update Successfully", "ar": "تم التحديث بنجاح"}, - "CHECK_VACCINE_AVAILABILITY": {"en": "CHECK VACCINE AVAILABILITY", "ar": "تحقق من توافر اللقاح"}, + "CHECK_VACCINE_AVAILABILITY": {"en": "CHECK VACCINE AVAILABILITY", "ar": "التحقق من توفر اللقاح"}, "MyVaccinesAvailability": {"en": "MyVaccinesAvailability", "ar": "توفر لقاحي"}, "PaymentService": {"en": "Payment Service", "ar": "خدمة المدفوعات"}, "PaymentOnline": {"en": "Service", "ar": "الالكتروني"}, @@ -402,9 +395,8 @@ const Map localizedValues = { "BalanceAmount": {"en": "Wallet Amount", "ar": "مبلغ المحفظة"}, "TotalBalance": {"en": "Total Amount", "ar": "المبلغ الإجمالي"}, "CreateAdvancedPayment": {"en": "Recharge Wallet", "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 your account or other accounts.", "ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"}, "FileNumber": {"en": "File Number", "ar": "رقم الملف"}, "Amount": {"en": "Amount *", "ar": "المبلغ *"}, "DepositorEmail": {"en": "Depositor Email *", "ar": "البريد الإلكتروني للمودع *"}, @@ -425,7 +417,7 @@ const Map localizedValues = { "averageWaitingTime": {"en": "Average Waiting Time:", "ar": "متوسط ​​وقت الانتظار:"}, "WaterConsumedInWeek": {"en": "Water consumed in a week", "ar": "معدل شرب الماء خلال الاسبوع"}, "WaterConsumedInMonth": {"en": "Water consumed in a month", "ar": "معدل شرب الماء خلال الشهر"}, - "TheVerificationCodeExpiresIn": {"en": "The Verification Code Expires In", "ar": "تنتهي صلاحية رمز التحقق في"}, + "TheVerificationCodeExpiresIn": {"en": "The Verification Code Expires in", "ar": "تنتهي صلاحية رمز التحقق في"}, "PleaseEnterTheVerificationCode": {"en": "Please enter the verification code send to", "ar": "الرجاء إدخال رمز التحقق المرسل إلى"}, "EyeMeasurements": {"en": "Eye Measurements", "ar": "قياسات النظر"}, "Measurements": {"en": "Measurements", "ar": "قياسات"}, @@ -441,7 +433,7 @@ const Map localizedValues = { "Brand": {"en": "Brand", "ar": "النوع"}, "Power": {"en": "Power", "ar": "القوة"}, "Diameter": {"en": "Diameter", "ar": "القطر"}, - "Remarks": {"en": "Remarks", "ar": "ملاحضات"}, + "Remarks": {"en": "Remarks", "ar": "ملاحظات"}, "ActiveMedications": {"en": "Active Medications", "ar": "ادويتي النشطة"}, "ExpDate": {"en": "Active Exp Date :", "VA": "تاريخ الإنتهاء"}, "Route": {"en": "Route", "ar": "الطريقة"}, @@ -450,7 +442,7 @@ const Map localizedValues = { "AddReminder": {"en": "Add Reminder", "ar": "إضافة تذكير"}, "reminderDes": { "en": "Please select treatment start day and time to be notified when it\'s time to take the medicine", - "ar": " يرجى تحديد يوم بدء العلاج والوقت ليتم ارسال تنبيه عندما يحين الوقت لتناول الدواء" + "ar": "يرجى تحديد يوم بدء العلاج والوقت ليتم ارسال تنبيه عندما يحين الوقت لتناول الدواء" }, "pleaseSelectAllQuestionToContinue": {"en": "Please answer all questions to continue...", "ar": "يرجى الإجابة على جميع الأسئلة للمتابعة..."}, "StartDay": {"en": "Start Day", "ar": "يوم البداية"}, @@ -474,7 +466,7 @@ const Map localizedValues = { "en": "This service provides a set of home health care services, continuous and comprehensive follow-up in their places of residence for those who cannot access health facilities, such as (laboratory analyzes - radiology - vaccinations - physical therapy), etc.", "ar": - "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي)... " + "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي) ... " }, "LoginRegister": {"en": "Login/Register", "ar": "دخول / تسجيل"}, "OrderLog": {"en": "Order Log", "ar": " سجل الطلبات"}, @@ -486,17 +478,16 @@ const Map localizedValues = { "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": "خدمة الاشعة: هذه الخدمة تمكنك من الاطلاع على تقارير وصور الاشعة التي تمت في مجموعة الحبيب الطبية وكذلك ارسال التقرير عن طريق الايميل." }, - "noReviewsAvailable": {"en": "No Reviews Available", "ar": "لا يوجد تقييمات"}, "noLocationAvailable": {"en": "No Location Available", "ar": "لا يوجد موقع"}, "orders": {"en": "Orders", "ar": "الطلبات"}, - "lakum": {"en": "Lakum", "ar": "لكم"}, + "lakum": {"en": "Lakum", "ar": "برنامج لكم"}, "wishlist": {"en": "Wishlist", "ar": "المفضلة"}, "products": {"en": "Products", "ar": "المنتجات"}, "reviews": {"en": "Reviews", "ar": "التقيمات"}, "brands": {"en": "Brands", "ar": "العلامات التجارية"}, "productDetails": {"en": "Product Details", "ar": "تفاصيل المنتج"}, - // "medicationRefill": {"en": "Medication Refill", "ar": "تعبئة الأدوية"}, + "medicationRefill": {"en": "Medication Refill", "ar": "تعبئة الأدوية"}, "pillReminder": {"en": "Pill Reminder", "ar": "تذكير الأدويه"}, "shippingAddresses": {"en": "Shipping Addresses", "ar": "عناوين الشحن"}, "reachUs": {"en": "Reach Us", "ar": "الوصول لنا"}, @@ -513,7 +504,7 @@ const Map localizedValues = { "cancelled": {"en": "Cancelled", "ar": " ملغي"}, "writeReview": {"en": "Write Review", "ar": " اكتب تقييمك"}, "shareReview": {"en": "SHARE REVIEW", "ar": " اكتب تقييمك"}, - "review": {"en": " reviews", "ar": " تقييمات"}, + "review": {"en": " reviews", "ar": "تقييمات"}, "viewMedicalFile": {"en": "View Details", "ar": "عرض الملف الطبي"}, "viewAllServices": {"en": "View All Services", "ar": "عرض جميع الخدمات"}, "medicalFile": {"en": "Medical File", "ar": "ملف طبي"}, @@ -528,20 +519,19 @@ const Map localizedValues = { "HMGPharmacy": {"en": "HMG Pharmacy", "ar": "صيدلية HMG"}, "ecommerceSolution": {"en": "Ecommerce Solution", "ar": "حل التجارة الإلكترونية"}, "services2": {"en": "Services", "ar": "خدمات"}, - "comprehensive": {"en": "Comprehensive", "ar": "شامل"}, "onlineConsulting": {"en": "Online Consulting", "ar": "استشارات عبر الإنترنت"}, "pendingOrder": {"en": " PENDING", "ar": " معلقة"}, - "deliveredOrder": {"en": " DELIVERED", "ar": " تم التوصيل"}, + "deliveredOrder": {"en": " DELIVERED", "ar": "تم التوصيل"}, "processingOrder": {"en": " PROCESSING", "ar": "قيد التنفيذ"}, "cancelledOrder": {"en": " CANCELLED", "ar": "ملغي"}, "compare": {"en": " Compare", "ar": "مقارنه"}, "medicationsRefill": {"en": " Medication Refill", "ar": "طلب أعادة صرف"}, - "recommended": {"en": " Recommended For You", "ar": "موصى لك"}, + "recommended": {"en": " Recommended for You", "ar": "موصى لك"}, "myPrescription": {"en": " My Prescriptions", "ar": "وصفاتي"}, "quantity": {"en": " QTY ", "ar": "الكمية"}, "reviewAppointment": {"en": " Review Appointment ", "ar": "مراجعة الموعد"}, - "backMyAccount": {"en": "BACK TO MY ACCOUNT ", "ar": " الرجوع لحسابي الشخصي"}, + "backMyAccount": {"en": "BACK TO MY ACCOUNT ", "ar": "الرجوع لحسابي الشخصي"}, "reviewSuccessful": {"en": "Review Successful", "ar": " تقييم ناجح"}, "reviewShared": {"en": "Your review has been shared on product review section", "ar": " تمت مشاركة تقييمك في قسم تقييم المنتج"}, "reviewComment": {"en": "Your reviews help other to choose better product", "ar": " تقييمك سوف يساعد الأخرين في اختيار المنتج الأفضل"}, @@ -551,7 +541,7 @@ const Map localizedValues = { "subtotal": {"en": "Subtotal", "ar": " المجموع الفرعي"}, "shipping": {"en": "Shipping", "ar": " الشحن"}, "shipBy": {"en": "SHIP BY:", "ar": "الشحن عن طريق:"}, - "lakumPoints": {"en": "Lakum Points", "ar": "نقاط لكم"}, + "lakumPoints": {"en": "Lakum Points", "ar": "نقاط برنامج لكم"}, "use": {"en": "USE", "ar": "استخدم"}, "proceedPay": {"en": "PROCEED TO PAY", "ar": "المتابعة للدفع"}, "vat": {"en": "VAT (15%)", "ar": "(15%) القيمة المضافة"}, @@ -564,17 +554,16 @@ const Map localizedValues = { "confirmAddress": {"en": "CONFIRM ADDRESS ", "ar": " تأكيد العنوان "}, "confirmLocation": {"en": "CONFIRM LOCATION ", "ar": " تأكيد الموقع "}, "conditionsHMG": {"en": "Terms & Conditions ", "ar": "الشروط و الأحكام "}, - "conditions": {"en": "Terms & Conditions of Lakum", "ar": "شروط و احكام لكم"}, - "confirmDeleteMsg": {"en": "Are you sure! want to delete ", "ar": "هل انت متأكد تريد الحذف "}, + "conditions": {"en": "Terms & Conditions of Lakum", "ar": "شروط واحكام برنامج لكم"}, + "confirmDeleteMsg": {"en": "Are you sure! want to delete ", "ar": "هل انت متأكد من الحذف "}, "confirmDelete": {"en": "DELETE", "ar": "حذف"}, - "confirmCancellation": {"en": "Are you sure! want to cancel this order ", "ar": "هل انت متأكد تريد حذف هذا المنتج "}, + "confirmCancellation": {"en": "Are you sure! want to cancel this order ", "ar": "هل انت متأكد من حذف هذا المنتج "}, "orderNumber": {"en": "Order#: ", "ar": "الطلب: "}, "orderDate": {"en": "Date", "ar": "التاريخ:"}, "itemsNo": {"en": "items(s)", "ar": "عناصر"}, "noOrder": {"en": "You Don't have any orders.", "ar": "ليس لديك طلبات"}, - "noResult": {"en": "No Result.", "ar": "لايوجد نتئج"}, + "noResult": {"en": "No Result.", "ar": "لا يوجد نتائج"}, "nonRecommended": {"en": "No Recommended Products.", "ar": "لا يوجد منتجات"}, - "TermsService": {"en": "Terms of Service", "ar": "شروط الخدمه"}, "Beforeusing": {"en": "Before using the checkup, please read Terms of Service.", "ar": "قبل استخدام الفحص ، يرجى قراءة شروط الخدمة"}, "accept": {"en": "I read and accept Terms of Service and Privacy Policy", "ar": "قرأت ووافقت على شروط الخدمة وسياسة الخصوصية"}, @@ -587,23 +576,20 @@ const Map localizedValues = { "check-diagnosis": {"en": "Checkup is not a diagnosis.", "ar": "الفحص ليس تشخيص."}, "remeberthat": {"en": "Remember that", "ar": "تذكر ذلك:"}, "loginToUseService": {"en": "You need to login to use this service", "ar": "هذة الخدمة تتطلب تسجيل الدخول"}, - - // pharmacy module - "medicationRefill": {"en": "MEDICATION REFILL", "ar": "إعادة تعبئة الدواء"}, "offersAndPromotions": {"en": "OFFERS & SPECIAL PROMOTIONS", "ar": "العروض والترقيات الخاصة"}, "myPrescriptions": {"en": "MY PRESCRIPTIONS", "ar": "وصفاتي"}, "searchAndScanMedication": {"en": "SEARCH & SCAN FOR MEDICATION", "ar": "البحث والمسح للأدوية"}, - "shopByBrands": {"en": "Shop By Brands", "ar": "تسوق حسب الماركات"}, + "shopByBrands": {"en": "Shop by Brands", "ar": "تسوق حسب الماركات"}, "recentlyViewed": {"en": "Recently Viewed", "ar": "شوهدت مؤخرا"}, "bestSellers": {"en": "Best Seller", "ar": "الأكثر مبيعأ"}, "deleteAllItems": {"en": "Delete All Items", "ar": "حذف كافة العناصر"}, "total": {"en": "Total", "ar": "المجموع"}, - "totalWithColonRight": {"en": "Total:", "ar": ":المجموع"}, + "totalWithColonRight": {"en": "Total:", "ar": "المجموع"}, "selectAddress": {"en": "Select Address", "ar": "حدد العنوان"}, "shippingAddress": {"en": "SHIPPING ADDRESS", "ar": "عنوان الشحن"}, "changeAddress": {"en": "Change Address", "ar": "تغيير العنوان"}, - "selectPaymentOption": {"en": "Select Payment Option", "ar": "حدد خيار الدفع"}, - "changeMethod": {"en": "Change Method", "ar": "تغيير خيار الدفع"}, + "selectPaymentOption": {"en": "Select Payment Option", "ar": "حدد طريقة الدفع"}, + "changeMethod": {"en": "Change Method", "ar": "تغيير طريقة الدفع"}, "reviewOrder": {"en": "Review Order", "ar": "مراجعة الطلب"}, "active": {"en": "ACTIVE", "ar": "فعال"}, "inactive": {"en": "INACTIVE", "ar": "غير فعال"}, @@ -617,13 +603,12 @@ const Map localizedValues = { "lakumTransfer": {"en": "Lakum Transfer", "ar": "تفعيل الحساب"}, "acceptLbl": {"en": "Accept", "ar": "موافقة"}, "select-gender": {"en": "Select Gender", "ar": "اختر الجنس"}, - "please_select_gender": {"en": "Please select gender", "ar": "يرجى تحديد الجنس"}, "i-am-a": {"en": "I am a ...", "ar": "أنا ..."}, "select-age": {"en": "Select Your Age", "ar": "حدد العمر"}, "i-am": {"en": "I am", "ar": "أنا"}, "years-old": {"en": "years old", "ar": "سنة"}, "drag-point": {"en": "Drag point to change your age", "ar": "اسحب لتغيير عمرك"}, - "refine": {"en": "Refine", "ar": "refine"}, + "refine": {"en": "Refine", "ar": "تصفية"}, "reset": {"en": "Reset", "ar": "اعادة تعيين"}, "apply": {"en": "Apply", "ar": "تطبيق"}, "viewCategorise": {"en": "View All Categories", "ar": "عرض جميع الفئات"}, @@ -631,13 +616,13 @@ const Map localizedValues = { "wishList": {"en": "WishList", "ar": "المفضلة"}, "myAccount": {"en": "My Account", "ar": "حسابي"}, "cart": {"en": "Cart", "ar": "التسوق"}, - "Alhabibapp": {"en": "Al habib app", "ar": "تطبيق الحبيب"}, + "Alhabibapp": {"en": "Al Habib app", "ar": "تطبيق الحبيب"}, "searchProductHere": {"en": "Search Product here", "ar": "البحث عن منتج"}, "HHCNotAuthMsg": { "en": "This service provides a set of home health care services, continuous and comprehensive follow-up in their places of residence for those who cannot access health facilities, such as (laboratory analyzes - radiology - vaccinations - physical therapy), etc.", "ar": - "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي)..." + "توفر هذه الخدمة مجموعه من خدمات الرعايه الصحيه المنزلية و متابعه مستمره وشامله للذين لا يستطيعون الوصول للمنشات الصحيه في اماكن اقامتهم (التحاليل المخبرية – الاشعة – التطعيمات – العلاج الطبيعي) ..." }, "email": {"en": "Email", "ar": "البريد الالكتروني"}, "Book": {"en": "Book", "ar": "احجز"}, @@ -649,7 +634,6 @@ const Map localizedValues = { "notifications": {"en": "Notifications", "ar": "إشعارات"}, "notificationDetails": {"en": "Notification Details", "ar": "تفاصيل الاشعار"}, "notificationDetailsa": {"en": "Notification Details", "ar": "تفاصيل الاشعار"}, - "info-my-doctor-points": { "en": [ "View the doctor's profile and qualifications.", @@ -687,12 +671,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": "خدمة بطاقات التامين: هذه الخدمة تمكنك من الاطلاع على جميع بطاقات التامين والتي تم تسجيلها اثناء زياراتك لمجموعة الحبيب الطبية بالاضافة الى:" }, - "info-insurance-cards-points": { "en": [ "Name of the insurance company.", @@ -711,14 +693,11 @@ const Map localizedValues = { "تفاصيل التامين، مثلاً: مستوى الغرفة التي يغطيها التامين وكذلك الحالات التي يغطيها التامين.", ] }, - "info-allergies": { "en": "This service allows you to view all types of allergies recorded during your visits to Al Habib Medical Group.", "ar": "خدمة الحساسية: هذه الخدمة تمكنك من الاطلاع على جميع انواع الحساسية التي تم تسجيلها خلال زياراتك في مجموعة الحبيب الطبية." }, - "sick-leaves": {"en": "Sick Leaves", "ar": "الاجازات المرضية"}, - "info-sick-leaves": { "en": "This service allows you to view all sick leaves that were taken in Al Habib Medical Group in addition to:", "ar": "الاجازات المرضية: هذه الخدمة تمكنك من الاطلاع على جميع الاجازات المرضية والتي تم اصدارها في مجموعة الحبيب الطبية بالاضافة الى:" @@ -733,12 +712,10 @@ const Map localizedValues = { ], "ar": ["اسم الطبيب", "تاريخ الاجازة.", "عدد ايام الاجازة.", "الفرع الذي تم اصدار الاجازة منه.", "ارسال نسخة مختومة من الاجازة الى البريد الالكتروني."] }, - "info-approvals": { "en": "This service allows you to view all approvals requests that have been sent to the insurance companies in addition to:", "ar": "خدمة الموافقات: هذه الخدمة تمكنك من الاطلاع على جميع طلبات الموافقات والتي تم ارسالها الى شركات التامين بالاضافة الى:" }, - "info-approval-points": { "en": [ "View the total unused approvals.", @@ -749,7 +726,6 @@ const Map localizedValues = { "تتبع حالة الموافقة.", ] }, - "month-report": {"en": "Monthly Reports", "ar": "تقاريري الشهرية"}, "info-month-report": { "en": @@ -758,8 +734,8 @@ const Map localizedValues = { }, "language-setting": {"en": "SMS and Confirmation Calls Language", "ar": "لغة الرسائل القصيرة و الاتصال الآلي"}, "alert": {"en": "Alerts", "ar": "التنبيهات"}, - "email-alert": {"en": "Alert By Email", "ar": "استلام التنبيهات بالبريد الالكتروني"}, - "sms-alert": {"en": "Alert By SMS", "ar": "استلام التنبيهات بالرسائل القصيرة"}, + "email-alert": {"en": "Alert by Email", "ar": "استلام التنبيهات بالبريد الالكتروني"}, + "sms-alert": {"en": "Alert by SMS", "ar": "استلام التنبيهات بالرسائل القصيرة"}, "contact-info": {"en": "Contact Information", "ar": "معلومات التواصل"}, "emrg-name": {"en": "Emergency Contact Name", "ar": "اسم للتواصل في حالة الطوارئ"}, "emrg-no": {"en": "Emergency Contact Number", "ar": "رقم للتواصل في حالة الطوارئ"}, @@ -773,7 +749,6 @@ const Map localizedValues = { "permissions": {"en": "Permission", "ar": "الصلاحيات"}, "camera-permission": {"en": "Camera", "ar": "الكاميرا"}, "location-permission": {"en": "Location", "ar": "تحديد المواقع"}, - "accessibility": {"en": "Accessibility Mode", "ar": "وضع امكانية الوصول"}, "orderStatus": {"en": "Order Status", "ar": "حالة الطلب"}, "CancelOrder": {"en": "Cancel Order", "ar": "الغاء الطلب"}, @@ -783,12 +758,12 @@ const Map localizedValues = { "Service": {"en": "Service", "ar": "خدمة"}, "HMGServiceLabel": {"en": "HMG Service", 'ar': 'خدمات الحبيب'}, "HealthWeatherIndicators": {"en": "Health Weather Indicators", 'ar': ' مؤشرات الطقس الصحية '}, - "HealthTipsBasedOnCurrentWeather": {"en": "Health Tips Based On Current Weather", 'ar': ' نصائح صحية على أساس الطقس الحالي '}, + "HealthTipsBasedOnCurrentWeather": {"en": "Health Tips Based On Current Weather", 'ar': ' نصائح صحية بناءاً على الطقس الحالي '}, "MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "}, "SendCopy": {"en": "Send Copy", "ar": "ارسال نسخة"}, "ResendOrder": {"en": "Refill Order & Delivery", "ar": "إعادة طلب و توصيل"}, "Ports": {"en": "Ports", "ar": "المنافذ"}, - "Way": {"en": "Way", "ar": "الطزيقة"}, + "Way": {"en": "Way", "ar": "الطريقة"}, "Average": {"en": "Average", "ar": "المعدل"}, "DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"}, "Period": {"en": "Period", "ar": "الفترة"}, @@ -809,7 +784,7 @@ const Map localizedValues = { "status": {"en": "Status", "ar": "الحالة"}, "like-to-hear": { "en": "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form", - "ar": "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة" + "ar": "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة" }, "subject": {"en": "Subject", "ar": "الموضوع"}, "message": {"en": "Message", "ar": "رسالة"}, @@ -821,36 +796,35 @@ const Map localizedValues = { "question": {"en": "Question", "ar": "سؤال"}, "message-type": {"en": "Message Type", "ar": "نوع الرسالة"}, "feedback-type": {"en": "Feedback Type", "ar": "نوع الرسالة"}, - "compliment": {"en": "compliment", "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": "يرجى تحديد الجزء الذي تشكو منه"}, "number": {"en": "Number", "ar": "الرقم"}, "not-classified": {"en": "Not classified", "ar": "غير محدد"}, "selectClinic": {"en": "Select Clinic", "ar": " بحث بالعيادة"}, - "searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون اسم العنصر أكثر من 3 أحرف"}, + "searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون الاسم المدخل أكثر من 3 أحرف"}, "YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "}, - "ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "}, + "ItemInSearch": {"en": " Item in Search", "ar": " عنصر في البحث "}, "blood-donation": {"en": "Blood Donation", "ar": "التبرع بالدم"}, "blood-donation-info": { "en": "Through this service, you can register your name as a blood donor where the blood bank in the Habib Medical Group will communicate you in case of need for blood type.", - "ar": "عن طريق هذه الخدمة تستطيع تسجيل اسمك كمتبرع بالدم حيث سيتم التواصل معك عن طريق بنك الدم في مجموعة الحبيب الطبية في حال الحاجة الى فصيلة الدم ." + "ar": "عن طريق هذه الخدمة تستطيع تسجيل اسمك كمتبرع بالدم حيث سيتم التواصل معك عن طريق بنك الدم في مجموعة الحبيب الطبية في حال الحاجة الى فصيلة الدم." }, - "blood-instruction": {"en": "Enter the required information, In order to register for Blood Donation Service", "ar": "ادخل المعلومات المطلوبة للتسجيل بخدمة التبرع بالدم"}, + "blood-instruction": {"en": "Enter the required information, in order to register for Blood Donation Service", "ar": "ادخل المعلومات المطلوبة للتسجيل بخدمة التبرع بالدم"}, "view-terms": {"en": "To view the terms and conditions", "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", + "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"}, - "offerAndPackages": {"en": "Offers And Packages", "ar": "العروض والباقات"}, + "offerAndPackages": {"en": "Offers and Packages", "ar": "العروض والباقات"}, "InvoiceNo": {"en": "Invoice No", "ar": "رقم الفاتورة"}, "InvoiceDate": {"en": "Invoice Date", "ar": "تاريخ الفاتورة"}, "SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"}, "GeneralResult": {"en": "General Result", "ar": "نتيجة عامة"}, "show-more-btn": {"en": "Flow Chart", "ar": "النتائج التراكمية"}, "view_flow_chart": {"en": "View Flowchart", "ar": "النتائج التراكمية"}, - "value": {"en": "Value", "ar": "القيمة"}, "range": {"en": "Range", "ar": "المدى"}, "out-patient": {"en": "Out Patient", "ar": "عيادات خارجية"}, @@ -870,7 +844,7 @@ const Map localizedValues = { "info-signs": { "en": "This service allows you to view all vital signs were performed in the Habib Medical Group, e.x (height, weight, body mass index, heart rate, etc.) as well shows some statistics charts.", "ar": - "خدمة المؤشرات الحيوية: هذه الخدمة تمكنك من الاطلاع على جميع المؤشرات الحيوية على سبيل المثال (الطول، الوزن، مؤشر كتلة الجسم، معدل نبضات القلب الخ..) التي تمت في مجموعة الحبيب الطبية وكذلك رسوم بيانية على مستوى المؤشر." + "خدمة المؤشرات الحيوية: هذه الخدمة تمكنك من الاطلاع على جميع المؤشرات الحيوية على سبيل المثال (الطول، الوزن، مؤشر كتلة الجسم، معدل نبضات القلب الخ.) التي تمت في مجموعة الحبيب الطبية وكذلك رسوم بيانية على مستوى المؤشر." }, "info-advance-payment": { "en": "This service designed so that you can deposit an amount in advance either in your account or in someone else's account with Al Habib Medical Group.", @@ -897,10 +871,10 @@ const Map localizedValues = { "pickup-location": {"en": "Pickup Location", "ar": "نقطة الانطلاق"}, "pickup-spot": {"en": "Pickup Spot", "ar": "نقطة اللقاء"}, "inside-home": {"en": "Inside Home", "ar": "داخل المنزل"}, - "have-appo": {"en": "Do you have an appointment ?", "ar": "هل لديك موعد ؟"}, + "have-appo": {"en": "Do you have an appointment?", "ar": "هل لديك موعد ؟"}, "dropoff-location": {"en": "Dropoff Location", "ar": "نقطة الوصول"}, "select-all": {"en": "Please select all fields", "ar": "يرجى تحديد جميع الحقول"}, - "select-map": {"en": "Select From Map", "ar": "حدد من الخريطة"}, + "select-map": {"en": "Select from Map", "ar": "حدد من الخريطة"}, "no-appointment": {"en": "You don't have any appointments yet", "ar": "ليس لديك أي مواعيد حتى الآن"}, "patient-share": {"en": "Amount before tax: ", "ar": "المبلغ قبل الضريبة:"}, "patient-share-tax": {"en": "Tax amount: ", "ar": "قيمة الضريبة:"}, @@ -912,17 +886,17 @@ const Map localizedValues = { "none": {"en": "None", "ar": "لا شيء"}, "RRT-Summary": {"en": "Summary", "ar": "ملخص الطلب"}, "Rapid-Response-Team": {"en": "Rapid Response Team", "ar": "فريق الاستجابة السريع"}, - "AmountBeforeTax": {"en": "Amount Before Tax:", "ar": "Amount Before Tax:"}, + "AmountBeforeTax": {"en": "Amount Before Tax:", "ar": "المبلغ قبل الضريبة:"}, "ApproximateServiceFee": {"en": "Service fee starting from", "ar": "تبدأ رسوم الخدمة من"}, - "TaxAmount": {"en": "Tax Amount:", "ar": "Tax Amount:"}, - "somethingWentWrongTryLater": {"en": "Sorry something went wrong please try again later", "ar": "نعتذر لخدمتكم يرجى المحاولة لاحقا"}, - "TotalAmountPayable": {"en": "Total Amount Payable:", "ar": "Total Amount Payable:"}, - "iAcceptTermsConditions": {"en": "I Accept the Terms And Conditions", "ar": "أوافق على الشروط والأحكام"}, + "TaxAmount": {"en": "Tax Amount:", "ar": "مبلغ الضريبة:"}, + "somethingWentWrongTryLater": {"en": "Sorry something went wrong please try again later", "ar": "نعتذر عن خدمتك يرجى المحاولة لاحقا"}, + "TotalAmountPayable": {"en": "Total Amount Payable:", "ar": " إجمالي المبلغ المستحق:"}, + "iAcceptTermsConditions": {"en": "I Accept the Terms and Conditions", "ar": "أوافق على الشروط والأحكام"}, "YouCanPayByTheFollowingOptions": {"en": "You can pay by the following Options:", "ar": "يمكنك الدفع عن طريق الخيارات التالية:"}, "RRTDDetails": { "en": "The RRT service provides medical service for urgent and stable cases, not life-threatening situations or extremities, and the service includes providing medical care from a complete medical team at home.", - "ar": "توفر خدمة فريق الاستجابة السريع RRT خدمه طبيه للحالات المستعجله والمستقره وليست الحالات المهدده للحياه او الاطراف ، وتشمل الخدمه تقديم رعايه طبيه من فريق طبي متكامل بالمنزل." + "ar": "توفر خدمة فريق الاستجابة السريع RRT خدمه طبيه للحالات المستعجله والمستقره وليست الحالات المهدده للحياه او الاطراف ، وتشمل الخدمه تقديم رعايه طبيه من فريق طبي متكامل بالمنزل." }, "rrtService": {"en": "RRT Service", "ar": "خدمة RRT"}, "bill-amount": {"en": "Bill Amount", "ar": "مبلغ الفاتورة"}, @@ -943,7 +917,6 @@ const Map localizedValues = { "update-succ": {"en": "Successfully updated profile", "ar": "تم تحديث البيانات بنجاح"}, "dental-complains": {"en": "Symptoms", "ar": "الأعراض"}, "empty-result": {"en": "There is no search results found", "ar": "لايوجد نتائج"}, - "no-booked-appointment": {"en": "No booked appointments", "ar": "لا يوجد مواعيد محجوزة"}, "no-confirmed-appointment": {"en": "No confirmed appointments", "ar": "لا توجد مواعيد مؤكدة"}, "no-arrived-appointment": {"en": "No arrived appointments", "ar": "لا يوجد مواعيد"}, @@ -962,16 +935,14 @@ const Map localizedValues = { "blood-d": {"en": "Blood Donation", "ar": "تبرع بالدم"}, "symptomCheckerTitle": {"en": "Symptom Checker", "ar": "مدقق الأعراض"}, "latest-news": {"en": "Latest News", "ar": "أحدث الأخبار"}, - "our-location": {"en": "Our Locations", "ar": "موقعنا"}, + "our-location": {"en": "Our Locations", "ar": "مواقعنا"}, "pharmacies": {"en": "Pharmacies", "ar": "الصيدليات"}, "hospitals": {"en": "Hospitals", "ar": "المستشفيات"}, "wallet": {"en": "Wallet", "ar": "محفظة نقود"}, "hmg": {"en": "Al Habib", "ar": "الحبيب"}, - "requested": {"en": "Requested", "ar": "مطلوب"}, "ready": {"en": "Ready", "ar": "جاهز"}, "completed": {"en": "Completed", "ar": "مكتمل"}, - "request-medical-report": {"en": "Request medical report", "ar": "طلب تقرير طبي"}, "insur-cards": {"en": "Insurance Cards", "ar": "بطاقات التأمين"}, 'labResult': {"en": "Lab results", "ar": "نتائج التحاليل المخبرية"}, @@ -1018,14 +989,14 @@ const Map localizedValues = { "camera": {"en": "Camera", "ar": "كاميرا"}, "med-report": {"en": "Medical Reports", "ar": "التقارير الطبية"}, "new-med-report": {"en": "Requests", "ar": "الطلبات"}, - "requestReport": {"en": "Request a report", "ar": " طلب تقرير"}, + "requestReport": {"en": "Request a report", "ar": "طلب تقرير"}, "confirm-msg-report": {"en": "Request for medical report?", "ar": "طلب تقرير طبي؟"}, "successSendReport": {"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": "رقم سياسات"}, + "policy-no": {"en": "Policy Number", "ar": "رقم السياسة"}, "agree": {"en": "I agree, this is the correct information", "ar": "موافق، هذه المعلومات صحيحة"}, "disagree": {"en": "No, this is not the correct information", "ar": "غير موافق، هذه المعلومات غير الصحيحة"}, "expiry-date": {"en": "Expiry Date", "ar": "تاريخ انتهاء الصلاحية"}, @@ -1048,12 +1019,9 @@ const Map localizedValues = { "scan-now": {"en": "If you have a card/Document Scan now", "ar": "إذا كانت لديك بطاقة / مستند ارفقها الان"}, "liveCare": {"en": "Live Care", "ar": "لايف كير"}, "topBrands": {"en": "Top Brands", "ar": "اعلى العلامات التجارية"}, - "notifyMe": {"en": "notify me", "ar": "اعلمني"}, "specification": {"en": "Specification", "ar": "تخصيص"}, - - "availability": {"en": "Availability", "ar": "التوفر"}, - + "availability": {"en": "Availability", "ar": "متوفر في"}, "vaccination": {"en": "Vaccination", "ar": "جدول التطعيمات"}, "welcomeBack": {"en": "Welcome back", "ar": "مرحبا مرة أخرى"}, "quantitySize": {"en": "Quantity", "ar": "كميه"}, @@ -1063,16 +1031,13 @@ const Map localizedValues = { "no_data": {"en": "No data", "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", "ar": " أوافق على شروط الخدمة وألتزم بها دون قيد أو شرط"}, + "pharmacyServiceTermsCondition": {"en": "I agree with the terms of service and I adhere to them unconditionally", "ar": " موافق على شروط الخدمة وألتزم بها دون قيد أو شرط"}, "Year": {"en": "YEAR", "ar": "السنة"}, - "years": {"en": "Years", "ar": "السنة"}, "Month": {"en": "MONTH", "ar": "الشهر"}, "point": {"en": "POINT", "ar": "النقاط"}, "riyal": {"en": "RIYAL", "ar": "الريال"}, "termOfService": {"en": "Terms of service", "ar": "شروط الخدمة"}, "shoppingCart": {"en": "Shopping Cart", "ar": "عربة التسوق"}, - "add-child": {"en": "Add New Child", "ar": "اضافة طفل"}, "child-name": {"en": "Child Name", "ar": "اسم الطفل"}, "childDob": {"en": "Birth Date", "ar": "تاريخ الولادة"}, @@ -1083,21 +1048,20 @@ const Map localizedValues = { "referralDate": {"en": "Referral Date", "ar": "تاريخ الإحالة"}, "patientName": {"en": "Patient Name", "ar": "اسم المريض"}, "referralNumber": {"en": "Referral Number", "ar": "رقم الإحالة"}, - "referralDetails": {"en": "Referral Details", "ar": "تفاصيل الإحالة"}, "requestID": {"en": "Req ID", "ar": " رقم الطلب"}, "OrderStatus": {"en": "Status", "ar": "الحاله"}, "pickupDate": {"en": "Pickup Date", "ar": "التاريخ"}, "serviceName": {"en": "Service Name", "ar": " اسم الخدمة"}, "orderLocation": {"en": "Location", "ar": "الموقع"}, "selectService": {"en": "Select Service", "ar": "حدد الخدمة"}, - "coveredService": {"en": "Covered Service : ", "ar": " الخدمات المغطاة : "}, - "selectedService": {"en": "Selected Service : ", "ar": " الخدمات المختارة : "}, - "cancelOrderMsg": {"en": "Are you sure!! want to cancel this order", "ar": "هل أنت واثق!! تريد إلغاء هذا الطلب"}, + "coveredService": {"en": "Covered Services: ", "ar": " الخدمات المغطاة: "}, + "selectedService": {"en": "Selected Services: ", "ar": " الخدمات المختارة: "}, + "cancelOrderMsg": {"en": "Are you sure!! want to cancel this order", "ar": "هل ترغب في إلغاء هذا الطلب"}, "processDoneSuccessfully": {"en": "Process Done Successfully", "ar": "تمت العملية بنجاح"}, "selectHomeHealthCareServices": {"en": "Select Home Health Care Services", "ar": " حدد خدمات الرعاية الصحية المنزلية"}, "description-vaccination": {"en": "Description", "ar": "وصف"}, "due-date": {"en": "Due date", "ar": "تاريخ الاستحقاق"}, - "valid-email": {"en": "Please enter valid email", "ar": "الرجاء إدخال عنوان بريد صحيح"}, + "valid-email": {"en": "Please enter valid email", "ar": "الرجاء إدخال بريد الكتروني صحيح"}, "confirm-send": {"en": "Send the child's schedule to the email?", "ar": "ارسال جدول التطعيمات الى بريدك الالكتروني؟"}, "email-success": {"en": " The request was successful. You will receive the Schedule in moments.", "ar": "تم ارسال جدول التطعيمات "}, "add-instructions": {"en": "Add the child's information below to recieve the schedule of vaccinations.", "ar": "أضف معلومات الطفل لاستلام جدول التطعيمات"}, @@ -1107,22 +1071,18 @@ const Map localizedValues = { "en": "The referral request has been submitted successfully, you will be contacted ASAP to complete the process. Referral request no is ", "ar": " تم إرسال طلب الإحالة بنجاح ، وسيتم الاتصال بك في أسرع وقت ممكن لإكمال العملية. رقم طلب الإحالة" }, - "help": {"en": "Help", "ar": "مساعدة"}, - "habibRobotText": { - "en": "Hi, This is HABIB, your personal assistant. I'm here to assist you by voice commands. How can I help?", + "en": "Hi, this is HABIB, your personal assistant. I'm here to assist you by voice commands. How can I help?", "ar": "مرحباً ، معك حبيب مساعدك الشخصي. أنا هنا لمساعدتك بالأوامر الصوتية." }, "updated-email": {"en": "Updated email successfully", "ar": "تم تحديث البريد الالكتروني"}, - "view-list-children": {"en": "View List of Children", "ar": "عرض قائمة الأطفال"}, "covidTest": {"en": "COVID-19 TEST", "ar": "فحص كورونا"}, "driveThru": {"en": "Drive-Thru", "ar": "من السيارة"}, - "trackDeliveryDriver": {"en": "Track Delivery Driver", "ar": "trackDeliveryDriver"}, - + "trackDeliveryDriver": {"en": "Track Delivery Driver", "ar": "تتبع السائق"}, "NearestErDesc": { - "en": "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location", + "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": "اقرب طوارئ"}, @@ -1139,31 +1099,26 @@ const Map localizedValues = { "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- الفحص من خلال القيادة"}, + "covid19_driveThrueTest": {"en": "'Covid-19- Drive-Thru Test'", "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": "يرجى التأكد من أن عنوان البريد الإلكتروني محدث وأن العملية لعرض الجدول الزمني" + "en": " Please ensure that the email address is up-to-date and proceed to view the schedule.", + "ar": " يرجى التأكد من تحديث عنوان البريد الإلكتروني والمتابعة لعرض الجدول" }, "add-new-child": {"en": "ADD NEW CHILD", "ar": "إضافة طفل جديد"}, - - "send-child-email-msg": {"en": "Send the child's schedule to the email", "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": "تمت إضافة الطفل بنجاح"}, "bloodSugar": {"en": "Blood", "ar": "السكر في الدم"}, - "sugar": {"en": "Sugar", "ar": ""}, + "sugar": {"en": "Sugar", "ar": "السكر"}, "bloodCholesterol": {"en": "Blood", "ar": " الكولسترول في الدم"}, - - "cholesterol": {"en": "Cholesterol", "ar": ""}, + "cholesterol": {"en": "Cholesterol", "ar": " الكولسترول"}, "triglycerides": {"en": "Triglycerides", "ar": "الدهون الثلاثية"}, - - "fatInBlood": {"en": "Fat In Blood", "ar": ""}, - "convertFrom": {"en": "Convert From", "ar": "تحويل من"}, - "calculate": {"en": "calculate", "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": "النتيجة"}, "sort": {"en": "Sort", "ar": "فرز"}, @@ -1190,16 +1145,14 @@ const Map localizedValues = { "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": "أدخل المعلومات المطلوبة ، للتسجيل في خدمة التبرع بالدم"}, + "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": "موعد اتصال فيديو"}, - "generalHealth": {"en": "General Health", "ar": "صحة عامة"}, "womanHealth": {"en": "Women's Health", "ar": "صحة المرأة"}, "bmi": {"en": "BMI", "ar": "الكتلة"}, - "bloodType": {"en": "Blood Type:", "ar": ":فصيلة الدم"}, + "bloodType": {"en": "Blood Type:", "ar": "فصيلة الدم"}, "calc-health": {"en": "Calculators", "ar": "الصحية"}, "calories": {"en": "Calories", "ar": "سعرات"}, "bmr": {"en": "BMR", "ar": "معدل الأيض القاعدي"}, @@ -1211,17 +1164,17 @@ const Map localizedValues = { "ovulation": {"en": "Ovulation", "ar": "الإباضة"}, "delivery": {"en": "Delivery", "ar": "الولادة"}, "bmiCalcDesc": { - "en": "'Calculate the BMI value and weight\n status to identify the healthy weight .\n Not appropriate for children and women\n who are pregnant or breastfeeding'", + "en": "'Calculate the BMI value and weight\n status to identify the healthy weight.\n Not appropriate for children and women\n who are pregnant or breastfeeding'", "ar": "حساب قيمة مؤشر كتلة الجسم وحالة الوزن لتحديد الوزن الصحي. \n وغير مناسب للأطفال والنساء الحوامل أو المرضعات" }, "selectUnit": {"en": "Select Unit", "ar": "اختر الوحدة"}, "feet": {"en": "Feet", "ar": "قدم"}, "pound": {"en": "Pound", "ar": "رطل"}, - "seeListOfDoctor": {"en": "See List Of Doctors", "ar": "انظر قائمة الأطباء"}, + "seeListOfDoctor": {"en": "See List of Doctors", "ar": "انظر قائمة الأطباء"}, "obese": {"en": "Obese", "ar": "سمين"}, "overWeight": {"en": "OverWeight", "ar": "وزن زائد"}, "healthy": {"en": "Healthy", "ar": "صحي"}, - "underWeight": {"en": "UnderWeight", "ar": "نقص الوزن"}, + "underWeight": {"en": "UnderWeight", "ar": "وزن ناقص"}, "bmiCalcMsgObese": { "en": "A BMI of over 30 indicates that are heavily overweight. Health may be at risk if not lose weight. Recommended talking to a doctor or a dietician for advice. To book an appointment, click below to get started.", @@ -1245,7 +1198,7 @@ const Map localizedValues = { "ar": "يشير مؤشر كتلة الجسم الذي يقل عن 18.5 إلى أنك تعاني من نقص الوزن ، لذلك قد تحتاج إلى زيادة الوزن. يوصى بالتحدث إلى الطبيب أو أخصائي التغذية للحصول على المشورة. لحجز موعد ، انقر أدناه للبدء." }, - "bariatrics": {"en": "Bariatrics", "ar": "طب السمنة"}, + "bariatrics": {"en": "Bariatrics", "ar": " أمراض السمنة"}, "bariatricsHeaderMsg": { "en": "Choose one of the following symptoms to show the right doctors or choose a consultation to show all", "ar": "اختر أحد الأعراض التالية لتظهر للأطباء المناسبين أو اختر استشارة لإظهار الكل" @@ -1256,7 +1209,7 @@ const Map localizedValues = { "en": "Calculates daily calorie intake based on several factors, like height, weight, age, gender and daily physical activity ", "ar": "يحسب السعرات الحرارية اليومية بناءً على عدة عوامل ، مثل الطول والوزن والعمر والجنس والنشاط البدني اليومي" }, - "age11_120_years": {"en": "The Age ( 11 - 120 ) yrs", "ar": "العمر (11 - 120) سنة"}, + "age11_120_years": {"en": "The Age (11 - 120) yrs", "ar": "العمر (11 - 120) سنة"}, "weight-add": {"en": "Enter Weight Value", "ar": "أدخل الوزن "}, "systolic-add": {"en": "Enter Systolic Value", "ar": "أدخل قيمة الإنقباض "}, "diastolic-add": {"en": "Enter Diastolic Value", "ar": "أدخل قيمة الإنبساط "}, @@ -1276,7 +1229,7 @@ const Map localizedValues = { "WaterCalculate": {"en": "Save", "ar": "حفظ"}, "notif-title": {"en": "Water Reminder", "ar": "تذكير"}, "notif-text": {"en": " Don't forget to drink water.", "ar": "لا تنسى شرب الماء"}, - "custom": {"en": "Custom", "ar": "خاص"}, + "custom": {"en": "Custom", "ar": "مخصص"}, "undo": {"en": "Undo", "ar": "تراجع"}, "drinking": {"en": "Drinkning", "ar": "الشرب"}, "remaining": {"en": "Remaining", "ar": "المتبقي"}, @@ -1293,7 +1246,7 @@ const Map localizedValues = { "notif-permission-title": {"en": "Could not set the water reminders", "ar": "لا يمكن ضبط اشعار شرب الماء"}, "notif-permission-msg": {"en": "To recieve water reminders, please turn on notifications in the system settings", "ar": "الرجاء تفعيل الاشعارات في الاعدادات"}, "verification_message_code": {"en": "Please enter verification code", "ar": "الرجاء إدخال رمز التحقق"}, - "select-location": {"en": "Select Location", "ar": "اختر موقعا"}, + "select-location": {"en": "Select Location", "ar": "اختر الموقع"}, "result-header": {"en": "Get the result in Few Hours", "ar": "احصل على النتيجة خلال عدة ساعات"}, "covid-info": { "en": @@ -1301,7 +1254,7 @@ const Map localizedValues = { "ar": "تجري مستشفيات د. سليمان الحبيب فحص فيروس كورونا المستجد وتصدر شهادات السفر على مدار الساعة، طوال أيام الأسبوع، وبسرعة ودقة عالية. يمكن للراغبين في الاستفادة من هذه الخدمة زيارة أحد فروع مستشفيات د. سليمان الحبيب وإجراء فحص كورونا خلال بضع دقائق والحصول على النتائج خلال عدة ساعات خدمة فحص فيروس كورونا Covid 19 بتقنية PCR للكشف عن الفيروس وفقاً لأعلى المعايير العالمية وبأحدث أجهزة RT-PCR عالية الدقة (GeneXpert الأمريكي وغيره)، وهي طرق معتمدة من قبل هيئة الغذاء والدواء وكذلك من قبل المركز السعودي للوقاية من الأمراض المُعدية" }, - "select-appo": {"en": "Kindly select one of the available appointments from below:", "ar": "يرجى اختيار أحد المواعيد المتاحة من أدناه:"}, + "select-appo": {"en": "Kindly select one of the available appointments from below:", "ar": " يرجى اختيار أحد المواعيد المتاحة مما يلي:"}, "covid-alert-header": {"en": "Pay With-in 15 mins to confirm the appointment", "ar": "الرجاء اتمام عملية الدفع خلال 15 دقيقه لتاكيد الموعد"}, "covid-alert-info": { "en": "Payment for Covid-19 Test should Be made with-in 15 mins otherwise The system will Cancel the Scheduled appointment automatically​", @@ -1311,7 +1264,7 @@ const Map localizedValues = { "back": {"en": "Back", "ar": "رجوع"}, "get-directions": {"en": "Get Directions", "ar": "احصل على الاتجاهات"}, "selected-location": {"en": "Selected Location:", "ar": "الموقع المحدد:"}, - "test-fee": {"en": "Test Fee", "ar": "رسوم الاختبار"}, + "test-fee": {"en": "Test Fee", "ar": "الرسوم"}, "pay-options": {"en": "You can pay by the following Options:", "ar": "يمكنك الدفع عن طريق الخيارات التالية:"}, "livecare-service": {"en": "LiveCare Service", "ar": "خدمة لايف كير"}, "livecare-service-desc": {"en": "is to obtain medical advice with a specialist doctor Via a video call", "ar": "هي الحصول على استشارة طبية مع طبيب مختص عن طريق اتصال فيديو"}, @@ -1320,7 +1273,7 @@ const Map localizedValues = { "doc-virtual-appo-ins4": {"en": "The doctor will see your medical file", "ar": "سوف يتمكن الطبيب من الاطلاع على ملفك الطبي كامل"}, "doc-virtual-appo-ins5": {"en": "Free prescription delivery service", "ar": "خدمة توصيل الادوية مجانا"}, "livecare-summary": { - "en": "** The service is included with some insurance companies according to the terms and conditions With our best wishes for health and wellness", + "en": "** The service is included with some insurance companies according to the terms and conditions with our best wishes for health and wellness", "ar": "** الخدمة مشمولة لدى بعض شركات التامين على حسب الشروط والاحكام مع تمنياتنا لكم بدوام الصحة والعافية" }, "livecare-option-1": {"en": "Get Medical consultation immediately", "ar": "الحصول على الاستشارة فورا"}, @@ -1335,30 +1288,28 @@ const Map localizedValues = { "preferredunit": {"en": "Select the preferred unit", "ar": "اختر الوحدة المفضلة"}, "select-unit": {"en": "Select unit", "ar": "اختر وحدة القياس"}, "try-saying": {"en": "Try saying something", "ar": 'حاول قول شيء ما'}, - "app-update": {"en": "UPDATE THE APP", "ar": "تحديث التطبيق"}, "covid-alert": {"en": "Alert", "ar": "تنبيه"}, "enterIdentificationNumber": {"en": "Enter Identification Number", "ar": "أدخل رقم التعريف"}, "accountActivationDesc": { - "en": "This service allows you to activate your LAKUM account after registering through the Vida system.", - "ar": "تتيح لك هذه الخدمة تفعيل حساب LAKUM الخاص بك بعد التسجيل من خلال نظام Vida." + "en": " This service allows you to activate your LAKUM account after registering completed.", + "ar": " تتيح لك هذه الخدمة تفعيل حساب برنامج الولاء لكم بعد اكتمال التسجيل. " }, - "pointsToTransfer": {"en": "Point's to Transfer :", "ar": "النقاط المراد تحويلها:"}, + "pointsToTransfer": {"en": "Point's to Transfer:", "ar": "النقاط المراد تحويلها:"}, "enterBeneficiaryAccountNo": {"en": "Enter Beneficiary Account No.", "ar": "أدخل رقم حساب المستفيد"}, "confirm-prescription": {"en": "Are you sure !! you want to send this request", "ar": "تاكيد ارسال الطلب؟"}, "you-already-have-order": {"en": "You already have this order! do you want to view it?", "ar": "لديك هذا الطلب بالفعل! هل تريد مشاهدته؟"}, "order-overview": {"en": "Order Overview", "ar": "ملخص الطلب"}, "shipping-address": {"en": "Delivery Address", "ar": "عنوان التوصيل"}, - "pharmacy-relogin": {"en": "Your session has timed out, Please try again", "ar": "انتهت مهلة جلسة الخاص بها. يرجى المحاولة مرة أخرى"}, + "pharmacy-relogin": {"en": "Your session has timed out, please try again", "ar": "انتهت مهلة جلسة الخاص بها. يرجى المحاولة مرة أخرى"}, "ancillary-orders": {"en": "Ancillary Orders", "ar": "الأوامر التبعية"}, - "onlineCheckInAgreement": { "en": - "The online check-in is for non-life threatening situationCall the red crescent (number) or go to the nearest emergency department if there are:signs of stroke or heart attack history of seizure or syncope there is limb or life threatening injury picture of severe injuries​", + "The online check-in is for non-life threatening situationCall the red crescent (number) or go to the nearest emergency department if there are: signs of stroke or heart attack history of seizure or syncope there is limb or life threatening injury picture of severe injuries​", "ar": - "تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات  التي لا تهدد الحياة يجب الاتصل بالهلال الأحمر (رقم) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة" + "تسجيل الذهاب الى الطوارئ عبر الإنترنت هو فقط للحالات التي لا تهدد الحياة يجب الاتصل بالهلال الأحمر (رقم) أو الذهاب إلى أقرب قسم طوارئ إذا كان هناك علامات السكتة الدماغية أو النوبة القلبية او هناك نوبة تشنج او حالة فقدان الوعي او وجود إصابة تهدد أحد الأطراف او تهدد الحياة او وجود إصابات خطيرة" }, - "MRN": {"en": "MRN", "ar": "ایم آر این"}, + "MRN": {"en": "MRN", "ar": "رقم الملف الطبي"}, "appointment-date": {"en": "Appointment Date", "ar": "تاريخ الموعد"}, "appointment-no": {"en": "Appointment No", "ar": "رقم الموعد"}, "insurance-id": {"en": "Insurance ID", "ar": "رقم العضويه"}, @@ -1375,23 +1326,21 @@ const Map localizedValues = { "selectRelationship": {"en": "Select Relationship", "ar": "حدد العلاقة"}, "requesterRelationship": {"en": "Requester Relationship", "ar": "علاقة الطالب"}, "newReferral": {"en": "New Referral", "ar": "إحالة جديدة"}, - "searchForReferrals": {"en": "Search For Referrals", "ar": "ابحث عن الإحالات"}, + "searchForReferrals": {"en": "Search for Referrals", "ar": "ابحث عن الإحالات"}, "covid-select-procedure": {"en": "Please select the procedure:", "ar": "الرجاء تحديد الإجراء:"}, "online-consultation": {"en": "Online Consultation", "ar": "استشارة مباشرة"}, "expected-weiting": {"en": "Waiting time to start LiveCare consultation ", "ar": "وقت الانتظار المتوقع لبدء استشارة لايف كير"}, "er-consult-fee": {"en": "Consultation Fee", "ar": "رسوم الاستشارة"}, "insured-patient": {"en": "If you're Insurance patient, you have only have to pay the co-payment", "ar": "إذا كنت مريضًا في مجال التأمين ، فليس عليك سوى دفع المبلغ المشترك"}, - "i-accept-terms": {"en": "I Accept the Terms And Conditions", "ar": "أوافق على الشروط والأحكام"}, + "i-accept-terms": {"en": "I Accept the Terms and Conditions", "ar": "موافق على الشروط والأحكام"}, "upcoming-pay-options": {"en": "You can pay by the following Options:", "ar": "يمكنك الدفع عن طريق الخيارات التالية:"}, - "please-accept-terms": {"en": "Please accept terms & conditions to continue", "ar": "يرجى قبول الشروط والأحكام للمتابعة"}, - "type": {"en": "Type", "ar": "اكتب"}, "info-ereferral": { "en": - "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)", + "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)", "ar": - "تتيح لك هذه الخدمة إرسال طلب إحالة من أي من مقدمي الرعاية الصحية سواء داخل المملكة العربية السعودية أو خارجها إلى أي من مستشفيات HMG ، عن طريق ملء بعض بيانات المريض وإرفاق التقارير الطبية ، علاوة على ذلك يمكنك تتبع حالة الطلب ( قيد المعالجة ، مقبول أو مرفوض)" + "تتيح لك هذه الخدمة إرسال طلب إحالة من أي من مقدمي الرعاية الصحية سواء داخل المملكة العربية السعودية أو خارجها إلى أي من مستشفيات HMG ، عن طريق ملء بعض بيانات المريض وإرفاق التقارير الطبية ، علاوة على ذلك يمكنك تتبع حالة الطلب (قيد المعالجة ، مقبول أو مرفوض)" }, "er-consultation": { "en": "This service allows you to make an online virtual consultation via video call directly with the doctor from anywhere at any time.", @@ -1400,16 +1349,16 @@ const Map localizedValues = { "my-invoice": {"en": "My Invoice", "ar": "فواتيري"}, "invoice-list": {"en": "Invoices List", "ar": "فائمة الفواتير"}, "thisItemIsNotAvailable": {"en": "This item is not available", "ar": "هذا العنصر غير متوفر"}, - "beforeAfterImages": {"en": "Before After Images", "ar": "قبل بعد الصور"}, + "beforeAfterImages": {"en": "Before & After Images", "ar": "الصور قبل وبعد"}, "clinic-accept-livecare": { "en": "No need to wait or visit You can now get medical consultation via Video call (LiveCare service) in The name of the clinic clinic and the doctor will contact you immediately", - "ar": "لا داعي للانتظار او الحضور يمكنك الان الحصول على الاستشارة عن طريق مكالمة الفيديو ( خدمة لايف كير) في العيادة وسوف يقوم الطبيب بالتواصل معك فورا" + "ar": "لا داعي للانتظار او الحضور يمكنك الان الحصول على الاستشارة عن طريق مكالمة الفيديو (خدمة لايف كير) في العيادة وسوف يقوم الطبيب بالتواصل معك فورا" }, "livecareModal-top": {"en": "This Clinic is Accepting livecare services", "ar": "هذه العيادة تقدم خدمة لايف كير"}, "schedule": {"en": "Schedule", "ar": "جدول الحضور"}, "livecare-point-2": {"en": "A Specialized doctor will contact you", "ar": "سوف يقوم بخدمتك طبيب متخصص"}, "livecare-point-3": {"en": "A Doctor will be able to see your full medical file history", "ar": "سوف يتمكن الطبيب من الاطلاع على ملفك الطبي كاملا"}, - "livecare-point-4": {"en": "Free Medicine delivery Available", "ar": "خدمة توصيل الادوية مجانا"}, + "livecare-point-4": {"en": "Free Medicine Delivery Available", "ar": "خدمة توصيل الادوية مجانية"}, "livecare-point-5": {"en": "No need to visit the service is in your place", "ar": "لا داعي للحضور سوف تحصل على الخدمة في مكانك"}, "book-immediate-livecare": {"en": "I accept to get the service immediately", "ar": "موافق اريد الحصول على الخدمة فورا"}, "book-video-livecare-2": {"en": "I don't need to visit the clinic", "ar": "اتصال فيديو لا احتاج الحضور الى العيادة"}, @@ -1419,7 +1368,7 @@ const Map localizedValues = { "is-report-outside-ksa": {"en": "Is the certificate needed for outside KSA?", "ar": "هل الشهادة مطلوبة من خارج المملكة؟"}, "passport-number": {"en": "Passport Number", "ar": "رقم جواز السفر"}, "enter-passport-number": {"en": "Please confirm or update your passport number:", "ar": "الرجاء تأكيد أو تحديث رقم جواز السفر الخاص بك:"}, - "valid-passport-number": {"en": "Please enter valid passport number", "ar": "الرجاء إدخال رقم جواز سفر صالح"}, + "valid-passport-number": {"en": "Please enter valid passport number", "ar": "الرجاء إدخال رقم جواز سفر صحيح"}, "continue-plan": {"en": "Continue with the treatment plan?", "ar": "إكمال الخطة العلاجية؟"}, "about-app": {"en": "About the app", "ar": "عن التطبيق"}, "about-points": { @@ -1482,7 +1431,6 @@ const Map localizedValues = { "ar": "تم تصميم هذه الخدمة لمساعدتك في تحديد وتتبع كميات المياه التي يتوجب شربها بشكل يومي. كما توفر هذه الخدمة تذكيرات الجدول الزمني وتقدم تحليلًا إحصائيًا لمقدار ما استهلكته خلال اليوم أو الأسبوع أو الشهر." }, - "sys/dias": {"en": "SBP/DBP", "ar": "إنقباض/إنبساط"}, "arm": {"en": "Arm", "ar": "الذراع"}, "remove-measure": {"en": "Remove this measure", "ar": "إزالة هذا القياس؟"}, @@ -1496,10 +1444,10 @@ const Map localizedValues = { "paid": {"en": "Paid", "ar": "المدفوع"}, "dental-insurance": {"en": "Insurance", "ar": "التأمين"}, "drivethru-appo": {"en": "Drive Thru Appointment", "ar": "موعد من داخل السيارة"}, - "upcoming-QR-NFC": {"en": "Use the NFC or QR Code to Check-In", "ar": "استخدم NFC أو رمزQR لتسجيل الوصول"}, + "upcoming-QR-NFC": {"en": "Use the NFC or QR Code to Check-In", "ar": "استخدم NFC أو رمزQR لتسجيل الوصول"}, "ovulation-desc": {"en": "Calculates Ovulation Period", "ar": "حساب افضل فترة للحمل بناءاً على تاريخ اخر دورة شهرية"}, - "cycle-label": {"en": "Average Cycle Length (usually 28 days):", "ar": "متوسط الدورة الشهرية 28 يوم : "}, - "luteal-label": {"en": "Average Luteal Phase Length (usually 14 days):", "ar": "متوسط الأيام ما بعد الاباضة عادة 14 يوما : "}, + "cycle-label": {"en": "Average Cycle Length (usually 28 days):", "ar": "متوسط الدورة الشهرية 28 يوم: "}, + "luteal-label": {"en": "Average Luteal Phase Length (usually 14 days):", "ar": "متوسط الأيام ما بعد الاباضة عادة 14 يوما: "}, "pregnancy-title": {"en": "Delivery Due Date", "ar": "تاريخ الولادة"}, "pregnancy-desc": { "en": "Congratulations, you are pregnant! Now when will the new baby arrive? To estimate the due date, enter the date when the last menstrual period began (the first day), then click calculate.", @@ -1513,16 +1461,16 @@ const Map localizedValues = { "firstTri": {"en": "First Trimester Ends (12 weeks):", "ar": "تاريخ انتهاء الثلث الأول 12 اسبوع: "}, "secondTri": {"en": "Second Trimester Ends (27 weeks):", "ar": "تاريخ انتهاء الثلث الثاني 27 اسبوع: "}, "thirdTri": {"en": "Third Trimester, Estimated Due Date (40 weeks):", "ar": "تاريخ احتمال الولادة 40 اسبوع:"}, - "seeDoctorsList": {"en": "See List Of Doctors", "ar": "اعرض قائمة الأطباء"}, + "seeDoctorsList": {"en": "See List of Doctors", "ar": "اعرض قائمة الأطباء"}, "covidQuestionnaire": {"en": "Please answer below questionnaire:", "ar": "الرجاء الإجابة على الاستبيان أدناه:"}, - "covidBookAppo": {"en": "Booking Appointment For: ", "ar": "موعد الحجز لـ: "}, + "covidBookAppo": {"en": "Booking Appointment for: ", "ar": "موعد الحجز لـ: "}, "emptySchedule": {"en": "Doctor has no schedule.", "ar": "لا يوجد جدول حضور مسجل للطبيب"}, "serviceNotAvailable": {"en": "Dear, this service is not available now, please try again later", "ar": "عزيزي المراجع, هذه الخدمة غير متوفرة الان يرجى المحاوله لاحقا"}, "doctorScheduleNot": {"en": "Doctor schedule not available", "ar": "جدول الطبيب غير متوفر"}, - "RRTRequestSuccess": {"en": "Request has been sent successfully, You will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن"}, - "rateDoctorAppo": {"en": "Rate DR & Appointment", "ar": "معدل الدكتور والتعيين"}, + "RRTRequestSuccess": {"en": "Request has been sent successfully, you will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن"}, + "rateDoctorAppo": {"en": "Rate DR & Appointment", "ar": "تقييم الطبيب والموعد"}, "invoice": {"en": "Invoice", "ar": "الفاتورة"}, - "requestedDate": {"en": "Requested Date", "ar": "التاريخ "}, + "requestedDate": {"en": "Reqeusted Date", "ar": "التاريخ "}, "callDuration": {"en": "Call Duration", "ar": "مدة الاتصال"}, "alreadyRated": {"en": "This appointment has been previously evaluated.", "ar": "تم تقييم هذا الموعد مسبقاً"}, "insuranceCompany": {"en": "Insurance Company", "ar": "شركة تأمين"}, @@ -1534,4 +1482,6 @@ const Map localizedValues = { "insuredPatient": {"en": "Insured Patient", "ar": "هل لدى المريض تامين؟"}, "rateDoctor": {"en": "Rate Doctor", "ar": "تقييم الطبيب"}, "rateAppointment": {"en": "Rate Appointment", "ar": "سعر التعيين"}, + "noInsuranceCardAttached": {"en": "Please attach your insurance card image to continue", "ar": "يرجى إرفاق صورة بطاقة التأمين الخاصة بك للمتابعة"}, + "bodyMassIndex": {"en": "Body Mass Index is: ", "ar": "مؤشر كتلة الجسم هو:"}, }; diff --git a/lib/core/model/contactus/get_patientI_cprojects.dart b/lib/core/model/contactus/get_patientI_cprojects.dart index e9a6b712..556affd2 100644 --- a/lib/core/model/contactus/get_patientI_cprojects.dart +++ b/lib/core/model/contactus/get_patientI_cprojects.dart @@ -11,6 +11,7 @@ class GetPatientICProjectsModel { dynamic editedOn; dynamic editedBy; bool isActive; + dynamic distanceInKilometers; GetPatientICProjectsModel( {this.id, @@ -22,6 +23,7 @@ class GetPatientICProjectsModel { this.createdBy, this.editedOn, this.editedBy, + this.distanceInKilometers, this.isActive}); GetPatientICProjectsModel.fromJson(Map json) { @@ -35,6 +37,7 @@ class GetPatientICProjectsModel { editedOn = json['EditedOn']; editedBy = json['EditedBy']; isActive = json['IsActive']; + distanceInKilometers = json['DistanceInKilometers']; } Map toJson() { @@ -49,6 +52,7 @@ class GetPatientICProjectsModel { data['EditedOn'] = this.editedOn; data['EditedBy'] = this.editedBy; data['IsActive'] = this.isActive; + data['DistanceInKilometers'] = this.distanceInKilometers; return data; } } \ No newline at end of file diff --git a/lib/core/model/prescriptions/perscription_pharmacy.dart b/lib/core/model/prescriptions/perscription_pharmacy.dart index 3adaef7e..9c9bec08 100644 --- a/lib/core/model/prescriptions/perscription_pharmacy.dart +++ b/lib/core/model/prescriptions/perscription_pharmacy.dart @@ -7,7 +7,7 @@ class PharmacyPrescriptions { int projectID; String setupID; String locationDescription; - Null locationDescriptionN; + dynamic locationDescriptionN; String itemDescription; Null itemDescriptionN; String alias; @@ -16,7 +16,7 @@ class PharmacyPrescriptions { Null companybarcode; int cityID; String cityName; - int distanceInKilometers; + dynamic distanceInKilometers; String latitude; int locationType; String longitude; diff --git a/lib/core/model/prescriptions/request_get_list_pharmacy_for_prescriptions.dart b/lib/core/model/prescriptions/request_get_list_pharmacy_for_prescriptions.dart index 739bb838..4b099f5b 100644 --- a/lib/core/model/prescriptions/request_get_list_pharmacy_for_prescriptions.dart +++ b/lib/core/model/prescriptions/request_get_list_pharmacy_for_prescriptions.dart @@ -1,6 +1,6 @@ class RequestGetListPharmacyForPrescriptions { - int latitude; - int longitude; + dynamic latitude; + dynamic longitude; double versionID; int channel; int languageID; diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart index cf75eca9..5c1361ab 100644 --- a/lib/core/service/client/base_app_client.dart +++ b/lib/core/service/client/base_app_client.dart @@ -569,7 +569,7 @@ class BaseAppClient { var model = Provider.of(AppGlobal.context, listen: false); _vitalSignService.weightKg = ""; _vitalSignService.heightCm = ""; - model.setState(0, false); + model.setState(0, false, null); Navigator.of(AppGlobal.context).pushReplacementNamed(HOME); } diff --git a/lib/core/service/contactus/livechat_service.dart b/lib/core/service/contactus/livechat_service.dart index ba4cc8b2..0029e1e9 100644 --- a/lib/core/service/contactus/livechat_service.dart +++ b/lib/core/service/contactus/livechat_service.dart @@ -1,4 +1,5 @@ import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/contactus/get_patientI_cprojects.dart'; import '../base_service.dart'; @@ -12,6 +13,9 @@ class LiveChatService extends BaseService { Future getAllLiveChatOrders() async { hasError = false; body['List_PatientICProjects'] = false; + body['Latitude'] = await this.sharedPref.getDouble(USER_LAT); + body['Longitude'] = await this.sharedPref.getDouble(USER_LONG); + await baseAppClient.post(GET_LIVECHAT_REQUEST, onSuccess: (dynamic response, int statusCode) { LivechatModelList.clear(); diff --git a/lib/core/service/feedback/feedback_service.dart b/lib/core/service/feedback/feedback_service.dart index b36ebee3..d6da1ee3 100644 --- a/lib/core/service/feedback/feedback_service.dart +++ b/lib/core/service/feedback/feedback_service.dart @@ -41,10 +41,13 @@ class FeedbackService extends BaseService { _requestInsertCOCItem.deviceInfo = Platform.localHostname; _requestInsertCOCItem.resolution = "400x847"; _requestInsertCOCItem.projectID = 0; + _requestInsertCOCItem.tokenID = "C0c@@dm!n?T&A&A@Barcha202029582948"; _requestInsertCOCItem.identificationNo = int.parse(user.patientIdentificationNo); if (BASE_URL.contains('uat')) { _requestInsertCOCItem.forDemo = true; + } else { + _requestInsertCOCItem.forDemo = false; } final Map body = _requestInsertCOCItem.toJson(); diff --git a/lib/core/service/medical/BloodSugarService.dart b/lib/core/service/medical/BloodSugarService.dart index 84b932e8..9c8e9cd9 100644 --- a/lib/core/service/medical/BloodSugarService.dart +++ b/lib/core/service/medical/BloodSugarService.dart @@ -18,15 +18,14 @@ class BloodSugarService extends BaseService { Future getBloodSugar() async { hasError = false; Map body = Map(); + monthDiabtectResultAverageList.clear(); + weekDiabtectResultAverageList.clear(); + yearDiabtecResultAverageList.clear(); + monthDiabtecPatientResult.clear(); + weekDiabtecPatientResult.clear(); + yearDiabtecPatientResult.clear(); body['isDentalAllowedBackend'] = false; await baseAppClient.post(GET_DIABETIC_RESULT_AVERAGE, onSuccess: (dynamic response, int statusCode) { - monthDiabtectResultAverageList.clear(); - weekDiabtectResultAverageList.clear(); - yearDiabtecResultAverageList.clear(); - - monthDiabtecPatientResult.clear(); - weekDiabtecPatientResult.clear(); - yearDiabtecPatientResult.clear(); response['List_MonthDiabtectResultAverage'].forEach((item) { monthDiabtectResultAverageList.add(MonthDiabtectResultAverage.fromJson(item)); @@ -47,10 +46,10 @@ class BloodSugarService extends BaseService { Future getDiabtecResults() async { hasError = false; + monthDiabtecPatientResult.clear(); + weekDiabtecPatientResult.clear(); + yearDiabtecPatientResult.clear(); await baseAppClient.post(GET_DIABTEC_RESULT, onSuccess: (dynamic response, int statusCode) { - monthDiabtecPatientResult.clear(); - weekDiabtecPatientResult.clear(); - yearDiabtecPatientResult.clear(); response['List_MonthDiabtecPatientResult'].forEach((item) { monthDiabtecPatientResult.add(DiabtecPatientResult.fromJson(item)); diff --git a/lib/core/service/medical/prescriptions_service.dart b/lib/core/service/medical/prescriptions_service.dart index cdd355c3..ce91be53 100644 --- a/lib/core/service/medical/prescriptions_service.dart +++ b/lib/core/service/medical/prescriptions_service.dart @@ -1,4 +1,5 @@ import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; @@ -119,6 +120,13 @@ class PrescriptionsService extends BaseService { Future getListPharmacyForPrescriptions({int itemId}) async { hasError = false; requestGetListPharmacyForPrescriptions.itemID = itemId; + + requestGetListPharmacyForPrescriptions.latitude = await sharedPref.getDouble(USER_LAT); + requestGetListPharmacyForPrescriptions.longitude = await sharedPref.getDouble(USER_LONG); + + // requestGetListPharmacyForPrescriptions.latitude = 24.709863; + // requestGetListPharmacyForPrescriptions.longitude = 46.668348; + pharmacyPrescriptionsList.clear(); await baseAppClient.post(GET_PHARMACY_LIST, onSuccess: (dynamic response, int statusCode) { pharmacyPrescriptionsList.clear(); diff --git a/lib/core/service/parmacyModule/parmacy_module_service.dart b/lib/core/service/parmacyModule/parmacy_module_service.dart index 0a87000d..9cca6ac9 100644 --- a/lib/core/service/parmacyModule/parmacy_module_service.dart +++ b/lib/core/service/parmacyModule/parmacy_module_service.dart @@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/Manufacturer.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyImageObject.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/PharmacyProduct.dart'; +import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart'; import 'package:diplomaticquarterapp/core/service/base_service.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; @@ -12,6 +13,7 @@ class PharmacyModuleService extends BaseService { bool isFinished = true; String errorMsg = ''; String url = ""; + CustomerInfo customerInfo; List bannerItems = List(); List manufacturerList = List(); @@ -51,8 +53,12 @@ class PharmacyModuleService extends BaseService { hasError = false; try { await baseAppClient.getPharmacy(PHARMACY_CREATE_CUSTOMER, onSuccess: (dynamic response, int statusCode) async { - if (!response['IsRegistered']) {} - await generatePharmacyToken(); + if (!response['IsRegistered']) { + + } else { + customerInfo = CustomerInfo.fromJson(response); + } + // await generatePharmacyToken(); }, onFailure: (String error, int statusCode) { hasError = true; super.error = error; diff --git a/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart index 47e6815e..d7d9f1c2 100644 --- a/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart +++ b/lib/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart @@ -113,8 +113,8 @@ class HomeHealthCareViewModel extends BaseViewModel { // await _customerAddressesService.getCustomerInfo(); setState(ViewState.ErrorLocal); } else { - // await _pharmacyModuleService.createUser(); - await _customerAddressesService.getCustomerInfo(); + await _pharmacyModuleService.createUser(); + // await _customerAddressesService.getCustomerInfo(); await getCustomerAddresses(); } } diff --git a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart index 455b5934..0b6d7a1d 100644 --- a/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart +++ b/lib/core/viewModels/medical/PrescriptionDeliveryViewModel.dart @@ -20,6 +20,7 @@ class PrescriptionDeliveryViewModel extends BaseViewModel { Future getCustomerInfo() async { setState(ViewState.Busy); await _pharmacyModuleService.generatePharmacyToken().then((value) async { + // await _customerAddressesService.getCustomerInfo(); await _customerAddressesService.getCustomerInfo(); }); if (_customerAddressesService.hasError) { diff --git a/lib/core/viewModels/medical/ask_doctor_view_model.dart b/lib/core/viewModels/medical/ask_doctor_view_model.dart index 7890fb3a..d060db1f 100644 --- a/lib/core/viewModels/medical/ask_doctor_view_model.dart +++ b/lib/core/viewModels/medical/ask_doctor_view_model.dart @@ -39,7 +39,7 @@ class AskDoctorViewModel extends BaseViewModel { }); } else { setState(ViewState.Idle); - AppToast.showErrorToast(message: TranslationBase.of(AppGlobal.context).askDocEmpty); + // AppToast.showErrorToast(message: TranslationBase.of(AppGlobal.context).askDocEmpty); } } diff --git a/lib/core/viewModels/notifications_view_model.dart b/lib/core/viewModels/notifications_view_model.dart index 685b4a7f..80e89edb 100644 --- a/lib/core/viewModels/notifications_view_model.dart +++ b/lib/core/viewModels/notifications_view_model.dart @@ -1,39 +1,48 @@ +import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/notifications/get_notifications_request_model.dart'; import 'package:diplomaticquarterapp/core/model/notifications/get_notifications_response_model.dart'; import 'package:diplomaticquarterapp/core/model/notifications/mark_message_as_read_request_model.dart'; import 'package:diplomaticquarterapp/core/service/notifications_service.dart'; +import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; +import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import '../../locator.dart'; import 'base_view_model.dart'; class NotificationViewModel extends BaseViewModel { NotificationService _notificationService = locator(); + ToDoCountProviderModel model = Provider.of(AppGlobal.context); - List get notifications => - _notificationService.notificationsList; + List get notifications => _notificationService.notificationsList; - Future getNotifications( - GetNotificationsRequestModel getNotificationsRequestModel, BuildContext context) async { - if(getNotificationsRequestModel.currentPage == 0) - setState(ViewState.Busy); + Future getNotifications(GetNotificationsRequestModel getNotificationsRequestModel, BuildContext context) async { + if (getNotificationsRequestModel.currentPage == 0) setState(ViewState.Busy); - await _notificationService - .getAllNotifications(getNotificationsRequestModel); + await _notificationService.getAllNotifications(getNotificationsRequestModel); if (_notificationService.hasError) { error = _notificationService.error; - setState(ViewState.Error); + setState(ViewState.Error); } else { - setState(ViewState.Idle); + setState(ViewState.Idle); } } Future markAsRead(id) async { // setState(ViewState.Busy); - MarkMessageAsReadRequestModel markMessageAsReadRequestModel = - new MarkMessageAsReadRequestModel(notificationPoolID: id); + MarkMessageAsReadRequestModel markMessageAsReadRequestModel = new MarkMessageAsReadRequestModel(notificationPoolID: id); + final authService = new AuthProvider(); await _notificationService.markAsRead(markMessageAsReadRequestModel); - setState(ViewState.Idle); + await authService.getDashboard().then((value) { + var notificationCount = ''; + notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); + model.setState(model.count, true, notificationCount); + sharedPref.setString(NOTIFICATION_COUNT, notificationCount); + + }); + setState(ViewState.Idle); } -} \ No newline at end of file +} diff --git a/lib/models/Appointments/toDoCountProviderModel.dart b/lib/models/Appointments/toDoCountProviderModel.dart index e44a0ebb..3363471f 100644 --- a/lib/models/Appointments/toDoCountProviderModel.dart +++ b/lib/models/Appointments/toDoCountProviderModel.dart @@ -2,15 +2,19 @@ import 'package:flutter/cupertino.dart'; class ToDoCountProviderModel with ChangeNotifier { int _count; + String _notificationsCount; bool _isShowBadge = false; int get count => _count == null ? 0 : _count; + String get notificationsCount => _notificationsCount == null ? "0" : _notificationsCount; + bool get isShowBadge => _isShowBadge; - void setState(int count, bool isShowBadge) { + void setState(int count, bool isShowBadge, String notifCount) { _count = count; _isShowBadge = isShowBadge; + _notificationsCount = notifCount; notifyListeners(); } -} +} \ No newline at end of file diff --git a/lib/pages/BookAppointment/BookConfirm.dart b/lib/pages/BookAppointment/BookConfirm.dart index 4a47dee1..2b49043e 100644 --- a/lib/pages/BookAppointment/BookConfirm.dart +++ b/lib/pages/BookAppointment/BookConfirm.dart @@ -346,12 +346,12 @@ class _BookConfirmState extends State { } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/BookAppointment/DoctorProfile.dart b/lib/pages/BookAppointment/DoctorProfile.dart index 5e35d06a..99afbd7f 100644 --- a/lib/pages/BookAppointment/DoctorProfile.dart +++ b/lib/pages/BookAppointment/DoctorProfile.dart @@ -146,7 +146,7 @@ class _DoctorProfileState extends State with TickerProviderStateM onTap: (index) { setState(() { if (index == 1) { - if (widget.doctor.clinicID == 17 || widget.doctor.clinicID == 23 || widget.isLiveCareAppointment) { + if (widget.doctor.clinicID == 17 || widget.doctor.clinicID == 23 || widget.doctor.clinicID == 47 || widget.isLiveCareAppointment) { _tabController.index = _tabController.previousIndex; showFooterButton = false; } else { diff --git a/lib/pages/BookAppointment/widgets/DoctorView.dart b/lib/pages/BookAppointment/widgets/DoctorView.dart index f0a59fe5..a73759b1 100644 --- a/lib/pages/BookAppointment/widgets/DoctorView.dart +++ b/lib/pages/BookAppointment/widgets/DoctorView.dart @@ -99,7 +99,7 @@ class DoctorView extends StatelessWidget { filledIcon: Icons.star, emptyIcon: Icons.star_border, ), - Icon( + if (isShowFlag) Icon( Icons.arrow_forward, color: Theme.of(context).primaryColor, ), diff --git a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart index 4a7bbec9..ceab7e45 100644 --- a/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/hospitalsLivechat_page.dart @@ -45,7 +45,6 @@ class _HospitalsLiveChatPageState extends State { children: [ Text( TranslationBase.of(context).instructions, - textAlign: TextAlign.center, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), ), SizedBox(height: 20), @@ -87,7 +86,7 @@ class _HospitalsLiveChatPageState extends State { children: [ Expanded( child: Text( - model.LiveChatModelList[index]?.projectName ?? "", + model.LiveChatModelList[index].projectName.toString() + "\n" + model.LiveChatModelList[index].distanceInKilometers.toString() + " " + TranslationBase.of(context).km_ ?? "", style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: tappedIndex == index ? Colors.white : Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), ), ), diff --git a/lib/pages/ContactUs/LiveChat/livechat_page.dart b/lib/pages/ContactUs/LiveChat/livechat_page.dart index d2b24e89..fb9c0b0b 100644 --- a/lib/pages/ContactUs/LiveChat/livechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/livechat_page.dart @@ -45,7 +45,7 @@ class _LiveChatPageState extends State with SingleTickerProviderSt imagesInfo: imagesInfo, title: TranslationBase.of(context).liveChat, description: TranslationBase.of(context).infoChat, - appBarTitle: TranslationBase.of(context).service, + appBarTitle: TranslationBase.of(context).liveChat, showNewAppBar: true, showNewAppBarTitle: true, backgroundColor: CustomColors.appBackgroudGrey2Color, diff --git a/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart b/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart index f8926eed..2d99054e 100644 --- a/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart +++ b/lib/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart @@ -32,7 +32,6 @@ class PharmaciesLiveChatPage extends StatelessWidget { SizedBox(height: 20), Text( TranslationBase.of(context).instructions, - textAlign: TextAlign.center, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), ), ], @@ -44,14 +43,13 @@ class PharmaciesLiveChatPage extends StatelessWidget { padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), child: DefaultButton( TranslationBase.of(context).start, - () { - String chat; - chat = - "http://chat.dshmg.com:7788/EPharmacyChat/EIndex.aspx?CustomerID=undefined&Name=${model.user.firstName}&MobileNo=${model.user.mobileNumber}&Language=${projectViewModel.isArabic ? 1 : 2}"; - launch(chat); - }, - color: Color(0xffD02127), - textColor: Colors.white, + null, + // () { + // String chat; + // chat = + // "http://chat.dshmg.com:7788/EPharmacyChat/EIndex.aspx?CustomerID=undefined&Name=${model.user.firstName}&MobileNo=${model.user.mobileNumber}&Language=${projectViewModel.isArabic ? 1 : 2}"; + // launch(chat); + // }, disabledColor: Color(0xffEAEAEA), ), ), diff --git a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart index 5cdfd9d9..b49a18c6 100644 --- a/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart +++ b/lib/pages/Covid-DriveThru/Covid-TimeSlots.dart @@ -485,12 +485,12 @@ class _CovidTimeSlotsState extends State with TickerProviderStat } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart index b7c6f68d..6becfeb8 100644 --- a/lib/pages/DrawerPages/family/my-family.dart +++ b/lib/pages/DrawerPages/family/my-family.dart @@ -1,5 +1,6 @@ import 'dart:ui'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; @@ -7,19 +8,23 @@ import 'package:diplomaticquarterapp/core/service/medical/vital_sign_service.dar import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/pharmacy_module_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; +import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; import 'package:diplomaticquarterapp/locator.dart'; +import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart'; import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart' as list; import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart'; -import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart'; import 'package:diplomaticquarterapp/pages/landing/landing_page.dart'; import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart'; +import 'package:diplomaticquarterapp/routes.dart'; +import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; -import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; +import 'package:diplomaticquarterapp/uitl/utils_new.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/card/rounded_container.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart'; @@ -28,16 +33,13 @@ import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; -import 'package:diplomaticquarterapp/routes.dart'; import 'package:provider/provider.dart'; -import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart'; -import 'package:diplomaticquarterapp/uitl/utils_new.dart'; -import 'package:diplomaticquarterapp/extensions/string_extensions.dart'; class MyFamily extends StatefulWidget { final bool isAppbarVisible; + MyFamily({this.isAppbarVisible = true}); + @override _MyFamily createState() => _MyFamily(); } @@ -58,6 +60,7 @@ class _MyFamily extends State with TickerProviderStateMixin { ToDoCountProviderModel toDoProvider; var isVaiable = false; bool isSwitchUser = false; + @override void initState() { _tabController = new TabController(length: 2, vsync: this, initialIndex: 0); @@ -105,46 +108,64 @@ class _MyFamily extends State with TickerProviderStateMixin { // ), // ), // ), + // Center( + // child: Container( + // height: 60.0, + // // margin: EdgeInsets.only(top: 10.0), + // width: MediaQuery.of(context).size.width * 0.92, // 0.9, + // decoration: BoxDecoration( + // border: Border( + // bottom: BorderSide(color: Theme.of(context).dividerColor, width: 0.9), //width: 0.7 + // ), + // color: Colors.white), Center( - child: Container( - height: 60.0, - margin: EdgeInsets.only(top: 10.0), - width: MediaQuery.of(context).size.width * 0.92, // 0.9, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide(color: Theme.of(context).dividerColor, width: 0.9), //width: 0.7 - ), - color: Colors.white), - child: Center( - child: TabBar( - isScrollable: true, - controller: _tabController, - indicatorWeight: 5.0, - //indicatorSize: TabBarIndicatorSize.label, - indicatorSize: TabBarIndicatorSize.tab, - - // indicatorColor: Theme.of(context).primaryColor, - // labelColor: Theme.of(context).primaryColor, - labelPadding: EdgeInsets.only(top: 4.0, left: 35.0, right: 35.0), - unselectedLabelColor: Colors.grey[800], - tabs: [ - Container( - width: MediaQuery.of(context).size.width * 0.30, - child: Center( - child: AppText(TranslationBase.of(context).family), - ), - ), - Container( - width: MediaQuery.of(context).size.width * 0.30, - child: Center( - child: AppText(TranslationBase.of(context).request), - ), - ), - ], - ), + child: + // TabBar( + // isScrollable: true, + // controller: _tabController, + // indicatorWeight: 5.0, + // indicatorSize: TabBarIndicatorSize.tab, + // labelPadding: EdgeInsets.only(top: 4.0, left: 35.0, right: 35.0), + // unselectedLabelColor: Colors.grey[800], + // tabs: [ + // Container( + // width: MediaQuery.of(context).size.width * 0.30, + // child: Center( + // child: AppText(TranslationBase.of(context).family), + // ), + // ), + // Container( + // width: MediaQuery.of(context).size.width * 0.30, + // child: Center( + // child: AppText(TranslationBase.of(context).request), + // ), + // ), + // ], + // ), + TabBar( + controller: _tabController, + indicatorWeight: 3.0, + indicatorSize: TabBarIndicatorSize.tab, + labelColor: Color(0xff2B353E), + unselectedLabelColor: Color(0xff575757), + labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20), + labelStyle: TextStyle( + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + fontSize: 16, + fontWeight: FontWeight.w600, + letterSpacing: -0.48, + ), + unselectedLabelStyle: TextStyle( + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + fontSize: 16, + fontWeight: FontWeight.w600, + letterSpacing: -0.48, ), + tabs: [Text(TranslationBase.of(context).family), Text(TranslationBase.of(context).request)], ), ), + // ), + // ), ], ), ), @@ -162,15 +183,14 @@ class _MyFamily extends State with TickerProviderStateMixin { ], ), bottomSheet: Container( - width: MediaQuery.of(context).size.width, - height: 70.0, - margin: EdgeInsets.only(left: 15.0, right: 15.0, top: 10.0), - child: Button( - onTap: () async { + color: Theme.of(context).scaffoldBackgroundColor, + width: double.infinity, + padding: EdgeInsets.all(14), + child: DefaultButton( + TranslationBase.of(context).addFamilyMember, + () async { Navigator.of(context).pushNamed(ADD_FAMILY_MEMBER_TYPE); }, - label: TranslationBase.of(context).addFamilyMember, - backgroundColor: Colors.red[900], ), ), ), @@ -671,12 +691,12 @@ class _MyFamily extends State with TickerProviderStateMixin { } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1 && res['AppointmentActiveNumber'] != null) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/DrawerPages/notifications/notification_details_page.dart b/lib/pages/DrawerPages/notifications/notification_details_page.dart index 12ed0bc4..ee1398be 100644 --- a/lib/pages/DrawerPages/notifications/notification_details_page.dart +++ b/lib/pages/DrawerPages/notifications/notification_details_page.dart @@ -50,13 +50,12 @@ class NotificationsDetailsPage extends StatelessWidget { height: 25, ), Container( - // margin: EdgeInsets.only(left: 30), width: double.infinity, color: Colors.grey[400], child: Padding( padding: const EdgeInsets.all(8.0), child: Texts( - getDateForm(notification.createdOn), + DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) + " " + DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false), fontSize: 16, ), ), diff --git a/lib/pages/DrawerPages/notifications/notifications_page.dart b/lib/pages/DrawerPages/notifications/notifications_page.dart index 6f19c8af..aba2fb13 100644 --- a/lib/pages/DrawerPages/notifications/notifications_page.dart +++ b/lib/pages/DrawerPages/notifications/notifications_page.dart @@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/model/notifications/get_notifications_ import 'package:diplomaticquarterapp/core/viewModels/notifications_view_model.dart'; import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notification_details_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/theme/colors.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'; @@ -60,8 +61,9 @@ class NotificationsPage extends StatelessWidget { .map( (notification) => InkWell( onTap: () async { - if (!notification.isRead) + if (!notification.isRead) { model.markAsRead(notification.id); + } Navigator.push( context, FadePage( @@ -82,7 +84,7 @@ class NotificationsPage extends StatelessWidget { border: Border.all( color: notification.isRead ? Colors.grey[200] - : Theme.of(context).primaryColor, + : CustomColors.accentColor, width: 0.5), ), child: Row( @@ -93,7 +95,7 @@ class NotificationsPage extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Texts(getDateForm(notification.createdOn)), + Texts(DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(notification.createdOn)) + " " + DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(notification.createdOn), false)), SizedBox( height: 5, ), diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index 1fbda90c..095ad884 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -87,7 +87,7 @@ class _ErOptionsState extends State { ), InkWell( onTap: () { - Navigator.push(context, FadePage(page: RRTMainScreen())); + if(rrtLocked) Navigator.push(context, FadePage(page: RRTMainScreen())); }, child: MedicalProfileItem( title: TranslationBase.of(context).rrtService, diff --git a/lib/pages/MyAppointments/AppointmentDetails.dart b/lib/pages/MyAppointments/AppointmentDetails.dart index 8bcfe9ca..be44855d 100644 --- a/lib/pages/MyAppointments/AppointmentDetails.dart +++ b/lib/pages/MyAppointments/AppointmentDetails.dart @@ -108,8 +108,7 @@ class _AppointmentDetailsState extends State with SingleTick "", //model.user.emailAddress, ), - isNeedToShowButton: - (widget.appo.clinicID == 17 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment) ? false : true, + isNeedToShowButton: (widget.appo.clinicID == 17 || widget.appo.clinicID == 47 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment) ? false : true, buttonTitle: TranslationBase.of(context).schedule, buttonIcon: 'assets/images/new/Boo_ Appointment.svg', showConfirmMessageDialog: false, @@ -138,7 +137,7 @@ class _AppointmentDetailsState extends State with SingleTick onTap: (index) { setState(() { if (index == 1) { - if (widget.appo.clinicID == 17 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment) { + if (widget.appo.clinicID == 17 || widget.appo.clinicID == 47 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment) { _tabController.index = _tabController.previousIndex; AppointmentDetails.showFooterButton = false; } else { @@ -149,7 +148,7 @@ class _AppointmentDetailsState extends State with SingleTick }, tabs: [ Tab(child: Text(TranslationBase.of(context).appoActions, style: TextStyle(color: Colors.black))), - widget.appo.clinicID == 17 || widget.appo.clinicID == 23 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment + widget.appo.clinicID == 17 || widget.appo.clinicID == 23 || widget.appo.clinicID == 47 || widget.appo.clinicID == 265 || widget.appo.isExecludeDoctor || widget.appo.isLiveCareAppointment ? Tab( child: Text(TranslationBase.of(context).availableAppo, style: TextStyle(color: Colors.grey)), ) @@ -583,11 +582,11 @@ class _AppointmentDetailsState extends State with SingleTick } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/MyAppointments/widgets/AppointmentActions.dart b/lib/pages/MyAppointments/widgets/AppointmentActions.dart index fd402a6b..ee94a616 100644 --- a/lib/pages/MyAppointments/widgets/AppointmentActions.dart +++ b/lib/pages/MyAppointments/widgets/AppointmentActions.dart @@ -67,7 +67,7 @@ class _AppointmentActionsState extends State { padding: EdgeInsets.all(21), shrinkWrap: true, itemBuilder: (context, index) { - bool shouldEnable = (widget.appo.clinicID == 17 && appoButtonsList[index].caller == "openReschedule"); + bool shouldEnable = (widget.appo.clinicID == 17 && widget.appo.clinicID == 47 && appoButtonsList[index].caller == "openReschedule"); return InkWell( onTap: shouldEnable ? null diff --git a/lib/pages/ToDoList/payment_method_select.dart b/lib/pages/ToDoList/payment_method_select.dart index fef55190..f2a96651 100644 --- a/lib/pages/ToDoList/payment_method_select.dart +++ b/lib/pages/ToDoList/payment_method_select.dart @@ -47,7 +47,7 @@ class _PaymentMethodState extends State { updateSelectedPaymentMethod("MADA"); }, child: Card( - elevation: 3.0, + elevation: 0.0, margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), color: Colors.white, shape: RoundedRectangleBorder( @@ -83,7 +83,7 @@ class _PaymentMethodState extends State { updateSelectedPaymentMethod("VISA"); }, child: Card( - elevation: 3.0, + elevation: 0.0, margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), color: Colors.white, shape: RoundedRectangleBorder( @@ -119,7 +119,7 @@ class _PaymentMethodState extends State { updateSelectedPaymentMethod("MASTERCARD"); }, child: Card( - elevation: 3.0, + elevation: 0.0, margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), color: Colors.white, shape: RoundedRectangleBorder( @@ -155,7 +155,7 @@ class _PaymentMethodState extends State { updateSelectedPaymentMethod("Installment"); }, child: Card( - elevation: 3.0, + elevation: 0.0, margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), color: Colors.white, shape: RoundedRectangleBorder( @@ -192,7 +192,7 @@ class _PaymentMethodState extends State { updateSelectedPaymentMethod("ApplePay"); }, child: Card( - elevation: 3.0, + elevation: 0.0, margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), color: Colors.white, shape: RoundedRectangleBorder( diff --git a/lib/pages/feedback/send_feedback_page.dart b/lib/pages/feedback/send_feedback_page.dart index fff3cc3d..a95fb425 100644 --- a/lib/pages/feedback/send_feedback_page.dart +++ b/lib/pages/feedback/send_feedback_page.dart @@ -5,7 +5,9 @@ import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_mode import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/robo_search/event_provider.dart'; +import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; @@ -13,6 +15,7 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/StarRating.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; @@ -49,6 +52,8 @@ class _SendFeedbackPageState extends State { var reconizedWord; var event = RobotProvider(); + List appoList = []; + String getSelected(BuildContext context) { switch (messageType) { case MessageType.ComplaintOnAnAppointment: @@ -111,7 +116,7 @@ class _SendFeedbackPageState extends State { children: [ Text( TranslationBase.of(context).likeToHear, - textAlign: TextAlign.center, + // textAlign: TextAlign.center, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.64, height: 23 / 16), ), SizedBox(height: 21), @@ -159,184 +164,50 @@ class _SendFeedbackPageState extends State { isShowListAppointHistory = true; }); }, - child: Container( - // margin: EdgeInsets.all(8.0), - decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), - child: Row( - children: [ - Container( - width: projectViewModel.isArabic ? 27 : 20, - height: projectViewModel.isArabic ? 105 : 90, - decoration: BoxDecoration( - //Colors.red[900] Color(0xff404545) - color: appointHistory.isLiveCareAppointment - ? Color(0xff404545) - : !appointHistory.isInOutPatient - ? Colors.red[900] - : Theme.of(context).primaryColor, - borderRadius: BorderRadius.only( - topLeft: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(8), - bottomLeft: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(8), - topRight: projectViewModel.isArabic ? Radius.circular(8) : Radius.circular(0), - bottomRight: projectViewModel.isArabic ? Radius.circular(8) : Radius.circular(0), - ), - ), - child: RotatedBox( - quarterTurns: 3, - child: Center( - child: Text( - appointHistory.isLiveCareAppointment - ? TranslationBase.of(context).liveCare.toUpperCase() - : !appointHistory.isInOutPatient - ? TranslationBase.of(context).inPatient.toUpperCase() - : TranslationBase.of(context).outpatient.toUpperCase(), - style: TextStyle(color: Colors.white, fontSize: 12), - ), - )), - ), - Expanded( - flex: 4, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.all(10.0), - child: Row( - children: [ - Expanded( - flex: 1, - child: LargeAvatar( - name: appointHistory.doctorNameObj, - url: appointHistory.doctorImageURL, - ), - ), - Expanded( - flex: 4, - child: Container( - margin: EdgeInsets.all(10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts( - appointHistory.doctorNameObj, - bold: true, - ), - Texts( - DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDate(appointHistory.appointmentDate)), - variant: 'caption3', - ), - StarRating(totalAverage: appointHistory.doctorRate.toDouble(), forceStars: true), - ], - ), - ), - ), - ], - ), - ), - ], - ), - ), - Expanded( - flex: 1, - child: Center( - child: Icon( - Icons.arrow_forward, - size: 15, - ), - ), - ) - ], - ), + child: DoctorCard( + onTap: null, + isInOutPatient: appointHistory.isInOutPatient, + name: appointHistory.doctorTitle + " " + appointHistory.doctorNameObj, + // billNo: _appointmentResult.invoiceNo, + profileUrl: appointHistory.doctorImageURL, + subName: appointHistory.projectName, + isLiveCareAppointment: appointHistory.isLiveCareAppointment, + date: DateUtil.convertStringToDate(appointHistory.appointmentDate), + rating: appointHistory.actualDoctorRate + 0.0, + appointmentTime: appointHistory.startTime.substring(0, 5), ), ), - if (messageType == MessageType.ComplaintOnAnAppointment && model.appointHistoryList.length != 0 && isShowListAppointHistory) + SizedBox(height: 12), + if (messageType == MessageType.ComplaintOnAnAppointment && appoList.length != 0 && isShowListAppointHistory) Container( - height: model.appointHistoryList.length > 2 ? MediaQuery.of(context).size.height * 0.25 : MediaQuery.of(context).size.height * 0.15, + margin: EdgeInsets.only(bottom: 10.0), + height: appoList.length > 2 ? MediaQuery.of(context).size.height * 0.35 : MediaQuery.of(context).size.height * 0.17, child: ListView.builder( - itemCount: model.appointHistoryList.length, + itemCount: appoList.length, itemBuilder: (context, index) => InkWell( onTap: () { setState(() { - appointHistory = model.appointHistoryList[index]; + appointHistory = appoList[index]; isShowListAppointHistory = false; }); }, - child: Container( - margin: EdgeInsets.only(left: 8, right: 8), - color: Colors.white, - child: Column( - children: [ - Row( - children: [ - Expanded( - flex: 4, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: const EdgeInsets.all(10.0), - child: Row( - children: [ - Expanded( - flex: 1, - child: LargeAvatar( - name: model.appointHistoryList[index].doctorNameObj, - url: model.appointHistoryList[index].doctorImageURL, - ), - ), - Expanded( - flex: 4, - child: Container( - margin: EdgeInsets.all(10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts( - model.appointHistoryList[index].doctorNameObj, - bold: true, - ), - Texts( - DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDate(model.appointHistoryList[index].appointmentDate)), - variant: 'caption3', - ), - StarRating(totalAverage: model.appointHistoryList[index].doctorRate.toDouble(), forceStars: true), - ], - ), - ), - ), - ], - ), - ), - ], - ), - ), - Expanded( - flex: 1, - child: Center( - child: Icon( - Icons.arrow_forward, - size: 15, - ), - ), - ) - ], - ), - SizedBox( - height: 5, - ), - Divider( - height: 0.5, - color: Colors.grey[400], - ) - ], - ), + child: DoctorCard( + onTap: null, + isInOutPatient: appoList[index].isInOutPatient, + name: appoList[index].doctorTitle + " " + appoList[index].doctorNameObj, + profileUrl: appoList[index].doctorImageURL, + subName: appoList[index].projectName, + isLiveCareAppointment: appoList[index].isLiveCareAppointment, + date: DateUtil.convertStringToDate(appoList[index].appointmentDate), + rating: appoList[index].actualDoctorRate + 0.0, + appointmentTime: appoList[index].startTime.substring(0, 5), ), ), ), ), - inputWidget(TranslationBase.of(context).subject, "xxxxxxxx", titleController), + inputWidget(TranslationBase.of(context).subject, "", titleController), SizedBox(height: 12), - inputWidget(TranslationBase.of(context).message, "xxxxxxxx", messageController, lines: 11, suffixTap: () { + inputWidget(TranslationBase.of(context).message, "", messageController, lines: 11, suffixTap: () { openSpeechReco(); }), SizedBox(height: 12), @@ -492,7 +363,7 @@ class _SendFeedbackPageState extends State { TextField( enabled: isEnable, scrollPadding: EdgeInsets.zero, - keyboardType: TextInputType.number, + keyboardType: TextInputType.text, controller: _controller, maxLines: lines, onChanged: (value) => {setState(() {})}, @@ -515,19 +386,6 @@ class _SendFeedbackPageState extends State { ), suffixIconConstraints: BoxConstraints(minWidth: 50), suffixIcon: suffixTap == null ? null : IconButton(icon: Icon(Icons.mic, color: Color(0xff2E303A)), onPressed: suffixTap), - // prefixIconConstraints: BoxConstraints(minWidth: 50), - // prefixIcon: suffix == null - // ? null - // : Text( - // "+" + suffix, - // style: TextStyle( - // fontSize: 14, - // height: 21 / 14, - // fontWeight: FontWeight.w500, - // color: Color(0xff2E303A), - // letterSpacing: -0.56, - // ), - // ), contentPadding: EdgeInsets.zero, border: InputBorder.none, focusedBorder: InputBorder.none, @@ -570,19 +428,39 @@ class _SendFeedbackPageState extends State { // Show Dialog function void confirmBox(FeedbackViewModel model) { + DoctorsListService service = new DoctorsListService(); showDialog( context: context, child: FeedbackTypeDialog( messageTypeDialog: messageType, onValueSelected: (MessageType value) { if (value == MessageType.ComplaintOnAnAppointment) { + appoList.clear(); GifLoaderDialogUtils.showMyDialog(context); - model.getPatentAppointmentHistory().then((value) { + service.getPatientAppointmentHistory(false, context, isForCOC: true).then((res) { GifLoaderDialogUtils.hideDialog(context); setState(() { - appointHistory = null; + if (res['MessageStatus'] == 1) { + if (res['AppoimentAllHistoryResultList'].length != 0) { + res['AppoimentAllHistoryResultList'].forEach((v) { + appoList.add(new AppoitmentAllHistoryResultList.fromJson(v)); + }); + setState(() { + appointHistory = null; + isShowListAppointHistory = true; + }); + } else {} + } else { + } }); + }).catchError((err) { + GifLoaderDialogUtils.hideDialog(context); + // print(err); + // AppToast.showErrorToast(message: err); + // Navigator.of(context).pop(); }); + } else { + isShowListAppointHistory = false; } setMessageType(value); }, @@ -694,7 +572,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.NON, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -716,7 +594,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.ComplaintOnAnAppointment, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -738,7 +616,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.ComplaintWithoutAppointment, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -760,7 +638,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Question, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -782,7 +660,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Compliment, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -804,7 +682,7 @@ class FeedbackTypeDialogState extends State { leading: Radio( value: MessageType.Suggestion, groupValue: messageTypeDialog, - activeColor: Theme.of(context).primaryColor, + activeColor: CustomColors.accentColor, onChanged: (MessageType value) => setMessageDialogType(value), ), ), @@ -837,7 +715,7 @@ class FeedbackTypeDialogState extends State { child: Center( child: Texts( TranslationBase.of(context).cancel, - color: Theme.of(context).primaryColor, + color: CustomColors.accentColor, ), ), ), diff --git a/lib/pages/feedback/status_feedback_page.dart b/lib/pages/feedback/status_feedback_page.dart index 18993f1d..2e87f875 100644 --- a/lib/pages/feedback/status_feedback_page.dart +++ b/lib/pages/feedback/status_feedback_page.dart @@ -1,13 +1,16 @@ import 'package:diplomaticquarterapp/core/viewModels/feedback/feedback_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/feedback/feedback-detail.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; -import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class StatusFeedbackPage extends StatefulWidget { @override @@ -17,6 +20,7 @@ class StatusFeedbackPage extends StatefulWidget { class _StatusFeedbackPageState extends State { @override Widget build(BuildContext context) { + ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getCOC(), builder: (_, model, widget) => AppScaffold( @@ -28,67 +32,69 @@ class _StatusFeedbackPageState extends State { child: model.cOCItemList.isNotEmpty ? Container( margin: EdgeInsets.only(top: 8.0, left: 8.0, right: 8.0, bottom: 80), - padding: EdgeInsets.all(15.0), child: ListView.builder( itemCount: model.cOCItemList.length, itemBuilder: (context, index) => InkWell( - onTap: () { - gotodetails(model.cOCItemList[index]); - }, - child: Container( - decoration: BoxDecoration( - shape: BoxShape.rectangle, - border: Border.all(color: Colors.white, width: 0.5), - borderRadius: BorderRadius.all(Radius.circular(5)), - color: Colors.white, - ), - margin: EdgeInsets.all(4), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox( - height: 8, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts('${model.cOCItemList[index].cOCTitle}'), - Texts( - TranslationBase.of(context).number + ' : ${model.cOCItemList[index].itemID}', - variant: 'overline', - ), - ], - ), - ), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts('${model.cOCItemList[index].status}'), - Texts( - '${model.cOCItemList[index].date}', - variant: 'overline', - ), - ], - ), - ), - ], - ), - Texts('${model.cOCItemList[index].formType}'), - Divider( - height: 4.5, - color: Colors.grey[500], - ) - ], + onTap: () { + }, + child: Card( + shape: cardRadius(12), + margin: EdgeInsets.all(10), + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(projectViewModel.isArabic ? model.cOCItemList[index].statusAr : model.cOCItemList[index].status, + style: TextStyle(fontSize: 14.0, letterSpacing: -0.56, fontWeight: FontWeight.bold)), + Container( + margin: EdgeInsets.only(top: 5.0), + child: Text(model.cOCItemList[index].formType, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + color: Color(0xff2B353E), + letterSpacing: -0.48, + height: 18 / 12))), + myRichText(TranslationBase.of(context).number + ": ", model.cOCItemList[index].itemID.toString(), projectViewModel.isArabic), + Text(model.cOCItemList[index].cOCTitle, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + color: Color(0xff2B353E), + letterSpacing: -0.48, + height: 18 / 12)), + ], + ), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Text(model.cOCItemList[index].date.split(" ")[0], + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + color: Color(0xff2B353E), + letterSpacing: -0.48)), + Text(model.cOCItemList[index].date.split(" ")[1], + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', + color: Color(0xff2B353E), + letterSpacing: -0.48)), + ], + ), + ], + ), ), ), - ))), + )), ) : Center( child: Column( @@ -117,16 +123,17 @@ class _StatusFeedbackPageState extends State { ), ), ), - Container( - color: Colors.white, - padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), - child: DefaultButton( - TranslationBase.of(context).search, - () => {}, - ), - ), ], ), + bottomSheet: Container( + color: Colors.white, + padding: EdgeInsets.only(top: 16, bottom: 16, right: 21, left: 21), + child: DefaultButton( + TranslationBase.of(context).search, + projectViewModel.isLogin ? null : () => {}, + disabledColor: Colors.grey, + ), + ), ), ); } diff --git a/lib/pages/insurance/AttachInsuranceCardImageDialog.dart b/lib/pages/insurance/AttachInsuranceCardImageDialog.dart index 38fd75d5..8272f0c2 100644 --- a/lib/pages/insurance/AttachInsuranceCardImageDialog.dart +++ b/lib/pages/insurance/AttachInsuranceCardImageDialog.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/bottom_options/BottomSheet.dart'; import 'package:flutter/cupertino.dart'; @@ -154,8 +155,12 @@ class _AttachInsuranceCardImageDialogState extends State { description: TranslationBase.of(context).infoApprovals, infoList: TranslationBase.of(context).infoApprovalPoints, imagesInfo: imagesInfo, - body: ListView.separated( + body: model.insuranceApproval.length > 0 ? ListView.separated( padding: EdgeInsets.all(21), physics: BouncingScrollPhysics(), itemBuilder: (_, index) { @@ -148,7 +150,7 @@ class _InsuranceApprovalState extends State { height: 48, alignment: Alignment.bottomRight, child: Icon( - Icons.visibility_sharp, + Icons.arrow_forward, color: Color(0xff2E303A), ), ) @@ -164,7 +166,7 @@ class _InsuranceApprovalState extends State { ); }, separatorBuilder: (context, index) => SizedBox(height: 12), - itemCount: model.insuranceApproval.length)), + itemCount: model.insuranceApproval.length) : getNoDataWidget(context)), ); } diff --git a/lib/pages/insurance/insurance_page.dart b/lib/pages/insurance/insurance_page.dart index e1f347a0..58a9e64a 100644 --- a/lib/pages/insurance/insurance_page.dart +++ b/lib/pages/insurance/insurance_page.dart @@ -150,7 +150,9 @@ class InsurancePage extends StatelessWidget { patientID: patientID, patientIdentificationID: patientIdentificationID, name: name, - ))); + ))).then((value) { + model.getInsuranceUpdated(); + }); } else { AppToast.showErrorToast(message: _insuranceCardService.error); } diff --git a/lib/pages/landing/landing_page.dart b/lib/pages/landing/landing_page.dart index 7dc3b334..e5f8e35c 100644 --- a/lib/pages/landing/landing_page.dart +++ b/lib/pages/landing/landing_page.dart @@ -77,6 +77,8 @@ class _LandingPageState extends State with WidgetsBindingObserver { SignalRUtil signalRUtil; + ToDoCountProviderModel toDoProvider; + bool _showBottomNavigationBar = true; ///inject the user data @@ -505,6 +507,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { setState(() { notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); + model.setState(model.count, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); }) } @@ -555,14 +558,14 @@ class _LandingPageState extends State with WidgetsBindingObserver { pageController.jumpToPage(0); }, ), - projectViewModel.isLogin && notificationCount != '' + projectViewModel.isLogin && model.notificationsCount != null ? new Positioned( right: projectViewModel.isArabic ? 35 : 0, top: 5, child: new Container( padding: EdgeInsets.all(4), decoration: new BoxDecoration( - color: Colors.red, + color: CustomColors.accentColor, borderRadius: BorderRadius.circular(20), ), constraints: BoxConstraints( @@ -570,7 +573,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { minHeight: 20, ), child: new Text( - notificationCount, + model.notificationsCount.toString(), style: new TextStyle( color: Colors.white, fontSize: projectViewModel.isArabic ? 8 : 9, @@ -677,6 +680,7 @@ class _LandingPageState extends State with WidgetsBindingObserver { setState(() { if (value != null) { notificationCount = value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'] > 99 ? '99+' : value['List_PatientDashboard'][0]['UnreadPatientNotificationCount'].toString(); + model.setState(model.count, true, notificationCount); sharedPref.setString(NOTIFICATION_COUNT, notificationCount); } }), diff --git a/lib/pages/livecare/livecare_type_select.dart b/lib/pages/livecare/livecare_type_select.dart index 2e22288d..765d6383 100644 --- a/lib/pages/livecare/livecare_type_select.dart +++ b/lib/pages/livecare/livecare_type_select.dart @@ -170,11 +170,11 @@ class _LiveCareTypeSelectState extends State { ), InkWell( onTap: (){ - Navigator.pop(context, "schedule"); + // Navigator.pop(context, "schedule"); }, child: Container( decoration: BoxDecoration( - color: Colors.grey[700], + color: Colors.grey[400], borderRadius: BorderRadius.all(Radius.circular(10.0))), height: 100.0, margin: EdgeInsets.only(top: 20.0), diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart index b4336910..921bec0a 100644 --- a/lib/pages/login/confirm-login.dart +++ b/lib/pages/login/confirm-login.dart @@ -160,9 +160,9 @@ class _ConfirmLogin extends State { ), Text( user.editedOn != null - ? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.editedOn), projectViewModel.isArabic) + ? DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(user.editedOn)) : user.createdOn != null - ? DateUtil.formatDateToDate(DateUtil.convertStringToDate(user.createdOn), projectViewModel.isArabic) + ? DateUtil.getDayMonthYearDateFormatted(DateUtil.convertStringToDate(user.createdOn)) : '--', style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48), ), @@ -191,9 +191,9 @@ class _ConfirmLogin extends State { Expanded(child: SizedBox()), Text( user.editedOn != null - ? DateUtil.formatDateToTime(DateUtil.convertStringToDate(user.editedOn)) + ? DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(user.editedOn), false) : user.createdOn != null - ? DateUtil.formatDateToTime(DateUtil.convertStringToDate(user.createdOn)) + ? DateUtil.formatDateToTimeLang(DateUtil.convertStringToDate(user.createdOn), false) : '--', style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.48), ), @@ -582,11 +582,11 @@ class _ConfirmLogin extends State { } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, "0"); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, "0"); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/login/login.dart b/lib/pages/login/login.dart index ceccf75f..b448e1a4 100644 --- a/lib/pages/login/login.dart +++ b/lib/pages/login/login.dart @@ -359,12 +359,12 @@ class _Login extends State { } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/pages/medical/active_medications/ActiveMedicationsPage.dart b/lib/pages/medical/active_medications/ActiveMedicationsPage.dart index 8299cad0..87f5b0c4 100644 --- a/lib/pages/medical/active_medications/ActiveMedicationsPage.dart +++ b/lib/pages/medical/active_medications/ActiveMedicationsPage.dart @@ -24,7 +24,7 @@ class ActiveMedicationsPage extends StatelessWidget { isShowDecPage: true, baseViewModel: model, appBarTitle: TranslationBase.of(context).activeMedications, - body: Container( + body: model.activePrescriptionReport.length > 0 ? Container( child: ListView.builder( itemCount: model.activePrescriptionReport.length, itemBuilder: (context, index) => Container( @@ -197,7 +197,7 @@ class ActiveMedicationsPage extends StatelessWidget { ), ), ), - ), + ) : getNoDataWidget(context), ), ); } diff --git a/lib/pages/medical/ask_doctor/ask_doctor_page.dart b/lib/pages/medical/ask_doctor/ask_doctor_page.dart index ccff9042..389baf24 100644 --- a/lib/pages/medical/ask_doctor/ask_doctor_page.dart +++ b/lib/pages/medical/ask_doctor/ask_doctor_page.dart @@ -4,9 +4,11 @@ import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DoctorView.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/ask_doctor/request_type.dart'; +import 'package:diplomaticquarterapp/theme/colors.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/others/app_expandable_notifier.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -22,7 +24,20 @@ class AskDoctorPage extends StatelessWidget { onModelReady: (model) => model.getMyDoctor(), builder: (_, model, w) => AppScaffold( baseViewModel: model, - body: _appointmentExpandableList(model.patientDoctorAppointmentListHospital, model), + body: model.patientDoctorAppointmentListHospital.length > 0 ? _appointmentExpandableList(model.patientDoctorAppointmentListHospital, model) : noDoctor(context), + ), + ); + } + + Widget noDoctor(BuildContext context) { + return Container( + margin: EdgeInsets.only(left: 50.0, right: 50.0), + child: Center( + child: Text(TranslationBase.of(context).askDocEmpty, textAlign: TextAlign.center, style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w400, + color: CustomColors.accentColor + )), ), ); } diff --git a/lib/pages/medical/balance/advance_payment_page.dart b/lib/pages/medical/balance/advance_payment_page.dart index 9e1e042e..9e587b7f 100644 --- a/lib/pages/medical/balance/advance_payment_page.dart +++ b/lib/pages/medical/balance/advance_payment_page.dart @@ -15,6 +15,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/utils.dart'; +import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; @@ -258,16 +259,13 @@ class _AdvancePaymentPageState extends State { ), ), bottomSheet: Container( - height: 70, width: double.infinity, + color: Theme.of(context).scaffoldBackgroundColor, padding: EdgeInsets.all(12), - color: Colors.white, - child: SecondaryButton( - textColor: Colors.white, - label: TranslationBase.of(context).submit, - color: CustomColors.accentColor, - disabled: amount.isEmpty || _fileTextController.text.isEmpty || _selectedHospital == null, - onTap: () { + child: DefaultButton( + TranslationBase.of(context).submit, + (amount.isEmpty || _fileTextController.text.isEmpty || _selectedHospital == null) ? null : + () { var mobileNum; var patientName; @@ -320,6 +318,7 @@ class _AdvancePaymentPageState extends State { } }); }, + disabledColor: Colors.grey, ), )), ); diff --git a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart index 4ff833b0..2f3f7d0a 100644 --- a/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart +++ b/lib/pages/medical/my_trackers/Weight/WeightWeeklyPage.dart @@ -129,7 +129,11 @@ class WeightWeeklyPage extends StatelessWidget { model: model, ), ), - ); + ).then((value) { + if (model.weekWeightMeasurementResult.isEmpty) { + model.weightWeekTimeSeriesData.clear(); + } + }); }, child: Container( // height: 70, diff --git a/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart b/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart index 1262897c..b4974159 100644 --- a/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart +++ b/lib/pages/medical/my_trackers/blood_pressure/bloodPressureWeeklyPage.dart @@ -111,7 +111,12 @@ class BloodPressureWeeklyPage extends StatelessWidget { measureTimeSelectedType: diabtec.measuredArmDesc, ), ), - ); + ).then((value) { + if(model.weekDiabtecPatientResult.isEmpty) { + model.weightWeekTimeSeriesDataTop.clear(); + model.weightWeekTimeSeriesDataLow.clear(); + } + }); }, child: Container( // height: 70, diff --git a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart index 9afcd888..537265ed 100644 --- a/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart +++ b/lib/pages/medical/my_trackers/blood_suger/blood_sugar_weekly_page.dart @@ -116,7 +116,11 @@ class BloodSugarWeeklyPage extends StatelessWidget { bloodSugarViewMode: bloodSugarViewMode, ), ), - ); + ).then((value) { + if(bloodSugarViewMode.weekDiabtecPatientResult.isEmpty) { + timeSeriesData.clear(); + } + }); }, child: Container( // height: 70, diff --git a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart index b94bed4c..96283aa8 100644 --- a/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart +++ b/lib/pages/medical/prescriptions/PrescriptionOrderOverveiw.dart @@ -98,15 +98,6 @@ class PrescriptionOrderOverview extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - TranslationBase.of(context).invoiceNo + ": " + prescriptions.patientID.toString(), - style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.bold, - color: Colors.black, - letterSpacing: -0.46, - ), - ), ...List.generate( prescriptionReportEnhList.length, (index) => Card( @@ -116,18 +107,23 @@ class PrescriptionOrderOverview extends StatelessWidget { elevation: 0, child: Row( children: [ - Padding( - padding: const EdgeInsets.all(8.0), + Container( + margin: EdgeInsets.only(bottom: 10.0), + decoration: BoxDecoration( + border: Border.all(width: 1.0, color: Color(0xffEBEBEB)), + borderRadius: BorderRadius.all(Radius.circular(30.0)), + ), child: ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(5)), + borderRadius: BorderRadius.all(Radius.circular(30)), child: Image.network( prescriptionReportEnhList[index].imageSRCUrl, fit: BoxFit.cover, - width: 60, - height: 60, + width: 48, + height: 48, ), ), ), + SizedBox(width: 14), Expanded( child: Padding( padding: const EdgeInsets.all(8.0), diff --git a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart index cdc7be72..c88283be 100644 --- a/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart @@ -6,6 +6,7 @@ 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'; +import 'package:giffy_dialog/giffy_dialog.dart'; import 'package:maps_launcher/maps_launcher.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -53,9 +54,7 @@ class PharmacyForPrescriptionsPage extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(8.0), child: Center( - child: Texts(prescriptionReport.itemDescription.isNotEmpty - ? prescriptionReport.itemDescription - : prescriptionReport.itemDescriptionN ?? ''), + child: Texts(prescriptionReport.itemDescription.isNotEmpty ? prescriptionReport.itemDescription : prescriptionReport.itemDescriptionN ?? ''), ), ), ) @@ -68,70 +67,172 @@ class PharmacyForPrescriptionsPage extends StatelessWidget { scrollDirection: Axis.vertical, physics: BouncingScrollPhysics(), itemBuilder: (context, index) => Container( - width: double.infinity, - margin: EdgeInsets.only(top: 10, left: 10, right: 10), - padding: EdgeInsets.all(8.0), + margin: EdgeInsets.all(12.0), + padding: const EdgeInsets.only(left: 12, right: 12, top: 12, bottom: 12), decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.all( - Radius.circular(10.0), - ), - border: Border.all(color: Colors.grey[200], width: 0.5), - ), + borderRadius: BorderRadius.all( + Radius.circular(10.0), + ), + boxShadow: [ + BoxShadow( + color: Color(0xff000000).withOpacity(.05), + //spreadRadius: 5, + blurRadius: 27, + offset: Offset(0, -3), + ), + ], + color: Colors.white), child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, children: [ - ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(5)), - child: Image.network( - model.pharmacyPrescriptionsList[index].projectImageURL, - fit: BoxFit.cover, - width: 60, - height: 70, + InkWell( + onTap: () { + showDialog( + context: context, + builder: (_) => AssetGiffyDialog( + title: Text( + model.pharmacyPrescriptionsList[index].locationDescription, + style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w600), + ), + image: Image.network( + model.pharmacyPrescriptionsList[index].projectImageURL.toString(), + fit: BoxFit.cover, + ), + buttonCancelText: Text(TranslationBase.of(context).cancel), + buttonCancelColor: Colors.grey, + onlyCancelButton: true, + ), + ); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Image.network( + model.pharmacyPrescriptionsList[index].projectImageURL.toString(), + width: 48, + height: 48, + fit: BoxFit.cover, + ), ), ), Expanded( child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Texts(model.pharmacyPrescriptionsList[index].locationDescription), - SizedBox( - height: 5, - ), - Texts(model.pharmacyPrescriptionsList[index].cityName), - ], + padding: EdgeInsets.only(left: 12, right: 12), + child: Text( + model.pharmacyPrescriptionsList[index].locationDescription?.trim().toString() + + "\n" + + model.pharmacyPrescriptionsList[index].cityName.trim().toString() + + "\n" + + model.pharmacyPrescriptionsList[index].distanceInKilometers.toString() + + " " + + TranslationBase.of(context).km_ ?? + "", + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xff2E303A), + letterSpacing: -0.56, + ), ), ), - ), - InkWell( - onTap: () { - MapsLauncher.launchCoordinates(double.parse(model.pharmacyPrescriptionsList[index].latitude), double.parse(model.pharmacyPrescriptionsList[index].longitude)); - }, - child: Icon( - Icons.pin_drop, - size: 18, - color: Colors.red[900], + ), //model.cOCItemList[index].cOCTitl + IconButton( + icon: Icon( + Icons.location_on, + color: Color(0xff2B353E), ), + constraints: BoxConstraints(), + padding: EdgeInsets.all(8), + tooltip: '', + onPressed: () { + // setState(() { + MapsLauncher.launchCoordinates(double.parse(model.pharmacyPrescriptionsList[index].latitude), double.parse(model.pharmacyPrescriptionsList[index].longitude), + model.pharmacyPrescriptionsList[index].locationDescription); + // }); + }, ), - SizedBox( - width: 15, - ), - InkWell( - onTap: Feedback.wrapForTap(() { - launch("tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); - }, context), - child: Container( - child: Icon( - Icons.call, - size: 18, - color: Colors.red[900], - ), + IconButton( + icon: Icon( + Icons.phone, + color: Color(0xff2B353E), ), - ) + constraints: BoxConstraints(), + padding: EdgeInsets.all(8), + tooltip: '', + onPressed: () { + // setState(() { + launch("tel://" + model.pharmacyPrescriptionsList[index].phoneNumber); + // }); + }, + ), ], ), ), + // Container( + // width: double.infinity, + // margin: EdgeInsets.only(top: 10, left: 10, right: 10), + // padding: EdgeInsets.all(8.0), + // decoration: BoxDecoration( + // color: Colors.white, + // borderRadius: BorderRadius.all( + // Radius.circular(10.0), + // ), + // border: Border.all(color: Colors.grey[200], width: 0.5), + // ), + // child: Row( + // children: [ + // ClipRRect( + // borderRadius: BorderRadius.all(Radius.circular(5)), + // child: Image.network( + // model.pharmacyPrescriptionsList[index].projectImageURL, + // fit: BoxFit.cover, + // width: 60, + // height: 70, + // ), + // ), + // Expanded( + // child: Padding( + // padding: const EdgeInsets.all(8.0), + // child: Column( + // crossAxisAlignment: CrossAxisAlignment.start, + // children: [ + // Texts(model.pharmacyPrescriptionsList[index].locationDescription), + // SizedBox( + // height: 5, + // ), + // Texts(model.pharmacyPrescriptionsList[index].cityName), + // ], + // ), + // ), + // ), + // InkWell( + // onTap: () { + // MapsLauncher.launchCoordinates(double.parse(model.pharmacyPrescriptionsList[index].latitude), double.parse(model.pharmacyPrescriptionsList[index].longitude)); + // }, + // child: Icon( + // Icons.pin_drop, + // size: 18, + // color: Colors.red[900], + // ), + // ), + // SizedBox( + // width: 15, + // ), + // InkWell( + // onTap: Feedback.wrapForTap(() { + // launch("tel://${model.pharmacyPrescriptionsList[index].phoneNumber}"); + // }, context), + // child: Container( + // child: Icon( + // Icons.call, + // size: 18, + // color: Colors.red[900], + // ), + // ), + // ) + // ], + // ), + // ), itemCount: model.pharmacyPrescriptionsList.length, ), ) diff --git a/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart b/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart index 8df6191e..c024b575 100644 --- a/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_history_details_page.dart @@ -109,11 +109,11 @@ class PrescriptionsHistoryDetailsPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - DateUtil.formatDateToDate(prescriptionsOrder.createdOn, projectViewModel.isArabic), + DateUtil.getDayMonthYearDateFormatted(prescriptionsOrder.createdOn), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10), ), Text( - DateUtil.formatDateToTime(prescriptionsOrder.createdOn), + DateUtil.formatDateToTimeLang(prescriptionsOrder.createdOn, false), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), ), ], diff --git a/lib/pages/medical/prescriptions/prescriptions_history_page.dart b/lib/pages/medical/prescriptions/prescriptions_history_page.dart index 38644159..cfb24c2a 100644 --- a/lib/pages/medical/prescriptions/prescriptions_history_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_history_page.dart @@ -119,11 +119,11 @@ class PrescriptionsHistoryPage extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - DateUtil.formatDateToDate(prescriptionsViewModel.prescriptionsHistory[index].createdOn, projectViewModel.isArabic), + DateUtil.getDayMonthYearDateFormatted(prescriptionsViewModel.prescriptionsHistory[index].createdOn), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10), ), Text( - DateUtil.formatDateToTime(prescriptionsViewModel.prescriptionsHistory[index].createdOn), + DateUtil.formatDateToTimeLang(prescriptionsViewModel.prescriptionsHistory[index].createdOn, false), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), ), ], diff --git a/lib/pages/medical/prescriptions/prescriptions_page.dart b/lib/pages/medical/prescriptions/prescriptions_page.dart index 389a50e5..863a2209 100644 --- a/lib/pages/medical/prescriptions/prescriptions_page.dart +++ b/lib/pages/medical/prescriptions/prescriptions_page.dart @@ -64,12 +64,10 @@ class PrescriptionsPage extends StatelessWidget { name: prescriptions.doctorName, profileUrl: prescriptions.doctorImageURL, rating: prescriptions.actualDoctorRate.toDouble(), - subName: prescriptions.name, + subName: _isSortByClinic ? prescriptions.name : prescriptions.clinicDescription, isSortByClinic: _isSortByClinic, isInOutPatient: prescriptions.isInOutPatient, isLiveCareAppointment: prescriptions.isLiveCareAppointment, - // appointmentTime: DateUtil.formatDateToTime(DateUtil.convertStringToDate(prescriptions - // .appointmentDate)), date: DateUtil.convertStringToDate(prescriptions .appointmentDate) //projectViewModel.isArabic? DateUtil.getMonthDayYearDateFormattedAr( DateUtil.convertStringToDate(prescriptions.appointmentDate) ):DateUtil.getMonthDayYearDateFormatted(DateUtil.convertStringToDate(prescriptions.appointmentDate)), ); diff --git a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart index d11e91f5..89f5545f 100644 --- a/lib/pages/medical/vital_sign/vital_sign_details_screen.dart +++ b/lib/pages/medical/vital_sign/vital_sign_details_screen.dart @@ -33,7 +33,7 @@ class VitalSignDetailsScreen extends StatelessWidget { // vitalSigns.add(new VitalSign(TranslationBase.of(context).body, mode.bodyMax, TranslationBase.of(context).mass, "assets/images/new/")); vitalSigns.add(new VitalSign(TranslationBase.of(context).temperature, mode.temperatureCelcius, TranslationBase.of(context).tempC, "assets/images/new/temperature.svg")); vitalSigns.add(new VitalSign(TranslationBase.of(context).heart, mode.hartRat, TranslationBase.of(context).bpm, "assets/images/new/heart_rate.svg")); - vitalSigns.add(new VitalSign(TranslationBase.of(context).respirationRate, mode.respirationBeatPerMinute, TranslationBase.of(context).bpm, "assets/images/new/respiration_rate.svg")); + vitalSigns.add(new VitalSign(TranslationBase.of(context).respirationRate, mode.respirationBeatPerMinute, TranslationBase.of(context).respirationBPM, "assets/images/new/respiration_rate.svg")); vitalSigns.add(new VitalSign(TranslationBase.of(context).bloodPressure, mode.bloodPressure, TranslationBase.of(context).sysDias, "assets/images/new/blood_pressure.svg")); } @@ -71,7 +71,7 @@ class VitalSignDetailsScreen extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "Body Mass Index is: " + mode.bodyMax, + TranslationBase.of(context).bodyMassIndex + mode.bodyMax, style: TextStyle( fontSize: 16, letterSpacing: -0.64, @@ -83,15 +83,15 @@ class VitalSignDetailsScreen extends StatelessWidget { height: MediaQuery.of(context).size.width / 2.8, child: Row( children: [ - showMass(context, "Underweight", "< 18.5", double.parse(mode.bodyMax) <= 18.5 ? Colors.red : Colors.black, 8), + showMass(context, TranslationBase.of(context).underWeight, "< 18.5", double.parse(mode.bodyMax) <= 18.5 ? Colors.red : Colors.black, 8), mWidth(12), - showMass(context, "Normal", "18.5 - 24.9", (double.parse(mode.bodyMax) > 18.5 && double.parse(mode.bodyMax) < 25) ? Colors.red : Colors.black, 6), + showMass(context, TranslationBase.of(context).healthy, "18.5 - 24.9", (double.parse(mode.bodyMax) > 18.5 && double.parse(mode.bodyMax) < 25) ? Colors.red : Colors.black, 6), mWidth(12), - showMass(context, "Overweight", "25 - 29.9", (double.parse(mode.bodyMax) >= 25 && double.parse(mode.bodyMax) < 30) ? Colors.red : Colors.black, 4), + showMass(context, TranslationBase.of(context).overWeight, "25 - 29.9", (double.parse(mode.bodyMax) >= 25 && double.parse(mode.bodyMax) < 30) ? Colors.red : Colors.black, 4), mWidth(12), - showMass(context, "Obese", "30 - 34.9", (double.parse(mode.bodyMax) >= 30 && double.parse(mode.bodyMax) < 35) ? Colors.red : Colors.black, 2), + showMass(context, TranslationBase.of(context).obese, "30 - 34.9", (double.parse(mode.bodyMax) >= 30 && double.parse(mode.bodyMax) < 35) ? Colors.red : Colors.black, 2), mWidth(12), - showMass(context, "Extreme Obese", "> 35", (double.parse(mode.bodyMax) >= 35) ? Colors.red : Colors.black, 0), + showMass(context, TranslationBase.of(context).extremeObese, "> 35", (double.parse(mode.bodyMax) >= 35) ? Colors.red : Colors.black, 0), ], ), ), diff --git a/lib/pages/rateAppointment/rate_appointment_clinic.dart b/lib/pages/rateAppointment/rate_appointment_clinic.dart index c6ab88ab..8eafe6cb 100644 --- a/lib/pages/rateAppointment/rate_appointment_clinic.dart +++ b/lib/pages/rateAppointment/rate_appointment_clinic.dart @@ -96,7 +96,7 @@ class _RateAppointmentClinicState extends State { height: 25 / 16), ), Text( - model.appointmentDetails.startTime, + model.appointmentDetails.startTime.toString().substring(0, 5), style: TextStyle( fontSize: 14, fontWeight: FontWeight.w600, @@ -131,7 +131,7 @@ class _RateAppointmentClinicState extends State { projectViewModel.isArabic), myRichText( TranslationBase.of(context).date + ":", - DateUtil.getMonthDayYearDateFormatted( + DateUtil.getDayMonthYearDateFormatted( DateUtil.convertStringToDate(model .appointmentDetails .appointmentDate)), diff --git a/lib/pages/rateAppointment/rate_appointment_doctor.dart b/lib/pages/rateAppointment/rate_appointment_doctor.dart index 241412e9..aaf9aa06 100644 --- a/lib/pages/rateAppointment/rate_appointment_doctor.dart +++ b/lib/pages/rateAppointment/rate_appointment_doctor.dart @@ -111,7 +111,6 @@ class _RateAppointmentDoctorState extends State { color: rating >= (index + 1) ? Color.fromRGBO(255, 186, 0, 1.0) : Colors.grey[400], - // Theme.of(context).hintColor, icon: Icon(rating >= (index + 1) ? Icons.star : Icons.star)), diff --git a/lib/pages/vaccine/my_vaccines_screen.dart b/lib/pages/vaccine/my_vaccines_screen.dart index a41c8c99..f15ee9fb 100644 --- a/lib/pages/vaccine/my_vaccines_screen.dart +++ b/lib/pages/vaccine/my_vaccines_screen.dart @@ -53,7 +53,7 @@ class _MyVaccinesState extends State { separatorBuilder: (context, index) => SizedBox(height: 14), itemBuilder: (BuildContext context, int index) { return DoctorCard( - onTap: () {}, + onTap: null, isInOutPatient: true, isShowInOutPatient: false, name: TranslationBase.of(context).dr.toString() + " " + model.vaccineList[index].doctorName, diff --git a/lib/services/appointment_services/GetDoctorsList.dart b/lib/services/appointment_services/GetDoctorsList.dart index 1c11e26b..3986c8e4 100644 --- a/lib/services/appointment_services/GetDoctorsList.dart +++ b/lib/services/appointment_services/GetDoctorsList.dart @@ -496,7 +496,7 @@ class DoctorsListService extends BaseService { return Future.value(localRes); } - Future getPatientAppointmentHistory(bool isActiveAppointment, BuildContext context) async { + Future getPatientAppointmentHistory(bool isActiveAppointment, BuildContext context, {bool isForCOC = false}) async { Map request; if (await this.sharedPref.getObject(USER_PROFILE) != null) { @@ -520,6 +520,7 @@ class DoctorsListService extends BaseService { "DeviceTypeID": req.DeviceTypeID, "PatientID": authUser.patientID, "PatientTypeID": authUser.patientType, + "IsComingFromCOC": isForCOC, "PatientType": authUser.patientType }; diff --git a/lib/uitl/date_uitl.dart b/lib/uitl/date_uitl.dart index 2d9c912e..34585002 100644 --- a/lib/uitl/date_uitl.dart +++ b/lib/uitl/date_uitl.dart @@ -406,7 +406,7 @@ class DateUtil { /// get data formatted like 10:30 according to lang static String formatDateToTimeLang(DateTime date, bool isArabic) { - return DateFormat('hh:mm a', isArabic ? "ar_SA" : "en_US").format(date); + return DateFormat('HH:mm', isArabic ? "ar_SA" : "en_US").format(date); } /// get data formatted like 26/4/2020 10:30 diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart index 63ea6651..34eb3b9e 100644 --- a/lib/uitl/translations_delegate_base.dart +++ b/lib/uitl/translations_delegate_base.dart @@ -2334,6 +2334,16 @@ class TranslationBase { String get rateDoctor => localizedValues["rateDoctor"][locale.languageCode]; String get rateAppointment => localizedValues["rateAppointment"][locale.languageCode]; + + String get noInsuranceCardAttached => localizedValues["noInsuranceCardAttached"][locale.languageCode]; + + String get bodyMassIndex => localizedValues["bodyMassIndex"][locale.languageCode]; + + String get extremeObese => localizedValues["extremeObese"][locale.languageCode]; + + String get respirationBPM => localizedValues["respirationBPM"][locale.languageCode]; + + } class TranslationBaseDelegate extends LocalizationsDelegate { diff --git a/lib/uitl/utils_new.dart b/lib/uitl/utils_new.dart index 0040a1f2..124b3b45 100644 --- a/lib/uitl/utils_new.dart +++ b/lib/uitl/utils_new.dart @@ -1,6 +1,9 @@ import 'dart:ui'; +import 'package:diplomaticquarterapp/theme/colors.dart'; +import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; Decoration appGradient = BoxDecoration( gradient: LinearGradient( @@ -23,6 +26,22 @@ Color getColorFromHex(String hexColor) { return Color(int.parse(hexColor, radix: 16)); } +Widget getNoDataWidget(BuildContext context) { + return Container( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset('assets/images/new/not_found.svg', width: 110.0, height: 110.0), + Container( + margin: EdgeInsets.only(top: 15.0), + child: Text(TranslationBase.of(context).noResultFound, style: TextStyle(fontSize: 14, fontWeight: FontWeight.w400, color: Color(0xFFBABABA)))), + ], + ), + ), + ); +} + spacerVertical(double v) { return Container( height: v, diff --git a/lib/widgets/bottom_navigation/bottom_nav_bar.dart b/lib/widgets/bottom_navigation/bottom_nav_bar.dart index fe82a982..53eb06a2 100644 --- a/lib/widgets/bottom_navigation/bottom_nav_bar.dart +++ b/lib/widgets/bottom_navigation/bottom_nav_bar.dart @@ -65,6 +65,7 @@ class _BottomNavBarState extends State { index: widget.index, currentIndex: 3, name: TranslationBase.of(context).myFamily, + // isDisabled: projectViewModel.isLoginChild, ), if (widget.index == 0) (widget.showHomeIcon) diff --git a/lib/widgets/bottom_navigation/bottom_navigation_item.dart b/lib/widgets/bottom_navigation/bottom_navigation_item.dart index 91aefc75..1515b239 100644 --- a/lib/widgets/bottom_navigation/bottom_navigation_item.dart +++ b/lib/widgets/bottom_navigation/bottom_navigation_item.dart @@ -16,17 +16,11 @@ class BottomNavigationItem extends StatelessWidget { final int index; final int currentIndex; final String name; + final bool isDisabled; - AuthenticatedUserObject authenticatedUserObject = - locator(); + AuthenticatedUserObject authenticatedUserObject = locator(); - BottomNavigationItem( - {this.icon, - this.activeIcon, - this.changeIndex, - this.index, - this.currentIndex, - this.name}); + BottomNavigationItem({this.icon, this.activeIcon, this.changeIndex, this.index, this.currentIndex, this.name, this.isDisabled = false}); @override Widget build(BuildContext context) { @@ -39,7 +33,9 @@ class BottomNavigationItem extends StatelessWidget { child: InkWell( highlightColor: Colors.transparent, splashColor: Colors.transparent, - onTap: () => changeIndex(currentIndex), + onTap: () { + if (!isDisabled) changeIndex(currentIndex); + }, child: currentIndex != 4 ? Column( mainAxisSize: MainAxisSize.min, @@ -49,11 +45,7 @@ class BottomNavigationItem extends StatelessWidget { height: 15, ), Container( - child: Icon(currentIndex == index ? activeIcon : icon, - color: currentIndex == index - ? secondaryColor - : Colors.grey, - size: 22.0), + child: Icon(currentIndex == index ? activeIcon : icon, color: currentIndex == index ? secondaryColor : Colors.grey, size: 22.0), ), SizedBox( height: 2, @@ -61,9 +53,7 @@ class BottomNavigationItem extends StatelessWidget { Texts( name, textAlign: TextAlign.center, - color: currentIndex == index - ? secondaryColor - : Colors.grey, + color: currentIndex == index ? secondaryColor : Colors.grey, fontSize: 11, ), SizedBox( @@ -86,9 +76,7 @@ class BottomNavigationItem extends StatelessWidget { borderRadius: BorderRadius.circular(8), badgeContent: Container( padding: EdgeInsets.all(2.0), - child: Text(model.count.toString(), - style: TextStyle( - color: Colors.white, fontSize: 14.0)), + child: Text(model.count.toString(), style: TextStyle(color: Colors.white, fontSize: 14.0)), ), ), ), @@ -100,12 +88,7 @@ class BottomNavigationItem extends StatelessWidget { height: 15, ), Container( - child: Icon( - currentIndex == index ? activeIcon : icon, - color: currentIndex == index - ? secondaryColor - : Theme.of(context).dividerColor, - size: 22.0), + child: Icon(currentIndex == index ? activeIcon : icon, color: currentIndex == index ? secondaryColor : Theme.of(context).dividerColor, size: 22.0), ), SizedBox( height: 2, @@ -113,9 +96,7 @@ class BottomNavigationItem extends StatelessWidget { Texts( name, textAlign: TextAlign.center, - color: currentIndex == index - ? Theme.of(context).primaryColor - : Colors.grey, + color: currentIndex == index ? Theme.of(context).primaryColor : Colors.grey, fontSize: 11, ), SizedBox( @@ -133,12 +114,7 @@ class BottomNavigationItem extends StatelessWidget { height: 15, ), Container( - child: Icon( - currentIndex == index ? activeIcon : icon, - color: currentIndex == index - ? secondaryColor - : Theme.of(context).dividerColor, - size: 22.0), + child: Icon(currentIndex == index ? activeIcon : icon, color: currentIndex == index ? secondaryColor : isDisabled ? Colors.grey[300] : Theme.of(context).dividerColor, size: 22.0), ), SizedBox( height: 2, @@ -146,9 +122,7 @@ class BottomNavigationItem extends StatelessWidget { Texts( name, textAlign: TextAlign.center, - color: currentIndex == index - ? secondaryColor - : Colors.grey, + color: currentIndex == index ? secondaryColor : isDisabled ? Colors.grey[300] : Colors.grey, fontSize: 11, ), SizedBox( diff --git a/lib/widgets/data_display/medical/doctor_card.dart b/lib/widgets/data_display/medical/doctor_card.dart index e527fd32..47c74182 100644 --- a/lib/widgets/data_display/medical/doctor_card.dart +++ b/lib/widgets/data_display/medical/doctor_card.dart @@ -135,7 +135,7 @@ class DoctorCard extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.end, children: [ Text( - DateUtil.getDayMonthYearDateFormattedLang(date, projectViewModel.isArabic), + DateUtil.getDayMonthYearDateFormatted(date), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12), ), Text( @@ -216,10 +216,10 @@ class DoctorCard extends StatelessWidget { color: Theme.of(context).primaryColor, ), ) - : Icon( + : onTap != null ? Icon( Icons.arrow_forward, color: Theme.of(context).primaryColor, - ), + ) : SizedBox(), ), ), ], diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart index c3a508a8..3f90ad48 100644 --- a/lib/widgets/drawer/app_drawer_widget.dart +++ b/lib/widgets/drawer/app_drawer_widget.dart @@ -20,6 +20,7 @@ import 'package:diplomaticquarterapp/pages/webRTC/call_page.dart'; import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/services/authentication/auth_provider.dart'; import 'package:diplomaticquarterapp/services/family_files/family_files_provider.dart'; +import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/theme/theme_notifier.dart'; import 'package:diplomaticquarterapp/theme/theme_value.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; @@ -328,12 +329,12 @@ class _AppDrawerState extends State { letterSpacing: -0.84, fontSize: 14, projectProvider: projectProvider, - count: notificationCount != null + count: toDoProvider.notificationsCount != 0 ? new Container( padding: EdgeInsets.all(4), margin: EdgeInsets.all(2), decoration: new BoxDecoration( - color: Colors.red, + color: CustomColors.accentColor, borderRadius: BorderRadius.circular(20), ), constraints: BoxConstraints( @@ -341,7 +342,7 @@ class _AppDrawerState extends State { minHeight: 20, ), child: new Text( - notificationCount, + toDoProvider.notificationsCount.toString(), style: new TextStyle( color: Colors.white, fontSize: projectProvider.isArabic ? 8 : 9, @@ -529,7 +530,7 @@ class _AppDrawerState extends State { this.familyFileProvider.silentLoggin(user is AuthenticatedUser ? null : user, mainUser: user is AuthenticatedUser).then((value) { // GifLoaderDialogUtils.hideDialog(context); // Navigator.of(context).pop(); - loginAfter(value, context); + loginAfter(value, context, user is AuthenticatedUser); }).catchError((err) { GifLoaderDialogUtils.hideDialog(context); print(err); @@ -538,9 +539,9 @@ class _AppDrawerState extends State { }); } - loginAfter(result, context) async { + loginAfter(result, context, isMainUser) async { Utils.hideProgressDialog(); - Provider.of(context, listen: false).setPrivilege(privilegeList: result, isLoginChild: true); + Provider.of(context, listen: false).setPrivilege(privilegeList: result, isLoginChild: !isMainUser); result = CheckActivationCode.fromJson(result); var familyFile = await sharedPref.getObject(FAMILY_FILE); @@ -605,12 +606,12 @@ class _AppDrawerState extends State { } getToDoCount() { - toDoProvider.setState(0, true); + toDoProvider.setState(0, true, toDoProvider.notificationsCount); ClinicListService service = new ClinicListService(); service.getActiveAppointmentNo(context).then((res) { print(res['AppointmentActiveNumber']); if (res['MessageStatus'] == 1 && res['AppointmentActiveNumber'] != null) { - toDoProvider.setState(res['AppointmentActiveNumber'], true); + toDoProvider.setState(res['AppointmentActiveNumber'], true, toDoProvider.notificationsCount); } else {} }).catchError((err) { print(err); diff --git a/lib/widgets/new_design/doctor_header.dart b/lib/widgets/new_design/doctor_header.dart index df882a7c..b3b7685a 100644 --- a/lib/widgets/new_design/doctor_header.dart +++ b/lib/widgets/new_design/doctor_header.dart @@ -79,7 +79,7 @@ class DoctorHeader extends StatelessWidget { children: [ if (headerModel.date != null) Text( - DateUtil.getDayMonthYearDateFormattedLang(headerModel.date, projectViewModel.isArabic), + DateUtil.getDayMonthYearDateFormatted(headerModel.date), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12), ), if (headerModel.time != null) @@ -126,7 +126,7 @@ class DoctorHeader extends StatelessWidget { ), SizedBox(width: 6), Text( - "${headerModel.totalReviews} ${TranslationBase.of(context).reviews}", + "${headerModel.totalReviews == null ? 0 : headerModel.totalReviews} ${TranslationBase.of(context).reviews}", style: TextStyle( fontSize: 12, fontWeight: FontWeight.w600, diff --git a/lib/widgets/others/arrow_back.dart b/lib/widgets/others/arrow_back.dart index e384bb7c..ff45083c 100644 --- a/lib/widgets/others/arrow_back.dart +++ b/lib/widgets/others/arrow_back.dart @@ -9,11 +9,11 @@ class ArrowBack extends StatelessWidget { @override Widget build(BuildContext context) { - ProjectViewModel projectViewModel = Provider.of(context); + // ProjectViewModel projectViewModel = Provider.of(context); return GestureDetector( behavior: HitTestBehavior.opaque, onTap: Feedback.wrapForTap(() { - onTap != null ? onTap() : Navigator.pop(context); + onTap != null ? onTap() : Navigator.maybePop(context); }, context), child: Icon( Icons.arrow_back_ios, diff --git a/pubspec.yaml b/pubspec.yaml index c6f7f778..40fbf98c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -241,6 +241,7 @@ flutter: - assets/images/new/mass/ - assets/images/new/bottom_nav/ - assets/images/new/services/ + - assets/images/new/appointment-rating/ fonts: - family: WorkSans