Compare commits

...

14 Commits

@ -631,6 +631,8 @@ var GET_BIRTH_NOTIFICATION = 'Services/INPs.svc/REST/getBirthNotification_bymoth
var SAVE_BIRTH_NOTIFICATION = 'Services/INPs.svc/REST/SaveBirthNotification';
var INSERT_GENERAL_ADMISSION_CONSENT = 'Services/INPs.svc/REST/Inp_insertAAForGeneralAdmissionConsent';
//Meal Plan APIs
var GET_ADMITTED_PATIENTS = 'Services/MOP.svc/REST/GetAdmittedPatients';
var GET_CURRENT_WEEKID_WEEKDAY = 'Services/MOP.svc/REST/GetCurrentWeekAndDayHMGMP';

@ -1845,39 +1845,51 @@ const Map localizedValues = {
"privacyPolicy": {"en": "Privacy Policy", "ar": "سياسة الخصوصية"},
"termsConditions": {"en": "Terms & Conditions", "ar": "الأحكام والشروط"},
"prescriptionDeliveryError": {"en": "This clinic does not support refill & delivery.", "ar": "هذه العيادة لا تدعم إعادة التعبئة والتسليم."},
"liveCarePermissions": {"en": "LiveCare requires Camera, Microphone & Location permissions to enable virtual consultation between patient & doctor, Please allow these to proceed.", "ar": "يتطلب لايف كير أذونات الكاميرا والميكروفون والموقع، يرجى السماح لها بالمتابعة."},
"lakumUnhold": { "en": "The account has already been activated", "ar": "لقد تم تفعيل الحساب من قبل" },
"lakumDiscontinue": { "en": "The account is closed", "ar": "الحساب مغلق" },
"lakumSuccess": { "en": "The account has been activated successfully", "ar": "تم تفعيل الحساب بنجاح" },
"deleteAccount": { "en": "Deactivate Account", "ar": "ايقاف الحساب مؤقتاً" },
"deactivateAccount": { "en": "Are you sure you want to deactivate your account?", "ar": "هل أنت متأكد أنك تريد ايقاف الحساب مؤقتاً حسابك؟" },
"accountDeactivated": { "en": "Your account has been deactivated successfully", "ar": "تم ايقاف الحساب مؤقتاً بنجاح." },
"accountDeactivatedMsg": { "en": "Your account has been deactivated. Would you like to reactivate it?", "ar": "حسابك معطل. هل ترغب في إعادة تنشيطه مرة أخرى؟" },
"updateInsuranceManually": { "en": "Update Insurance Manually", "ar": "تحديث التأمين يدويا" },
"or": { "en": "Update Insurance Manually", "ar": "تحديث التأمين يدويا" },
"enterInsuranceDetails": { "en": "Please enter your insurance card details below:", "ar": "الرجاء إدخال تفاصيل بطاقة التأمين الخاصة بك أدناه:" },
"cardHolderName": { "en": "Card Holder Name", "ar": "إسم صاحب البطاقة" },
"membershipNo": { "en": "Membership No.", "ar": "رقم العضوية" },
"policyNo": { "en": "Policy No.", "ar": "رقم وثيقة التأمين" },
"paymentOnly": { "en": "Payment", "ar": "معلقة" },
"pendingOnly": { "en": "Pending", "ar": "مدفوعات" },
"insuranceClassName": { "en": "Insurance Class", "ar": "فئة التأمين" },
"insuranceRequestSubmit": { "en": "Your insurance update request has been submitted successfully.", "ar": "تم تقديم طلب تحديث التأمين الخاص بك بنجاح." },
"NFCNotSupported": { "en": "Your device does not support NFC. Please visit reception to Check-In", "ar": "جهازك لا يدعم NFC. يرجى زيارة مكتب الاستقبال لتسجيل الوصول" },
"liveCarePermissions": {
"en": "LiveCare requires Camera, Microphone & Location permissions to enable virtual consultation between patient & doctor, Please allow these to proceed.",
"ar": "يتطلب لايف كير أذونات الكاميرا والميكروفون والموقع، يرجى السماح لها بالمتابعة."
},
"lakumUnhold": {"en": "The account has already been activated", "ar": "لقد تم تفعيل الحساب من قبل"},
"lakumDiscontinue": {"en": "The account is closed", "ar": "الحساب مغلق"},
"lakumSuccess": {"en": "The account has been activated successfully", "ar": "تم تفعيل الحساب بنجاح"},
"deleteAccount": {"en": "Deactivate Account", "ar": "ايقاف الحساب مؤقتاً"},
"deactivateAccount": {"en": "Are you sure you want to deactivate your account?", "ar": "هل أنت متأكد أنك تريد ايقاف الحساب مؤقتاً حسابك؟"},
"accountDeactivated": {"en": "Your account has been deactivated successfully", "ar": "تم ايقاف الحساب مؤقتاً بنجاح."},
"accountDeactivatedMsg": {"en": "Your account has been deactivated. Would you like to reactivate it?", "ar": "حسابك معطل. هل ترغب في إعادة تنشيطه مرة أخرى؟"},
"updateInsuranceManually": {"en": "Update Insurance Manually", "ar": "تحديث التأمين يدويا"},
"or": {"en": "Update Insurance Manually", "ar": "تحديث التأمين يدويا"},
"enterInsuranceDetails": {"en": "Please enter your insurance card details below:", "ar": "الرجاء إدخال تفاصيل بطاقة التأمين الخاصة بك أدناه:"},
"cardHolderName": {"en": "Card Holder Name", "ar": "إسم صاحب البطاقة"},
"membershipNo": {"en": "Membership No.", "ar": "رقم العضوية"},
"policyNo": {"en": "Policy No.", "ar": "رقم وثيقة التأمين"},
"paymentOnly": {"en": "Payment", "ar": "معلقة"},
"pendingOnly": {"en": "Pending", "ar": "مدفوعات"},
"insuranceClassName": {"en": "Insurance Class", "ar": "فئة التأمين"},
"insuranceRequestSubmit": {"en": "Your insurance update request has been submitted successfully.", "ar": "تم تقديم طلب تحديث التأمين الخاص بك بنجاح."},
"NFCNotSupported": {"en": "Your device does not support NFC. Please visit reception to Check-In", "ar": "جهازك لا يدعم NFC. يرجى زيارة مكتب الاستقبال لتسجيل الوصول"},
"enter-workplace-name": {"en": "Please enter your workplace name:", "ar": "رجاء إدخال مكان العمل:"},
"workplaceName": {"en": "Workplace name:", "ar": "مكان العمل:"},
"callLiveCareSupport": {"en": "Call LiveCare Support", "ar": "اتصل بدعم اللايف كير"},
"needApproval": {"en": "Your sick leave is under process in medical administration, you will be notified once approved.", "ar": "جازتك المرضية تحت الإجراء في الإدارة الطبية ، سوف يتم إشعارك فور الموافقه عليها."},
"needApproval": {
"en": "Your sick leave is under process in medical administration, you will be notified once approved.",
"ar": "جازتك المرضية تحت الإجراء في الإدارة الطبية ، سوف يتم إشعارك فور الموافقه عليها."
},
"pendingActivation": {"en": "Pending Activation", "ar": "في انتظار التنشيط"},
"awaitingApproval": {"en": "Awaiting Approval", "ar": "انتظر القبول"},
"liveCareSupportContact": {"en": "LiveCare Support Contact: ", "ar": "اتصل لايف كير: "},
"pharmaLiveCare": {"en": "Pharma LiveCare", "ar": "لايف كير الصيدلية"},
"pharmaLiveCare1": {"en": "What is Pharma LiveCare?", "ar": "ما هولايف كير الصيدلية؟"},
"pharmaLiveCareDesc1": {"en": "Pharma LiveCare allows you to get consultation from your doctor virtually being in HMG Pharmacy booth.", "ar": "تتيح لك خدمة لايف كير الصيدلية الحصول على استشارة من طبيبك المتواجد فعليًا في كشك صيدلية د.سليمان الحبيب."},
"pharmaLiveCareDesc1": {
"en": "Pharma LiveCare allows you to get consultation from your doctor virtually being in HMG Pharmacy booth.",
"ar": "تتيح لك خدمة لايف كير الصيدلية الحصول على استشارة من طبيبك المتواجد فعليًا في كشك صيدلية د.سليمان الحبيب."
},
"wherePharmaLiveCare": {"en": "Where can i find Pharma LiveCare?", "ar": "أين يمكنني أن أجد لايف كير الصيدلية؟"},
"pharmaLiveCareDesc2": {"en": "You can find the booth in HMG Pharmacies.", "ar": "يمكنك العثور على الكشك في صيدليات مستشفى د.سليمان الحبيب."},
"howPharmaLiveCare": {"en": "How can i use Pharma LiveCare?", "ar": "كيف يمكنني استخدام لايف كير الصيدلية؟"},
"pharmaLiveCareDesc3": {"en": "Following the below steps you can easily benefit from the virtual consultation service:", "ar": "باتباع الخطوات التالية يمكنك الاستفادة بسهولة من خدمة الاستشارة الافتراضية:"},
"pharmaLiveCareDesc3": {
"en": "Following the below steps you can easily benefit from the virtual consultation service:",
"ar": "باتباع الخطوات التالية يمكنك الاستفادة بسهولة من خدمة الاستشارة الافتراضية:"
},
"pharmaLiveCareScanQR": {"en": "Scan QR Code", "ar": "مسح رمز الاستجابة السريعة"},
"pharmaLiveCareScanQR1": {"en": "Scan the QR Code in the booth to make the connection", "ar": "امسح رمز الاستجابة السريعة في المقصورة لإجراء الاتصال"},
"pharmaLiveCareMakePayment": {"en": "Make Payment Online", "ar": "قم بالدفع عبر الإنترنت"},
@ -1928,8 +1940,15 @@ const Map localizedValues = {
"generalInstructions": {"en": "General Instructions:", "ar": "تعليمات عامة:"},
"copyLink": {"en": "COPY LINK", "ar": "نسخ الوصلة:"},
"paymentLinkCopied": {"en": "Payment link copied to your clipboard!'", "ar": "تم نسخ رابط الدفع إلى الحافظة الخاصة بك!"},
"copyLinkTxt": {"en": "Or you can copy the payment link from below & send it to someone who can pay on your behalf: ", "ar": "أو يمكنك نسخ رابط الدفع من الأسفل وإرساله إلى شخص يمكنه الدفع نيابة عنك:"},
"proErrorMessage": {"en": "Dear patient, Our staff is currently out of office, please note that our working hours are from 7:00 AM to 10:00 PM, and we'd love to help you during that time, or you can call <insert number here>", "ar": "عزيزي المريض ، طاقم العمل لدينا خارج المكتب حاليًا ، يرجى ملاحظة أن ساعات العمل لدينا من 7:00 صباحًا إلى 10:00 مساءً ، ويسعدنا مساعدتك خلال هذا الوقت ، أو يمكنك الاتصال بـ <أدخل الرقم هنا>"},
"copyLinkTxt": {
"en": "Or you can copy the payment link from below & send it to someone who can pay on your behalf: ",
"ar": "أو يمكنك نسخ رابط الدفع من الأسفل وإرساله إلى شخص يمكنه الدفع نيابة عنك:"
},
"proErrorMessage": {
"en":
"Dear patient, Our staff is currently out of office, please note that our working hours are from 7:00 AM to 10:00 PM, and we'd love to help you during that time, or you can call <insert number here>",
"ar": "عزيزي المريض ، طاقم العمل لدينا خارج المكتب حاليًا ، يرجى ملاحظة أن ساعات العمل لدينا من 7:00 صباحًا إلى 10:00 مساءً ، ويسعدنا مساعدتك خلال هذا الوقت ، أو يمكنك الاتصال بـ <أدخل الرقم هنا>"
},
"admissionNo": {"en": "Admission No", "ar": "رقم القبول:"},
"admissionReqNo": {"en": "Admission Request No", "ar": "رقم طلب القبول:"},
"dischargeDate": {"en": "Discharge Date", "ar": "تاريخ التفريغ"},
@ -1939,6 +1958,85 @@ const Map localizedValues = {
"receive": {"en": "Receive", "ar": "تجهيز"},
"PRO": {"en": "PRO", "ar": "علاقات المرضى"},
"patientRelationOffice": {"en": "Patient Relation Office", "ar": "علاقات المرضى"},
"roomNo": {"en": "Room No.", "ar": "رقم الغرفة"},
"generalConsent": {"en": "General Consent: ", "ar": "موافقة عامة:"},
};
"generalConsent1": {
"en":
"I authorize the Hospital and their staff to conduct any diagnostic examinations, test (including, but not limited to, HIV, HBsAg and any other as the clinician may deem fit), procedures and to provide any medications, treatments or therapy necessary to effectively assess and maintain my health, and to assess, diagnose and treat my illness or injuries. I understand that it is the responsibility of my health care providers to explain the patient's condition and thereby reasons for any particular diagnostic examination, test or procedure, the available treatment options, the common risks, anticipated benefits associated with these options, alternative courses of treatment and possible outcomes of non-treatment.",
"ar":
"أفوض المستشفى وموظفيه بإجراء أية فحوصات واختبارات وإجراءات تشخيصية (بما في ذلك مثالاً وليس حصراً فحوصات أمراض الكبد الوبائية أو نقص المناعة المكتسبة أو أي فحوصات أخرى يرى الطبيب المعالج (مناسبتها وتقديم أية أدوية أو علاج ضروري لتقييم . صحتي والمحافظة عليها بفاعلية والتقييم وتشخيص ومعالجة مرضي او الإصابات اللاحقة بي، وأدرك بأنه من مسؤولية مقدمي الرعاية الصحية بيان أسباب أي فحص أو إختبار أو إجراء تشخيصي محدد وخيارات العلاج المتوفرة والمخاطرة الشائعة والمنافع المتوقعة المرتبطة بهذه الخيارات والعلاج البديل والنتائج المحتملة لرفض العلاج."
},
"hospitalRules": {"en": "HOSPITAL RULES: ", "ar": "أنظمة المستشفى: "},
"generalConsent2": {
"en":
"Agree to be obliged to adhere to the Hospital rules, and to ensure compliance by all visitors. In the event of any severe violations of the rules, the hospital reserves the right to take the necessary measures according to the applicable Laws.",
"ar": "أوافق على التقيد بقواعد وأنظمة المستشفى، وأضمن التزام جميع الزوار بذلك ، في حالة حدوث أي إنتهاكات جسيمة لقواعد وأنظمة المستشفى، يحتفظ المستشفى بالحق في إتخاذ جميع الاجراءات النظامية المكفولة."
},
"communicationConsent": {"en": "COMMUNICATION VIA EMAIL, TEXT MESSAGES AND PHONE CALLS: ", "ar": "الاتصال عبر البريد الإلكتروني والرسائل النصية والمكالمات الهاتفية: "},
"generalConsent3": {
"en":
"I understand that the contact number or Email that I have provided on registration will be used for communication by the Hospital. I hereby agree to be notified by the Hospital through SMS, Email, phone calls or any other method, for appointments notifications, special promotions, new features or products, current HMG's medical services, and of any services introduced by the Hospital or any third party in the future or any modifications made to the services offered by the Hospital. And these messages may be submitted as evidence where the Hospital has the right to use at any time whatsoever and as it sees fit. I understand the risks of communicating by email and text messages, in particular the privacy risks. I understand that the Hospital cannot guarantee the security and confidentiality of email or text communication. The Hospital will not be responsible for messages that are not received or delivered due to technical failure, or for disclosure of confidential information unless caused by intentional misconduct.",
"ar": "المستشفى أدرك بأن رقم الجوال الهاتف أو البريد الإلكتروني الذي قدمته في نموذج التسجيل سيستخدم كوسيلة اتصال بيني وبين | وأقر بموافقتي على قيام المستشفى بإخطاري عن طريق رسائل البريد أو الرسائل القصيرة أو البريد الإلكتروني أو المكالمات الهاتفية أو أي طريقة أخرى بالمواعيد والعروض الترويجية أو المميزات والمنتجات الخاصة بالمستشفى أو) خاصة بأي طرف خارجي) وبأي خدمات طبية تقدمها المجموعة أو قد يطرحها المستشفى في المستقبل أو أي تعديلات قد تطرأ على الخدمات المقدمة من قبل المستشفى. وتعتبر هذه الرسائل دليل إثبات يحق للمستشفى استخدامه في اي وقت يشاء. أفهم مخاطر التواصل عبر البريد الإلكتروني والرسائل النصية خاصة مخاطر الخصوصية وأدرك أن المستشفى لا يمكنه ضمان أمن وسرية البريد الإلكتروني أو الرسائل النصية ولن يكون المستشفى مسؤول عن الرسائل التي لم يتم استلامها أو تسليمها بسبب الفشل التقني أو الكشف عن المعلومات السرية ما لم يكن سببها سوء سلوك متعمد."
},
"releaseConsent": {"en": "RELEASE OF PERSONAL AND MEDICAL INFORMATION: ", "ar": "الإفصاح عن المعلومات الشخصية والطبية: "},
"generalConsent4": {
"en":
"On completion of this consent I hereby authorize the hospital to provide any information of whatever nature concerning my treatment, including but not limited to, current conditions/co-morbidities to my insurance carrier or third party payer, for the purpose of determining benefit entitlement and to process payment, therefore taking responsibility for the financial settlement of my medical bills.",
"ar": "عند تعبئة هذا النموذج ، أصرح بموجبه للمستشفي بتقديم أية معلومات أياً كانت طبيعتها بخصوص حالتي الصحية وعلاجي لشركة التأمين أو لأي طرف آخر مسؤول عن الدفع لأغراض تحديد حق الاستفادة والقيام بالدفع وبالتالي تحمل المسؤولية عن التسوية المالية للفواتير الطبية الخاصة بي."
},
"generalConsent5": {
"en":
"The Hospital is obliged by local and government regulations to submit certain patient information and I hereby give consent for the disclosure or use of my information as per statutory requirement. I also acknowledge that this consent is subject to the laws and jurisdiction of the country in which the Hospital is located.",
"ar": " إن المستشفى ملزم بموجب الأنظمة المحلية وأنظمة الدولة بتقديم بعض المعلومات المتعلقة بالمريض وأوافق بموجبه على إفصاح أو استخدام المستشفى للمعلومات الخاصة بي حسبما هو مطلوب نظاماً، وأن هذا الإقرار خاضع للأنظمة والقوانين والاختصاص القضائي للدولة حيث يقع المستشفى."
},
"valuables": {"en": "VALUABLES: ", "ar": "الممتلكات الثمينة: "},
"generalConsent6": {"en": "The Hospital is not liable for the loss or damage of any money, jewelry, documents or other personal articles of value.", "ar": "المستشفى غير مسؤول عن ضياع أو تلف أي أموال أو مجوهرات أو مستندات أو أي أشياء أخري ذات قيمة."},
"financialConsent": {"en": "FINANCIAL AGREEMENT: ", "ar": "الموافقة المالية: "},
"generalConsent7": {
"en":
"Within the expected time frame during their hospital visit or stay, patients/relatives are required to take personal responsibility and meet any financial obligation towards the Hospital regardless of the mode and source of payment (i.e. self-paying, insurance company, sponsoring company & others). I understand that for credit cases (Insurance covered or corporate patients) approval letter is essential at the time of admission. In case the approval letter is not available, I, the undersigned, agree to be treated as cash patient and advance deposit shall be made. Once approval is obtained the amount paid as advance shall be refunded to me / patient and if there is no approval till discharge the bill shall be settled in full by me/patient.",
"ar": "يتوجب علي ضمن الاطار الزمني المتوقع أثناء زيارة المستشفى أو الإقامة فيها تحمل المسؤولية الشخصية والوفاء بأي التزام مالي تجاه المستشفى بغض النظر عن طريقة ومصدر الدفع (أي: الدفع الذاتي أو شركة التأمين أو صاحب العمل أو غيره، وأن الموافقة المسبقة ضرورية قبل دخول المستشفى في حالة التغطية المالية من قبل شركة التأمين أو شركة الكفالة في الحالات التي يتم فيها تأخر الموافقة أتعهد أنا الموقع أدناه بالموافقة على العلاج كمريض دفع ذاتي ويجب إيداع مبلغ تحت الحساب يتم استرداده بعد الحصول على موافقة التأمين، ويجب دفع الحساب بالكامل في حالة عدم الحصول على موافقة التأمين حتى موعد الخروج."
},
"dataSharingConsent": {"en": "DATA SHARING AND INQUIRY: ", "ar": "تبادل المعلومات والاستفسارات: "},
"generalConsent8": {
"en":
"Hereby, I, the undersigned, agree to provide the Hospital with any information that it requires for the establishing and/or auditing and/or administering my accounts and facilities therewith and I authorize it to obtain and collect any information as it deems necessary or in need for regarding me, my accounts and facilities therewith, from the Saudi Credit Bureau (SIMAH) or to any other agency approved by Saudi Arabian Monetary Agency (SAMA) and to disclose and share (inclusive of Data Pooling) that information to the said company (SIMAH) or to any other agency approved by Saudi Arabian Monetary Agency (SAMA) in accordance with the Membership Agreement and Code of Conduct approved. I agree and acknowledge that the delay in payment or non-payment of Hospital dues is a failure and as a result, SIMAH and/or any other agency approved by will be provided with my name and information to be added to the lists at SIMAH. These lists are accessed by other parties, and I will not be removed from these lists until I pay all of the outstanding amounts.",
"ar": "بهذا أنا الموقع أدناه أوافق على تزويد المستشفى بأي معلومات أو بيانات يطلبها مني لتأسيس ملفي لدى المستشفى و/أو لمراجعته و/ أو لإدارته وأفوض المستشفى بأن يحصل على ما يلزم أو يحتاج إليه من معلومات تخصني من الشركة السعودية للمعلومات الائتمانية (سمة) واو اي جهة أخرى معتمدة من مؤسسة النقد العربي السعودي (ساما). كما أوافق على أن يفصح المستشفى عن المعلومات الخاصة بي لدى المستشفى للشركة السعودية للمعلومات الائتمانية (سمة) واو اي جهة أخرى معتمدة من مؤسسة النقد العربي السعودي (ساما) من خلال إتفاقية العضوية المبرمة وقواعد العمل المقرة والخاصة بتبادل المعلومات. كما أوافق وأقر بان التأخير في السداد أو عدم السداد لمستحقات المستشفى يعتبر تقصيراً وإخلالاً مني ونتيجة لذلك سيتم تزويد الشركة السعودية للمعلومات الائتمانية (سمه) و/أو أي جهة أخرى توافق عليها مؤسسة النقد العربي السعودي (ساما) بإسمي ومعلوماتي الإضافتها على القوائم لديها هذه القوائم يتم الوصول اليها والإطلاع عليها من قبل جهات أخرى، ولن يتم رفع اسمي من تلك القوائم إلا بعد أداء كافة ما علي من مبالغ مستحقة."
},
"permissionLeaveConsent": {"en": "PERMISSION TO LEAVE THE HOSPITAL: ", "ar": "قواعد المستشفى: "},
"generalConsent9": {
"en":
"Fully understand that, at no time, patient can leave the Hospital without prior consent and approval of treating doctor. In case I insist on leaving the Hospital, I must sign an undertaking of my responsibility on leaving the Hospital against the medical advice.",
"ar": "اتفهم انه ليس بإمكاني مغادرة المستشفى في أي وقت شئت دون أخذ إذن طبيبي المعالج. وفي حالة إصراري على مغادرة المستشفى يتعين علي توقيع اقرار مغادرتي ضد النصيحة الطبية وعلى مسؤوليتي."
},
"observeConsent": {"en": "CONSENT TO OBSERVE: ", "ar": "قواعد المستشفى: "},
"generalConsent10": {
"en":
"Observers will be allowed according to the Hospital policy as will the taking of pictures of medical or surgical procedures and the use of same for internal staff education or process improvement purposes. Observation and photography or medical or surgical procedures may be done with the approval of the Hospital and in accordance with the Hospital's policy and related laws. I, the undersigned, fully understand that electronically-transmitted information may be used and/or shared by the Hospital with other hospitals for my diagnosis, therapy, follow-up and/or patient education, and may include patient medical records, medical images, interactive audio, video, and/or data communications, output data from medical devices, sound and video files etc. for betterment of patient care.",
"ar": "وفقاً لسياسة المستشفى، سيتم السماح للمراقبين بمتابعة الإجراءات الطبية والجراحية وسيتم استخدامها لتعليم الموظفين الداخليين أو لأغراض التحسين والتطوير ويمكن إجراء المراقبة والتصوير الفوتوغرافي أو الإجراءات الطبية أو الجراحية بموافقة المستشفى ووفقاً لسياسة المستشفى والانظمة ذات العلاقة. أنا الموقع ادناه أتفهم انه قد يتم الكترونياً إرسال معلومات متعلقة بالتشخيص الطبي لي، العلاج المتابعة وتثقيف المريض، والتي قد تتضمن ملف المريض الطبي النتائج الإشعاعية، التسجيلات الصوتية والمرئية، وذلك بين المستشفى ومستشفيات أخرى بهدف تقديم رعاية صحية أفضل."
},
"noGuaranteeConsent": {"en": "NO GUARENTEE OF THE RESULTS OF TREATMENT OR EXAMINATION: ", "ar": "لا ضمان لنتائج العلاج أو الفحوصات: "},
"generalConsent11": {
"en": "I fully understand that no guarantee can be made to me as to the results of treatment or examinations done in the hospital during my hospitalization.",
"ar": "أنا الموقع أدناه أتفهم أنه لا يمكن ضمان نتائج العلاج أو الفحوصات أو الإجراءات التي قد تجرى لي خلال فترة وجودي بالمستشفى."
},
"disputeConsent": {"en": "GOVERNING LAWS AND DISPUTE RESOLUTION: ", "ar": "النظام الحاكم وحل النزاعات: "},
"generalConsent12": {
"en":
"This General Consent and Conditions of Admissions is governed by and shall be construed in accordance with the laws of the Kingdom of Saudi Arabia. Any dispute which arises during the execution of it, in which the parties have failed to resolve amicably, will be referred to the concerned judicial authorities in the city of Riyadh, Kingdom of Saudi Arabia.",
"ar": "تخضع وتفسر هذه الموافقة العامة وشروط القبول للأنظمة المعمول بها في المملكة العربية السعودية. كل خلاف ينشأ عن تنفيذها ولا يتوصل إلى تسويته بين الطرفين وديا يحال إلى الجهة القضائية المختصة بالفصل في النزاع في مدينة الرياض، المملكة العربية السعودية."
},
"patientsRightsConsent": {"en": "ACKNOWLEDGEMENT OF NOTICE OF PATIENT RIGHTS AND RESPONSIBILITIES: ", "ar": "الإقرار بحقوق ومسؤوليات المرضى: "},
"generalConsent13": {
"en":
"I, the undersigned, acknowledge that I have been provided with a copy of the Patients' Bill of Right and Responsibilities and the admission staff has explained to me Patients' Bill of Right and Responsibilities.",
"ar": "أنا الموقع أدناه أقر بانه تم تزويدي بـ وثيقة حقوق ومسؤوليات المرضى وقام الموظف المختص بشرح وثيقة حقوق ومسؤوليات المرضى لي."
},
"acknowledgementConsent": {"en": "ACKNOWLEDGEMENTS: ", "ar": "الإقرارات: "},
"generalConsent14": {
"en":
"I, the undersigned, acknowledge that I have been provided with a copy of the Patients' Bill of Right and Responsibilities and the admission staff has explained to me Patients' Bill of Right and Responsibilities.",
"ar": "لقد قرأت وفهمت وأوافق على الشروط والأحكام المبينة أعلاه وأوافق على الإلتزام بالمتطلبات المذكورة تجاه المستشفى ، لقد قرأت التفاصيل المبينة في نموذج التسجيل الخاص بي وأقر بأنها صحيحة. أنا الموقع ادناه أقر بأنه أتيحت لي الفرصة لطرح الأسئلة والتحفظات بشأن هذه الموافقة، وتلقيت إجابات مرضية على جميع إستفساراتي."
},
};

@ -19,28 +19,34 @@ class GetAdmissionInfoResponseModel {
int status;
String statusDesc;
String statusDescN;
String clinicName;
String doctorName;
String projectName;
GetAdmissionInfoResponseModel(
{this.setupID,
this.projectID,
this.admissionNo,
this.admissionDate,
this.admissionRequestNo,
this.admissionType,
this.patientType,
this.patientID,
this.clinicID,
this.doctorID,
this.admittingClinicID,
this.admittingDoctorID,
this.categoryID,
this.roomID,
this.bedID,
this.dischargeDate,
this.approvalNo,
this.status,
this.statusDesc,
this.statusDescN});
this.projectID,
this.admissionNo,
this.admissionDate,
this.admissionRequestNo,
this.admissionType,
this.patientType,
this.patientID,
this.clinicID,
this.doctorID,
this.admittingClinicID,
this.admittingDoctorID,
this.categoryID,
this.roomID,
this.bedID,
this.dischargeDate,
this.approvalNo,
this.status,
this.statusDesc,
this.statusDescN,
this.clinicName,
this.doctorName,
this.projectName});
GetAdmissionInfoResponseModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
@ -63,6 +69,9 @@ class GetAdmissionInfoResponseModel {
status = json['Status'];
statusDesc = json['StatusDesc'];
statusDescN = json['StatusDescN'];
clinicName = json['ClinicName'];
doctorName = json['DoctorName'];
projectName = json['ProjectName'];
}
Map<String, dynamic> toJson() {
@ -87,6 +96,9 @@ class GetAdmissionInfoResponseModel {
data['Status'] = this.status;
data['StatusDesc'] = this.statusDesc;
data['StatusDescN'] = this.statusDescN;
data['ClinicName'] = this.clinicName;
data['DoctorName'] = this.doctorName;
data['ProjectName'] = this.projectName;
return data;
}
}

@ -37,7 +37,7 @@ class GetMedicalInstructions {
});
}
medicalInstructionsXMLField = json['medicalInstructionsXMLField'];
medicalRemarksField = json['medicalRemarksField'];
medicalRemarksField = json['medicalRemarks'];
projectIdField = json['projectIdField'];
projectNameField = json['projectNameField'];
setupIdField = json['setupIdField'];

@ -0,0 +1,218 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class AdmissionNotice extends StatefulWidget {
const AdmissionNotice();
@override
State<AdmissionNotice> createState() => _AdmissionNoticeState();
}
class _AdmissionNoticeState extends State<AdmissionNotice> {
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
List<Widget> inPatientServiceList = getAdmissionNoticeServicesList(context);
return AppScaffold(
isShowAppBar: true,
isShowDecPage: false,
showNewAppBarTitle: true,
showNewAppBar: true,
appBarTitle: TranslationBase.of(context).admissionNoticeTitle,
body: Container(
margin: EdgeInsets.all(20.0),
child: Column(
children: [
Padding(
padding: EdgeInsets.only(left: 12, right: 12),
child: GridView.builder(
shrinkWrap: true,
primary: false,
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3, childAspectRatio: 2 / 2, crossAxisSpacing: 12, mainAxisSpacing: 12),
padding: EdgeInsets.zero,
itemCount: inPatientServiceList.length,
itemBuilder: (BuildContext context, int index) {
return inPatientServiceList[index];
},
),
),
],
),
),
);
}
List<Widget> getAdmissionNoticeServicesList(BuildContext context) {
List<Widget> serviceList = List();
serviceList.add(
InkWell(
onTap: () {
// openBirthNotificationsPage(context);
viewModalBottomSheet();
},
child: MedicalProfileItem(
title: TranslationBase.of(context).admissionNoticeTitle,
imagePath: 'admission.svg',
subTitle: TranslationBase.of(context).insuranceSubtitle,
width: 50.0,
height: 40.0,
isInPatient: true,
),
),
);
return serviceList;
}
void viewModalBottomSheet() {
showModalBottomSheet(
context: context,
builder: (context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Padding(
padding: const EdgeInsets.only(left: 20, right: 20, top: 20),
child: Text(
"Admission Card",
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.bold,
fontSize: 21,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
Container(
padding: EdgeInsets.all(16.0),
height: 250,
child: Container(
decoration: cardRadius(20, color: Color(0xFFF2B353E)),
clipBehavior: Clip.antiAlias,
margin: EdgeInsets.zero,
child: Container(
width: double.infinity,
height: double.infinity,
clipBehavior: Clip.antiAlias,
margin: EdgeInsets.zero,
decoration: projectViewModel.isArabic
? containerBottomRightRadiusWithGradientForAr(MediaQuery.of(context).size.width / 4)
: containerBottomRightRadiusWithGradient(MediaQuery.of(context).size.width / 4),
child: Card(
color: Colors.transparent,
margin: EdgeInsets.zero,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
mFlex(2),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Text(
projectViewModel.authenticatedUserObject.user.firstName + " " + projectViewModel.authenticatedUserObject.user.lastName,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 17,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Text(
TranslationBase.of(context).roomNo + " " + (projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.roomID : "Not assigned yet"),
style: TextStyle(
color: Colors.white,
fontSize: 15,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
mFlex(2),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Text(
projectViewModel.isPatientAdmitted
? projectViewModel.getAdmissionInfoResponseModel.doctorName.toString()
: projectViewModel.getAdmissionRequestInfoResponseModel.doctorName,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 17,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
// mFlex(2),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Text(
TranslationBase.of(context).clinic +
": " +
(projectViewModel.isPatientAdmitted
? projectViewModel.getAdmissionInfoResponseModel.clinicName.toString()
: projectViewModel.getAdmissionRequestInfoResponseModel.clinicName),
style: TextStyle(
color: Colors.white,
fontSize: 15,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20),
child: Text(
TranslationBase.of(context).hospital +
": " +
(projectViewModel.isPatientAdmitted
? projectViewModel.getAdmissionInfoResponseModel.projectName.toString()
: projectViewModel.getAdmissionRequestInfoResponseModel.projectName),
style: TextStyle(
color: Colors.white,
fontSize: 15,
letterSpacing: -0.25,
height: 25 / 17,
),
),
),
mFlex(1),
],
),
),
),
),
),
Padding(
padding: const EdgeInsets.only(left: 20, right: 20, bottom: 30),
child: DefaultButton(
TranslationBase.of(context).close.toUpperCase(),
() {
Navigator.pop(context);
},
color: CustomColors.accentColor,
disabledColor: CustomColors.grey2,
),
),
],
);
});
}
}

@ -89,7 +89,7 @@ class _InPatientPaidAdvancePaymentState extends State<InPatientPaidAdvancePaymen
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service
.getInPatientAdvancePaymentHistory(projectViewModel.inPatientProjectID, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
.getInPatientAdvancePaymentHistory(projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo, context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);

@ -251,11 +251,11 @@ class _InPatientPendingAdvancePaymentState extends State<InPatientPendingAdvance
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
int orderID = num.parse(DateTime.now().microsecondsSinceEpoch.toString().substring(7, 15));
int clinicID = projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.clinicID : 17;
int clinicID = projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.clinicID : projectViewModel.getAdmissionRequestInfoResponseModel.clinicId;
service
.getInPatientPaymentLink(
projectViewModel.inPatientProjectID,
projectViewModel.getAdmissionInfoResponseModel.admissionNo,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo,
orderID,
projectViewModel.user.firstName + " " + projectViewModel.user.lastName,
projectViewModel.user.emailAddress,

@ -163,6 +163,7 @@ class _HelpPROState extends State<HelpPRO> {
Navigator.of(context).pop();
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: err);
print(err);
});
}

@ -0,0 +1,529 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class InPatientGeneralConsent extends StatelessWidget {
InPatientGeneralConsent();
ProjectViewModel projectViewModel;
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return AppScaffold(
isShowAppBar: true,
isShowDecPage: false,
showNewAppBarTitle: true,
showNewAppBar: true,
appBarTitle: TranslationBase.of(context).InPatientServicesHeader,
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: const EdgeInsets.all(21.0),
child: Text(
TranslationBase.of(context).generalConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
Expanded(
child: SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
child: Card(
elevation: 0.0,
margin: EdgeInsets.only(left: 16.0, right: 16.0, bottom: 16.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
side: BorderSide(color: Colors.transparent, width: 0.0),
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent1,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).hospitalRules,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent2,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).communicationConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent3,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).releaseConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent4,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent5,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).valuables,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent6,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).financialConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent7,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).dataSharingConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent8,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).permissionLeaveConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent9,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).observeConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent10,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).noGuaranteeConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent11,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).disputeConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent12,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).patientsRightsConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent13,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(24.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).acknowledgementConsent,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.bold,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
mHeight(12.0),
Container(
width: MediaQuery.of(context).size.width * 0.85,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(
TranslationBase.of(context).generalConsent14,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
],
),
),
),
),
),
),
Padding(
padding: const EdgeInsets.only(left: 21.0, right: 21.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Expanded(
flex: 1,
child: ButtonTheme(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
height: 45.0,
child: CustomTextButton(
backgroundColor: Color(0xffc5272d),
elevation: 0,
onPressed: () {
acceptRejectConsent(context, 0);
},
child: Text(TranslationBase.of(context).reject, style: TextStyle(fontSize: 16.0, color: Colors.white)),
),
),
),
mWidth(7),
Expanded(
flex: 1,
child: ButtonTheme(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
height: 45.0,
child: CustomTextButton(
backgroundColor: CustomColors.green,
elevation: 0,
onPressed: () {
acceptRejectConsent(context, 1);
},
child: Text(TranslationBase.of(context).acceptLbl, style: TextStyle(fontSize: 16.0, color: Colors.white)),
),
),
),
],
),
),
],
),
);
}
void acceptRejectConsent(BuildContext context, int status) {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service
.insertForGeneralAdmissionConsent(
projectViewModel.user.patientID,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.clinicID : projectViewModel.getAdmissionRequestInfoResponseModel.clinicId,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId,
status,
context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
if (res["MessageStatus"] == 1) {
AppToast.showErrorToast(message: res["SuccessMsg"]);
} else {
AppToast.showErrorToast(message: res["endUserMessage"]);
}
Navigator.pop(context);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
print(err);
});
}
}

@ -1,9 +1,11 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/InPatientServices/get_general_instructions_response_model.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/admission_notice.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/birth_notification.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/general_instructions.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/help_PRO.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/inpatient_advance_payment.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/inpatient_general_consent.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/meal_plan.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/medical_instructions.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
@ -78,6 +80,23 @@ class _InPatientServicesHomeState extends State<InPatientServicesHome> {
List<Widget> getInPatientServicesList(BuildContext context) {
List<Widget> serviceList = List();
serviceList.add(
InkWell(
onTap: () {
openPatientGeneralConsent();
},
child: MedicalProfileItem(
title: TranslationBase.of(context).generalInstructionsTitle,
imagePath: 'general_instructions.svg',
subTitle: TranslationBase.of(context).consent,
width: 50.0,
height: 40.0,
isInPatient: true,
isEnable: true,
),
),
);
serviceList.add(
InkWell(
onTap: () {
@ -180,6 +199,23 @@ class _InPatientServicesHomeState extends State<InPatientServicesHome> {
),
);
serviceList.add(
InkWell(
onTap: () {
Navigator.push(context, FadePage(page: AdmissionNotice()));
// if (isReceivePrescriptionEnabled) receivePrescriptionAPI(context);
},
child: MedicalProfileItem(
title: TranslationBase.of(context).admissionNoticeTitle,
imagePath: 'admission_notice.svg',
subTitle: TranslationBase.of(context).admissionNoticeSubTitle,
width: 50.0,
height: 40.0,
isInPatient: true,
isEnable: true),
),
);
serviceList.add(
InkWell(
onTap: () {
@ -285,10 +321,17 @@ class _InPatientServicesHomeState extends State<InPatientServicesHome> {
});
}
void openPatientGeneralConsent() {
Navigator.push(context, FadePage(page: InPatientGeneralConsent()));
}
void openGeneralInstructions(BuildContext context) {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service.getGeneralInstructions(projectViewModel.inPatientProjectID, context).then((res) {
service
.getGeneralInstructions(
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId, context)
.then((res) {
if (res['generalInstructions'].length != 0) {
List<GetGeneralInstructions> getGeneralInstructionsList = [];
res['generalInstructions'].forEach((v) {
@ -308,7 +351,10 @@ class _InPatientServicesHomeState extends State<InPatientServicesHome> {
void openMedicalInstructions(BuildContext context) {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service.getMedicalInstructions(projectViewModel.inPatientProjectID, context).then((res) {
service
.getMedicalInstructions(
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId, context)
.then((res) {
if (res['MedicalInstruction'] != null && res['MedicalInstruction'].length != 0) {
List<GetMedicalInstructions> getMedicalInstructionsList = [];
res['MedicalInstruction'].forEach((v) {
@ -330,19 +376,24 @@ class _InPatientServicesHomeState extends State<InPatientServicesHome> {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service
.getInPatientAdvancePaymentRequests(projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo, context)
.getInPatientAdvancePaymentRequests(
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo,
context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
if (res["MessageStatus"] == 1) {
if (res['responseInpatient'] != null) {
inPatientAdvanceResponseModel = InPatientAdvanceResponseModel.fromJson(res["responseInpatient"]);
Navigator.push(context, FadePage(page: InPatientAdvancePayment(isHasData: inPatientAdvanceResponseModel.responseInpatientAdvanceInfo != null, inPatientAdvanceResponseModel: inPatientAdvanceResponseModel)));
Navigator.push(context,
FadePage(page: InPatientAdvancePayment(isHasData: inPatientAdvanceResponseModel.responseInpatientAdvanceInfo != null, inPatientAdvanceResponseModel: inPatientAdvanceResponseModel)));
} else {
AppToast.showErrorToast(message: TranslationBase.of(context).noData);
}
} else {
Navigator.push(context, FadePage(page: InPatientAdvancePayment(isHasData: inPatientAdvanceResponseModel.responseInpatientAdvanceInfo != null, inPatientAdvanceResponseModel: inPatientAdvanceResponseModel)));
Navigator.push(context,
FadePage(page: InPatientAdvancePayment(isHasData: inPatientAdvanceResponseModel.responseInpatientAdvanceInfo != null, inPatientAdvanceResponseModel: inPatientAdvanceResponseModel)));
}
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);

@ -35,14 +35,16 @@ class _MedicalInstructionsPageState extends State<MedicalInstructionsPage> {
children: [
Padding(
padding: const EdgeInsets.all(21.0),
child: Text(TranslationBase.of(context).medicalInstructions,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
)),
child: Text(
TranslationBase.of(context).medicalInstructions,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
),
Expanded(
child: Container(
@ -57,39 +59,66 @@ class _MedicalInstructionsPageState extends State<MedicalInstructionsPage> {
),
child: Padding(
padding: EdgeInsets.all(16.0),
child: Container(
child: ListView.separated(
itemCount: widget.getMedicalInstructionsList[0].medicaLInstructionsField.length,
itemBuilder: (BuildContext context, int index) {
return Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: SvgPicture.asset("assets/images/new-design/ionic-ios-checkmark-circle.svg"),
),
Container(
width: MediaQuery.of(context).size.width * 0.75,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(widget.getMedicalInstructionsList[0].medicaLInstructionsField[index].descriptionField,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
)),
),
],
));
},
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mHeight(16.0),
);
},
)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ListView.separated(
shrinkWrap: true,
itemCount: widget.getMedicalInstructionsList[0].medicaLInstructionsField.length,
itemBuilder: (BuildContext context, int index) {
return Container(
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
child: SvgPicture.asset("assets/images/new-design/ionic-ios-checkmark-circle.svg"),
),
Container(
width: MediaQuery.of(context).size.width * 0.75,
margin: EdgeInsets.only(left: 5.0, right: 5.0),
child: Text(widget.getMedicalInstructionsList[0].medicaLInstructionsField[index].descriptionField,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
)),
),
],
));
},
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mHeight(16.0),
);
},
),
mHeight(21),
Text(
TranslationBase.of(context).remarks + ":",
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 21.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
mHeight(12),
Text(
widget.getMedicalInstructionsList[0].medicalRemarksField,
overflow: TextOverflow.clip,
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.64,
),
),
],
),
),
),
),

@ -72,15 +72,6 @@ class SliderView extends StatelessWidget {
height: 25 / 17,
),
),
// Text(
// TranslationBase.of(context).loginRegisterNow,
// style: TextStyle(
// color: Colors.white,
// fontSize: 12,
// letterSpacing: -0.36,
// height: 1,
// ),
// ),
],
),
),

@ -687,7 +687,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
if (isAdmitted) {
if (res['PatientAdmittedInformation'].length != 0) {
getAdmissionInfoResponseModel = GetAdmissionInfoResponseModel.fromJson(res['PatientAdmittedInformation'][0]);
projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['ProjectID']);
projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['projectId']);
projectViewModel.setInPatientAdmissionInfo(getAdmissionInfoResponseModel);
projectViewModel.setIsPatientAdmitted(true);
}
@ -695,7 +695,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
if (hasAdmissionRequest) {
if (res['MedicalInstruction'].length != 0) {
getAdmissionRequestInfoResponseModel = GetAdmissionRequestInfoResponseModel.fromJson(res['MedicalInstruction'][0]);
projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['ProjectID']);
projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['projectId']);
projectViewModel.setInPatientAdmissionRequest(getAdmissionRequestInfoResponseModel);
projectViewModel.setPatientHasAdmissionRequest(true);
}

@ -410,7 +410,7 @@ class _Login extends State<Login> {
if (isAdmitted) {
if (res['PatientAdmittedInformation'].length != 0) {
getAdmissionInfoResponseModel = GetAdmissionInfoResponseModel.fromJson(res['PatientAdmittedInformation'][0]);
projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['ProjectID']);
projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['projectId']);
projectViewModel.setInPatientAdmissionInfo(getAdmissionInfoResponseModel);
projectViewModel.setIsPatientAdmitted(true);
}
@ -418,7 +418,7 @@ class _Login extends State<Login> {
if (hasAdmissionRequest) {
if (res['MedicalInstruction'].length != 0) {
getAdmissionRequestInfoResponseModel = GetAdmissionRequestInfoResponseModel.fromJson(res['MedicalInstruction'][0]);
projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['ProjectID']);
projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['projectId']);
projectViewModel.setInPatientAdmissionRequest(getAdmissionRequestInfoResponseModel);
projectViewModel.setPatientHasAdmissionRequest(true);
}

@ -155,7 +155,7 @@ class PaymentService extends StatelessWidget {
medical.add(
InkWell(
onTap: () {
if(projectViewModel.isPatientAdmitted) {
if(projectViewModel.isPatientAdmitted || projectViewModel.patientHasAdmissionRequest) {
getInPatientAdvancePaymentRequests(context);
projectViewModel.analytics.advancePayments.payment_services(service_type: 'inpatient advance payment');
} else {
@ -180,8 +180,8 @@ class PaymentService extends StatelessWidget {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service
.getInPatientAdvancePaymentRequests(projectViewModel.inPatientProjectID, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo, context)
.getInPatientAdvancePaymentRequests(projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.projectID : projectViewModel.getAdmissionRequestInfoResponseModel.projectId, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo, context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
if (res["MessageStatus"] == 1) {

@ -293,7 +293,7 @@ class ClinicListService extends BaseService {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request, isAllowAny: true);
}, body: request);
return Future.value(localRes);
}
@ -313,6 +313,30 @@ class ClinicListService extends BaseService {
return Future.value(localRes);
}
Future<Map> insertForGeneralAdmissionConsent(num patientID, num admissionReqNo, int clinicID, int projectID, int status, context) async {
Map<String, dynamic> request;
request = {
"AdmissionRequestNo": admissionReqNo,
"ClinicID": clinicID,
"CreatedBy": 102,
"PatientID": patientID,
"ProjectID": projectID,
"status": status,
"searchKey": "",
"pageIndex": 0,
"pageSize": 0,
};
dynamic localRes;
await baseAppClient.post(INSERT_GENERAL_ADMISSION_CONSENT, onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request, isAllowAny: true);
return Future.value(localRes);
}
Future<Map> submitBirthNotification(num motherMRN, int projectID, String fatherNameAR, String fatherNameEN, String babyNameAR, String babyNameEN, String contactNum, String idImage, context) async {
Map<String, dynamic> request;
request = {

@ -2945,6 +2945,35 @@ class TranslationBase {
String get receive => localizedValues["receive"][locale.languageCode];
String get PRO => localizedValues["PRO"][locale.languageCode];
String get patientRelationOffice => localizedValues["patientRelationOffice"][locale.languageCode];
String get roomNo => localizedValues["roomNo"][locale.languageCode];
String get generalConsent => localizedValues["generalConsent"][locale.languageCode];
String get generalConsent1 => localizedValues["generalConsent1"][locale.languageCode];
String get hospitalRules => localizedValues["hospitalRules"][locale.languageCode];
String get generalConsent2 => localizedValues["generalConsent2"][locale.languageCode];
String get communicationConsent => localizedValues["communicationConsent"][locale.languageCode];
String get generalConsent3 => localizedValues["generalConsent3"][locale.languageCode];
String get releaseConsent => localizedValues["releaseConsent"][locale.languageCode];
String get generalConsent4 => localizedValues["generalConsent4"][locale.languageCode];
String get generalConsent5 => localizedValues["generalConsent5"][locale.languageCode];
String get valuables => localizedValues["valuables"][locale.languageCode];
String get generalConsent6 => localizedValues["generalConsent6"][locale.languageCode];
String get financialConsent => localizedValues["financialConsent"][locale.languageCode];
String get generalConsent7 => localizedValues["generalConsent7"][locale.languageCode];
String get dataSharingConsent => localizedValues["dataSharingConsent"][locale.languageCode];
String get generalConsent8 => localizedValues["generalConsent8"][locale.languageCode];
String get permissionLeaveConsent => localizedValues["permissionLeaveConsent"][locale.languageCode];
String get generalConsent9 => localizedValues["generalConsent9"][locale.languageCode];
String get observeConsent => localizedValues["observeConsent"][locale.languageCode];
String get generalConsent10 => localizedValues["generalConsent10"][locale.languageCode];
String get noGuaranteeConsent => localizedValues["noGuaranteeConsent"][locale.languageCode];
String get generalConsent11 => localizedValues["generalConsent11"][locale.languageCode];
String get disputeConsent => localizedValues["disputeConsent"][locale.languageCode];
String get generalConsent12 => localizedValues["generalConsent12"][locale.languageCode];
String get patientsRightsConsent => localizedValues["patientsRightsConsent"][locale.languageCode];
String get generalConsent13 => localizedValues["generalConsent13"][locale.languageCode];
String get acknowledgementConsent => localizedValues["acknowledgementConsent"][locale.languageCode];
String get generalConsent14 => localizedValues["generalConsent14"][locale.languageCode];
}

Loading…
Cancel
Save