CR-19328-LiveCare-Enhancements
haroon amjad 4 weeks ago
parent ed90ff05bc
commit 08e2cc1f3a

@ -2057,5 +2057,6 @@
"liveCareTermsConditions46": "13-3\tإذا تبين أن أي بند أو جزء من أي بند من هذه الشروط والأحكام باطل أو غير قابل للإنفاذ أو غير صالح، فسيتم فصله عن هذه الشروط والأحكام، تاركاً باقي الشروط سارية المفعول بكامل الأثر والنفاذ، بشرط ألا يغير فصل ذلك البند من الطبيعة الأساسية لهذه الشروط والأحكام.",
"liveCareTermsHeading16": "14.\tالشكاوى",
"liveCareTermsConditions47": "خدمات الرعاية الصحية عن بُعد الخاصة بنا سوف تكون لتخصصات طبية محددة أو لمواعيد المتابعة أو إعادة صرف الدواء. ",
"liveCareTermsConditions48": "إذا كانت لديك أي شكاوى أو مخاوف بشأن التطبيق و/أو موقع الويب أو خدماتنا أو كيفية تعاملنا مع معلوماتك الشخصية، فيرجى التواصل معنا على: EServices.HMG@drsulaimanalhabib.com أو الاتصال على الرقم: 9553 525 011"
"liveCareTermsConditions48": "إذا كانت لديك أي شكاوى أو مخاوف بشأن التطبيق و/أو موقع الويب أو خدماتنا أو كيفية تعاملنا مع معلوماتك الشخصية، فيرجى التواصل معنا على: EServices.HMG@drsulaimanalhabib.com أو الاتصال على الرقم: 9553 525 011",
"liveCareInsurancePolicyText": "تنبيه: الاجراءات ما بعد الاستشارة (مثل التحاليل أو الأدوية) غير مشمولة بتغطية التأمين, ويتحمل المريض تكلفتها."
}

@ -2047,7 +2047,8 @@
"liveCareTermsConditions46": "13.3 If any clause or part of any clause of these Terms & Conditions is found to be void, unenforceable or invalid, then it will be severed from these Terms & Conditions, leaving the remainder in full force and effect, provided that the severance has not altered the basic nature of these Terms & Conditions. ",
"liveCareTermsHeading16": "14. COMPLAINTS",
"liveCareTermsConditions47": "Our Telehealth Services will be for specific medical specialties or follow-up or medication refill appointments.",
"liveCareTermsConditions48": "If you have any complaints or concerns about the Application and or the Website, Our Services, or how we handle your personal information please contact us on: EServices.HMG@drsulaimanalhabib.com or call 011 525 9553"
"liveCareTermsConditions48": "If you have any complaints or concerns about the Application and or the Website, Our Services, or how we handle your personal information please contact us on: EServices.HMG@drsulaimanalhabib.com or call 011 525 9553",
"liveCareInsurancePolicyText": "Note: Procedure following the consultation (such as Lab tests or medication) are not covered by insurance and will be charged directly to the patient."
}

@ -210,7 +210,7 @@ class ApiClientImp implements ApiClient {
body['TokenID'] = "@dm!n";
}
// body['TokenID'] = "@dm!n";
body['TokenID'] = "@dm!n";
// body['PatientID'] = 226077;
// body['PatientID'] = 53320;
// body['PatientTypeID'] = 1;

@ -5,7 +5,7 @@ import 'package:hmg_patient_app_new/core/enums.dart';
class ApiConsts {
static const maxSmallScreen = 660;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.prod;
static AppEnvironmentTypeEnum appEnvironmentType = AppEnvironmentTypeEnum.uat;
// static String baseUrl = 'https://uat.hmgwebservices.com/'; // HIS API URL UAT

@ -21,7 +21,7 @@ abstract class ImmediateLiveCareRepo {
{Function(dynamic)? onSuccess, Function(String)? onError});
Future<Either<Failure, GenericApiModel<dynamic>>> addNewCallRequestForImmediateLiveCare(
int age, int gender, int serviceID, String clientRequestID, int callTypeID, bool isPharma, String deviceToken, String voipToken,
int age, int gender, int serviceID, String clientRequestID, int callTypeID, bool isPharma, String deviceToken, String voipToken, String language,
{Function(dynamic)? onSuccess, Function(String)? onError});
Future<Either<Failure, GenericApiModel<List<PatientLiveCareHistory>>>> getPatientLiveCareHistory({Function(dynamic)? onSuccess, Function(String)? onError});
@ -123,7 +123,7 @@ class ImmediateLiveCareRepoImp implements ImmediateLiveCareRepo {
@override
Future<Either<Failure, GenericApiModel>> addNewCallRequestForImmediateLiveCare(
int age, int gender, int serviceID, String clientRequestID, int callTypeID, bool isPharma, String deviceToken, String voipToken,
int age, int gender, int serviceID, String clientRequestID, int callTypeID, bool isPharma, String deviceToken, String voipToken, String language,
{Function(dynamic p1)? onSuccess, Function(String p1)? onError}) async {
Map<String, dynamic> mapDevice = {
"IsPharmacy": isPharma,
@ -136,7 +136,8 @@ class ImmediateLiveCareRepoImp implements ImmediateLiveCareRepo {
"Age": age,
"Gender": gender,
"IsVoip": Platform.isIOS ? true : false,
"CallTypeID": callTypeID
"CallTypeID": callTypeID,
"Language": language
};
try {

@ -243,7 +243,13 @@ class ImmediateLiveCareViewModel extends ChangeNotifier {
Future<void> addNewCallRequestForImmediateLiveCare(String transID, {Function(dynamic)? onSuccess, Function(String)? onError}) async {
final result = await immediateLiveCareRepo.addNewCallRequestForImmediateLiveCare(_appState.getAuthenticatedUser()!.age!, _appState.getAuthenticatedUser()!.gender!,
immediateLiveCareSelectedClinic.serviceID!, transID, liveCareSelectedCallType, false, _appState.deviceToken, await Utils.getStringFromPrefs(CacheConst.voipToken));
immediateLiveCareSelectedClinic.serviceID!,
transID,
liveCareSelectedCallType,
false,
_appState.deviceToken,
await Utils.getStringFromPrefs(CacheConst.voipToken),
selectedConsultationLanguage == 1 ? "AR" : "EN");
result.fold(
(failure) async {

@ -2038,5 +2038,6 @@ abstract class LocaleKeys {
static const liveCareTermsHeading16 = 'liveCareTermsHeading16';
static const liveCareTermsConditions47 = 'liveCareTermsConditions47';
static const liveCareTermsConditions48 = 'liveCareTermsConditions48';
static const liveCareInsurancePolicyText = 'liveCareInsurancePolicyText';
}

@ -50,7 +50,10 @@ class _ImmediateLiveCarePaymentDetailsState extends State<ImmediateLiveCarePayme
@override
void initState() {
super.initState();
_initializeVideoPlayer();
// _initializeVideoPlayer();
WidgetsBinding.instance.addPostFrameCallback((_) async {
_checkPatientInsuranceStatus();
});
}
void _initializeVideoPlayer() {
@ -65,9 +68,38 @@ class _ImmediateLiveCarePaymentDetailsState extends State<ImmediateLiveCarePayme
});
}
void _checkPatientInsuranceStatus() {
if (getIt.get<ImmediateLiveCareViewModel>().liveCareImmediateAppointmentFeesList.isInsured == false) {
showCommonBottomSheetWithoutHeight(context,
child: Container(
padding: EdgeInsets.only(
left: 24.h,
top: 24.h,
right: 24.h,
bottom: 12.h,
),
child: Utils.getWarningWidget(
loadingText: LocaleKeys.liveCareInsurancePolicyText.tr(),
isShowActionButtons: true,
confirmText: LocaleKeys.acknowledged.tr(context: context),
onCancelTap: () {
Navigator.of(context).pop();
Navigator.of(context).pop();
},
onConfirmTap: () async {
Navigator.of(context).pop();
}),
),
callBackFunc: () async {},
isCloseButtonVisible: false,
isFullScreen: false,
isDismissible: false);
}
}
@override
void dispose() {
_videoController.dispose();
// _videoController.dispose();
super.dispose();
}
@ -184,7 +216,7 @@ class _ImmediateLiveCarePaymentDetailsState extends State<ImmediateLiveCarePayme
children: [
Utils.buildSvgWithAssets(icon: AppAssets.language, width: 32.h, height: 32.h, fit: BoxFit.contain, iconColor: AppColors.textColor, applyThemeColor: false),
SizedBox(width: 8.h),
"${LocaleKeys.preferredLanguage.tr()}: ${immediateLiveCareVM.selectedConsultationLanguage == 1 ? LocaleKeys.arabic.tr() : (immediateLiveCareVM.selectedConsultationLanguage == 2 ? LocaleKeys.english.tr() : "")}"
"${LocaleKeys.preferredLanguage.tr()}: ${immediateLiveCareVM.selectedConsultationLanguage == 1 ? LocaleKeys.english.tr() : (immediateLiveCareVM.selectedConsultationLanguage == 2 ? LocaleKeys.arabic.tr() : "")}"
.toText16(isBold: true),
],
),

@ -24,7 +24,7 @@ class PreferredConsultationLanguageSelect extends StatelessWidget {
return Column(
children: [
checkInOptionCard(
AppAssets.call_fill,
AppAssets.language,
LocaleKeys.preferredConsultationLanguageAr.tr(),
LocaleKeys.callForAssistance.tr(),
// "Call for immediate assistance",
@ -34,7 +34,7 @@ class PreferredConsultationLanguageSelect extends StatelessWidget {
}),
SizedBox(height: 16.h),
checkInOptionCard(
AppAssets.whatsapp,
AppAssets.language,
LocaleKeys.preferredConsultationLanguageEn.tr(),
LocaleKeys.viewNearestHMGLocations.tr(),
).onPress(() async {

Loading…
Cancel
Save