diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 2987d3b..5d74c4d 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -160,6 +160,7 @@ dependencies {
annotationProcessor("com.github.bumptech.glide:compiler:4.16.0")
implementation("com.mapbox.maps:android:11.5.0")
+ implementation("com.mapbox.mapboxsdk:mapbox-sdk-turf:7.3.1")
// implementation("com.mapbox.maps:android:11.4.0")
// AARs
diff --git a/android/app/src/main/kotlin/com/ejada/hmg/penguin/PenguinNavigator.kt b/android/app/src/main/kotlin/com/ejada/hmg/penguin/PenguinNavigator.kt
index b822d67..70889d3 100644
--- a/android/app/src/main/kotlin/com/ejada/hmg/penguin/PenguinNavigator.kt
+++ b/android/app/src/main/kotlin/com/ejada/hmg/penguin/PenguinNavigator.kt
@@ -21,7 +21,7 @@ class PenguinNavigator() {
val postToken = PostToken(clientID, clientKey)
getToken(mContext, postToken, object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) {
- Log.e("navigateTo", "PoiId is+++++++ $PoiId")
+ Log.e("navigateTo", "PoiId is+++++++ $refID")
PlugAndPlaySDK.navigateTo(mContext, refID, object : RefIdDelegate {
override fun onRefByIDSuccess(PoiId: String?) {
diff --git a/assets/images/jpg/report.jpg b/assets/images/jpg/report.jpg
new file mode 100644
index 0000000..5846cd5
Binary files /dev/null and b/assets/images/jpg/report.jpg differ
diff --git a/assets/images/svg/back_top_nav_icon.svg b/assets/images/svg/back_top_nav_icon.svg
new file mode 100644
index 0000000..62bf96b
--- /dev/null
+++ b/assets/images/svg/back_top_nav_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/blood_pressure_icon.svg b/assets/images/svg/blood_pressure_icon.svg
new file mode 100644
index 0000000..0b027ad
--- /dev/null
+++ b/assets/images/svg/blood_pressure_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/blood_sugar_only_icon.svg b/assets/images/svg/blood_sugar_only_icon.svg
new file mode 100644
index 0000000..f81cee8
--- /dev/null
+++ b/assets/images/svg/blood_sugar_only_icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/blood_type.svg b/assets/images/svg/blood_type.svg
new file mode 100644
index 0000000..5aded31
--- /dev/null
+++ b/assets/images/svg/blood_type.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/forward_top_nav_icon.svg b/assets/images/svg/forward_top_nav_icon.svg
new file mode 100644
index 0000000..089161c
--- /dev/null
+++ b/assets/images/svg/forward_top_nav_icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/images/svg/genderInputIcon.svg b/assets/images/svg/genderInputIcon.svg
new file mode 100644
index 0000000..4482ae3
--- /dev/null
+++ b/assets/images/svg/genderInputIcon.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/svg/low_indicator_icon.svg b/assets/images/svg/low_indicator_icon.svg
new file mode 100644
index 0000000..f2ca09f
--- /dev/null
+++ b/assets/images/svg/low_indicator_icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/normal_status_green_icon.svg b/assets/images/svg/normal_status_green_icon.svg
new file mode 100644
index 0000000..b3f2619
--- /dev/null
+++ b/assets/images/svg/normal_status_green_icon.svg
@@ -0,0 +1,7 @@
+
diff --git a/assets/images/svg/send_email_icon.svg b/assets/images/svg/send_email_icon.svg
new file mode 100644
index 0000000..eb8684a
--- /dev/null
+++ b/assets/images/svg/send_email_icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/weight_icon.svg b/assets/images/svg/weight_icon.svg
new file mode 100644
index 0000000..f93c662
--- /dev/null
+++ b/assets/images/svg/weight_icon.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index b8fc7eb..9c1c962 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -408,7 +408,7 @@
"brand": "العلامة التجارية",
"power": "القوة",
"diameter": "القطر",
- "remarks": "ملاحظات",
+ "remarks": "ملاحظات: ",
"activeMedications": "الأدوية النشطة",
"expDate": "تاريخ انتهاء الصلاحية النشط:",
"route": "الطريق",
@@ -525,7 +525,7 @@
"payOnline": "الدفع عبر الإنترنت",
"cancelOrder": "إلغاء الطلب",
"confirmAddress": "تأكيد العنوان ",
- "confirmLocation": "��أكيد الموقع ",
+ "confirmLocation": "أكيد الموقع ",
"conditionsHMG": "الشروط والأحكام ",
"conditions": "الشروط والأحكام لكوم",
"confirmDeleteMsg": "هل أنت متأكد! تريد الحذف ",
@@ -694,11 +694,7 @@
"bikini": "بيكيني",
"totalMinutes": "إجمالي الدقائق",
"feedback": "ملاحظات",
- "send": "أرسل",
- "status": "الحالة",
"likeToHear": "نود سماع ملاحظاتك، ومخاوفك بشأن خدمات الرعاية الصحية وتجربة الخدمات الإلكترونية. يرجى استخدام النموذج أدناه",
- "subject": "الموضوع",
- "message": "رسالة",
"emptySubject": "يرجى إدخال الموضوع",
"emptyMessage": "يرجى إدخال الرسالة",
"selectAttachment": "اختر المرفق",
@@ -877,5 +873,631 @@
"walkin": "زيارة بدون موعد",
"laserClinic": "عيادة الليزر",
"continueString": "يكمل",
- "covid_info": "تجري مستشفيات د. سليمان الحبيب فحص فيروس كورونا المستجد وتصدر شهادات السفر على مدار الساعة، طوال أيام الأسبوع، وبسرعة ودقة عالية. يمكن للراغبين في الاستفادة من هذه الخدمة زيارة أحد فروع مستشفيات د. سليمان الحبيب وإجراء فحص كورونا خلال بضع دقائق والحصول على النتائج خلال عدة ساعات خدمة فحص فيروس كورونا Covid 19 بتقنية PCR للكشف عن الفيروس وفقاً لأعلى المعايير العالمية وبأحدث أجهزة RT-PCR عالية الدقة (GeneXpert الأمريكي وغيره)، وهي طرق معتمدة من قبل هيئة الغذاء والدواء وكذلك من قبل المركز السعودي للوقاية من الأمراض المُعدية"
-}
\ No newline at end of file
+ "covid_info": "تجري مستشفيات د. سليمان الحبيب فحص فيروس كورونا المستجد وتصدر شهادات السفر على مدار الساعة، طوال أيام الأسبوع، وبسرعة ودقة عالية. يمكن للراغبين في الاستفادة من هذه الخدمة زيارة أحد فروع مستشفيات د. سليمان الحبيب وإجراء فحص كورونا خلال بضع دقائق والحصول على النتائج خلال عدة ساعات خدمة فحص فيروس كورونا Covid 19 بتقنية PCR للكشف عن الفيروس وفقاً لأعلى المعايير العالمية وبأحدث أجهزة RT-PCR عالية الدقة (GeneXpert الأمريكي وغيره)، وهي طرق معتمدة من قبل هيئة الغذاء والدواء وكذلك من قبل المركز السعودي للوقاية من الأمراض المُعدية",
+
+ "appointmentDetails": "تفاصيل الموعد",
+ "checkingDoctorAvailability": "جاري التحقق من توفر الطبيب...",
+ "cancellingAppointmentPleaseWait": "جاري إلغاء الموعد، يرجى الانتظار...",
+ "appointmentCancelledSuccessfully": "تم إلغاء الموعد بنجاح",
+ "notConfirmed": "غير مؤكد",
+ "appointmentStatus": "حالة الموعد",
+ "doctorWillCallYou": "سيتصل بك الطبيب عندما يقترب موعدك.",
+ "getDirections": "الحصول على الاتجاهات",
+ "notifyMeBeforeAppointment": "أبلغني قبل الموعد",
+ "fetchingLabResults": "جاري جلب نتائج المختبر...",
+ "fetchingRadiologyResults": "جاري جلب نتائج الأشعة...",
+ "fetchingAppointmentPrescriptions": "جاري جلب وصفات الموعد...",
+ "noPrescriptionsForAppointment": "ليس لديك أي وصفات طبية لهذا الموعد.",
+ "amountBeforeTax": "المبلغ قبل الضريبة",
+ "rebookAppointment": "إعادة حجز الموعد",
+ "fetchingDoctorSchedulePleaseWait": "جاري جلب جدول الطبيب، يرجى الانتظار...",
+ "pickADate": "اختر تاريخاً",
+ "confirmingAppointmentPleaseWait": "جاري تأكيد الموعد، يرجى الانتظار...",
+ "appointmentConfirmedSuccessfully": "تم تأكيد الموعد بنجاح",
+ "appointmentPayment": "دفع الموعد",
+ "checkingPaymentStatusPleaseWait": "جاري التحقق من حالة الدفع، يرجى الانتظار...",
+ "paymentFailedPleaseTryAgain": "فشل الدفع! يرجى المحاولة مرة أخرى.",
+ "appointmentCheckIn": "تسجيل حضور الموعد",
+ "insuranceExpiredOrInactive": "التأمين منتهي الصلاحية أو غير نشط",
+ "totalAmountToPay": "المبلغ الإجمالي المستحق",
+ "vat15": "ضريبة القيمة المضافة 15%",
+ "general": "عام",
+ "liveCare": "لايف كير",
+ "recentVisits": "الزيارات الأخيرة",
+ "searchByClinic": "البحث حسب العيادة",
+ "tapToSelectClinic": "انقر لاختيار العيادة",
+ "searchByDoctor": "البحث حسب الطبيب",
+ "tapToSelect": "انقر للاختيار",
+ "searchByRegion": "البحث حسب المنطقة",
+ "centralRegion": "المنطقة الوسطى",
+ "immediateConsultation": "استشارة فورية",
+ "scheduledConsultation": "استشارة مجدولة",
+ "pharmaLiveCare": "لايف كير الصيدلية",
+ "notSureHelpMeChooseClinic": "غير متأكد؟ ساعدني في اختيار عيادة!",
+ "mentionYourSymptomsAndFindDoctors": "اذكر أعراضك واعثر على قائمة الأطباء وفقاً لذلك",
+ "immediateService": "خدمة فورية",
+ "noNeedToWaitGetMedicalConsultation": "لا حاجة للانتظار، ستحصل على استشارة طبية فورية عبر مكالمة فيديو",
+ "noVisitRequired": "لا حاجة للزيارة",
+ "doctorWillContact": "سيتصل بك الطبيب",
+ "specialisedDoctorWillContactYou": "سيتصل بك طبيب متخصص وسيكون قادراً على الاطلاع على تاريخك الطبي",
+ "freeMedicineDelivery": "توصيل مجاني للأدوية",
+ "offersFreeMedicineDelivery": "يوفر توصيل مجاني للأدوية لموعد لايف كير",
+ "dentalChiefComplaints": "الشكاوى الرئيسة للأسنان",
+ "viewAvailableAppointments": "عرض المواعيد المتاحة",
+ "doctorProfile": "الملف للطبيب",
+ "waitingAppointment": "موعد الانتظار",
+ "hospitalInformation": "معلومات المستشفى",
+ "fetchingAppointmentShare": "جاري جلب تفاصيل الموعد...",
+ "bookingYourAppointment": "جاري حجز موعدك...",
+ "selectLiveCareClinic": "اختر عيادة لايف كير",
+ "checkingForExistingDentalPlan": "جاري التحقق من وجود خطة أسنان حالية، يرجى الانتظار...",
+ "dentalTreatmentPlan": "خطة علاج الأسنان",
+ "youHaveExistingTreatmentPlan": "لديك خطة علاج حالية: ",
+ "mins": "دقيقة",
+ "totalTimeRequired": "إجمالي الوقت المطلوب",
+ "wouldYouLikeToContinue": "هل تريد متابعتها؟",
+ "chooseDoctor": "اختر الطبيب",
+ "viewNearestAppos": "عرض أقرب المواعيد المتاحة",
+ "noDoctorFound": "لم يتم العثور على طبيب مطابق للمعايير المحددة...",
+ "yesPleasImInAHurry": "نعم من فضلك، أنا في عجلة من أمري",
+ "fetchingFeesPleaseWait": "جاري جلب الرسوم، يرجى الانتظار...",
+ "noThanksPhysicalVisit": "لا، شكراً. أفضل الزيارة الشخصية",
+ "offline": "غير متصل",
+ "videoCall": "مكالمة فيديو",
+ "liveVideoCallWithHMGDoctors": "مكالمة فيديو مباشرة مع أطباء مجموعة الحبيب الطبية",
+ "audioCall": "مكالمة صوتية",
+ "phoneCall": "مكالمة هاتفية",
+ "livePhoneCallWithHMGDoctors": "مكالمة هاتفية مباشرة مع أطباء مجموعة الحبيب الطبية",
+ "reviewLiveCareRequest": "مراجعة طلب لايف كير",
+ "selectedLiveCareType": "نوع لايف كير المحدد",
+ "selectLiveCareCallType": "اختر نوع مكالمة لايف كير",
+ "confirmingLiveCareRequest": "جاري تأكيد طلب لايف كير، يرجى الانتظار...",
+ "unknownErrorOccurred": "حدث خطأ غير معروف...",
+ "liveCarePermissionsMessage": "يتطلب لايف كير أذونات الكاميرا والميكروفون والموقع والإشعارات لتمكين الاستشارة الافتراضية بين المريض والطبيب، يرجى السماح بهذه الأذونات للمتابعة.",
+ "liveCarePayment": "دفع لايف كير",
+ "mada": "مدى",
+ "visaOrMastercard": "فيزا أو ماستركارد",
+ "tamara": "تمارا",
+ "fetchingApplePayDetails": "جاري جلب تفاصيل Apple Pay، يرجى الانتظار...",
+ "liveCarePendingRequest": "لايف كير حية معلق",
+ "callLiveCareSupport": "اتصل بدعم لايف كير",
+ "whatIsWaitingAppointment": "ما هو موعد الانتظار؟",
+ "waitingAppointmentsFeature": "تتيح لك ميزة مواعيد الانتظار حجز موعد أثناء تواجدك داخل مبنى المستشفى، وفي حال عدم توفر فتحة متاحة في جدول الطبيب.",
+ "appointmentWithDoctorConfirmed": "الموعد مع الطبيب مؤكد، ولكن وقت الدخول غير محدد.",
+ "paymentWithinTenMinutes": "ملاحظة: يجب عليك الدفع خلال 10 دقائق من الحجز، وإلا سيتم إلغاء موعدك تلقائياً",
+ "liveLocation": "الموقع المباشر",
+ "verifyYourLocationAtHospital": "تحقق من موقعك في المستشفى لتسجيل الحضور",
+ "error": "خطأ",
+ "ensureWithinHospitalLocation": "يرجى التأكد من أنك داخل موقع المستشفى لإجراء تسجيل الحضور عبر الإنترنت.",
+ "nfcNearFieldCommunication": "NFC (الاتصال قريب المدى)",
+ "scanPhoneViaNFC": "امسح هاتفك عبر لوحة NFC لتسجيل الحضور",
+ "qrCode": "رمز QR",
+ "scanQRCodeToCheckIn": "امسح رمز QR بالكاميرا لتسجيل الحضور",
+ "processingCheckIn": "جاري معالجة تسجيل الحضور...",
+ "bookingWaitingAppointment": "جاري حجز موعد الانتظار، يرجى الانتظار...",
+ "enterValidIDorIqama": "يرجى إدخال رقم هوية وطنية أو رقم ملف صالح",
+ "selectAppointment": "حدد الموعد",
+ "rebookSameDoctor": "أعد الحجز مع نفس الطبيب",
+ "queueing": "قائمة الانتظار",
+ "inQueue": "في قائمة الانتظار",
+ "yourTurn": "دورك",
+ "halaFirstName": "هلا {firstName}!!!",
+ "thankYouForPatience": "شكراً لصبرك، هذا هو رقم قائمة الانتظار الخاص بك.",
+ "servingNow": "يُخدم الآن",
+ "callForVitalSigns": "نداء للعلامات الحيوية",
+ "callForDoctor": "نداء للطبيب",
+ "thingsToAskDoctor": "أشياء تسأل طبيبك عنها اليوم",
+ "improveOverallHealth": "ماذا يمكنني أن أفعل لتحسين صحتي العامة؟",
+ "routineScreenings": "هل هناك أي فحوصات روتينية يجب أن أجريها؟",
+ "whatIsThisMedicationFor": "لماذا هذا الدواء؟",
+ "sideEffectsToKnow": "هل هناك أي آثار جانبية يجب أن أعرفها؟",
+ "whenFollowUp": "متى يجب أن أعود للمتابعة؟",
+ "goToHomepage": "الذهاب إلى الصفحة الرئيسية",
+ "appointmentsList": "قائمة المواعيد",
+ "allAppt": "جميع المواعيد",
+ "upcoming": "القادمة",
+ "completed": "المكتملة",
+ "noAppointmentsYet": "ليس لديك أي مواعيد بعد.",
+ "viewProfile": "عرض الملف الشخصي",
+ "choosePreferredHospitalForService": "اختر المستشفى المفضل لديك للخدمة",
+ "noHospitalsFound": "لم يتم العثور على مستشفيات",
+ "cancelOrderConfirmation": "هل أنت متأكد أنك تريد إلغاء هذا الطلب؟",
+ "orderCancelledSuccessfully": "تم إلغاء الطلب بنجاح",
+ "requestID": "معرف الطلب:",
+ "noCMCOrdersYet": "ليس لديك أي طلبات فحص شامل بعد.",
+ "cmcOrders": "طلبات الفحص الشامل",
+ "summary": "الملخص",
+ "selectedService": "الخدمة المحددة",
+ "requestSubmittedSuccessfully": "تم إرسال طلبك بنجاح.",
+ "hereIsYourRequestNumber": "هذا هو رقم طلبك #: ",
+ "pleaseSelectHospitalToContinue": "يرجى اختيار مستشفى للمتابعة",
+ "confirmSubmitRequest": "هل أنت متأكد أنك تريد إرسال هذا الطلب؟",
+ "pendingOrderWait": "لديك طلب معلق. يرجى الانتظار حتى تتم معالجته.",
+ "noServicesAvailable": "لا توجد خدمات متاحة",
+ "selectAService": "اختر خدمة",
+ "comprehensiveCheckup": "الفحص الشامل",
+ "viewNearestHMGLocations": "عرض أقرب مواقع مجموعة الحبيب الطبية",
+ "provideFeedbackOnServices": "قدم ملاحظاتك على خدماتنا",
+ "liveChatWithHMG": "خيار الدردشة المباشرة مع مجموعة الحبيب الطبية",
+ "send": "إرسال",
+ "status": "الحالة",
+ "sendingFeedback": "جاري إرسال الملاحظات...",
+ "selectFeedbackType": "اختر نوع الملاحظات",
+ "loadingAppointmentsList": "جاري تحميل قائمة المواعيد...",
+ "noAppointmentsForFeedback": "ليس لديك أي مواعيد لتقديم ملاحظات عنها.",
+ "selectedAppointment": "الموعد المحدد:",
+ "subject": "الموضوع",
+ "enterSubjectHere": "أدخل الموضوع هنا",
+ "message": "الرسالة",
+ "enterMessageHere": "أدخل الرسالة هنا",
+ "filesSelected": "تم تحديد {count} ملف(ات)",
+ "otherDetails": "تفاصيل أخرى",
+ "medicalReport": "التقرير الطبي",
+ "medicalReportNumber": "التقرير الطبي {number}",
+ "patientIsInsured": "المريض مؤمن عليه",
+ "insuranceDocument": "وثيقة التأمين",
+ "selectBranch": "اختر الفرع",
+ "patientInformation": "معلومات المريض",
+ "patientLocation": "أين يتواجد المريض",
+ "identificationNumber": "رقم الهوية",
+ "enterIdentificationNumber": "أدخل رقم الهوية*",
+ "patientName": "اسم المريض*",
+ "referralRequesterInformation": "معلومات مقدم طلب الإحالة",
+ "enterReferralRequesterName": "أدخل اسم مقدم طلب الإحالة*",
+ "requesterName": "اسم مقدم الطلب",
+ "relationship": "العلاقة",
+ "selectRelation": "اختر العلاقة",
+ "otherName": "اسم آخر",
+ "otherNameHint": "اسم آخر*",
+ "requesterNameRequired": "اسم مقدم طلب الإحالة مطلوب",
+ "selectRelationshipRequired": "يرجى اختيار العلاقة",
+ "otherRelationshipNameRequired": "اسم العلاقة الأخرى مطلوب",
+ "identificationNumberRequired": "رقم الهوية مطلوب",
+ "patientNameRequired": "اسم المريض مطلوب",
+ "enterPatientPhoneRequired": "يرجى إدخال رقم هاتف المريض",
+ "selectPatientCityRequired": "يرجى اختيار مدينة المريض",
+ "medicalReportRequired": "مطلوب تقرير طبي واحد على الأقل",
+ "selectBranchRequired": "يرجى اختيار الفرع",
+ "insuranceDocumentRequired": "وثيقة التأمين مطلوبة للمرضى المؤمن عليهم",
+ "searchResult": "نتيجة البحث",
+ "referralNo": "رقم الإحالة {number}",
+ "eReferral": "الإحالة الإلكترونية",
+ "referralCreatedSuccessfully": "تم إنشاء إحالتك بنجاح.",
+ "hereIsYourReferralNumber": "هذا هو رقم الإحالة الخاص بك #: ",
+ "searchEReferral": "البحث عن إحالة إلكترونية",
+ "enterRequiredInfoToSearch": "يرجى إدخال المعلومات المطلوبة للبحث عن إحالة إلكترونية",
+ "selectPickupDirection": "اختر اتجاه الاستلام",
+ "selectDirection": "اختر الاتجاه",
+ "toHospital": "إلى المستشفى",
+ "fromHospital": "من المستشفى",
+ "selectWay": "اختر الطريقة",
+ "oneWay": "اتجاه واحد",
+ "twoWay": "اتجاهين",
+ "selectPickupDetails": "اختر تفاصيل الاستلام",
+ "pleaseSelectDetailsOfPickup": " يرجى تحديد تفاصيل الاستلام",
+ "selectDetails": "اختر التفاصيل",
+ "work": "العمل",
+ "pick": "استلام",
+ "insideTheHome": "داخل المنزل",
+ "haveAnyAppointment": "هل لديك أي موعد",
+ "amountPaidAtHospital": "سيتم دفع المبلغ في المستشفى",
+ "submitRequest": "إرسال الطلب",
+ "enterPickupLocationManually": "أدخل موقع الاستلام يدوياً",
+ "enterPickupLocation": "أدخل موقع الاستلام",
+ "trackingDetails": "تفاصيل التتبع",
+ "cancelRequest": "إلغاء الطلب",
+ "shareLocationWhatsapp": "مشاركة موقعك المباشر على واتساب",
+ "pleaseWaitForCall": "يرجى انتظار المكالمة",
+ "toHospitalLower": "إلى المستشفى",
+ "contact": "اتصال",
+ "failed": "فشل",
+ "confirmationCall": "مكالمة التأكيد",
+ "pickupFromHome": "الاستلام من المنزل",
+ "onTheWayToHospital": " في الطريق إلى المستشفى",
+ "arrivedAtHospital": "وصل إلى المستشفى",
+ "orderCancel": "إلغاء الطلب",
+ "emergencyCheckIn": "تسجيل الطوارئ الإلكتروني",
+ "erOnlineCheckInDescription": "تتيح هذه الخدمة للمرضى تسجيل موعد الطوارئ قبل الوصول.",
+ "erOnlineCheckInSuccess": "تم تسجيل وصول الطوارئ بنجاح. الرجاء التوجه إلى منطقة الانتظار.",
+ "erOnlineCheckInError": "حدث خطأ غير متوقع أثناء عملية التسجيل. يرجى التواصل مع الدعم.",
+ "fetchingHospitalsList": "جاري جلب قائمة المستشفيات...",
+ "fetchingPaymentInformation": "جاري جلب معلومات الدفع...",
+ "erVisitDetails": "تفاصيل زيارة الطوارئ",
+ "erClinic": "عيادة الطوارئ",
+ "vatWithAmount": "الضريبة 15% ({amount})",
+ "erAppointmentBookedSuccess": "تم حجز موعدك بنجاح. يرجى إتمام إجراءات تسجيل الوصول عند وصولك إلى المستشفى.",
+ "underProcessing": "قيد المعالجة",
+ "canceledByPatient": "ملغى بواسطة المريض",
+ "rapidResponseTeam": "فريق الاستجابة السريع",
+ "allFacilities": "جميع المرافق",
+ "selectLocation": "اختر الموقع",
+ "pleaseSelectTheLocation": "يرجى اختيار الموقع",
+ "viewLocationGoogleMaps": "عرض الموقع على خرائط جوجل",
+ "callAmbulance": "استدعاء سيارة إسعاف",
+ "requestAmbulanceInEmergency": "طلب سيارة إسعاف في حالة الطوارئ من المنزل أو المستشفى",
+ "confirmation": "تأكيد",
+ "areYouSureYouWantToCallAmbulance": "هل أنت متأكد أنك تريد استدعاء سيارة إسعاف؟",
+ "getDetailsOfNearestBranch": "احصل على تفاصيل أقرب فرع بما في ذلك الاتجاهات",
+ "areYouSureYouWantToCallRRT": "هل أنت متأكد أنك تريد استدعاء فريق الاستجابة السريعة (RRT)؟",
+ "priorERCheckInToSkipLine": "تسجيل الوصول المسبق في الطوارئ لتجاوز الطابور والدفع في الاستقبال.",
+ "areYouSureYouWantToMakeERCheckIn": "هل أنت متأكد أنك تريد إجراء تسجيل وصول الطوارئ؟",
+ "checkingYourERAppointmentStatus": "جاري التحقق من حالة موعد الطوارئ الخاص بك...",
+ "transportOptions": "خيارات النقل",
+ "selectHospitalForAdvancePayment": "يرجى اختيار المستشفى الذي ترغب في دفع مبلغ مقدم له.",
+ "recharge": "إعادة الشحن",
+ "activityLevel": "مستوى النشاط",
+ "selectActivityLevel": "حدد مستوى النشاط",
+ "caloriesPerDay": "السعرات الحرارية في اليوم الواحد",
+ "dietType": "نوع النظام الغذائي",
+ "selectDietType": "حدد نوع النظام الغذائي",
+ "bodyFrameSize": "حجم إطار الجسم",
+ "selectBodyFrameSize": "حدد حجم إطار الجسم",
+ "averageCycleLength": "متوسط طول الدورة الشهرية (عادةً 28 يومًا)",
+ "averageLutealPhase": "متوسط طول المرحلة الأصفرية (عادةً 14 يومًا)",
+ "convert": "يتحول",
+ "calculate": "احسب",
+ "healthCalculators": "حاسبات الصحة",
+ "healthConverters": "محولات الصحة",
+ "generalHealth": "الصحة العامة",
+ "relatedToBMICalories": "متعلق بمؤشر كتلة الجسم والسعرات الحرارية ودهون الجسم وما إلى ذلك للبقاء على اطلاع دائم بصحتك.",
+ "selectCalculator": "اختر الآلة الحاسبة",
+ "womensHealth": "صحة المرأة",
+ "relatedToPeriodsOvulation": "متعلق بالدورة الشهرية والإباضة والحمل ومواضيع أخرى.",
+ "bloodSugar": "سكر الدم",
+ "trackYourGlucoseLevels": "تتبع مستويات الجلوكوز لديك، وفهم الاتجاهات، واحصل على رؤى مخصصة لصحة أفضل.",
+ "bloodCholesterol": "كوليسترول الدم",
+ "monitorCholesterolLevels": "راقب مستويات الكوليسترول، وقيّم مخاطر صحة القلب، واتخذ خطوات استباقية للرفاهية.",
+ "triglyceridesFatBlood": "الدهون الثلاثية في الدم",
+ "understandTriglyceridesImpact": "افهم تأثير الدهون الثلاثية على صحة القلب مع رؤى مخصصة وتوصيات الخبراء.",
+ "bmiCalculator": "حاسبة\nمؤشر كتلة الجسم",
+ "caloriesCalculator": "حاسبة\nالسعرات الحرارية",
+ "bmrCalculator": "حاسبة\nمعدل الأيض الأساسي",
+ "idealBodyWeight": "الوزن المثالي\nللجسم",
+ "bodyFatCalculator": "حاسبة\nدهون الجسم",
+ "carbsProteinFat": "الكربوهيدرات\nالبروتين والدهون",
+ "ovulationPeriod": "فترة\nالإباضة",
+ "deliveryDueDate": "تاريخ الولادة\nالمتوقع",
+ "low": "منخفض",
+ "preDiabetic": "ما قبل السكري",
+ "high": "مرتفع",
+ "elevated": "مرتفع قليلاً",
+ "recorded": "مسجل",
+ "noRecordsYet": "لا توجد سجلات بعد",
+ "lastRecord": "آخر سجل",
+ "addBloodSugar": "إضافة سكر الدم",
+ "addBloodPressure": "إضافة ضغط الدم",
+ "addWeight": "إضافة الوزن",
+ "bloodSugarDataSavedSuccessfully": "تم حفظ بيانات سكر الدم بنجاح",
+ "bloodPressureDataSavedSuccessfully": "تم حفظ بيانات ضغط الدم بنجاح",
+ "weightDataSavedSuccessfully": "تم حفظ بيانات الوزن بنجاح",
+ "pleaseWait": "يرجى الانتظار",
+ "selectUnit": "اختر الوحدة",
+ "selectMeasureTime": "اختر وقت القياس",
+ "selectArm": "اختر الذراع",
+ "enterBloodSugar": "أدخل سكر الدم",
+ "enterSystolicValue": "أدخل القيمة الانقباضية",
+ "enterDiastolicValue": "أدخل القيمة الانبساطية",
+ "enterWeight": "أدخل الوزن",
+ "selectDuration": "اختر المدة",
+ "systolic": "الانقباضي",
+ "diastolic": "الانبساطي",
+ "sendReportByEmail": "إرسال التقرير عبر البريد الإلكتروني",
+ "enterYourEmailToReceiveReport": "أدخل عنوان بريدك الإلكتروني لاستلام التقرير",
+ "addNewRecord": "إضافة سجل جديد",
+ "healthTrackers": "متتبعات الصحة",
+ "monitorBloodPressureLevels": "راقب مستويات ضغط الدم لديك، وتتبع القراءات الانقباضية والانبساطية، وحافظ على صحة قلبك.",
+ "trackWeightProgress": "تتبع تقدم وزنك، وضع الأهداف، وحافظ على كتلة جسم صحية من أجل العافية الشاملة.",
+ "bookAppointment": "حجز\nموعد",
+ "completeCheckup": "الفحص الشامل",
+ "indoorNavigation": "الملاحة الداخلية",
+ "eReferralServices": "خدمات الإحالة الإلكترونية",
+ "bloodDonation": "التبرع بالدم",
+ "dailyWaterMonitor": "مراقب الماء اليومي",
+ "fetchingYourWaterIntakeDetails": "جاري جلب تفاصيل استهلاك الماء الخاص بك.",
+ "healthCalculatorsServices": "حاسبات\nالصحة",
+ "healthConvertersServices": "محولات\nالصحة",
+ "smartWatchesServices": "الساعات\nالذكية",
+ "exploreServices": "استكشف الخدمات",
+ "medicalAndCareServices": "الخدمات الطبية والرعاية",
+ "hmgServices": "خدمات مجموعة الحبيب الطبية",
+ "personalServices": "الخدمات الشخصية",
+ "habibWallet": "محفظة الحبيب",
+ "loginToViewWalletBalance": "سجل الدخول لعرض رصيد محفظتك",
+ "recharge": "إعادة الشحن",
+ "loginToViewMedicalFile": "سجل الدخول لعرض ملفك الطبي",
+ "addMember": "إضافة عضو",
+ "addFamilyMember": "إضافة فرد من العائلة",
+ "pleaseFillBelowFieldToAddNewFamilyMember": "يرجى ملء الحقل أدناه لإضافة فرد جديد من العائلة إلى ملفك الشخصي",
+ "healthTools": "أدوات الصحة",
+ "supportServices": "خدمات الدعم",
+ "virtualTour": "جولة افتراضية",
+ "carParking": "موقف السيارات",
+ "latestNews": "آخر الأخبار",
+ "hmgContact": "اتصل بمجموعة الحبيب الطبية",
+ "durationCannotExceed90": "لا يجوز أن تتجاوز المدة 90 دقيقة",
+ "unexpectedError": "حدث خطأ غير متوقع",
+ "gettingAmbulanceTransportOption": "جاري الحصول على خيارات نقل الإسعاف",
+ "fetchingAppointment": "جاري جلب الموعد",
+ "doYouWantToCancelTheRequest": "هل تريد إلغاء الطلب",
+ "cancellingRequest": "جاري إلغاء الطلب",
+ "fetchingTermsAndConditions": "جاري جلب الشروط والأحكام",
+ "selectLocationPrescriptionDelivery": "يرجى تحديد موقع توصيل الوصفة الطبية",
+ "noRadiologyOrders": "لم يتم العثور على أي طلبات تصوير شعاعي",
+ "ageIsRequired": "العمر مطلوب",
+ "invalidAge": "العمر غير صالح",
+ "ageMustBeBetween11And120": "يجب أن يكون العمر بين 11 و 120",
+ "heightIsRequired": "الطول مطلوب",
+ "invalidHeight": "الطول غير صالح",
+ "weightIsRequired": "الوزن مطلوب",
+ "invalidWeight": "الوزن غير صالح",
+ "timeToDrinkWater": "حان وقت شرب الماء! 💧",
+ "stayHydratedDrinkWater": "ابق رطبًا! اشرب {amount} مل من الماء.",
+ "visitPharmacyOnline": "زيارة الصيدلة على الانترنت",
+ "howAreYouFeelingToday": "كيف حالك اليوم؟",
+ "checkYourSymptomsWithScale": "تحقق من أعراضك باستخدام ذا المقياس",
+ "checkYourSymptoms": "تحقق من أعراضك",
+ "noUpcomingAppointmentPleaseBook": "ليس لديك أي مواعيد قادمة. يرجى حجز موعد",
+ "youHaveEROnlineCheckInRequest": "لديك طلب تسجيل وصول عبر الإنترنت للطوارئ",
+ "quickLinks": "روابط سريعة",
+ "viewMedicalFileLandingPage": "عرض الملف الطبي",
+ "immediateLiveCareRequest": "طلب LiveCare الفوري",
+ "yourTurnIsAfterPatients": "دورك بعد {count} مريض.",
+ "dontHaveHHCOrders": "ليس لديك أي أوامر رعاية صحية منزلية حتى الآن.",
+ "hhcOrders": "أوامر الرعاية الصحية المنزلية",
+ "requestedServices": "الخدمات المطلوبة",
+ "selectServices": "اختر الخدمات",
+ "selectedServices": "الخدمات المختارة",
+ "createNewRequest": "إنشاء طلب جديد",
+ "youHaveNoPendingRequests": "ليس لديك أي طلبات معلقة.",
+ "noInsuranceDataFound": "لم يتم العثور على بيانات التأمين...",
+ "noInsuranceUpdateRequest": "لم يتم العثور على أي طلبات لتحديث بيانات التأمين.",
+ "policyNumberInsurancePage": "الوثيقة: {number}",
+ "insuranceExpired": "التأمين منتهي الصلاحية",
+ "insuranceActive": "التأمين نشط",
+ "patientCardID": "رقم بطاقة المريض: {id}",
+ "noInsuranceApprovals": "لم تحصل على أي موافقات تأمينية حتى الآن.",
+ "noInsuranceWithHMG": "ليس لديك تأمين مسجل لدى مجموعة حبيب الطبية.",
+ "referenceRange": "النطاق المرجعي",
+ "downloadReport": "تنزيل التقرير",
+ "generatingReport": "جارٍ إنشاء التقرير، يرجى الانتظار...",
+ "noLabResults": "ليس لديك أي نتائج مختبرية حتى الآن.",
+ "labResultDetails": "تفاصيل نتائج المختبر",
+ "resultOf": "نتيجة",
+ "whatIsThisResult": "ما هي هذه النتيجة؟",
+ "lastTested": "آخر اختبار",
+ "byVisit": "حسب الزيارة",
+ "byTest": "حسب التحليل",
+ "results": "نتائج",
+ "viewResults": "عرض النتائج",
+ "rebook": "إعادة الحجز",
+ "noOphthalmologyAppointments": "لم يتم العثور على أي مواعيد في قسم طب العيون...",
+ "noVitalSignsRecordedYet": "لا توجد علامات حيوية مسجلة بعد",
+ "appointmentsAndVisits": "المواعيد والزيارات",
+ "labAndRadiology": "المختبر والأشعة",
+ "activeMedicationsAndPrescriptions": "الأدوية النشطة والوصفات الطبية",
+ "allPrescriptions": "جميع الوصفات",
+ "allMedications": "جميع الأدوية",
+ "youDontHaveAnyPrescriptionsYet": "ليس لديك أي وصفات طبية بعد.",
+ "youDontHaveAnyCompletedVisitsYet": "ليس لديك أي زيارات مكتملة بعد",
+ "others": "أخرى",
+ "allergyInfo": "معلومات الحساسية",
+ "vaccineInfo": "معلومات اللقاحات",
+ "updateInsuranceInfo": "تحديث التأمين",
+ "myInvoicesList": "قائمة فواتيري",
+ "ancillaryOrdersList": "قائمة الطلبات المساعدة",
+ "youDontHaveAnySickLeavesYet": "ليس لديك أي إجازات مرضية بعد.",
+ "medicalReports": "التقارير الطبية",
+ "sickLeaveReport": "تقرير الإجازة المرضية",
+ "weightTracker": "متتبع الوزن",
+ "askYourDoctor": "اسأل طبيبك",
+ "internetPairing": "الاقتران بالإنترنت",
+ "requested": "مطلوب",
+ "youDontHaveAnyMedicalReportsYet": "ليس لديك أي تقارير طبية بعد.",
+ "requestMedicalReport": "طلب تقرير طبي",
+ "youDoNotHaveAnyAppointmentsToRequestMedicalReport": "ليس لديك أي مواعيد لطلب تقرير طبي.",
+ "areYouSureYouWantToRequestMedicalReport": "هل أنت متأكد أنك تريد طلب تقرير طبي لهذا الموعد؟",
+ "yourMedicalReportRequestSubmittedSuccessfully": "تم إرسال طلب التقرير الطبي بنجاح.",
+ "monthlyHealthSummaryReportDisclaimer": "يعكس تقرير الملخص الصحي الشهري هذا المؤشرات الصحية ونتائج التحليل لأحدث الزيارات. يرجى ملاحظة أن هذا سيتم إرساله تلقائيًا من النظام ولا يعتبر تقريرًا رسميًا لذا لا ينبغي اتخاذ أي قرار طبي بناءً عليه",
+ "updatingMonthlyReportStatus": "جاري تحديث حالة التقرير الشهري...",
+ "monthlyReportStatusUpdatedSuccessfully": "تم تحديث حالة التقرير الشهري بنجاح",
+ "whoCanViewMyMedicalFile": "من يمكنه عرض ملفي الطبي؟",
+ "acceptedYourRequestToBeYourFamilyMember": "{status} طلبك لتكون فردًا من عائلتك",
+ "canViewYourFile": "يمكنه عرض ملفك",
+ "hasARequestPendingToBeYourFamilyMember": "لديه طلب {status} ليكون فردًا من عائلتك",
+ "wantsToAddYouAsTheirFamilyMember": "يريد إضافتك كفرد من عائلته",
+ "rejectedYourRequestToBeYourFamilyMember": "{status} طلبك لتكون فردًا من عائلتك",
+ "rejectedYourFamilyMemberRequest": "{status} طلب فرد عائلتك",
+ "notAvailable": "غير متاح",
+ "selectAProfile": "الرجاء تحديد ملف تعريف",
+ "switchFamilyFile": "قم بالتبديل من قائمة الملفات الطبية أدناه",
+ "medicalFiles": "الملفات الطبية",
+ "addANewFamilyMember": "إضافة فرد جديد من العائلة",
+ "viewInvoiceDetails": "عرض تفاصيل الفاتورة",
+ "outPatient": "مريض خارجي",
+ "invoiceDetails": "تفاصيل الفاتورة",
+ "sendingEmailPleaseWait": "جاري إرسال ال��ريد الإلكتروني، يرجى الانتظار...",
+ "emailSentSuccessfullyMessage": "تم إرسال البريد الإلكتروني بنجاح.",
+ "discount": "خصم",
+ "paid": "مدفوع",
+ "fetchingInvoiceDetails": "جارٍ جلب تفاصيل الفاتورة، يرجى الانتظار...",
+ "scanQRCode": "مسح رمز الاستجابة السريعة",
+ "parkingSlotDetails": "تفاصيل موقف السيارة",
+ "slotNumber": "رقم الموقف: {code}",
+ "basement": "الطابق: {description}",
+ "parkingDate": "التاريخ: {date}",
+ "parkedSince": "متوقف منذ: {time}",
+ "resetDirection": "إعادة تعيين الاتجاه",
+ "noPrescriptionOrdersYet": "ليس لديك أي طلبات وصفات طبية حتى الآن.",
+ "fetchingPrescriptionPDFPleaseWait": "جاري جلب ملف الوصفة الطبية، يرجى الانتظار...",
+ "ratingValue": "التقييم: {rating}",
+ "downloadPrescription": "تحميل الوصفة الطبية",
+ "fetchingPrescriptionDetails": "جاري جلب تفاصيل الوصفة الطبية...",
+ "switchBackFamilyFile": "العودة إلى ملف العائلة",
+ "profileAndSettings": "الملف الشخصي والإعدادات",
+ "quickActions": "إجراءات سريعة",
+ "notificationsSettings": "إعدادات الإشعارات",
+ "touchIDFaceIDServices": "خدمات Touch ID / Face ID",
+ "personalInformation": "المعلومات الشخصية",
+ "updateEmailAddress": "تحديث عنوان البريد الإلكتروني",
+ "helpAndSupport": "المساعدة والدعم",
+ "permissionsProfile": "الأذونات",
+ "privacyPolicy": "سياسة الخصوصية",
+ "deactivateAccount": "إلغاء تنشيط الحساب",
+ "ageYearsOld": "{age} {yearsOld}",
+ "youDontHaveRadiologyOrders": "ليس لديك أي نتائج للأشعة حتى الآن.",
+ "radiologyResult": "نتيجة الأشعة",
+ "viewRadiologyImage": "عرض صورة الأشعة",
+ "rateClinic": "تقييم العيادة",
+ "back": "رجوع",
+ "rateDoctor": "تقييم الطبيب",
+ "howWasYourLastVisitWithDoctor": "كيف كانت زيارتك الأخيرة مع الطبيب؟",
+ "dateOfBirthSymptoms": "ما هو تاريخ ميلادك؟",
+ "genderSymptoms": "ما هو جنسك؟",
+ "heightSymptoms": "كم طولك؟",
+ "weightSymptoms": "ما هو وزنك؟",
+ "femaleGender": "أنثى",
+ "previous": "سابق",
+ "selectedOrgans": "الهيئات المختارة",
+ "noOrgansSelected": "لم يتم تحديد أي أعضاء بعد",
+ "organSelector": "محدد الأعضاء",
+ "noPredictionsAvailable": "لا توجد تنبؤات متاحة",
+ "areYouSureYouWantToRestartOrganSelection": "هل أنت متأكد أنك تريد إعادة تشغيل اختيار الأعضاء؟",
+ "possibleConditions": "الحالات المحتملة",
+ "pleaseSelectAtLeastOneRiskBeforeProceeding": "يرجى اختيار عامل خطر واحد على الأقل قبل المتابعة",
+ "aboveYouSeeCommonRiskFactors": "أعلاه ترى عوامل الخطر الأكثر شيوعًا. على الرغم من أن /diagnosis قد تعيد أسئلة حول عوامل الخطر، ",
+ "readMore": "اقرأ المزيد",
+ "riskFactors": "عوامل الخطر",
+ "noRiskFactorsFound": "لم يتم العثور على عوامل خطر",
+ "basedOnYourSelectedSymptomsNoRiskFactors": "بناءً على الأعراض المحددة، لم يتم تحديد عوامل خطر إضافية.",
+ "messageNotification": "الرسالة",
+ "attachedImage": "الصورة المرفقة",
+ "failedToLoadImage": "فشل تحميل الصورة",
+ "typeNotification": "النوع",
+ "pleaseSelectAtLeastOneOptionBeforeProceeding": "يرجى اختيار خيار واحد على الأقل قبل المتابعة",
+ "suggestions": "الاقتراحات",
+ "pleaseGoBackAndSelectOrgansFirst": "يرجى العودة واختيار الأعضاء أولاً",
+ "symptomsSelector": "محدد الأعراض",
+ "emergencyTriage": "طوارئ",
+ "emergencyEvidenceDetected": "تم اكتشاف دليل طوارئ. يرجى طلب العناية الطبية.",
+ "noQuestionItemsAvailable": "لا توجد عناصر أسئلة متاحة",
+ "pleaseAnswerAllQuestionsBeforeProceeding": "يرجى الإجابة على جميع الأسئلة قبل المتابعة",
+ "triage": "الفرز",
+ "areYouSureYouWantToExitProgress": "هل أنت متأكد أنك تريد الخروج؟ سيتم فقدان تقدمك.",
+ "noQuestionAvailable": "لا يوجد سؤال متاح",
+ "possibleSymptom": "عرض محتمل: ",
+ "symptomsCheckerFindingScore": "- درجة نتائج فاحص الأعراض",
+ "notSet": "غير محدد",
+ "years": "سنوات",
+ "symptomsChecker": "فاحص الأعراض",
+ "helloIsYourInformationUpToDate": "مرحباً {name}، هل معلوماتك محدثة؟",
+ "noEditAll": "لا، تعديل الكل",
+ "yesItIs": "نعم، إنها كذلك",
+ "age": "العمر",
+ "youDontHaveAnyAncillaryOrdersYet": "ليس لديك أي طلبات مساعدة بعد.",
+ "invoiceWithNumber": "الفاتورة: {invoiceNo}",
+ "queued": "في قائمة الانتظار",
+ "checkInReady": "جاهز للتسجيل",
+ "checkIn": "تسجيل الوصول",
+ "viewDetails": "عرض التفاصيل",
+ "selectPaymentMethod": "اختر طريقة الدفع",
+ "processingPaymentPleaseWait": "جاري معالجة الدفع، يرجى الانتظار...",
+ "finalizingPaymentPleaseWait": "جاري إتمام الدفع، يرجى الانتظار...",
+ "generatingInvoicePleaseWait": "جاري إنشاء الفاتورة، يرجى الانتظار...",
+ "hereIsYourInvoiceNumber": "هذا هو رقم فاتورتك #: ",
+ "paymentCompletedSuccessfully": "تم الدفع بنجاح",
+ "failedToInitializeApplePay": "فشل في تهيئة Apple Pay. يرجى المحاولة مرة أخرى.",
+ "cash": "نقدي",
+ "approved": "موافق عليه",
+ "approvalRejectedPleaseVisitReceptionist": "تم رفض الموافقة - يرجى زيارة موظف الاستقبال",
+ "sentForApproval": "تم إرساله للموافقة",
+ "ancillaryOrderDetails": "تفاصيل الطلب المساعد",
+ "noProceduresAvailableForSelectedOrder": "لا توجد إجراءات متاحة للطلب المحدد.",
+ "procedures": "الإجراءات",
+ "totalAmount": "المبلغ الإجمالي",
+ "covered": "مغطى",
+ "vatPercent": "ضريبة القيمة المضافة (15%)",
+ "proceedToPayment": "المتابعة للدفع",
+ "supportedSmartWatches": "الساعات الذكية المدعومة",
+ "pleaseMakeSureSamsungWatchConnected": "يرجى التأكد من أن ساعة Samsung الخاصة بك متصلة بهاتفك، ومتزامنة ومحدثة بشكل نشط.",
+ "beforeSyncingDataFollowInstructions": "قبل مزامنة البيانات، يرجى التأكد من اتباع التعليمات بشكل صحيح.",
+ "viewWatchInstructions": "عرض تعليمات الساعة",
+ "healthConnectAppNotInstalled": "يبدو أنه ليس لديك تطبيق Health Connect مثبتًا. يرجى تثبيته من متجر Play لمزامنة بيانات صحتك.",
+ "setTimerOfReminder": "ضبط مؤقت التذكير",
+ "youHaveAppointmentWithDr": "لديك موعد مع د. ",
+ "hours": "ساعات",
+ "secs": "ثواني",
+ "noAllergiesDataFound": "لم يتم العثور على بيانات الحساسية...",
+ "heartRateDescription": "معدل ضربات قلبك يشير إلى عدد المرات التي ينبض فيها قلبك في الدقيقة",
+ "bloodOxygenDescription": "مستوى الأكسجين في الدم يشير إلى كمية الأكسجين التي تحملها خلايا الدم الحمراء",
+ "stepsDescription": "عدد الخطوات المتخذة على مدار اليوم",
+ "caloriesDescription": "السعرات الحرارية المحروقة أثناء النشاط البدني",
+ "distanceDescription": "المسافة المقطوعة على مدار اليوم",
+ "overview": "نظرة عامة",
+ "details": "التفاصيل",
+ "healthy": "صحي",
+ "warning": "تحذير",
+ "vitalSignDetails": "تفاصيل العلامات الحيوية",
+ "resultOf": "نتيجة {date}",
+ "resultOfNoDate": "نتيجة --",
+ "referenceRangeBetween": "النطاق المرجعي: {low} – {high} {unit}",
+ "referenceRangeMin": "النطاق المرجعي: ≥ {low} {unit}",
+ "referenceRangeMax": "النطاق المرجعي: ≤ {high} {unit}",
+ "noHistoryAvailable": "لا يوجد تاريخ متاح",
+ "bmiDescription": "مؤشر كتلة الجسم هو قياس يعتمد على الطول والوزن لتقدير دهون الجسم.",
+ "heightDescription": "يقاس الطول بالسنتيمتر ويستخدم لحساب مؤشر كتلة الجسم وتوصيات الجرعات.",
+ "weightDescription": "الوزن يساعد في تتبع الصحة العامة والتغذية والتغيرات مع مرور الوقت.",
+ "bloodPressureDescription": "ضغط الدم يعكس قوة الدم على جدران الشرايين. يظهر كانقباضي/انبساطي.",
+ "temperatureDescription": "درجة حرارة الجسم تعكس مدى سخونة جسمك وقد تتغير مع العدوى أو الالتهاب.",
+ "heartRateDescriptionVital": "معدل ضربات القلب يشير إلى عدد نبضات القلب في الدقيقة.",
+ "respiratoryRateDescription": "معدل التنفس هو عدد الأنفاس المأخوذة في الدقيقة.",
+ "bmiAdvice": "حافظ على نظام غذائي متوازن ونشاط منتظم. إذا كان مؤشر كتلة جسمك مرتفعًا أو منخفضًا، فكر في استشارة طبيبك.",
+ "heightAdvice": "لا حاجة لاتخاذ أي إجراء إلا إذا بدا قياسك غير صحيح. قم بتحديثه في زيارتك القادمة.",
+ "weightAdvice": "راقب تغيرات الوزن. الزيادة أو الخسارة المفاجئة قد تتطلب استشارة طبية.",
+ "bloodPressureAdvice": "استمر في تتبع ضغط دمك. يجب مناقشة القراءات المرتفعة أو المنخفضة مع طبيبك.",
+ "temperatureAdvice": "إذا كان لديك حمى مستمرة أو أعراض، اتصل بمقدم الرعاية الصحية.",
+ "heartRateAdvice": "تتبع اتجاهات معدل ضربات قلبك. إذا شعرت بدوار أو ألم في الصدر، اطلب الرعاية الطبية.",
+ "respiratoryRateAdvice": "إذا لاحظت ضيقًا في التنفس أو تنفسًا غير طبيعي، اطلب المشورة الطبية.",
+ "whatShouldIDoNext": "ماذا يجب أن أفعل بعد ذلك؟",
+ "customizeDrinkCup": "قم بتخصيص كوب مشروبك",
+ "tipsToStayHydrated": "نصائح للبقاء رطبًا",
+ "drinkBeforeYouFeelThirsty": "اشرب قبل أن تشعر بالعطش",
+ "keepRefillableBottleNextToYou": "احتفظ بزجاجة قابلة لإعادة التعبئة بجانبك",
+ "trackYourDailyIntakeToStayMotivated": "تتبع كمية الماء اليومية للحفاظ على الحافز",
+ "chooseSparklingWaterInsteadOfSoda": "اختر الماء الفوار بدلاً من الصودا",
+ "switchCup": "تبديل الكوب",
+ "plainWater": "ماء عادي",
+ "yourGoal": "هدفك",
+ "remaining": "المتبقي",
+ "hydrationStatus": "حالة الترطيب",
+ "areYouSureYouWantToCancelAllWaterReminders": "هل أنت متأكد أنك تريد إلغاء جميع تذكيرات الماء؟",
+ "remindersSet": "تم ضبط التذكيرات!",
+ "dailyWaterRemindersScheduledAt": "تم جدولة تذكيرات الماء اليومية في:",
+ "waterConsumption": "استهلاك المياه",
+ "selectNumberOfReminders": "حدد عدد التذكيرات",
+ "h2oSettings": "إعدادات H20",
+ "settingsSavedSuccessfully": "تم حفظ الإعدادات بنجاح",
+ "yourName": "اسمك",
+ "ageYears": "العمر (11-120) سنة",
+ "numberOfRemindersInADay": "عدد التذكيرات في اليوم",
+
+ "medications": "الأدوية",
+ "someRemarksAboutPrescription": "ستجدون هنا بعض الملاحظات حول الوصفة الطبية",
+ "notifyMeBeforeConsumptionTime": "أبلغني قبل وقت الاستهلاك",
+ "noMedicationsToday": "لا أدوية اليوم",
+ "route": "Route: {route}",
+ "frequency": "Frequency: {frequency}",
+ "instruction": "Instruction: {instruction}",
+ "duration": "Duration: {days}",
+ "reminders": "تذكيرات",
+ "reminderAddedToCalendar": "تمت إضافة تذكير إلى التقويم ✅",
+ "errorWhileSettingCalendar": "حدث خطأ أثناء ضبط التقويم:{error}",
+ "instructions": "التعليمات",
+ "requests": "الطلبات",
+ "thisWeek": "هذا الأسبوع",
+ "lastMonth": "الشهر الماضي",
+ "lastSixMonths": "آخر 6 أشهر",
+ "selectTime": "حدد الوقت",
+ "pleaseWaitYouWillBeCalledForVitalSigns": "يرجى الانتظار! سيتم استدعاؤك لقياس العلامات الحيوية",
+ "pleaseVisitRoomForVitalSigns": "يرجى زيارة الغرفة {roomNumber} لقياس العلامات الحيوية",
+ "pleaseVisitRoomToTheDoctor": "يرجى زيارة الغرفة {roomNumber} لمقابلة الطبيب"
+}
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 7839083..5f356ba 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -406,11 +406,8 @@
"brand": "Brand",
"power": "Power",
"diameter": "Diameter",
- "remarks": "Remarks",
"activeMedications": "Active Medications",
"expDate": "Active Exp Date :",
- "route": "Route",
- "frequency": "Frequency",
"dailyQuantity": "Daily Quantity :",
"addReminder": "Add Reminder",
"cancelReminder": "Cancel Reminder",
@@ -689,11 +686,7 @@
"bikini": "Bikini",
"totalMinutes": "Total Minutes",
"feedback": "Feedback",
- "send": "أرسل",
- "status": "الحالة",
"likeToHear": "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form",
- "subject": "الموضوع",
- "message": "رسالة",
"emptySubject": "Please enter the subject",
"emptyMessage": "Please enter message",
"selectAttachment": "Select Attachment",
@@ -864,7 +857,7 @@
"endDate": "End Date",
"hmgHospitals": "HMG Hospitals",
"hmcMedicalClinic": "HMC Medical Centers",
- "applyFilter": "AppLy Filter",
+ "applyFilter": "Apply Filter",
"facilityAndLocation": "Facility and Location",
"regionAndLocation": "Region And Locations",
"clearAllFilters": "Clear all filters",
@@ -873,5 +866,629 @@
"walkin": "Walk In",
"continueString": "Continue",
"laserClinic": "Laser Clinic",
- "covid_info" :"Dr. Sulaiman Al Habib hospitals are conducting a test for the emerging corona virus and issuing travel certificates 24/7 in a short time and with high accuracy. Those wishing to benefit from this service can visit one of Dr. Sulaiman Al Habib branches to conduct a corona test within few minutes, and obtain the result within several hours. Corona Virus Covid 19 testing service with PCR technology to detect the virus according to the highest international standards and with the latest high-precision RT-PCR devices (American GeneXpert and others), That is approved by the Food and Drug Authority as well as by the Saudi Center for Infectious Diseases Prevention."
-}
\ No newline at end of file
+ "covid_info" :"Dr. Sulaiman Al Habib hospitals are conducting a test for the emerging corona virus and issuing travel certificates 24/7 in a short time and with high accuracy. Those wishing to benefit from this service can visit one of Dr. Sulaiman Al Habib branches to conduct a corona test within few minutes, and obtain the result within several hours. Corona Virus Covid 19 testing service with PCR technology to detect the virus according to the highest international standards and with the latest high-precision RT-PCR devices (American GeneXpert and others), That is approved by the Food and Drug Authority as well as by the Saudi Center for Infectious Diseases Prevention.",
+ "appointmentDetails": "Appointment Details",
+ "checkingDoctorAvailability": "Checking doctor availability...",
+ "cancellingAppointmentPleaseWait": "Cancelling Appointment, Please Wait...",
+ "appointmentCancelledSuccessfully": "Appointment Cancelled Successfully",
+ "notConfirmed": "Not Confirmed",
+ "appointmentStatus": "Appointment Status",
+ "doctorWillCallYou": "The doctor will call you once the appointment time approaches.",
+ "getDirections": "Get Directions",
+ "notifyMeBeforeAppointment": "Notify me before the appointment",
+ "fetchingLabResults": "Fetching Lab Results...",
+ "fetchingRadiologyResults": "Fetching Radiology Results...",
+ "fetchingAppointmentPrescriptions": "Fetching Appointment Prescriptions...",
+ "noPrescriptionsForAppointment": "You don't have any prescriptions for this appointment.",
+ "amountBeforeTax": "Amount before tax",
+ "rebookAppointment": "Re-book Appointment",
+ "fetchingDoctorSchedulePleaseWait": "Fetching Doctor Schedule, Please Wait...",
+ "pickADate": "Pick a Date",
+ "confirmingAppointmentPleaseWait": "Confirming Appointment, Please Wait...",
+ "appointmentConfirmedSuccessfully": "Appointment Confirmed Successfully",
+ "appointmentPayment": "Appointment Payment",
+ "checkingPaymentStatusPleaseWait": "Checking payment status, Please wait...",
+ "paymentFailedPleaseTryAgain": "Payment Failed! Please try again.",
+ "appointmentCheckIn": "Appointment check in",
+ "insuranceExpiredOrInactive": "Insurance expired or inactive",
+ "totalAmountToPay": "Total amount to pay",
+ "vat15": "VAT 15%",
+ "general": "General",
+ "liveCare": "LiveCare",
+ "recentVisits": "Recent Visits",
+ "searchByClinic": "Search By Clinic",
+ "tapToSelectClinic": "Tap to select clinic",
+ "searchByDoctor": "Search By Doctor",
+ "tapToSelect": "Tap to select",
+ "searchByRegion": "Search By Region",
+ "centralRegion": "Central Region",
+ "immediateConsultation": "Immediate Consultation",
+ "scheduledConsultation": "Scheduled Consultation",
+ "pharmaLiveCare": "Pharma LiveCare",
+ "notSureHelpMeChooseClinic": "Not sure? help me choose a clinic!",
+ "mentionYourSymptomsAndFindDoctors": "Mention your symptoms and find the list of doctors accordingly",
+ "immediateService": "Immediate service",
+ "noNeedToWaitGetMedicalConsultation": "No need to wait, you will get medical consultation immediately via video call",
+ "noVisitRequired": "No visit required",
+ "doctorWillContact": "Doctor will contact",
+ "specialisedDoctorWillContactYou": "A specialised doctor will contact you and will be able to view your medical history",
+ "freeMedicineDelivery": "Free medicine delivery",
+ "offersFreeMedicineDelivery": "Offers free medicine delivery for the LiveCare appointment",
+ "dentalChiefComplaints": "Dental Chief Complaints",
+ "viewAvailableAppointments": "View available appointments",
+ "doctorProfile": "Doctor Profile",
+ "waitingAppointment": "Waiting Appointment",
+ "hospitalInformation": "Hospital Information",
+ "fetchingAppointmentShare": "Fetching Appointment Share...",
+ "bookingYourAppointment": "Booking your appointment...",
+ "selectLiveCareClinic": "Select LiveCare Clinic",
+ "checkingForExistingDentalPlan": "Checking for an existing dental plan, Please wait...",
+ "dentalTreatmentPlan": "Dental treatment plan",
+ "youHaveExistingTreatmentPlan": "You have an existing treatment plan: ",
+ "mins": "Mins",
+ "totalTimeRequired": "Total time required",
+ "wouldYouLikeToContinue": "Would you like to continue it?",
+ "chooseDoctor": "Choose Doctor",
+ "viewNearestAppos": "View nearest available appointments",
+ "noDoctorFound": "No Doctor found for selected criteria...",
+ "yesPleasImInAHurry": "Yes please, I am in a hurry",
+ "fetchingFeesPleaseWait": "Fetching fees, Please wait...",
+ "noThanksPhysicalVisit": "No, Thanks. I would like a physical visit",
+ "offline": "Offline",
+ "videoCall": "Video Call",
+ "liveVideoCallWithHMGDoctors": "Live Video Call with HMG Doctors",
+ "audioCall": "Audio Call",
+ "phoneCall": "Phone Call",
+ "livePhoneCallWithHMGDoctors": "Live Phone Call with HMG Doctors",
+ "reviewLiveCareRequest": "Review LiveCare Request",
+ "selectedLiveCareType": "Selected LiveCare Type",
+ "selectLiveCareCallType": "Select LiveCare call type",
+ "confirmingLiveCareRequest": "Confirming LiveCare request, Please wait...",
+ "unknownErrorOccurred": "Unknown error occurred...",
+ "liveCarePermissionsMessage": "LiveCare requires Camera, Microphone, Location & Notifications permissions to enable virtual consultation between patient & doctor, Please allow these to proceed.",
+ "liveCarePayment": "LiveCare Payment",
+ "mada": "Mada",
+ "visaOrMastercard": "Visa or Mastercard",
+ "tamara": "Tamara",
+ "fetchingApplePayDetails": "Fetching Apple Pay details, Please wait...",
+ "liveCarePendingRequest": "LiveCare Pending Request",
+ "callLiveCareSupport": "Call LiveCare Support",
+ "whatIsWaitingAppointment": "What is Waiting Appointment?",
+ "waitingAppointmentsFeature": "The waiting appointments feature allows you to book an appointment while you are inside the hospital building, and in case there is no available slot in the doctor's schedule.",
+ "appointmentWithDoctorConfirmed": "The appointment with the doctor is confirmed, but the time of entry is uncertain.",
+ "paymentWithinTenMinutes": "Note: You must have to pay within 10 minutes of booking, otherwise your appointment will be cancelled automatically",
+ "liveLocation": "Live Location",
+ "verifyYourLocationAtHospital": "Verify your location to be at hospital to check in",
+ "error": "Error",
+ "ensureWithinHospitalLocation": "Please ensure you're within the hospital location to perform online check-in.",
+ "nfcNearFieldCommunication": "NFC (Near Field Communication)",
+ "scanPhoneViaNFC": "Scan your phone via NFC board to check in",
+ "qrCode": "QR Code",
+ "scanQRCodeToCheckIn": "Scan QR code with your camera to check in",
+ "processingCheckIn": "Processing Check-In...",
+ "bookingWaitingAppointment": "Booking Waiting Appointment, Please wait...",
+ "enterValidIDorIqama": "Please enter a valid national ID or file number",
+ "selectAppointment": "Select Appointment",
+ "rebookSameDoctor": "Rebook with same doctor",
+ "queueing": "Queueing",
+ "inQueue": "In Queue",
+ "yourTurn": "Your Turn",
+ "halaFirstName": "Hala {firstName}!!!",
+ "thankYouForPatience": "Thank you for your patience, here is your queue number.",
+ "servingNow": "Serving Now",
+ "callForVitalSigns": "Call for vital signs",
+ "callForDoctor": "Call for Doctor",
+ "thingsToAskDoctor": "Things to ask your doctor today",
+ "improveOverallHealth": "What can I do to improve my overall health?",
+ "routineScreenings": "Are there any routine screenings I should get?",
+ "whatIsThisMedicationFor": "What is this medication for?",
+ "sideEffectsToKnow": "Are there any side effects I should know about?",
+ "whenFollowUp": "When should I come back for a follow-up?",
+ "goToHomepage": "Go to homepage",
+ "appointmentsList": "Appointments List",
+ "allAppt": "All Appt.",
+ "upcoming": "Upcoming",
+ "completed": "Completed",
+ "noAppointmentsYet": "You don't have any appointments yet.",
+ "viewProfile": "View Profile",
+ "choosePreferredHospitalForService": "Choose your preferred hospital for the service",
+ "noHospitalsFound": "No hospitals Found",
+ "cancelOrderConfirmation": "Are you sure you want to cancel this order?",
+ "orderCancelledSuccessfully": "Order has been cancelled successfully",
+ "requestID": "Request ID:",
+ "noCMCOrdersYet": "You don't have any CMC orders yet.",
+ "cmcOrders": "CMC Orders",
+ "summary": "Summary",
+ "selectedService": "Selected Service",
+ "requestSubmittedSuccessfully": "Your request has been successfully submitted.",
+ "hereIsYourRequestNumber": "Here is your request #: ",
+ "pleaseSelectHospitalToContinue": "Please select a hospital to continue",
+ "confirmSubmitRequest": "Are you sure you want to submit this request?",
+ "pendingOrderWait": "You have a pending order. Please wait for it to be processed.",
+ "noServicesAvailable": "No services available",
+ "selectAService": "Select a Service",
+ "comprehensiveCheckup": "Comprehensive Checkup",
+ "viewNearestHMGLocations": "View your nearest HMG locations",
+ "provideFeedbackOnServices": "Provide your feedback on our services",
+ "liveChatWithHMG": "Live chat option with HMG",
+ "send": "Send",
+ "status": "Status",
+ "sendingFeedback": "Sending Feedback...",
+ "selectFeedbackType": "Select Feedback Type",
+ "loadingAppointmentsList": "Loading appointments list...",
+ "noAppointmentsForFeedback": "You do not have any appointments to submit a feedback.",
+ "selectedAppointment": "Selected Appointment:",
+ "subject": "Subject",
+ "enterSubjectHere": "Enter subject here",
+ "message": "Message",
+ "enterMessageHere": "Enter message here",
+ "filesSelected": "{count} file(s) selected",
+ "otherDetails": "Other Details",
+ "medicalReport": "Medical Report",
+ "medicalReportNumber": "Medical Report {number}",
+ "patientIsInsured": "Patient is Insured",
+ "insuranceDocument": "Insurance Document",
+ "selectBranch": "Select Branch",
+ "patientInformation": "Patient information",
+ "patientLocation": "Where the patient located",
+ "identificationNumber": "Identification Number",
+ "enterIdentificationNumber": "Enter Identification Number*",
+ "patientName": "Patient Name*",
+ "referralRequesterInformation": "Referral requester information",
+ "enterReferralRequesterName": "Enter Referral Requester Name*",
+ "requesterName": "Requester Name",
+ "relationship": "Relationship",
+ "selectRelation": "Select Relation",
+ "otherName": "Other Name",
+ "otherNameHint": "Other Name*",
+ "requesterNameRequired": "Referral requester name is required",
+ "selectRelationshipRequired": "Please select a relationship",
+ "otherRelationshipNameRequired": "Other relationship name is required",
+ "identificationNumberRequired": "Identification number is required",
+ "patientNameRequired": "Patient name is required",
+ "enterPatientPhoneRequired": "Please Enter patient phone number",
+ "selectPatientCityRequired": "Please select patient city",
+ "medicalReportRequired": "At least one medical report is required",
+ "selectBranchRequired": "Please select a branch",
+ "insuranceDocumentRequired": "Insurance document is required for insured patients",
+ "searchResult": "Search Result",
+ "referralNo": "Referral No {number}",
+ "eReferral": "E Referral",
+ "referralCreatedSuccessfully": "Your Referral has been created Successfully.",
+ "hereIsYourReferralNumber": "Here is your Referral #: ",
+ "searchEReferral": "Search E-Referral",
+ "enterRequiredInfoToSearch": "Please enter the required information to search for an e-referral",
+ "selectPickupDirection": "Select Pickup Direction",
+ "selectDirection": "Select Direction",
+ "toHospital": "To Hospital",
+ "fromHospital": "From Hospital",
+ "selectWay": "Select Way",
+ "oneWay": "One Way",
+ "twoWay": "Two Way",
+ "selectPickupDetails": "Select Pickup Details",
+ "pleaseSelectDetailsOfPickup": " Please select the details of pickup",
+ "selectDetails": "Select Details",
+ "work": "Work",
+ "pick": "Pick",
+ "insideTheHome": "Inside the home",
+ "haveAnyAppointment": "Have any appointment",
+ "amountPaidAtHospital": "Amount will be paid at the hospital",
+ "submitRequest": "Submit Request",
+ "enterPickupLocationManually": "Enter Pickup Location Manually",
+ "enterPickupLocation": "Enter Pickup Location",
+ "trackingDetails": "Tracking Details",
+ "cancelRequest": "Cancel Request",
+ "shareLocationWhatsapp": "Share Your Live Location on Whatsapp",
+ "pleaseWaitForCall": "Please wait for the call",
+ "toHospitalLower": "to hospital",
+ "contact": "Contact",
+ "failed": "Failed",
+ "confirmationCall": "Confirmation Call",
+ "pickupFromHome": "Pickup Up from Home",
+ "onTheWayToHospital": " On The Way To Hospital",
+ "arrivedAtHospital": "Arrived at Hospital",
+ "orderCancel": "Order Cancel",
+ "emergencyCheckIn": "Emergency Check-In",
+ "erOnlineCheckInDescription": "This service lets patients register their ER appointment prior to arrival.",
+ "erOnlineCheckInSuccess": "Your ER Online Check-In has been successfully done. Please proceed to the waiting area.",
+ "erOnlineCheckInError": "Unexpected error occurred during check-in. Please contact support.",
+ "fetchingHospitalsList": "Fetching hospitals list...",
+ "fetchingPaymentInformation": "Fetching payment information...",
+ "erVisitDetails": "ER Visit Details",
+ "erClinic": "ER Clinic",
+ "vatWithAmount": "VAT 15% ({amount})",
+ "erAppointmentBookedSuccess": "Your appointment has been booked successfully. Please perform Check-In once you arrive at the hospital.",
+ "underProcessing": "Under processing",
+ "canceledByPatient": "Cancelled by patient",
+ "rapidResponseTeam": "Rapid Response Team",
+ "allFacilities": "All Facilities",
+ "selectLocation": "Select Location",
+ "pleaseSelectTheLocation": "Please select the location",
+ "viewLocationGoogleMaps": "View Location on Google Maps",
+ "callAmbulance": "Call Ambulance",
+ "requestAmbulanceInEmergency": "Request an ambulance in emergency from home or hospital",
+ "confirmation": "Confirmation",
+ "areYouSureYouWantToCallAmbulance": "Are you sure you want to call an ambulance?",
+ "getDetailsOfNearestBranch": "Get the details of nearest branch including directions",
+ "areYouSureYouWantToCallRRT": "Are you sure you want to call Rapid Response Team (RRT)?",
+ "priorERCheckInToSkipLine": "Prior ER Check-In to skip the line & payment at the reception.",
+ "areYouSureYouWantToMakeERCheckIn": "Are you sure you want to make ER Check-In?",
+ "checkingYourERAppointmentStatus": "Checking your ER Appointment status...",
+ "transportOptions": "Transport Options",
+ "selectHospitalForAdvancePayment": "Please select the hospital you want to make an advance payment for.",
+ "recharge": "Recharge",
+ "activityLevel": "Activity Level",
+ "selectActivityLevel": "Select Activity Level",
+ "caloriesPerDay": "Calories Per Day",
+ "dietType": "Diet Type",
+ "selectDietType": "Select Diet Type",
+ "bodyFrameSize": "Body Frame Size",
+ "selectBodyFrameSize": "Select Body Frame Size",
+ "averageCycleLength": "Average Cycle Length (Usually 28 days)",
+ "averageLutealPhase": "Average Luteal Phase Length(Usually 14 days)",
+ "convert": "Convert",
+ "calculate": "Calculate",
+ "healthCalculators": "Health Calculators",
+ "healthConverters": "Health Converters",
+ "generalHealth": "General Health",
+ "relatedToBMICalories": "Related To BMI, calories, body fat, etc to stay updated with your health.",
+ "selectCalculator": "Select Calculator",
+ "womensHealth": "Women's Health",
+ "relatedToPeriodsOvulation": "Related To periods, ovulation, pregnancy, and other topics.",
+ "bloodSugar": "Blood Sugar",
+ "trackYourGlucoseLevels": "Track your glucose levels, understand trends, and get personalized insights for better health.",
+ "bloodCholesterol": "Blood Cholesterol",
+ "monitorCholesterolLevels": "Monitor cholesterol levels, assess heart health risks, and take proactive steps for well-being.",
+ "triglyceridesFatBlood": "Triglycerides Fat Blood",
+ "understandTriglyceridesImpact": "Understand triglycerides' impact on heart health with personalized insights and expert recommendations.",
+ "bmiCalculator": "BMI\nCalculator",
+ "caloriesCalculator": "Calories\nCalculator",
+ "bmrCalculator": "BMR\nCalculator",
+ "idealBodyWeight": "Ideal Body\nWeight",
+ "bodyFatCalculator": "Body Fat\nCalculator",
+ "carbsProteinFat": "Carbs\nProtein & Fat",
+ "ovulationPeriod": "Ovulation\nPeriod",
+ "deliveryDueDate": "Delivery\nDue Date",
+ "low": "Low",
+ "preDiabetic": "Pre-diabetic",
+ "high": "High",
+ "elevated": "Elevated",
+ "recorded": "Recorded",
+ "noRecordsYet": "No records yet",
+ "lastRecord": "Last Record",
+ "addBloodSugar": "Add Blood Sugar",
+ "addBloodPressure": "Add Blood Pressure",
+ "addWeight": "Add Weight",
+ "bloodSugarDataSavedSuccessfully": "Blood Sugar Data saved successfully",
+ "bloodPressureDataSavedSuccessfully": "Blood Pressure Data saved successfully",
+ "weightDataSavedSuccessfully": "Weight Data saved successfully",
+ "pleaseWait": "Please wait",
+ "selectUnit": "Select Unit",
+ "selectMeasureTime": "Select Measure Time",
+ "selectArm": "Select Arm",
+ "enterBloodSugar": "Enter Blood Sugar",
+ "enterSystolicValue": "Enter Systolic Value",
+ "enterDiastolicValue": "Enter Diastolic Value",
+ "enterWeight": "Enter Weight",
+ "selectDuration": "Select Duration",
+ "systolic": "Systolic",
+ "diastolic": "Diastolic",
+ "sendReportByEmail": "Send Report by Email",
+ "enterYourEmailToReceiveReport": "Enter your email address to receive the report",
+ "addNewRecord": "Add new Record",
+ "healthTrackers": "Health Trackers",
+ "monitorBloodPressureLevels": "Monitor your blood pressure levels, track systolic and diastolic readings, and maintain a healthy heart.",
+ "trackWeightProgress": "Track your weight progress, set goals, and maintain a healthy body mass for overall wellness.",
+ "bookAppointment": "Book\nAppointment",
+ "completeCheckup": "Complete Checkup",
+ "indoorNavigation": "Indoor Navigation",
+ "eReferralServices": "E-Referral Services",
+ "dailyWaterMonitor": "Daily Water Monitor",
+ "fetchingYourWaterIntakeDetails": "Fetching your water intake details.",
+ "healthCalculatorsServices": "Health\nCalculators",
+ "healthConvertersServices": "Health\nConverters",
+ "smartWatchesServices": "Smart\nWatches",
+ "exploreServices": "Explore Services",
+ "medicalAndCareServices": "Medical & Care Services",
+ "hmgServices": "HMG Services",
+ "personalServices": "Personal Services",
+ "habibWallet": "Habib Wallet",
+ "loginToViewWalletBalance": "Login to view your wallet balance",
+ "loginToViewMedicalFile": "Login to view your medical file",
+ "addMember": "Add Member",
+ "addFamilyMember": "Add Family Member",
+ "pleaseFillBelowFieldToAddNewFamilyMember": "Please fill the below field to add a new family member to your profile",
+ "healthTools": "Health Tools",
+ "supportServices": "Support Services",
+ "virtualTour": "Virtual Tour",
+ "carParking": "Car Parking",
+ "latestNews": "Latest News",
+ "hmgContact": "HMG Contact",
+ "durationCannotExceed90": "Duration can not exceed 90 mins",
+ "unexpectedError": "Unexpected Error Occurred",
+ "gettingAmbulanceTransportOption": "Getting Ambulance Transport Option",
+ "fetchingAppointment": "Fetching Appointment",
+ "doYouWantToCancelTheRequest": "Do you want to cancel the request",
+ "cancellingRequest": "Cancelling request",
+ "fetchingTermsAndConditions": "Fetching Terms And Conditions",
+ "selectLocationPrescriptionDelivery": "Please select the location for prescription delivery",
+ "noRadiologyOrders": "No Radiology Orders Found",
+ "ageIsRequired": "Age is required",
+ "invalidAge": "Invalid age",
+ "ageMustBeBetween11And120": "Age must be between 11 and 120",
+ "heightIsRequired": "Height is required",
+ "invalidHeight": "Invalid height",
+ "weightIsRequired": "Weight is required",
+ "invalidWeight": "Invalid weight",
+ "timeToDrinkWater": "Time to Drink Water! 💧",
+ "stayHydratedDrinkWater": "Stay hydrated! Drink {amount}ml of water.",
+ "visitPharmacyOnline": "Visit Pharmacy Online",
+ "howAreYouFeelingToday": "How are you feeling today?",
+ "checkYourSymptomsWithScale": "Check your symptoms with this scale",
+ "checkYourSymptoms": "Check your symptoms",
+ "noUpcomingAppointmentPleaseBook": "You do not have any upcoming appointment. Please book an appointment",
+ "youHaveEROnlineCheckInRequest": "You have ER Online Check-In Request",
+ "quickLinks": "Quick Links",
+ "viewMedicalFileLandingPage": "View medical file",
+ "immediateLiveCareRequest": "Immediate LiveCare Request",
+ "yourTurnIsAfterPatients": "Your turn is after {count} patients.",
+ "dontHaveHHCOrders": "You don't have any Home Health Care orders yet.",
+ "hhcOrders": "HHC Orders",
+ "requestedServices": "Requested Services",
+ "selectServices": "Select Services",
+ "selectedServices": "Selected Services",
+ "createNewRequest": "Create new request",
+ "youHaveNoPendingRequests": "You have no pending requests.",
+ "noInsuranceDataFound": "No insurance data found...",
+ "noInsuranceUpdateRequest": "No insurance update requests found.",
+ "policyNumberInsurancePage": "Policy: {number}",
+ "insuranceExpired": "Insurance Expired",
+ "insuranceActive": "Insurance Active",
+ "patientCardID": "Patient Card ID: {id}",
+ "noInsuranceApprovals": "You don't have any insurance approvals yet.",
+ "noInsuranceWithHMG": "You don't have insurance registered with HMG.",
+ "referenceRange": "Reference Range",
+ "downloadReport": "Download report",
+ "generatingReport": "Generating report, Please wait...",
+ "noLabResults": "You don't have any lab results yet.",
+ "labResultDetails": "Lab Result Details",
+ "resultOf": "Result of",
+ "whatIsThisResult": "What is this result?",
+ "lastTested": "Last Tested",
+ "byVisit": "By Visit",
+ "byTest": "By Test",
+ "results": "results",
+ "viewResults": "View Results",
+ "rebook": "Rebook",
+ "noOphthalmologyAppointments": "No Ophthalmology appointments found...",
+ "noVitalSignsRecordedYet": "No vital signs recorded yet",
+ "appointmentsAndVisits": "Appointments & visits",
+ "labAndRadiology": "Lab & Radiology",
+ "activeMedicationsAndPrescriptions": "Active Medications & Prescriptions",
+ "allPrescriptions": "All Prescriptions",
+ "allMedications": "All Medications",
+ "youDontHaveAnyPrescriptionsYet": "You don't have any prescriptions yet.",
+ "youDontHaveAnyCompletedVisitsYet": "You don't have any completed visits yet",
+ "others": "Others",
+ "allergyInfo": "Allergy Info",
+ "vaccineInfo": "Vaccine Info",
+ "updateInsuranceInfo": "Update Insurance",
+ "myInvoicesList": "My Invoices List",
+ "ancillaryOrdersList": "Ancillary Orders List",
+ "youDontHaveAnySickLeavesYet": "You don't have any sick leaves yet.",
+ "medicalReports": "Medical Reports",
+ "sickLeaveReport": "Sick Leave Report",
+ "weightTracker": "Weight Tracker",
+ "askYourDoctor": "Ask Your Doctor",
+ "internetPairing": "Internet Pairing",
+ "requested": "Requested",
+ "youDontHaveAnyMedicalReportsYet": "You don't have any medical reports yet.",
+ "requestMedicalReport": "Request medical report",
+ "youDoNotHaveAnyAppointmentsToRequestMedicalReport": "You do not have any appointments to request a medical report.",
+ "areYouSureYouWantToRequestMedicalReport": "Are you sure you want to request a medical report for this appointment?",
+ "yourMedicalReportRequestSubmittedSuccessfully": "Your medical report request has been successfully submitted.",
+ "monthlyHealthSummaryReportDisclaimer": "This monthly health summary report reflects the health indicators and analysis results of the latest visits. Please note that this will be sent automatically from the system and it's not considered as a official report so no medical decision should be taken based on it",
+ "updatingMonthlyReportStatus": "Updating Monthly Report Status...",
+ "monthlyReportStatusUpdatedSuccessfully": "Monthly Report Status Updated Successfully",
+ "whoCanViewMyMedicalFile": "Who can view my medical file?",
+ "acceptedYourRequestToBeYourFamilyMember": "{status} your request to be your family member",
+ "canViewYourFile": "can view your file",
+ "hasARequestPendingToBeYourFamilyMember": "has a request {status} to be your family member",
+ "wantsToAddYouAsTheirFamilyMember": "wants to add you as their family member",
+ "rejectedYourRequestToBeYourFamilyMember": "{status} your request to be your family member",
+ "rejectedYourFamilyMemberRequest": "{status} your family member request",
+ "notAvailable": "N/A",
+ "selectAProfile": "Please select a profile",
+ "switchFamilyFile": "Switch from the below list of medical file",
+ "medicalFiles": "Medical Files",
+ "addANewFamilyMember": "Add a new family member",
+ "viewInvoiceDetails": "View invoice details",
+ "outPatient": "OutPatient",
+ "invoiceDetails": "Invoice Details",
+ "sendingEmailPleaseWait": "Sending email, Please wait...",
+ "emailSentSuccessfullyMessage": "Email sent successfully.",
+ "discount": "Discount",
+ "paid": "Paid",
+ "fetchingInvoiceDetails": "Fetching invoice details, Please wait...",
+ "scanQRCode": "Scan QR code",
+ "parkingSlotDetails": "Parking Slot Details",
+ "slotNumber": "Slot: {code}",
+ "basement": "Basement: {description}",
+ "parkingDate": "Date: {date}",
+ "parkedSince": "Parked Since: {time}",
+ "resetDirection": "Reset Direction",
+ "noPrescriptionOrdersYet": "You don't have any prescription orders yet.",
+ "fetchingPrescriptionPDFPleaseWait": "Fetching prescription PDF, Please wait...",
+ "ratingValue": "Rating: {rating}",
+ "downloadPrescription": "Download Prescription",
+ "fetchingPrescriptionDetails": "Fetching prescription details...",
+ "switchBackFamilyFile": "Switch Back To Family File",
+ "profileAndSettings": "Profile & Settings",
+ "quickActions": "Quick Actions",
+ "notificationsSettings": "Notifications Settings",
+ "touchIDFaceIDServices": "Touch ID / Face ID Services",
+ "personalInformation": "Personal Information",
+ "updateEmailAddress": "Update Email Address",
+ "helpAndSupport": "Help & Support",
+ "permissionsProfile": "Permissions",
+ "privacyPolicy": "Privacy Policy",
+ "deactivateAccount": "Deactivate account",
+ "ageYearsOld": "{age} {yearsOld}",
+ "youDontHaveRadiologyOrders": "You don't have any radiology results yet.",
+ "radiologyResult": "Radiology Result",
+ "viewRadiologyImage": "View Radiology Image",
+ "rateClinic": "Rate Clinic",
+ "back": "Back",
+ "rateDoctor": "Rate Doctor",
+ "howWasYourLastVisitWithDoctor": "How was your last visit with doctor?",
+ "dateOfBirthSymptoms": "What is your Date of Birth?",
+ "genderSymptoms": "What is your gender?",
+ "heightSymptoms": "How tall are you?",
+ "weightSymptoms": "What is your weight?",
+ "femaleGender": "Female",
+ "previous": "Previous",
+ "selectedOrgans": "Selected Organs",
+ "noOrgansSelected": "No organs selected yet",
+ "organSelector": "Organ Selector",
+ "noPredictionsAvailable": "No Predictions available",
+ "areYouSureYouWantToRestartOrganSelection": "Are you sure you want to restart the organ selection?",
+ "possibleConditions": "Possible Conditions",
+ "pleaseSelectAtLeastOneRiskBeforeProceeding": "Please select at least one risk before proceeding",
+ "aboveYouSeeCommonRiskFactors": "Above you see the most common risk factors. Although /diagnosis may return questions about risk factors, ",
+ "readMore": "Read more",
+ "riskFactors": "Risk Factors",
+ "noRiskFactorsFound": "No risk factors found",
+ "basedOnYourSelectedSymptomsNoRiskFactors": "Based on your selected symptoms, no additional risk factors were identified.",
+ "messageNotification": "Message",
+ "attachedImage": "Attached Image",
+ "failedToLoadImage": "Failed to load image",
+ "typeNotification": "Type",
+ "pleaseSelectAtLeastOneOptionBeforeProceeding": "Please select at least one option before proceeding",
+ "suggestions": "Suggestions",
+ "pleaseGoBackAndSelectOrgansFirst": "Please go back and select organs first",
+ "symptomsSelector": "Symptoms Selector",
+ "emergencyTriage": "Emergency",
+ "emergencyEvidenceDetected": "Emergency evidence detected. Please seek medical attention.",
+ "noQuestionItemsAvailable": "No question items available",
+ "pleaseAnswerAllQuestionsBeforeProceeding": "Please answer all questions before proceeding",
+ "triage": "Triage",
+ "areYouSureYouWantToExitProgress": "Are you sure you want to exit? Your progress will be lost.",
+ "noQuestionAvailable": "No question available",
+ "possibleSymptom": "Possible symptom: ",
+ "symptomsCheckerFindingScore": "- Symptoms checker finding score",
+ "notSet": "Not set",
+ "years": "Years",
+ "symptomsChecker": "Symptoms Checker",
+ "helloIsYourInformationUpToDate": "Hello {name}, Is your information up to date?",
+ "noEditAll": "No, Edit all",
+ "yesItIs": "Yes, It is",
+ "age": "Age",
+ "youDontHaveAnyAncillaryOrdersYet": "You don't have any ancillary orders yet.",
+ "invoiceWithNumber": "Invoice: {invoiceNo}",
+ "queued": "Queued",
+ "checkInReady": "Check-in Ready",
+ "checkIn": "Check In",
+ "viewDetails": "View Details",
+ "selectPaymentMethod": "Select Payment Method",
+ "processingPaymentPleaseWait": "Processing payment, Please wait...",
+ "finalizingPaymentPleaseWait": "Finalizing payment, Please wait...",
+ "generatingInvoicePleaseWait": "Generating invoice, Please wait...",
+ "hereIsYourInvoiceNumber": "Here is your invoice #: ",
+ "paymentCompletedSuccessfully": "Payment Completed Successfully",
+ "failedToInitializeApplePay": "Failed to initialize Apple Pay. Please try again.",
+ "cash": "Cash",
+ "approved": "Approved",
+ "approvalRejectedPleaseVisitReceptionist": "Approval Rejected - Please visit receptionist",
+ "sentForApproval": "Sent For Approval",
+ "ancillaryOrderDetails": "Ancillary Order Details",
+ "noProceduresAvailableForSelectedOrder": "No Procedures available for the selected order.",
+ "procedures": "Procedures",
+ "totalAmount": "Total Amount",
+ "covered": "Covered",
+ "vatPercent": "VAT (15%)",
+ "proceedToPayment": "Proceed to Payment",
+ "supportedSmartWatches": "Supported Smart Watches",
+ "pleaseMakeSureSamsungWatchConnected": "Please make sure that your Samsung Watch is connected to your Phone, is actively synced & updated.",
+ "beforeSyncingDataFollowInstructions": "Before syncing data, please make sure that you have followed the instructions properly.",
+ "viewWatchInstructions": "View watch instructions",
+ "healthConnectAppNotInstalled": "Seems like you do not have Health Connect App installed. Please install it from the Play Store to sync your health data.",
+ "setTimerOfReminder": "Set the timer of reminder",
+ "youHaveAppointmentWithDr": "You have appointment with Dr. ",
+ "hours": "Hours",
+ "secs": "Secs",
+ "noAllergiesDataFound": "No allergies data found...",
+ "heartRateDescription": "Your heart rate indicates how many times your heart beats per minute",
+ "bloodOxygenDescription": "Blood oxygen level indicates how much oxygen your red blood cells are carrying",
+ "stepsDescription": "Number of steps taken throughout the day",
+ "caloriesDescription": "Calories burned during physical activity",
+ "distanceDescription": "Distance covered throughout the day",
+ "overview": "Overview",
+ "details": "Details",
+ "healthy": "Healthy",
+ "warning": "Warning",
+ "vitalSignDetails": "Vital Sign Details",
+ "resultOf": "Result of {date}",
+ "resultOfNoDate": "Result of --",
+ "referenceRangeBetween": "Reference range: {low} – {high} {unit}",
+ "referenceRangeMin": "Reference range: ≥ {low} {unit}",
+ "referenceRangeMax": "Reference range: ≤ {high} {unit}",
+ "noHistoryAvailable": "No history available",
+ "bmiDescription": "BMI is a measurement based on height and weight that estimates body fat.",
+ "heightDescription": "Height is measured in centimeters and is used to calculate BMI and dosage recommendations.",
+ "weightDescription": "Weight helps track overall health, nutrition, and changes over time.",
+ "bloodPressureDescription": "Blood pressure reflects the force of blood against artery walls. It is shown as systolic/diastolic.",
+ "temperatureDescription": "Body temperature reflects how hot your body is and may change with infection or inflammation.",
+ "heartRateDescriptionVital": "Heart rate refers to the number of heart beats per minute.",
+ "respiratoryRateDescription": "Respiratory rate is the number of breaths taken per minute.",
+ "bmiAdvice": "Maintain a balanced diet and regular activity. If your BMI is high or low, consider consulting your doctor.",
+ "heightAdvice": "No action is needed unless your measurement looks incorrect. Update it during your next visit.",
+ "weightAdvice": "Monitor weight changes. Sudden gain or loss may require medical advice.",
+ "bloodPressureAdvice": "Keep tracking your blood pressure. High or low readings should be discussed with your doctor.",
+ "temperatureAdvice": "If you have a persistent fever or symptoms, contact your healthcare provider.",
+ "heartRateAdvice": "Track your heart rate trends. If you feel dizziness or chest pain, seek medical care.",
+ "respiratoryRateAdvice": "If you notice shortness of breath or abnormal breathing, seek medical advice.",
+ "whatShouldIDoNext": "What should I do next?",
+ "customizeDrinkCup": "Customize your drink cup",
+ "tipsToStayHydrated": "Tips to stay hydrated",
+ "drinkBeforeYouFeelThirsty": "Drink before you feel thirsty",
+ "keepRefillableBottleNextToYou": "Keep a refillable bottle next to you",
+ "trackYourDailyIntakeToStayMotivated": "Track your daily intake to stay motivated",
+ "chooseSparklingWaterInsteadOfSoda": "Choose sparkling water instead of soda",
+ "switchCup": "Switch Cup",
+ "plainWater": "Plain Water",
+ "yourGoal": "Your Goal",
+ "remaining": "Remaining",
+ "hydrationStatus": "Hydration Status",
+ "areYouSureYouWantToCancelAllWaterReminders": "Are you sure you want to cancel all water reminders?",
+ "remindersSet": "Reminders Set!",
+ "dailyWaterRemindersScheduledAt": "Daily water reminders scheduled at:",
+ "waterConsumption": "Water Consumption",
+ "selectActivityLevel": "Select Activity Level",
+ "selectNumberOfReminders": "Select Number of Reminders",
+ "h2oSettings": "H20 Settings",
+ "settingsSavedSuccessfully": "Settings saved successfully",
+ "yourName": "Your Name",
+ "ageYears": "Age (11-120) yrs",
+ "numberOfRemindersInADay": "Number of reminders in a day",
+ "medications": "Medications",
+ "remarks": "Remarks: ",
+ "someRemarksAboutPrescription": "some remarks about the prescription will be here",
+ "notifyMeBeforeConsumptionTime": "Notify me before the consumption time",
+ "noMedicationsToday": "No medications today",
+ "route": "Route: {route}",
+ "frequency": "Frequency: {frequency}",
+ "instruction": "Instruction: {instruction}",
+ "duration": "Duration: {days}",
+ "reminders": "Reminders",
+ "reminderAddedToCalendar": "Reminder added to calendar ✅",
+ "errorWhileSettingCalendar": "Error while setting calendar: {error}",
+ "instructions": "Instructions",
+ "requests": "Requests",
+ "thisWeek": "This Week",
+ "lastMonth": "Last Month",
+ "lastSixMonths": "Last 6 Months",
+ "selectTime": "Select Time",
+ "pleaseWaitYouWillBeCalledForVitalSigns": "Please wait! you will be called for vital signs",
+ "pleaseVisitRoomForVitalSigns": "Please visit Room {roomNumber} for vital signs",
+ "pleaseVisitRoomToTheDoctor": "Please visit Room {roomNumber} to the Doctor"
+}
diff --git a/ios/Runner/Penguin/PenguinNavigator.swift b/ios/Runner/Penguin/PenguinNavigator.swift
index 31cf626..5b9934b 100644
--- a/ios/Runner/Penguin/PenguinNavigator.swift
+++ b/ios/Runner/Penguin/PenguinNavigator.swift
@@ -14,7 +14,7 @@ class PenguinNavigator {
}
func navigateToPOI( referenceId:String,completion: @escaping (Bool, String?) -> Void) {
- PenNavUIManager.shared.getToken(clientID: config.clientID, clientKey: config.clientKey, showProgress: true) { [weak self] token, error in
+ PenNavUIManager.shared.getToken(clientID: config.clientID, clientKey: config.clientKey, showProgress: false) { [weak self] token, error in
if let error = error {
let errorMessage = "Token error while getting the for Navigate to method"
diff --git a/ios/Runner/Penguin/PenguinView.swift b/ios/Runner/Penguin/PenguinView.swift
index d5303e2..508fb74 100644
--- a/ios/Runner/Penguin/PenguinView.swift
+++ b/ios/Runner/Penguin/PenguinView.swift
@@ -312,6 +312,8 @@ class PenguinView: NSObject, FlutterPlatformView, PIEventsDelegate, PenNavInitia
print("====== after eventsDelegate onPenNavSuccess =========")
+
+ PenNavUIManager.shared.navigate(to: "108")
@@ -385,21 +387,21 @@ class PenguinView: NSObject, FlutterPlatformView, PIEventsDelegate, PenNavInitia
- self?.handleNavigation(clinicID: clinicID, token: token) { success, errorMessage in
-
- if success {
-
- print("Navigation successful")
-
- } else {
-
- print("Navigation failed: \(errorMessage ?? "Unknown error")")
-
- }
-
-
-
- }
+// self?.handleNavigation(clinicID: clinicID, token: token) { success, errorMessage in
+//
+// if success {
+//
+// print("Navigation successful")
+//
+// } else {
+//
+// print("Navigation failed: \(errorMessage ?? "Unknown error")")
+//
+// }
+//
+//
+//
+// }
diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart
index f366329..722a45e 100644
--- a/lib/core/api/api_client.dart
+++ b/lib/core/api/api_client.dart
@@ -19,7 +19,7 @@ abstract class ApiClient {
Future post(
String endPoint, {
- required dynamic body,
+ required Map body,
required Function(dynamic response, int statusCode, {int? messageStatus, String? errorMessage}) onSuccess,
required Function(String error, int statusCode, {int? messageStatus, Failure? failureType}) onFailure,
bool isAllowAny,
@@ -210,7 +210,7 @@ class ApiClientImp implements ApiClient {
final int statusCode = response.statusCode;
log("uri: ${Uri.parse(url.trim())}");
log("body: ${json.encode(body)}");
- // log("response.body: ${response.body}");
+ log("response.body: ${response.body}");
if (statusCode < 200 || statusCode >= 400) {
onFailure('Error While Fetching data', statusCode, failureType: StatusCodeFailure("Error While Fetching data"));
logApiEndpointError(endPoint, 'Error While Fetching data', statusCode);
diff --git a/lib/core/api_consts.dart b/lib/core/api_consts.dart
index 1846d1e..efefee1 100644
--- a/lib/core/api_consts.dart
+++ b/lib/core/api_consts.dart
@@ -151,6 +151,7 @@ var GET_FINDUS_REQUEST = 'Services/Lists.svc/REST/Get_HMG_Locations';
///LiveChat
var GET_LIVECHAT_REQUEST = 'Services/Patients.svc/REST/GetPatientICProjects';
+var GET_LIVECHAT_REQUEST_ID = 'Services/Patients.svc/REST/Patient_ICChatRequest_Insert';
///babyInformation
var GET_BABYINFORMATION_REQUEST = 'Services/Community.svc/REST/GetBabyByUserID';
@@ -207,7 +208,7 @@ var GET_APPOINTMENT_DETAILS_BY_NO = 'Services/MobileNotifications.svc/REST/GetAp
var NEW_RATE_APPOINTMENT_URL = "Services/Doctors.svc/REST/AppointmentsRating_InsertAppointmentRate";
var NEW_RATE_DOCTOR_URL = "Services/Doctors.svc/REST/DoctorsRating_InsertDoctorRate";
-var GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID';
+//var GET_QR_PARKING = 'Services/SWP.svc/REST/GetQRParkingByID';
//URL to get clinic list
var GET_CLINICS_LIST_URL = "Services/lists.svc/REST/GetClinicCentralized";
@@ -398,6 +399,9 @@ var GET_COVID_DRIVETHRU_PROCEDURES_LIST = 'Services/Doctors.svc/REST/COVID19_Get
var GET_PATIENT_LAST_RECORD = 'Services/Patients.svc/REST/Med_GetPatientLastRecord';
var INSERT_PATIENT_HEALTH_DATA = 'Services/Patients.svc/REST/Med_InsertTransactions';
+///Push Notifications
+var GET_ALL_NOTIFICATIONS = 'Services/MobileNotifications.svc/REST/PushNotification_GetAllNotifications';
+
///My Trackers
var GET_DIABETIC_RESULT_AVERAGE = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage';
var GET_DIABTEC_RESULT = 'Services/Patients.svc/REST/Patient_GetDiabtecResults';
@@ -420,7 +424,6 @@ var GET_QUESTION_TYPES = 'Services/OUTPs.svc/REST/getQuestionsTypes';
var UPDATE_DIABETIC_RESULT = 'Services/Patients.svc/REST/Patient_UpdateDiabeticResult';
-var SEND_AVERAGE_BLOOD_SUGAR_REPORT = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport';
var DEACTIVATE_DIABETIC_STATUS = 'services/Patients.svc/REST/Patient_DeactivateDiabeticStatus';
var DEACTIVATE_BLOOD_PRESSURES_STATUS = 'services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus';
@@ -672,10 +675,12 @@ const FAMILY_FILES = 'Services/Authentication.svc/REST/GetAllSharedRecordsByStat
var GET_PRESCRIPTION_INSTRUCTIONS_PDF = 'Services/ChatBot_Service.svc/REST/Chatbot_SendMedicationInstructionByWhatsApp';
+const DASHBOARD = 'Services/Patients.svc/REST/PatientDashboard';
+
class ApiConsts {
static const maxSmallScreen = 660;
- static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat;
+ static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT
@@ -799,6 +804,11 @@ class ApiConsts {
static final String getAllSharedRecordsByStatus = 'Services/Authentication.svc/REST/GetAllSharedRecordsByStatus';
static final String removeFileFromFamilyMembers = 'Services/Authentication.svc/REST/ActiveDeactive_PatientFile';
static final String acceptAndRejectFamilyFile = 'Services/Authentication.svc/REST/Update_FileStatus';
+ static final String getActivePrescriptionsDetails = 'Services/Patients.svc/Rest/GetActivePrescriptionReportByPatientID';
+ static final String getTermsConditions = 'Services/Patients.svc/Rest/GetUserTermsAndConditions';
+ static final String getMonthlyReports = 'Services/Patients.svc/Rest/UpdatePateintHealthSummaryReport';
+ static final String updatePatientEmail = 'Services/Patients.svc/Rest/UpdatePateintEmail';
+ static final String getQrParkingDetails = 'Services/SWP.svc/REST/GetQRParkingByID';
// Ancillary Order Apis
static final String getOnlineAncillaryOrderList = 'Services/Doctors.svc/REST/GetOnlineAncillaryOrderList';
@@ -825,11 +835,12 @@ class ApiConsts {
static final String updateHHCOrder = 'api/hhc/update';
static final String addHHCOrder = 'api/HHC/add';
- // SYMPTOMS CHECKER
+ // SYMPTOMS CHECKER API
+ static final String symptomsUserLogin = '$symptomsCheckerApi/user_login';
static final String getBodySymptomsByName = '$symptomsCheckerApi/GetBodySymptomsByName';
static final String getRiskFactors = '$symptomsCheckerApi/GetRiskFactors';
static final String getSuggestions = '$symptomsCheckerApi/GetSuggestion';
- static final String diagnosis = '$symptomsCheckerApi/diagnosis';
+ static final String diagnosis = '$symptomsCheckerApi/GetDiagnosis';
static final String explain = '$symptomsCheckerApi/explain';
//E-REFERRAL SERVICES
@@ -848,6 +859,37 @@ class ApiConsts {
static String h2oUpdateUserDetail = "Services/H2ORemainder.svc/REST/H2O_UpdateUserDetails_New";
static String h2oUndoUserActivity = "Services/H2ORemainder.svc/REST/H2o_UndoUserActivity";
+ // HEALTH TRACKERS
+ // Blood Sugar (Diabetic)
+ static String getDiabeticResultAverage = 'Services/Patients.svc/REST/Patient_GetDiabeticResultAverage';
+ static String getDiabeticResult = 'Services/Patients.svc/REST/Patient_GetDiabtecResults';
+ static String addDiabeticResult = 'Services/Patients.svc/REST/Patient_AddDiabtecResult';
+ static String updateDiabeticResult = 'Services/Patients.svc/REST/Patient_UpdateDiabtecResult';
+ static String deactivateDiabeticStatus = 'Services/Patients.svc/REST/Patient_DeactivateDiabeticStatus';
+ static String sendAverageBloodSugarReport = 'Services/Notifications.svc/REST/SendAverageBloodSugarReport';
+
+ // Blood Pressure
+ static String getBloodPressureResultAverage = 'Services/Patients.svc/REST/Patient_GetBloodPressureResultAverage';
+ static String getBloodPressureResult = 'Services/Patients.svc/REST/Patient_GetBloodPressureResult';
+ static String addBloodPressureResult = 'Services/Patients.svc/REST/Patient_AddBloodPressureResult';
+ static String updateBloodPressureResult = 'Services/Patients.svc/REST/Patient_UpdateBloodPressureResult';
+ static String deactivateBloodPressureStatus = 'Services/Patients.svc/REST/Patient_DeactivateBloodPressureStatus';
+ static String sendAverageBloodPressureReport = 'Services/Notifications.svc/REST/SendAverageBloodPressureReport';
+
+ // Weight Measurement
+ static String getWeightMeasurementResultAverage = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResultAverage';
+ static String getWeightMeasurementResult = 'Services/Patients.svc/REST/Patient_GetWeightMeasurementResult';
+ static String addWeightMeasurementResult = 'Services/Patients.svc/REST/Patient_AddWeightMeasurementResult';
+ static String updateWeightMeasurementResult = 'Services/Patients.svc/REST/Patient_UpdateWeightMeasurementResult';
+ static String deactivateWeightMeasurementStatus = 'Services/Patients.svc/REST/Patient_DeactivateWeightMeasurementStatus';
+ static String sendAverageBodyWeightReport = 'Services/Notifications.svc/REST/SendAverageBodyWeightReport';
+
+ //Blood Donation
+ static String bloodGroupUpdate = "Services/PatientVarification.svc/REST/BloodDonation_RegisterBloodType";
+ static String userAgreementForBloodGroupUpdate = "Services/PatientVarification.svc/REST/AddUserAgreementForBloodDonation";
+ static String getProjectsHaveBDClinics = "Services/OUTPs.svc/REST/BD_getProjectsHaveBDClinics";
+ static String getClinicsBDFreeSlots = "Services/OUTPs.svc/REST/BD_GetFreeSlots";
+
// ************ static values for Api ****************
static final double appVersionID = 50.3;
static final int appChannelId = 3;
diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart
index c5a03ca..a8b88b7 100644
--- a/lib/core/app_assets.dart
+++ b/lib/core/app_assets.dart
@@ -220,11 +220,16 @@ class AppAssets {
static const String activity = '$svgBasePath/activity.svg';
static const String age = '$svgBasePath/age_icon.svg';
static const String gender = '$svgBasePath/gender_icon.svg';
+ static const String genderInputIcon = '$svgBasePath/genderInputIcon.svg';
+ static const String bloodType = '$svgBasePath/blood_type.svg';
static const String trade_down_yellow = '$svgBasePath/trade_down_yellow.svg';
static const String trade_down_red = '$svgBasePath/trade_down_red.svg';
static const String pharmacy_icon = '$svgBasePath/phramacy_icon.svg';
+ static const String forward_top_nav_icon = '$svgBasePath/forward_top_nav_icon.svg';
+ static const String back_top_nav_icon = '$svgBasePath/back_top_nav_icon.svg';
+
//bottom navigation//
static const String homeBottom = '$svgBasePath/home_bottom.svg';
static const String homeBottomFill = '$svgBasePath/home_bottom_fill.svg';
@@ -278,16 +283,21 @@ class AppAssets {
static const String yellowArrowDownIcon = '$svgBasePath/yellow_arrow_down_icon.svg';
static const String greenTickIcon = '$svgBasePath/green_tick_icon.svg';
- // PNGS
-
-
static const String bloodSugar = '$svgBasePath/bloodsugar.svg';
static const String bloodCholestrol = '$svgBasePath/bloodcholestrol.svg';
static const String triglycerides = '$svgBasePath/triglycerides.svg';
static const String bulb = '$svgBasePath/bulb.svg';
static const String switchBtn = '$svgBasePath/switch.svg';
+ //Health Trackers
+ static const String bloodPressureIcon = '$svgBasePath/blood_pressure_icon.svg';
+ static const String bloodSugarOnlyIcon = '$svgBasePath/blood_sugar_only_icon.svg';
+ static const String weightIcon = '$svgBasePath/weight_icon.svg';
+ static const String normalStatusGreenIcon = '$svgBasePath/normal_status_green_icon.svg';
+ static const String sendEmailIcon = '$svgBasePath/send_email_icon.svg';
+ static const String lowIndicatorIcon = '$svgBasePath/low_indicator_icon.svg';
+ // Health Calculators
static const String ovulationAccordion = '$svgBasePath/approximate_ovulation_accordion.svg';
static const String nextPeriodAccordion = '$svgBasePath/next_period_accordion.svg';
static const String fertileAccordion = '$svgBasePath/fertile_window_accordion.svg';
@@ -296,9 +306,7 @@ class AppAssets {
static const String covid19icon = '$svgBasePath/covid_19.svg';
-
//vital sign
-
static const String heartRate = '$svgBasePath/heart_rate.svg';
static const String respRate = '$svgBasePath/resp_rate.svg';
static const String weightVital = '$svgBasePath/weight_2.svg';
@@ -307,8 +315,6 @@ class AppAssets {
static const String bloodPressure = '$svgBasePath/blood_pressure.svg';
static const String temperature = '$svgBasePath/temperature.svg';
-
-
// PNGS //
static const String hmgLogo = '$pngBasePath/hmg_logo.png';
static const String liveCareService = '$pngBasePath/livecare_service.png';
@@ -335,8 +341,6 @@ class AppAssets {
static const String fullBodyFront = '$pngBasePath/full_body_front.png';
static const String fullBodyBack = '$pngBasePath/full_body_back.png';
static const String bmiFullBody = '$pngBasePath/bmi_image_1.png';
-
-
}
class AppAnimations {
@@ -357,6 +361,5 @@ class AppAnimations {
static const String ambulance = '$lottieBasePath/ambulance.json';
static const String ambulanceAlert = '$lottieBasePath/ambulance_alert.json';
static const String rrtAmbulance = '$lottieBasePath/rrt_ambulance.json';
-
-
}
+
diff --git a/lib/core/dependencies.dart b/lib/core/dependencies.dart
index ebf0a84..44a8bde 100644
--- a/lib/core/dependencies.dart
+++ b/lib/core/dependencies.dart
@@ -10,6 +10,8 @@ import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_repo.
import 'package:hmg_patient_app_new/features/blood_donation/blood_donation_view_model.dart';
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_repo.dart';
import 'package:hmg_patient_app_new/features/book_appointments/book_appointments_view_model.dart';
+import 'package:hmg_patient_app_new/features/active_prescriptions/active_prescriptions_view_model.dart';
+import 'package:hmg_patient_app_new/features/active_prescriptions/models/active_prescriptions_response_model.dart';
import 'package:hmg_patient_app_new/features/common/common_repo.dart';
import 'package:hmg_patient_app_new/features/contact_us/contact_us_repo.dart';
import 'package:hmg_patient_app_new/features/contact_us/contact_us_view_model.dart';
@@ -18,6 +20,7 @@ import 'package:hmg_patient_app_new/features/emergency_services/emergency_servic
import 'package:hmg_patient_app_new/features/emergency_services/emergency_services_view_model.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_repo.dart';
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
+import 'package:hmg_patient_app_new/features/health_trackers/health_trackers_repo.dart';
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_repo.dart';
import 'package:hmg_patient_app_new/features/hmg_services/hmg_services_view_model.dart';
import 'package:hmg_patient_app_new/features/immediate_livecare/immediate_livecare_repo.dart';
@@ -32,17 +35,21 @@ import 'package:hmg_patient_app_new/features/medical_file/medical_file_repo.dart
import 'package:hmg_patient_app_new/features/medical_file/medical_file_view_model.dart';
import 'package:hmg_patient_app_new/features/monthly_report/monthly_report_repo.dart';
import 'package:hmg_patient_app_new/features/monthly_report/monthly_report_view_model.dart';
+import 'package:hmg_patient_app_new/features/monthly_reports/monthly_reports_repo.dart';
import 'package:hmg_patient_app_new/features/my_appointments/appointment_rating_view_model.dart';
import 'package:hmg_patient_app_new/features/my_appointments/appointment_via_region_viewmodel.dart';
import 'package:hmg_patient_app_new/features/my_appointments/my_appointments_repo.dart';
import 'package:hmg_patient_app_new/features/my_appointments/my_appointments_view_model.dart';
import 'package:hmg_patient_app_new/features/my_invoices/my_invoices_repo.dart';
import 'package:hmg_patient_app_new/features/my_invoices/my_invoices_view_model.dart';
+import 'package:hmg_patient_app_new/features/notifications/notifications_repo.dart';
+import 'package:hmg_patient_app_new/features/notifications/notifications_view_model.dart';
import 'package:hmg_patient_app_new/features/payfort/payfort_repo.dart';
import 'package:hmg_patient_app_new/features/payfort/payfort_view_model.dart';
import 'package:hmg_patient_app_new/features/prescriptions/prescriptions_repo.dart';
import 'package:hmg_patient_app_new/features/prescriptions/prescriptions_view_model.dart';
import 'package:hmg_patient_app_new/features/profile_settings/profile_settings_view_model.dart';
+import 'package:hmg_patient_app_new/features/qr_parking/qr_parking_repo.dart';
import 'package:hmg_patient_app_new/features/radiology/radiology_repo.dart';
import 'package:hmg_patient_app_new/features/radiology/radiology_view_model.dart';
import 'package:hmg_patient_app_new/features/smartwatch_health_data/health_provider.dart';
@@ -52,6 +59,7 @@ import 'package:hmg_patient_app_new/features/todo_section/todo_section_repo.dart
import 'package:hmg_patient_app_new/features/todo_section/todo_section_view_model.dart';
import 'package:hmg_patient_app_new/features/water_monitor/water_monitor_repo.dart';
import 'package:hmg_patient_app_new/features/water_monitor/water_monitor_view_model.dart';
+import 'package:hmg_patient_app_new/presentation/health_trackers/health_trackers_view_model.dart';
import 'package:hmg_patient_app_new/services/analytics/analytics_service.dart';
import 'package:hmg_patient_app_new/services/cache_service.dart';
import 'package:hmg_patient_app_new/services/dialog_service.dart';
@@ -66,8 +74,14 @@ import 'package:local_auth/local_auth.dart';
import 'package:logger/web.dart';
import 'package:shared_preferences/shared_preferences.dart';
+import '../features/monthly_reports/monthly_reports_repo.dart';
+import '../features/qr_parking/qr_parking_view_model.dart';
import '../presentation/health_calculators_and_converts/health_calculator_view_model.dart';
+import '../features/active_prescriptions/active_prescriptions_repo.dart';
+import '../features/monthly_reports/terms_conditions_repo.dart';
+import '../features/monthly_reports/terms_conditions_view_model.dart';
+
GetIt getIt = GetIt.instance;
class AppDependencies {
@@ -143,7 +157,15 @@ class AppDependencies {
getIt.registerLazySingleton(() => BloodDonationRepoImp(loggerService: getIt(), apiClient: getIt()));
getIt.registerLazySingleton(() => WaterMonitorRepoImp(loggerService: getIt(), apiClient: getIt()));
getIt.registerLazySingleton(() => MyInvoicesRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => HealthTrackersRepoImp(loggerService: getIt(), apiClient: getIt()));
getIt.registerLazySingleton(() => MonthlyReportRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => ActivePrescriptionsRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => TermsConditionsRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerFactory(() => TermsConditionsViewModel(termsConditionsRepo: getIt(), errorHandlerService: getIt(),
+ ),);
+ getIt.registerLazySingleton(() => MonthlyReportsRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => QrParkingRepoImp(loggerService: getIt(), apiClient: getIt()));
+ getIt.registerLazySingleton(() => NotificationsRepoImp(loggerService: getIt(), apiClient: getIt()));
// ViewModels
// Global/shared VMs → LazySingleton
@@ -154,26 +176,20 @@ class AppDependencies {
() => RadiologyViewModel(radiologyRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt()),
);
- getIt.registerLazySingleton(
- () => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
+ getIt.registerLazySingleton(() => PrescriptionsViewModel(prescriptionsRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
getIt.registerLazySingleton(() => InsuranceViewModel(insuranceRepo: getIt(), errorHandlerService: getIt()));
- getIt.registerLazySingleton(
- () => MyAppointmentsViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
+ getIt.registerLazySingleton(() => MyAppointmentsViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
- getIt.registerLazySingleton(
- () => AppointmentRatingViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
+ getIt.registerLazySingleton(() => AppointmentRatingViewModel(myAppointmentsRepo: getIt(), errorHandlerService: getIt(), appState: getIt()));
getIt.registerLazySingleton(
() => PayfortViewModel(payfortRepo: getIt(), errorHandlerService: getIt()),
);
getIt.registerLazySingleton(
- () => HabibWalletViewModel(
- habibWalletRepo: getIt(),
- errorHandlerService: getIt()
- ),
+ () => HabibWalletViewModel(habibWalletRepo: getIt(), errorHandlerService: getIt()),
);
getIt.registerLazySingleton(
@@ -185,12 +201,7 @@ class AppDependencies {
getIt.registerLazySingleton(
() => BookAppointmentsViewModel(
- bookAppointmentsRepo: getIt(),
- errorHandlerService: getIt(),
- navigationService: getIt(),
- myAppointmentsViewModel: getIt(),
- locationUtils: getIt(),
- dialogService: getIt()),
+ bookAppointmentsRepo: getIt(), errorHandlerService: getIt(), navigationService: getIt(), myAppointmentsViewModel: getIt(), locationUtils: getIt(), dialogService: getIt()),
);
getIt.registerLazySingleton(
@@ -204,13 +215,7 @@ class AppDependencies {
getIt.registerLazySingleton(
() => AuthenticationViewModel(
- authenticationRepo: getIt(),
- cacheService: getIt(),
- navigationService: getIt(),
- dialogService: getIt(),
- appState: getIt(),
- errorHandlerService: getIt(),
- localAuthService: getIt()),
+ authenticationRepo: getIt(), cacheService: getIt(), navigationService: getIt(), dialogService: getIt(), appState: getIt(), errorHandlerService: getIt(), localAuthService: getIt()),
);
getIt.registerLazySingleton(() => ProfileSettingsViewModel());
@@ -271,15 +276,35 @@ class AppDependencies {
navigationService: getIt(),
dialogService: getIt(),
appState: getIt(),
+ navServices: getIt(),
),
);
getIt.registerLazySingleton(() => HealthProvider());
- getIt.registerLazySingleton(() => WaterMonitorViewModel(waterMonitorRepo: getIt()));
+ getIt.registerLazySingleton(() => WaterMonitorViewModel(waterMonitorRepo: getIt(), errorHandlerService: getIt()));
+ //commenting this because its already define there was on run time error because of this.
getIt.registerLazySingleton(() => MyInvoicesViewModel(myInvoicesRepo: getIt(), errorHandlerService: getIt(), navServices: getIt()));
getIt.registerLazySingleton(() => MonthlyReportViewModel(errorHandlerService: getIt(), monthlyReportRepo: getIt()));
+
+ getIt.registerLazySingleton(() => NotificationsViewModel(notificationsRepo: getIt(), errorHandlerService: getIt()));
+
+ getIt.registerLazySingleton(() => HealthTrackersViewModel(healthTrackersRepo: getIt(), errorHandlerService: getIt()));
+ getIt.registerLazySingleton(
+ () => ActivePrescriptionsViewModel(
+ errorHandlerService: getIt(),
+ activePrescriptionsRepo: getIt()
+ ),
+ );
+ getIt.registerFactory(
+ () => QrParkingViewModel(
+ qrParkingRepo: getIt(),
+ errorHandlerService: getIt(),
+ cacheService: getIt(),
+ ),
+ );
+
}
}
diff --git a/lib/core/enums.dart b/lib/core/enums.dart
index 8fd4818..6dc3bf6 100644
--- a/lib/core/enums.dart
+++ b/lib/core/enums.dart
@@ -16,7 +16,7 @@ enum CountryEnum { saudiArabia, unitedArabEmirates }
enum CalenderEnum { gregorian, hijri }
-enum SelectionTypeEnum { dropdown, calendar, search }
+enum SelectionTypeEnum { dropdown, calendar, search, time }
enum GenderTypeEnum { male, female }
@@ -38,7 +38,19 @@ enum HealthCalConEnum { calculator, converter }
enum HealthCalculatorEnum { general, women }
-enum HealthCalculatorsTypeEnum { bmi, calories, bmr, idealBodyWeight, bodyFat, crabsProteinFat, ovulation, deliveryDueDate, bloodSugar, bloodCholesterol, triglycerides }
+enum HealthCalculatorsTypeEnum {
+ bmi,
+ calories,
+ bmr,
+ idealBodyWeight,
+ bodyFat,
+ crabsProteinFat,
+ ovulation,
+ deliveryDueDate,
+ bloodSugar,
+ bloodCholesterol,
+ triglycerides
+}
extension HealthCalculatorExtenshion on HealthCalculatorsTypeEnum {
String get displayName {
@@ -297,3 +309,5 @@ extension ServiceTypeEnumExt on ServiceTypeEnum {
// SymptomsChecker
enum PossibleConditionsSeverityEnum { seekMedicalAdvice, monitorOnly, emergency }
+
+enum HealthTrackerTypeEnum { bloodSugar, bloodPressure, weightTracker }
diff --git a/lib/core/location_util.dart b/lib/core/location_util.dart
index 9dcdbb5..cf26d24 100644
--- a/lib/core/location_util.dart
+++ b/lib/core/location_util.dart
@@ -104,7 +104,7 @@ class LocationUtils {
title: LocaleKeys.notice.tr(context: navigationService.navigatorKey.currentContext!),
navigationService.navigatorKey.currentContext!,
child: Utils.getWarningWidget(
- loadingText: "Please grant location permission from app settings to see better results".needTranslation,
+ loadingText: "Please grant location permission from app settings to see better results",
isShowActionButtons: true,
onCancelTap: () {
navigationService.pop();
@@ -265,7 +265,7 @@ class LocationUtils {
title: LocaleKeys.notice.tr(context: navigationService.navigatorKey.currentContext!),
navigationService.navigatorKey.currentContext!,
child: Utils.getWarningWidget(
- loadingText: "Please grant location permission from app settings to see better results".needTranslation,
+ loadingText: "Please grant location permission from app settings to see better results",
isShowActionButtons: true,
onCancelTap: () {
navigationService.pop();
diff --git a/lib/core/utils/calendar_utils.dart b/lib/core/utils/calendar_utils.dart
new file mode 100644
index 0000000..8b21111
--- /dev/null
+++ b/lib/core/utils/calendar_utils.dart
@@ -0,0 +1,316 @@
+import 'dart:async';
+import 'dart:collection';
+import 'dart:convert';
+import 'dart:io';
+import 'dart:ui';
+
+import 'package:device_calendar/device_calendar.dart';
+import 'package:flutter/widgets.dart';
+import 'package:hmg_patient_app_new/core/dependencies.dart';
+import 'package:hmg_patient_app_new/core/utils/date_util.dart';
+import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
+import 'package:hmg_patient_app_new/presentation/prescriptions/prescription_reminder_view.dart';
+import 'package:hmg_patient_app_new/services/dialog_service.dart';
+import 'package:hmg_patient_app_new/services/permission_service.dart';
+import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart';
+import 'package:jiffy/jiffy.dart';
+import 'package:manage_calendar_events/manage_calendar_events.dart' as ios;
+import 'package:permission_handler/permission_handler.dart';
+import 'package:timezone/data/latest.dart' as tzl;
+
+final DeviceCalendarPlugin deviceCalendarPlugin = DeviceCalendarPlugin();
+final ios.CalendarPlugin _myPlugin = ios.CalendarPlugin();
+
+class CalendarUtils {
+ static Completer? _completer;
+
+ dynamic get writableCalendars => calendars.firstWhere((c) => !c.isReadOnly!);
+ dynamic calendars;
+
+ CalendarUtils._(this.calendars);
+
+ // static Future getInstance() async {
+ // if (_completer == null) {
+ // _completer = Completer();
+ // print(_completer!.isCompleted);
+ // try {
+ // final dynamic calendarsResult;
+ // if (Platform.isIOS) {
+ // calendarsResult = await _myPlugin.getCalendars();
+ // if (!_completer!.isCompleted) {
+ // _completer?.complete(CalendarUtils._(await calendarsResult!));
+ // }
+ // } else {
+ // calendarsResult = await deviceCalendarPlugin.retrieveCalendars();
+ // if (!_completer!.isCompleted) {
+ // _completer?.complete(CalendarUtils._(await calendarsResult.data!));
+ // }
+ // }
+ // } on Exception catch (e) {
+ // if (!_completer!.isCompleted) {
+ // _completer!.completeError(e);
+ // }
+ // }
+ // }
+ // return _completer!.future;
+ // }
+
+ static Future getInstance() async {
+ tzl.initializeTimeZones();
+ if (_completer != null) {
+ return _completer!.future;
+ }
+ _completer = Completer();
+ try {
+ final dynamic calendarsResult;
+ if (Platform.isIOS) {
+ calendarsResult = await _myPlugin.getCalendars();
+ _completer!.complete(CalendarUtils._(calendarsResult));
+ } else {
+ calendarsResult = await deviceCalendarPlugin.retrieveCalendars();
+ _completer!.complete(CalendarUtils._(calendarsResult.data));
+ }
+ } catch (e) {
+ _completer!.completeError(e);
+ }
+
+ return _completer!.future;
+ }
+
+ Future createOrUpdateEvents({List? scheduleList, String? title, String? description, List? scheduleDateTime, List? daysOfWeek}) async {
+ tzl.initializeTimeZones();
+ List events = [];
+ Location _currentLocation;
+ if (DateTime.now().timeZoneName == "+04")
+ _currentLocation = getLocation('Asia/Dubai');
+ else
+ _currentLocation = getLocation('Asia/Riyadh');
+
+ scheduleDateTime!.forEach((element) {
+ RecurrenceRule recurrenceRule = RecurrenceRule(
+ // RecurrenceFrequency.Daily,
+ // daysOfWeek: daysOfWeek,
+ // endDate: element,
+ until: element, frequency: Frequency.daily,
+ );
+ //added byAamir Tz Time
+ Event event = Event(writableCalendars!.id,
+ recurrenceRule: recurrenceRule,
+ start: TZDateTime.from(element, _currentLocation),
+ end: TZDateTime.from(element.add(Duration(minutes: 30)), _currentLocation),
+ title: title,
+ description: description);
+ events.add(event);
+ });
+
+ events.forEach((element) {
+ deviceCalendarPlugin.createOrUpdateEvent(element);
+ });
+ }
+
+ Future createOrUpdateEvent({required String title, required String description, required String location, DateTime? scheduleDateTime, String? eventId}) async {
+ RecurrenceRule recurrenceRule = RecurrenceRule(
+ // RecurrenceFrequency.Daily,
+ // daysOfWeek: daysOfWeek,
+ // endDate: scheduleDateTime,
+ until: scheduleDateTime, frequency: Frequency.daily,
+ );
+
+ Location _currentLocation;
+ // if (DateTime.now().timeZoneName == "+04")
+ // _currentLocation = getLocation('Asia/Dubai');
+ // else
+ _currentLocation = getLocation('Asia/Riyadh');
+
+ TZDateTime scheduleDateTimeUTZ = TZDateTime.from(scheduleDateTime!, _currentLocation);
+
+ print("writableCalendars-name: " + writableCalendars.name);
+ print("writableCalendars-Id: " + writableCalendars.id);
+ print("writableCalendarsToString: " + writableCalendars.toString());
+ print("writableCalendarsToString: " + writableCalendars!.id!);
+ Event event = Event(
+ writableCalendars!.id,
+ start: scheduleDateTimeUTZ,
+ end: scheduleDateTimeUTZ.add(Duration(minutes: 30)),
+ title: title,
+ description: description,
+ );
+
+ ios.CalendarEvent iosCalEvent =
+ ios.CalendarEvent(location: location, startDate: scheduleDateTimeUTZ, endDate: scheduleDateTimeUTZ.add(Duration(minutes: 30)), title: title, description: description, isAllDay: false);
+
+ if (Platform.isAndroid) {
+ Result result = await deviceCalendarPlugin.hasPermissions();
+ print(result);
+ await deviceCalendarPlugin.createOrUpdateEvent(event).catchError((e) {
+ print("catchError " + e.toString());
+ }).whenComplete(() {
+ print("whenComplete Calender ID " + eventId!);
+ });
+ } else {
+ await _myPlugin.createEvent(calendarId: writableCalendars.id!, event: iosCalEvent).catchError((e) {
+ print("catchError " + e.toString());
+ }).whenComplete(() {
+ print("whenComplete Calender ID iOS " + eventId!);
+ });
+ }
+ }
+
+ deleteEvent(String _calendarId, String _eventId) async {
+ if (Platform.isIOS) {
+ await _myPlugin.deleteEvent(calendarId: _calendarId, eventId: _eventId);
+ } else {
+ await deviceCalendarPlugin.deleteEvent(_calendarId, _eventId);
+ }
+ }
+
+ Future retrieveEvents(
+ String calendarId,
+ RetrieveEventsParams retrieveEventsParams,
+ ) async {
+ if (Platform.isIOS) {
+ return await _myPlugin.getEvents(calendarId: calendarId);
+ } else {
+ return await deviceCalendarPlugin.retrieveEvents(calendarId, retrieveEventsParams);
+ }
+ }
+
+ Future createCalendar(
+ String calendarName, {
+ Color? calendarColor,
+ String? localAccountName,
+ }) async {
+ return await deviceCalendarPlugin.createCalendar(calendarName, calendarColor: calendarColor, localAccountName: localAccountName);
+ }
+}
+
+Future