bug fixes

fix_issues
Sultan Khan 5 years ago
parent ec3e8bf7d9
commit f5b7d35f23

@ -6,8 +6,7 @@ import 'package:diplomaticquarterapp/widgets/mobile-no/mobile_no.dart';
const MAX_SMALL_SCREEN = 660; const MAX_SMALL_SCREEN = 660;
// const BASE_URL = 'https://uat.hmgwebservices.com/';
// const BASE_URL = 'https://uat.hmgwebservices.com/';
const BASE_URL = 'https://hmgwebservices.com/'; const BASE_URL = 'https://hmgwebservices.com/';
const GET_PROJECT = 'Services/Lists.svc/REST/GetProject'; const GET_PROJECT = 'Services/Lists.svc/REST/GetProject';
@ -18,8 +17,10 @@ const WEATHER_INDICATOR = 'Services/Weather.svc/REST/GetCityInfo';
const GET_MY_DOCTOR = const GET_MY_DOCTOR =
'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult'; 'Services/Doctors.svc/REST/GetPatientDoctorAppointmentResult';
const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles'; const GET_DOCTOR_PROFILE = 'Services/Doctors.svc/REST/GetDocProfiles';
const GET_DOCTOR_RATING_NOTES = 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating'; const GET_DOCTOR_RATING_NOTES =
const GET_DOCTOR_RATING_DETAILS = 'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails'; 'Services/Doctors.svc/REST/dr_GetNotesDoctorRating';
const GET_DOCTOR_RATING_DETAILS =
'Services/Doctors.svc/REST/dr_GetDoctorRatingDetails';
const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating'; const GET_DOCTOR_RATING = 'Services/Doctors.svc/REST/dr_GetAvgDoctorRating';
///Prescriptions ///Prescriptions
@ -253,7 +254,7 @@ const PATIENT_TYPE = 1;
const PATIENT_TYPE_ID = 1; const PATIENT_TYPE_ID = 1;
var DEVICE_TOKEN = ""; var DEVICE_TOKEN = "";
var DeviceTypeID = Platform.isIOS ? 1 : 2; var DeviceTypeID = Platform.isIOS ? 1 : 2;
const LANGUAGE_ID = 2; const LANGUAGE_ID = 1;
const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region";
const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList"; const GET_PHARMACY_LIST = "Services/Patients.svc/REST/GetPharmcyList";
const GET_PAtIENTS_INSURANCE = const GET_PAtIENTS_INSURANCE =

@ -111,10 +111,7 @@ const Map localizedValues = {
'login': {'en': 'Login', 'ar': 'تسجيل الدخول'}, 'login': {'en': 'Login', 'ar': 'تسجيل الدخول'},
'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'}, 'loginregister': {'en': 'Login / Register', 'ar': 'تسجيل الدخول'},
'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'}, 'poweredBy': {'en': 'Powered By', 'ar': 'مشغل بواسطة'},
"welcome": { "welcome": {"en": "Welcome", "ar": "مرحبا"},
"en": "Welcome",
"ar": "مرحبا"
},
"welcome_text": { "welcome_text": {
"en": "Dr. Sulaiman Al Habib Mobile Application", "en": "Dr. Sulaiman Al Habib Mobile Application",
"ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك" "ar": "الدكتور سليمان الحبيب لتطبيقات الهاتف المتحرك"
@ -130,12 +127,11 @@ const Map localizedValues = {
"ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي." "ar": "اختر من الخيارات أدناه لتسجيل الدخول إلى ملفك الطبي."
}, },
"registernow": {"en": "Register Now", "ar": "تسجيل الان"}, "registernow": {"en": "Register Now", "ar": "تسجيل الان"},
"nationalID": { "en": "Enter the Identification Number", "nationalID": {
"ar": "أدخل رقم الهوية الوطنية او الاقامة"}, "en": "Enter the Identification Number",
"national-id": { "ar": "أدخل رقم الهوية الوطنية او الاقامة"
"en": "National ID",
"ar": "رقم الهوية"
}, },
"national-id": {"en": "National ID", "ar": "رقم الهوية"},
"fileNo": {"en": "File Number", "ar": "رقم الملف"}, "fileNo": {"en": "File Number", "ar": "رقم الملف"},
"fileno": {"en": "File No", "ar": "رقم الملف"}, "fileno": {"en": "File No", "ar": "رقم الملف"},
"forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"}, "forgotFileNo": {"en": "Forgot file Number?", "ar": "نسيت رقم الملف الطبي؟"},
@ -191,8 +187,8 @@ const Map localizedValues = {
'ar': 'الرجائ ادخال اسم الدواء' 'ar': 'الرجائ ادخال اسم الدواء'
}, },
"verification_message": { "verification_message": {
"en": "Please enter verification code", "en": "Please enter the Verification Code sent to",
"ar": "الرجاء إدخال رمز التحقق" "ar": "الرجاء ادخال رمز التحقق الذي تم إرساله إلى"
}, },
"validation_message": { "validation_message": {
"en": "The verification code expires in", "en": "The verification code expires in",
@ -876,8 +872,14 @@ const Map localizedValues = {
"LiveChat": {"en": "Live Chat", "ar": "محادثة مباشرة"}, "LiveChat": {"en": "Live Chat", "ar": "محادثة مباشرة"},
"Service": {"en": "Service", "ar": "خدمة"}, "Service": {"en": "Service", "ar": "خدمة"},
"HMGServiceLabel": {"en": "HMG Service", 'ar': 'خدمات الحبيب'}, "HMGServiceLabel": {"en": "HMG Service", 'ar': 'خدمات الحبيب'},
"HealthWeatherIndicators": {"en": "Health Weather Indicators", 'ar': ' مؤشرات الطقس الصحية '}, "HealthWeatherIndicators": {
"HealthTipsBasedOnCurrentWeather": {"en": "Health Tips Based On Current Weather", 'ar': ' نصائح صحية على أساس الطقس الحالي '}, "en": "Health Weather Indicators",
'ar': ' مؤشرات الطقس الصحية '
},
"HealthTipsBasedOnCurrentWeather": {
"en": "Health Tips Based On Current Weather",
'ar': ' نصائح صحية على أساس الطقس الحالي '
},
"MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "}, "MoreDetails": {"en": "More details", "ar": " المزيد من التفاصيل "},
"SendCopy": {"en": "Send Copy", "ar": "ارسال نسخة"}, "SendCopy": {"en": "Send Copy", "ar": "ارسال نسخة"},
"ResendOrder": {"en": "Resend order & deliver", "ar": "إعادة طلب و توصيل"}, "ResendOrder": {"en": "Resend order & deliver", "ar": "إعادة طلب و توصيل"},
@ -886,338 +888,161 @@ const Map localizedValues = {
"Average": {"en": "Average", "ar": "المعدل"}, "Average": {"en": "Average", "ar": "المعدل"},
"DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"}, "DailyDoses": {"en": "Daily Doses", "ar": "جرعات يومية"},
"Period": {"en": "Period", "ar": "الفترة"}, "Period": {"en": "Period", "ar": "الفترة"},
"cm": { "cm": {"en": "CM", "ar": "سم"},
"en": "CM", "kg": {"en": "kg", "ar": "كجم"},
"ar": "سم" "mass": {"en": "Mass", "ar": "كتلة"},
}, "temp-c": {"en": "°C", "ar": "°س"},
"kg": { "bpm": {"en": "bpm", "ar": "نبضة"},
"en": "kg", "respiration-signs": {"en": "Respiration", "ar": "تنفس"},
"ar": "كجم" "sys-dias": {"en": "SBP/DBP", "ar": "إنقباض/إنبساط"},
}, "body": {"en": "Body \n Mass", "ar": "كتلة\nالجسم"},
"mass": { "feedback": {"en": "Feedback", "ar": "رأيك يهمنا"},
"en": "Mass", "send": {"en": "Send", "ar": "أرسل"},
"ar": "كتلة" "status": {"en": "Status", "ar": "الحالة"},
},
"temp-c": {
"en": "°C",
"ar": "°س"
},
"bpm": {
"en": "bpm",
"ar": "نبضة"
},
"respiration-signs": {
"en": "Respiration",
"ar": "تنفس"
},
"sys-dias": {
"en": "SBP/DBP",
"ar": "إنقباض/إنبساط"
},
"body": {
"en": "Body \n Mass",
"ar": "كتلة\nالجسم"
},
"feedback": {
"en": "Feedback",
"ar": "رأيك يهمنا"
},
"send": {
"en": "Send",
"ar": "أرسل"
},
"status": {
"en": "Status",
"ar": "الحالة"
},
"like-to-hear": { "like-to-hear": {
"en": "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form", "en":
"ar": "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة" "We would love to hear the feedback, concerns on healthcare services and eServices experience. Please use the below form",
}, "ar":
"subject": { "يسعدنا سماع ملاحظاتك حول خدمات الرعاية الصحية والخدمات الإلكترونية. يرجى تعبئة الحقول المطلوبة"
"en": "Subject",
"ar": "الموضوع"
},
"message": {
"en": "Message",
"ar": "رسالة"
}, },
"subject": {"en": "Subject", "ar": "الموضوع"},
"message": {"en": "Message", "ar": "رسالة"},
"empty-subject": { "empty-subject": {
"en": "Please enter the subject", "en": "Please enter the subject",
"ar": "يرجى ادخال الموضوع" "ar": "يرجى ادخال الموضوع"
}, },
"empty-message": { "empty-message": {"en": "Please enter message", "ar": "يرجى ادخال الموضوع"},
"en": "Please enter message", "select-attachment": {"en": "Select Attachment", "ar": "إختر المرفق"},
"ar": "يرجى ادخال الموضوع" "complain-appo": {"en": "Complaint for appointment", "ar": "شكوى على موعد"},
},
"select-attachment": {
"en": "Select Attachment",
"ar": "إختر المرفق"
},
"complain-appo": {
"en": "Complaint for appointment",
"ar": "شكوى على موعد"
},
"complain-without-appo": { "complain-without-appo": {
"en": "Complaint without appointment", "en": "Complaint without appointment",
"ar": "شكوى بدون موعد" "ar": "شكوى بدون موعد"
}, },
"question": { "question": {"en": "Question", "ar": "سؤال"},
"en": "Question", "message-type": {"en": "Message Type", "ar": "نوع الرسالة"},
"ar": "سؤال" "compliment": {"en": "compliment", "ar": "ثناء"},
}, "suggestion": {"en": "Suggestion", "ar": "إقتراح"},
"message-type": { "your-feedback": {"en": "Your feedback was sent", "ar": "إقتراح"},
"en": "Message Type",
"ar": "نوع الرسالة"
},
"compliment": {
"en": "compliment",
"ar": "ثناء"
},
"suggestion": {
"en": "Suggestion",
"ar": "إقتراح"
},
"your-feedback": {
"en": "Your feedback was sent",
"ar": "إقتراح"
},
"select-part": { "select-part": {
"en": "Please select the part that complain about", "en": "Please select the part that complain about",
"ar": "يرجى تحديد الجزء الذي تشكو منه" "ar": "يرجى تحديد الجزء الذي تشكو منه"
}, },
"number": { "number": {"en": "Number", "ar": "الرقم"},
"en": "Number", "not-classified": {"en": "Not classified", "ar": "غير محدد"},
"ar": "الرقم"
},
"not-classified": {
"en": "Not classified",
"ar": "غير محدد"
},
"selectClinic": {"en": "Select Clinic", "ar": " بحث بالعيادة"}, "selectClinic": {"en": "Select Clinic", "ar": " بحث بالعيادة"},
"reviews": {"en": "Reviews", "ar": "تقييمات"}, "reviews": {"en": "Reviews", "ar": "تقييمات"},
"searchItemError": {"en": "Item name should be more than 3 character ", "ar": "يجب أن يكون اسم العنصر أكثر من 3 أحرف"}, "searchItemError": {
"en": "Item name should be more than 3 character ",
"ar": "يجب أن يكون اسم العنصر أكثر من 3 أحرف"
},
"YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "}, "YouCanFind": {"en": "You Can Find ", "ar": "باستطاعتك العثور على "},
"ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "}, "ItemInSearch": {"en": " Item In Search", "ar": " عنصر في البحث "},
"InvoiceNo": {"en": " Invoice No", "ar": "رقم الفاتورة"}, "InvoiceNo": {"en": " Invoice No", "ar": "رقم الفاتورة"},
"SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"}, "SpecialResult": {"en": " Special Result", "ar": "نتيجة خاصة"},
"GeneralResult": {"en": "General Result", "ar": "نتيجة عامة"}, "GeneralResult": {"en": "General Result", "ar": "نتيجة عامة"},
"show-more-btn": { "show-more-btn": {"en": "Flow Chart", "ar": "النتائج التراكمية"},
"en": "Flow Chart",
"ar": "النتائج التراكمية"
},
"value": { "value": {"en": "Value", "ar": "القيمة"},
"en": "Value", "range": {"en": "Range", "ar": "المدى"},
"ar": "القيمة" "out-patient": {"en": "Out Patient", "ar": "عيادات خارجية"},
}, "in-patient": {"en": "In Patient", "ar": "تنويم"},
"range": { "report": {"en": "Radiology Report", "ar": "تقرير الاشعة"},
"en": "Range", "open-rad": {"en": "Open Image", "ar": "فتح صور الاشعة"},
"ar": "المدى" "send-copy": {"en": "Email the Report", "ar": "أرسل التقرير"},
}, "appoSurvey": {"en": "Survey", "ar": "إستبيان"},
"out-patient": { "appoSurveySubtitle": {"en": "Survey", "ar": "إستبيان"},
"en": "Out Patient", "labResults": {"en": "Lab Result", "ar": "نتيجة المختبر"},
"ar": "عيادات خارجية" "doctorRating": {"en": "Doctor Rating", "ar": "تقييم الطبيب"},
}, "good": {"en": "Good", "ar": "جيد"},
"in-patient": { "v-good": {"en": "Very Good", "ar": "جيد جدا"},
"en": "In Patient", "excellent": {"en": "Excellent", "ar": "ممتاز"},
"ar": "تنويم" "average": {"en": "Average", "ar": "متوسط"},
}, "below-average": {"en": "Below Average", "ar": "أقل من المتوسط"},
"report": {
"en": "Radiology Report",
"ar": "تقرير الاشعة"
},
"open-rad": {
"en": "Open Image",
"ar": "فتح صور الاشعة"
},
"send-copy": {
"en": "Email the Report",
"ar": "أرسل التقرير"
},
"appoSurvey": {
"en": "Survey",
"ar": "إستبيان"
},
"appoSurveySubtitle": {
"en": "Survey",
"ar": "إستبيان"
},
"labResults": {
"en": "Lab Result",
"ar": "نتيجة المختبر"
},
"doctorRating": {
"en": "Doctor Rating",
"ar": "تقييم الطبيب"
},
"good": {
"en": "Good",
"ar": "جيد"
},
"v-good": {
"en": "Very Good",
"ar": "جيد جدا"
},
"excellent": {
"en": "Excellent",
"ar": "ممتاز"
},
"average": {
"en": "Average",
"ar": "متوسط"
},
"below-average": {
"en": "Below Average",
"ar": "أقل من المتوسط"
},
"info-signs": { "info-signs": {
"en": "This service allows you to view all vital signs were performed in the Habib Medical Group, e.x (height, weight, body mass index, heart rate, etc.) as well shows some statistics charts.", "en":
"ar": "خدمة المؤشرات الحيوية: هذه الخدمة تمكنك من الاطلاع على جميع المؤشرات الحيوية على سبيل المثال (الطول، الوزن، مؤشر كتلة الجسم، معدل نبضات القلب الخ..) التي تمت في مجموعة الحبيب الطبية وكذلك رسوم بيانية على مستوى المؤشر." "This service allows you to view all vital signs were performed in the Habib Medical Group, e.x (height, weight, body mass index, heart rate, etc.) as well shows some statistics charts.",
"ar":
"خدمة المؤشرات الحيوية: هذه الخدمة تمكنك من الاطلاع على جميع المؤشرات الحيوية على سبيل المثال (الطول، الوزن، مؤشر كتلة الجسم، معدل نبضات القلب الخ..) التي تمت في مجموعة الحبيب الطبية وكذلك رسوم بيانية على مستوى المؤشر."
}, },
"info-advance-payment": { "info-advance-payment": {
"en": "This service designed so that you can deposit an amount in advance either in your account or in someone else's account with Al Habib Medical Group.", "en":
"ar": "تم تصميم هذه الخدمة حتى تتمكن من دفع مبلغ مقدما او تحت الحساب سواء في حسابك او في حساب شخص اخر لدى مجموعة الحبيب الطبية." "This service designed so that you can deposit an amount in advance either in your account or in someone else's account with Al Habib Medical Group.",
"ar":
"تم تصميم هذه الخدمة حتى تتمكن من دفع مبلغ مقدما او تحت الحساب سواء في حسابك او في حساب شخص اخر لدى مجموعة الحبيب الطبية."
}, },
"info-my-balance": { "info-my-balance": {
"en": "This service allows you to check your balance in all branchs", "en": "This service allows you to check your balance in all branchs",
"ar": "هذه الخدمه تتيح لك الاطلاع رصيدك في كل الفروع" "ar": "هذه الخدمه تتيح لك الاطلاع رصيدك في كل الفروع"
}, },
"er-contant": { "er-contant": {
"en": "This service displays nearest branch among all the branches of Al Habib Medical Group based on your current location.", "en":
"ar": "تعرض هذه الخدمة أقرب فرع من بين جميع فروع مجموعة الحبيب الطبية بناءً على موقعك الحالي." "This service displays nearest branch among all the branches of Al Habib Medical Group based on your current location.",
}, "ar":
"er": { "تعرض هذه الخدمة أقرب فرع من بين جميع فروع مجموعة الحبيب الطبية بناءً على موقعك الحالي."
"en": "ER",
"ar": "الطوارىء"
},
"transportation-Service": {
"en": "Ambulance Request",
"ar": "طلب نقل اسعاف"
}, },
"er": {"en": "ER", "ar": "الطوارىء"},
"transportation-Service": {"en": "Ambulance Request", "ar": "طلب نقل اسعاف"},
"info-ambulance": { "info-ambulance": {
"en": "Through this service, you can request evacuation by ambulance, whether from home or to home, in addition to a set of other services", "en":
"ar": "عن طريق هذه الخدمة يمكنك طلب اخلاء بواسطة سيارة اسعاف سواء من المزل او الى المنزل بالاضافة الى مجموعة من الخدمات الاخرى" "Through this service, you can request evacuation by ambulance, whether from home or to home, in addition to a set of other services",
"ar":
"عن طريق هذه الخدمة يمكنك طلب اخلاء بواسطة سيارة اسعاف سواء من المزل او الى المنزل بالاضافة الى مجموعة من الخدمات الاخرى"
}, },
"RRT-transport-heading": { "RRT-transport-heading": {
"en": "Select Transportation Method", "en": "Select Transportation Method",
"ar": "حدد طريقة النقل" "ar": "حدد طريقة النقل"
}, },
"sar": { "sar": {"en": "SR", "ar": "ر.س"},
"en": "SR", "RRT-direction-heading": {"en": "Select Direction", "ar": "حدد الاتجاه"},
"ar": "ر.س" "to-hospital": {"en": "To Hospital", "ar": "الى المستشفى"},
}, "from-hospital": {"en": "From Hospital", "ar": "من المستشفى"},
"RRT-direction-heading": { "one-direc": {"en": "One Way", "ar": "ذهاب"},
"en": "Select Direction", "two-direc": {"en": "Two Ways", "ar": "ذهاب وعودة"},
"ar": "حدد الاتجاه" "pickup-location": {"en": "Pickup Location", "ar": "نقطة الانطلاق"},
}, "pickup-spot": {"en": "Pickup Spot", "ar": "نقطة اللقاء"},
"to-hospital": { "inside-home": {"en": "Inside Home", "ar": "داخل المنزل"},
"en": "To Hospital", "have-appo": {"en": "Do you have an appointment?", "ar": "هل لديك موعد؟"},
"ar": "الى المستشفى" "dropoff-location": {"en": "Dropoff Location", "ar": "نقطة الوصول"},
},
"from-hospital": {
"en": "From Hospital",
"ar": "من المستشفى"
},
"one-direc": {
"en": "One Way",
"ar": "ذهاب"
},
"two-direc": {
"en": "Two Ways",
"ar": "ذهاب وعودة"
},
"pickup-location": {
"en": "Pickup Location",
"ar": "نقطة الانطلاق"
},
"pickup-spot": {
"en": "Pickup Spot",
"ar": "نقطة اللقاء"
},
"inside-home": {
"en": "Inside Home",
"ar": "داخل المنزل"
},
"have-appo": {
"en": "Do you have an appointment?",
"ar": "هل لديك موعد؟"
},
"dropoff-location": {
"en": "Dropoff Location",
"ar": "نقطة الوصول"
},
"select-all": { "select-all": {
"en": "Please select all fields", "en": "Please select all fields",
"ar": "يرجى تحديد جميع الحقول" "ar": "يرجى تحديد جميع الحقول"
}, },
"select-map": { "select-map": {"en": "Select From Map", "ar": "حدد من الخريطة"},
"en": "Select From Map",
"ar": "حدد من الخريطة"
},
"no-appointment": { "no-appointment": {
"en": "You don't have any appointments yet", "en": "You don't have any appointments yet",
"ar": "ليس لديك أي مواعيد حتى الآن" "ar": "ليس لديك أي مواعيد حتى الآن"
}, },
"patient-share": { "patient-share": {"en": "Amount before tax: ", "ar": "المبلغ قبل الضريبة:"},
"en": "Amount before tax: ", "patient-share-tax": {"en": "Tax amount: ", "ar": "قيمة الضريبة:"},
"ar": "المبلغ قبل الضريبة:"
},
"patient-share-tax": {
"en": "Tax amount: ",
"ar": "قيمة الضريبة:"
},
"patient-share-total": { "patient-share-total": {
"en": "Total amount payable: ", "en": "Total amount payable: ",
"ar": "المبلغ الإجمالي المستحق:" "ar": "المبلغ الإجمالي المستحق:"
}, },
"select-ambulate": { "select-ambulate": {"en": "Select Ambulate", "ar": "بحاجة للتنقل بواسطة"},
"en": "Select Ambulate", "wheelchair": {"en": "Wheelchair", "ar": "كرسي متحرك"},
"ar": "بحاجة للتنقل بواسطة" "walker": {"en": "Walker", "ar": "مشاية"},
}, "stretcher": {"en": "Stretcher", "ar": "نقالة"},
"wheelchair": { "none": {"en": "None", "ar": "لا شيء"},
"en": "Wheelchair", "RRT-Summary": {"en": "Summary", "ar": "ملخص الطلب"},
"ar": "كرسي متحرك" "bill-amount": {"en": "Bill Amount", "ar": "مبلغ الفاتورة"},
}, "transport-method": {"en": "Transportation Method", "ar": "طريقة النقل"},
"walker": { "directions": {"en": "Directions", "ar": "الاتجاهات"},
"en": "Walker",
"ar": "مشاية"
},
"stretcher": {
"en": "Stretcher",
"ar": "نقالة"
},
"none": {
"en": "None",
"ar": "لا شيء"
},
"RRT-Summary": {
"en": "Summary",
"ar": "ملخص الطلب"
},
"bill-amount": {
"en": "Bill Amount",
"ar": "مبلغ الفاتورة"
},
"transport-method": {
"en": "Transportation Method",
"ar": "طريقة النقل"
},
"directions": {
"en": "Directions",
"ar": "الاتجاهات"
},
"info-my-appointments": { "info-my-appointments": {
"en": "This service allows you to see all the appointment you have visited in Al Habib Medical Group, and through this service:", "en":
"ar": "خدمة مواعيدي: هذه الخدمة تمكنك من الاطلاع على جميع المواعيد التي قمت بزيارتهم في مجموعة الحبيب الطبية, كما تستطيع من خلال هذه الخدمة:" "This service allows you to see all the appointment you have visited in Al Habib Medical Group, and through this service:",
"ar":
"خدمة مواعيدي: هذه الخدمة تمكنك من الاطلاع على جميع المواعيد التي قمت بزيارتهم في مجموعة الحبيب الطبية, كما تستطيع من خلال هذه الخدمة:"
}, },
"info-todo": { "info-todo": {
"en": "This service is designed to enable you to have a quick link to the list of tasks that need to be done", "en":
"ar": "هذه الخدمة تم تصميمها لتمكنك من الوصول الى رابط سريع لقائمة المهام التي يجب القيام بها" "This service is designed to enable you to have a quick link to the list of tasks that need to be done",
"ar":
"هذه الخدمة تم تصميمها لتمكنك من الوصول الى رابط سريع لقائمة المهام التي يجب القيام بها"
}, },
"family-info": { "family-info": {
"en": "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file.", "en":
"ar": "هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي." "Through this service, you will be able to link your family medical files to your medical file so that you can manage their records by login to your medical file.",
"ar":
"هذه الخدمة تم تصميمها لتتمكن من ربط الملفات الطبية للعائلة بملفك الطبي حتى تتمكن من إدارة سجلاتهم عن طريق تسجيل الدخول إلى ملفك الطبي."
} }
}; };

@ -36,8 +36,7 @@ class BaseAppClient {
try { try {
//Map profile = await sharedPref.getObj(DOCTOR_PROFILE); //Map profile = await sharedPref.getObj(DOCTOR_PROFILE);
String token = await sharedPref.getString(TOKEN); String token = await sharedPref.getString(TOKEN);
var languageID = var languageID = await sharedPref.getString(APP_LANGUAGE) ?? 'ar';
await sharedPref.getString(APP_LANGUAGE);
var user = await sharedPref.getObject(USER_PROFILE); var user = await sharedPref.getObject(USER_PROFILE);
if (body.containsKey('SetupID')) { if (body.containsKey('SetupID')) {
body['SetupID'] = body.containsKey('SetupID') body['SetupID'] = body.containsKey('SetupID')
@ -89,7 +88,7 @@ class BaseAppClient {
body['PatientTypeID'] = body.containsKey('PatientTypeID') body['PatientTypeID'] = body.containsKey('PatientTypeID')
? body['PatientTypeID'] != null ? body['PatientTypeID'] != null
? body['PatientTypeID'] ? body['PatientTypeID']
:user['PatientType'] != null : user['PatientType'] != null
? user['PatientType'] ? user['PatientType']
: PATIENT_TYPE_ID : PATIENT_TYPE_ID
: PATIENT_TYPE_ID; : PATIENT_TYPE_ID;
@ -140,7 +139,7 @@ class BaseAppClient {
parsed['SMSLoginRequired'] == true) { parsed['SMSLoginRequired'] == true) {
onSuccess(parsed, statusCode); onSuccess(parsed, statusCode);
} else if (!parsed['IsAuthenticated']) { } else if (!parsed['IsAuthenticated']) {
// await logout(); // await logout();
//helpers.showErrorToast('Your session expired Please login agian'); //helpers.showErrorToast('Your session expired Please login agian');
} else { } else {
@ -159,16 +158,18 @@ class BaseAppClient {
} }
} catch (e) { } catch (e) {
print(e); print(e);
onFailure(e.toString(), -1); onFailure('Failed to connect to the server', -1);
// onFailure(e.toString(), -1);
} }
} }
logout() async { logout() async {
await sharedPref.remove(LOGIN_TOKEN_ID); await sharedPref.remove(LOGIN_TOKEN_ID);
await authenticatedUserObject.getUser(); await authenticatedUserObject.getUser();
Provider.of<ProjectViewModel>(AppGlobal.context, listen: false).isLogin = false; Provider.of<ProjectViewModel>(AppGlobal.context, listen: false).isLogin =
_vitalSignService.weightKg =""; false;
_vitalSignService.heightCm=""; _vitalSignService.weightKg = "";
_vitalSignService.heightCm = "";
Navigator.of(AppGlobal.context).pushReplacementNamed(HOME); Navigator.of(AppGlobal.context).pushReplacementNamed(HOME);
} }

@ -11,116 +11,127 @@ import 'package:diplomaticquarterapp/widgets/weather_slider/weather_slider.dart'
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
class HealthWeatherIndicator extends StatefulWidget { class HealthWeatherIndicator extends StatefulWidget {
@override @override
_HospitalsPageState createState() => _HospitalsPageState(); _HospitalsPageState createState() => _HospitalsPageState();
} }
class _HospitalsPageState extends State<HealthWeatherIndicator> { class _HospitalsPageState extends State<HealthWeatherIndicator> {
var data; var data;
LocationUtils locationUtils; LocationUtils locationUtils;
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
var weather = '--'; var weather = '--';
@override @override
void initState() { void initState() {
locationUtils = locationUtils =
new LocationUtils(isShowConfirmDialog: true, context: context); new LocationUtils(isShowConfirmDialog: true, context: context);
WidgetsBinding.instance WidgetsBinding.instance
.addPostFrameCallback((_) => locationUtils.getCurrentLocation()); .addPostFrameCallback((_) => locationUtils.getCurrentLocation());
getWeather(); getWeather();
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<WeatherViewModel>( return BaseView<WeatherViewModel>(
onModelReady: (model) => model.getWeatherData(), onModelReady: (model) => model.getWeatherData(),
allowAny:true, allowAny: true,
builder: (_, mode, widget) => AppScaffold( builder: (_, mode, widget) => AppScaffold(
isShowDecPage: false, isShowDecPage: false,
appBarTitle: TranslationBase.of(context).healthWeatherIndicators, appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
isShowAppBar: true, isShowAppBar: true,
body: mode.weatherIndicatorData.length>0 ? SingleChildScrollView( body: mode.weatherIndicatorData.length > 0
child: Column(children: [ ? SingleChildScrollView(
child: Column(children: [
Container( Container(
margin: EdgeInsets.all(8), margin: EdgeInsets.all(8),
width: double.infinity, width: double.infinity,
height: 150, height: 150,
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage( image: DecorationImage(
image: ExactAssetImage('assets/images/Weather_img.png'), image:
fit: BoxFit.cover, ExactAssetImage('assets/images/Weather_img.png'),
), fit: BoxFit.cover,
borderRadius: BorderRadius.circular(8.0)), ),
borderRadius: BorderRadius.circular(8.0)),
child: Padding( child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0), padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Row( child: Row(
children: [ children: [
Expanded( Expanded(
flex:3, flex: 3,
child:
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context)
.healthWeatherIndicators,
color: Colors.white,
fontWeight: FontWeight.w600,
),
AppText(
TranslationBase.of(context).healthTipsBasedOnCurrentWeather,
color: Colors.white,
fontSize: 14,
),
],
)),
Expanded(
flex: 2,
child:InkWell(
onTap: (){
},
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( AppText(
mainAxisAlignment: MainAxisAlignment.center, TranslationBase.of(context)
children: [ .healthWeatherIndicators,
Image.asset('assets/images/Weather_ico.png',width: 60,height: 60,), color: Colors.white,
AppText(weather, fontSize: 22, color:Colors.white) fontWeight: FontWeight.w600,
],), ),
AppText(
TranslationBase.of(context)
.healthTipsBasedOnCurrentWeather,
color: Colors.white,
fontSize: 14,
),
], ],
)), )),
) Expanded(
], flex: 2,
child: InkWell(
onTap: () {},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Image.asset(
'assets/images/Weather_ico.png',
width: 60,
height: 60,
),
AppText(weather,
fontSize: 22, color: Colors.white)
],
),
],
)),
)
],
),
), ),
), ),
), Padding(
Padding(padding: EdgeInsets.all(15), child:AppText( projectViewModel.isArabic ? mode.weatherIndicatorData[0].cityNameN : mode.weatherIndicatorData[0].cityName, fontSize: 24, fontWeight: FontWeight.bold,)), padding: EdgeInsets.all(15),
child: AppText(
Padding( projectViewModel.isArabic
padding: EdgeInsets.all(15), ? mode.weatherIndicatorData[0].cityNameN
child: Column(children: : mode.weatherIndicatorData[0].cityName,
mode.weatherIndicatorData fontSize: 24,
.map((data) { fontWeight: FontWeight.bold,
return WeatherSlider( )),
data); Padding(
}).toList() padding: EdgeInsets.all(15),
child: Column(
))])) : Container()), children: mode.weatherIndicatorData.map((data) {
return WeatherSlider(data);
}).toList()))
]))
: Center(child: AppCircularProgressIndicator())),
); );
} }
getWeather() async{
getWeather() async {
var data = await this.sharedPref.getObject(WEATHER); var data = await this.sharedPref.getObject(WEATHER);
setState(() { setState(() {
weather = data['Temperature'].toString() + '\u2103' ?? '--'; weather = data['Temperature'].toString() + '\u2103' ?? '--';
}); });
} }
} }

@ -552,7 +552,6 @@ class _ConfirmLogin extends State<ConfirmLogin> {
} }
checkIfUserAgreedBefore(CheckActivationCode result) { checkIfUserAgreedBefore(CheckActivationCode result) {
print(result);
if (result.isNeedUserAgreement == true) { if (result.isNeedUserAgreement == true) {
//move to agreement page. //move to agreement page.
} else { } else {

@ -50,6 +50,7 @@ const FORGOT_PATIENT_ID =
const DASHBOARD = 'Services/Patients.svc/REST/PatientDashboard'; const DASHBOARD = 'Services/Patients.svc/REST/PatientDashboard';
const PROFILE_SETTING = 'Services/Patients.svc/REST/GetPateintInfoForUpdate'; const PROFILE_SETTING = 'Services/Patients.svc/REST/GetPateintInfoForUpdate';
const SAVE_SETTING = 'Services/Patients.svc/REST/UpdatePateintInfo'; const SAVE_SETTING = 'Services/Patients.svc/REST/UpdatePateintInfo';
class AuthProvider with ChangeNotifier { class AuthProvider with ChangeNotifier {
bool isLogin = false; bool isLogin = false;
bool isLoading = true; bool isLoading = true;
@ -232,7 +233,7 @@ class AuthProvider with ChangeNotifier {
neRequest.channel = CHANNEL; neRequest.channel = CHANNEL;
neRequest.iPAdress = IP_ADDRESS; neRequest.iPAdress = IP_ADDRESS;
neRequest.generalid = GENERAL_ID; neRequest.generalid = GENERAL_ID;
neRequest.languageID = LANGUAGE_ID; // neRequest.languageID = LANGUAGE_ID;
neRequest.deviceTypeID = DeviceTypeID; neRequest.deviceTypeID = DeviceTypeID;
neRequest.patientOutSA = neRequest.zipCode == '966' ? 0 : 1; neRequest.patientOutSA = neRequest.zipCode == '966' ? 0 : 1;
neRequest.projectOutSA = neRequest.zipCode == '966' ? false : true; neRequest.projectOutSA = neRequest.zipCode == '966' ? false : true;
@ -458,36 +459,36 @@ class AuthProvider with ChangeNotifier {
//return Future.value(error); //return Future.value(error);
} }
} }
getSettings() async{
getSettings() async {
dynamic localRes; dynamic localRes;
try { try {
await new BaseAppClient().post(PROFILE_SETTING, await new BaseAppClient().post(PROFILE_SETTING,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
localRes = response; //CheckActivationCode.fromJson(); localRes = response; //CheckActivationCode.fromJson();
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
localRes = error; localRes = error;
return Future.value(error); return Future.value(error);
// throw error; // throw error;
}, body: {}); }, body: {});
return Future.value(localRes); return Future.value(localRes);
} catch (error) { } catch (error) {
throw error; throw error;
//return Future.value(error); //return Future.value(error);
} }
} }
Future saveSettings(request) async{
Future saveSettings(request) async {
dynamic localRes; dynamic localRes;
try { try {
await new BaseAppClient().post(SAVE_SETTING, await new BaseAppClient().post(SAVE_SETTING,
onSuccess: (dynamic response, int statusCode) { onSuccess: (dynamic response, int statusCode) {
localRes = response; //CheckActivationCode.fromJson(); localRes = response; //CheckActivationCode.fromJson();
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
localRes = error; localRes = error;
return Future.value(error); return Future.value(error);
// throw error; // throw error;
}, body: request); }, body: request);
return Future.value(localRes); return Future.value(localRes);
} catch (error) { } catch (error) {
throw error; throw error;

@ -54,7 +54,6 @@ class SMSOTP {
String displayTime = ''; String displayTime = '';
displayDialog(BuildContext context) async { displayDialog(BuildContext context) async {
return showDialog( return showDialog(
context: context, context: context,
builder: (context) { builder: (context) {
@ -80,7 +79,8 @@ class SMSOTP {
height: SizeConfig.realScreenHeight * 0.5, height: SizeConfig.realScreenHeight * 0.5,
width: SizeConfig.realScreenWidth * 0.8, width: SizeConfig.realScreenWidth * 0.8,
child: Center( child: Center(
child: Column( child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
type == 1 type == 1
@ -101,114 +101,117 @@ class SMSOTP {
child: Padding( child: Padding(
padding: EdgeInsets.only(top: 20), padding: EdgeInsets.only(top: 20),
child: Directionality( child: Directionality(
textDirection:TextDirection.ltr, textDirection: TextDirection.ltr,
child:Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[ children: <Widget>[
Container( Container(
width: SizeConfig.realScreenWidth * 0.15, width: SizeConfig.realScreenWidth * 0.15,
child: TextFormField( child: TextFormField(
textInputAction: TextInputAction.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1,
controller: digit1,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) {
FocusScope.of(context).requestFocus(focusD2);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD2);
verifyAccountFormValue['digit1'] =
val.trim();
checkValue();
}
},
),
),
Container(
width: SizeConfig.realScreenWidth * 0.15,
child: TextFormField(
focusNode: focusD2,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit2,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration: buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD3);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD3);
verifyAccountFormValue['digit2'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit),
),
Container(
width: SizeConfig.realScreenWidth * 0.15,
child: TextFormField(
focusNode: focusD3,
textInputAction: TextInputAction.next, textInputAction: TextInputAction.next,
style: buildTextStyle(),
autofocus: true,
maxLength: 1, maxLength: 1,
controller: digit3, controller: digit1,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number, keyboardType: TextInputType.number,
decoration: buildInputDecoration(context), decoration: buildInputDecoration(context),
onSaved: (val) {}, onSaved: (val) {},
validator: validateCodeDigit,
onFieldSubmitted: (_) { onFieldSubmitted: (_) {
FocusScope.of(context) FocusScope.of(context)
.requestFocus(focusD4); .requestFocus(focusD2);
}, },
onChanged: (val) { onChanged: (val) {
if (val.length == 1) { if (val.length == 1) {
FocusScope.of(context) FocusScope.of(context)
.requestFocus(focusD4); .requestFocus(focusD2);
verifyAccountFormValue['digit3'] = verifyAccountFormValue['digit1'] =
val.trim(); val.trim();
checkValue(); checkValue();
} }
}, },
validator: validateCodeDigit)), ),
Container( ),
width: SizeConfig.realScreenWidth * 0.15, Container(
child: TextFormField( width: SizeConfig.realScreenWidth * 0.15,
focusNode: focusD4, child: TextFormField(
maxLength: 1, focusNode: focusD2,
textAlign: TextAlign.center, textInputAction: TextInputAction.next,
style: buildTextStyle(), maxLength: 1,
controller: digit4, controller: digit2,
keyboardType: TextInputType.number, textAlign: TextAlign.center,
decoration: buildInputDecoration(context), style: buildTextStyle(),
onFieldSubmitted: (_) { keyboardType: TextInputType.number,
FocusScope.of(context) decoration: buildInputDecoration(context),
.requestFocus(focusD4); onSaved: (val) {},
}, onFieldSubmitted: (_) {
onChanged: (val) { FocusScope.of(context)
if (val.length == 1) { .requestFocus(focusD3);
verifyAccountFormValue['digit4'] = },
val.trim(); onChanged: (val) {
checkValue(); if (val.length == 1) {
} FocusScope.of(context)
}, .requestFocus(focusD3);
validator: validateCodeDigit)), verifyAccountFormValue['digit2'] =
], val.trim();
)), checkValue();
}
},
validator: validateCodeDigit),
),
Container(
width: SizeConfig.realScreenWidth * 0.15,
child: TextFormField(
focusNode: focusD3,
textInputAction: TextInputAction.next,
maxLength: 1,
controller: digit3,
textAlign: TextAlign.center,
style: buildTextStyle(),
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onSaved: (val) {},
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
FocusScope.of(context)
.requestFocus(focusD4);
verifyAccountFormValue['digit3'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
Container(
width: SizeConfig.realScreenWidth * 0.15,
child: TextFormField(
focusNode: focusD4,
maxLength: 1,
textAlign: TextAlign.center,
style: buildTextStyle(),
controller: digit4,
keyboardType: TextInputType.number,
decoration:
buildInputDecoration(context),
onFieldSubmitted: (_) {
FocusScope.of(context)
.requestFocus(focusD4);
},
onChanged: (val) {
if (val.length == 1) {
verifyAccountFormValue['digit4'] =
val.trim();
checkValue();
}
},
validator: validateCodeDigit)),
],
)),
), ),
), ),
Padding( Padding(
@ -221,7 +224,7 @@ class SMSOTP {
textAlign: TextAlign.center, textAlign: TextAlign.center,
)) ))
], ],
)), ))),
); );
}), }),
); );
@ -270,9 +273,11 @@ class SMSOTP {
checkValue() { checkValue() {
//print(verifyAccountFormValue); //print(verifyAccountFormValue);
if (verifyAccountForm.currentState.validate()) { if (verifyAccountForm.currentState.validate()) {
onSuccess(digit1.text.toString()+digit2.text.toString()+digit3.text.toString()+digit4.text.toString()); onSuccess(digit1.text.toString() +
digit2.text.toString() +
digit3.text.toString() +
digit4.text.toString());
} }
} }
getSecondsAsDigitalClock(int inputSeconds) { getSecondsAsDigitalClock(int inputSeconds) {

@ -151,9 +151,7 @@ dependencies:
wakelock: ^0.1.4 wakelock: ^0.1.4
after_layout: ^1.0.7 after_layout: ^1.0.7
twilio_programmable_video: ^0.6.3+1 twilio_programmable_video: ^0.6.3+1
flutter_tts: flutter_tts: any
git:
url: https://github.com/dlutton/flutter_tts.git
vibration: ^1.7.2 vibration: ^1.7.2
speech_to_text: speech_to_text:
path: speech_to_text path: speech_to_text

Loading…
Cancel
Save