haroon_dev
haroon amjad 11 hours ago
parent b1f2858c0c
commit 96d049ab05

@ -0,0 +1,12 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9384 3.88371e-06C3.28428 -5.8582e-05 2.69656 -0.000114493 2.22085 0.0638424C1.70149 0.133668 1.16868 0.295802 0.732241 0.732241C0.295802 1.16868 0.133668 1.70149 0.0638424 2.22085C-0.000114493 2.69656 -5.8582e-05 3.28428 3.88371e-06 3.9384L3.88371e-06 4.06161C-5.8582e-05 4.71574 -0.000114493 5.30346 0.0638424 5.77916C0.133668 6.29852 0.295802 6.83134 0.732241 7.26777C1.16868 7.70421 1.70149 7.86635 2.22085 7.93617C2.69656 8.00013 3.28427 8.00007 3.9384 8.00001H4.06162C4.71574 8.00007 5.30346 8.00013 5.77916 7.93617C6.29852 7.86635 6.83134 7.70421 7.26777 7.26777C7.70421 6.83134 7.86635 6.29852 7.93617 5.77916C8.00013 5.30346 8.00007 4.71574 8.00001 4.06162V3.9384C8.00007 3.28427 8.00013 2.69656 7.93617 2.22085C7.86635 1.70149 7.70421 1.16868 7.26777 0.732241C6.83134 0.295802 6.29852 0.133668 5.77916 0.0638424C5.30346 -0.000114493 4.71574 -5.8582e-05 4.06161 3.88371e-06L3.9384 3.88371e-06Z" fill="#8F9AA3"/>
<path d="M3.9384 12C3.28428 11.9999 2.69655 11.9999 2.22085 12.0638C1.70149 12.1337 1.16868 12.2958 0.732241 12.7322C0.295802 13.1687 0.133668 13.7015 0.0638424 14.2209C-0.000114493 14.6966 -5.8582e-05 15.2843 3.88371e-06 15.9384L3.88371e-06 16.0616C-5.8582e-05 16.7157 -0.000114493 17.3035 0.0638424 17.7792C0.133668 18.2985 0.295802 18.8313 0.732241 19.2678C1.16868 19.7042 1.70149 19.8663 2.22085 19.9362C2.69656 20.0001 3.28427 20.0001 3.9384 20H4.06162C4.71574 20.0001 5.30346 20.0001 5.77916 19.9362C6.29852 19.8663 6.83134 19.7042 7.26777 19.2678C7.70421 18.8313 7.86635 18.2985 7.93617 17.7792C8.00013 17.3035 8.00007 16.7157 8.00001 16.0616V15.9384C8.00007 15.2843 8.00013 14.6966 7.93617 14.2209C7.86635 13.7015 7.70421 13.1687 7.26777 12.7322C6.83134 12.2958 6.29852 12.1337 5.77916 12.0638C5.30346 11.9999 4.71575 11.9999 4.06163 12H3.9384Z" fill="#8F9AA3"/>
<path d="M0 10C0 9.44771 0.447715 9 1 9L7 9C7.55228 9 8 9.44772 8 10C8 10.5523 7.55228 11 7 11L1 11C0.447715 11 0 10.5523 0 10Z" fill="#8F9AA3"/>
<path d="M11 1C11 0.447715 10.5523 0 10 0C9.44771 0 9 0.447715 9 1L9 6C9 6.55228 9.44771 7 10 7C10.5523 7 11 6.55228 11 6L11 1Z" fill="#8F9AA3"/>
<path d="M15.9384 3.88371e-06L16.0616 3.88371e-06C16.7157 -5.8582e-05 17.3035 -0.000114493 17.7792 0.0638424C18.2985 0.133668 18.8313 0.295802 19.2678 0.732241C19.7042 1.16868 19.8663 1.70149 19.9362 2.22085C20.0001 2.69656 20.0001 3.28427 20 3.9384V4.06162C20.0001 4.71574 20.0001 5.30346 19.9362 5.77916C19.8663 6.29852 19.7042 6.83134 19.2678 7.26777C18.8313 7.70421 18.2985 7.86635 17.7792 7.93617C17.3035 8.00013 16.7157 8.00007 16.0616 8.00001H15.9384C15.2843 8.00007 14.6966 8.00013 14.2209 7.93617C13.7015 7.86635 13.1687 7.70421 12.7322 7.26777C12.2958 6.83134 12.1337 6.29852 12.0638 5.77916C11.9999 5.30346 11.9999 4.71575 12 4.06163V3.9384C11.9999 3.28428 11.9999 2.69655 12.0638 2.22085C12.1337 1.70149 12.2958 1.16868 12.7322 0.732241C13.1687 0.295802 13.7015 0.133668 14.2209 0.0638424C14.6966 -0.000114493 15.2843 -5.8582e-05 15.9384 3.88371e-06Z" fill="#8F9AA3"/>
<path d="M12.9384 9C12.2843 8.99994 11.6966 8.99989 11.2209 9.06384C10.7015 9.13367 10.1687 9.2958 9.73224 9.73224C9.2958 10.1687 9.13367 10.7015 9.06384 11.2209C8.99989 11.6966 8.99994 12.2843 9 12.9384L9.00001 13C9.00001 13.5523 9.44772 14 10 14C10.5523 14 11 13.5523 11 13C11 12.2646 11.0021 11.8137 11.046 11.4873C11.0846 11.2005 11.1394 11.1526 11.1459 11.1469L11.1469 11.1459C11.1526 11.1394 11.2005 11.0846 11.4873 11.046C11.8137 11.0021 12.2646 11 13 11L19 11C19.5523 11 20 10.5523 20 10C20 9.44772 19.5523 9.00001 19 9.00001L12.9384 9Z" fill="#8F9AA3"/>
<path d="M16 14C16.7354 14 17.1862 14.0021 17.5125 14.0461C17.799 14.0846 17.8468 14.1395 17.8526 14.146L17.8536 14.1471C17.8604 14.1531 17.9154 14.2016 17.954 14.4891C17.9979 14.8162 18 15.268 18 16.0043C18 16.7407 17.9979 17.1925 17.954 17.5196C17.9154 17.8071 17.8604 17.8556 17.8536 17.8616L17.8522 17.863C17.8442 17.8712 17.8181 17.8979 17.7034 17.9272C17.5612 17.9636 17.3416 17.9892 16.9698 18.0005C16.4178 18.0171 15.9838 18.4781 16.0005 19.0302C16.0171 19.5822 16.4781 20.0162 17.0302 19.9996C17.7921 19.9766 18.64 19.9045 19.2683 19.2753C19.7045 18.8385 19.8664 18.3054 19.9362 17.7857C20.0001 17.3095 20.0001 16.7211 20 16.066V15.9428C20.0001 15.2876 20.0001 14.6992 19.9362 14.223C19.8664 13.7033 19.7045 13.1702 19.2683 12.7334C18.8319 12.2964 18.299 12.1339 17.7794 12.0639C17.3036 11.9999 16.7157 11.9999 16.0617 12L16 12C15.4477 12 15 12.4477 15 13C15 13.5523 15.4477 14 16 14Z" fill="#8F9AA3"/>
<path d="M14 13C14 12.4477 13.5523 12 13 12C12.4477 12 12 12.4477 12 13V14.5C12 15.394 12.2542 16.2178 13.0565 16.6656C13.3946 16.8543 13.7549 16.928 14.0621 16.9627C14.3698 16.9975 14.6995 17 15 17C15 17.5523 15.4477 18 16 18C16.5523 18 17 17.5523 17 17C17 15.8954 16.1046 15 15 15C14.6924 15 14.468 14.9958 14.2866 14.9753C14.152 14.9601 14.0822 14.9397 14.051 14.9279C14.0333 14.8814 14 14.7576 14 14.5V13Z" fill="#8F9AA3"/>
<path d="M11 15.7692C11 15.217 10.5523 14.7692 10 14.7692C9.44772 14.7692 9.00001 15.217 9.00001 15.7692L9.00001 18.5385C9.00001 19.0908 9.44772 19.5385 10 19.5385C10.5523 19.5385 11 19.0908 11 18.5385L11 15.7692Z" fill="#8F9AA3"/>
<path d="M13 18C12.4477 18 12 18.4477 12 19C12 19.5523 12.4477 20 13 20H14C14.5523 20 15 19.5523 15 19C15 18.4477 14.5523 18 14 18H13Z" fill="#8F9AA3"/>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

@ -1959,12 +1959,14 @@
"refund": "استرداد",
"parkingQR": "رمز الاستجابة السريعة لوقوف السيارات",
"parkingQRDesc": "امسح رمز الاستجابة السريعة (QR Code) أدناه عند بوابة الخروج من موقف السيارات:",
"livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.",
"livecareUpdateInsurance": "سيتم تحويل طلب تحديث بيانات التأمين إلى فريق LiveCare المختص لاستكمال الإجراءات. هل تود المتابعة؟",
"schedule": "جدول",
"doctorSchedule": "جدول الطبيب",
"weeklyShift": "الفترات الأسبوعية",
"dayOff": "إجازة",
"notAvailable": "غير متاح",
"hide": "إخفاء"
"livecareUpdateInsuranceSent": "تم استلام طلب تحديث بيانات التأمين الخاص بك، ويجري العمل عليه حالياً. سنقوم بإشعارك فور اكتمال التحديث.",
"livecareUpdateInsurance": "سيتم تحويل طلب تحديث بيانات التأمين إلى فريق LiveCare المختص لاستكمال الإجراءات. هل تود المتابعة؟",
"schedule": "جدول",
"doctorSchedule": "جدول الطبيب",
"weeklyShift": "الفترات الأسبوعية",
"dayOff": "إجازة",
"notAvailable": "غير متاح",
"hide": "إخفاء",
"viewPatientQR": "عرض رمز الاستجابة السريعة للمريض",
"patientQR": "رمز الاستجابة السريعة للمريض"
}

@ -1949,14 +1949,16 @@
"invoiceHistory": "Invoice History",
"parkingQR": "Parking QR Code",
"parkingQRDesc": "Scan the below QR Code at the exit parking gate:",
"livecareUpdateInsuranceSent": "Your insurance update request is being processed. You will be notified once the update is completed.",
"livecareUpdateInsurance": "Please note that your insurance update request will be sent to the our LiveCare team for update. Would you like to proceed?",
"schedule": "Schedule",
"doctorSchedule": "Doctor Schedule",
"weeklyShift": "Weekly Shift",
"dayOff": "Off",
"notAvailable": "Not Available",
"hide": "Hide"
"livecareUpdateInsuranceSent": "Your insurance update request is being processed. You will be notified once the update is completed.",
"livecareUpdateInsurance": "Please note that your insurance update request will be sent to the our LiveCare team for update. Would you like to proceed?",
"schedule": "Schedule",
"doctorSchedule": "Doctor Schedule",
"weeklyShift": "Weekly Shift",
"dayOff": "Off",
"notAvailable": "Not Available",
"hide": "Hide",
"viewPatientQR": "View Patient QR Code",
"patientQR": "Patient QR Code"
}

@ -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

@ -399,6 +399,7 @@ class AppAssets {
static const String habibLogoOnly = '$svgBasePath/habib logo_only.svg';
static const String descriptionIcon = '$svgBasePath/description_icon.svg';
static const String selectImageIcon = '$svgBasePath/select_image_icon.svg';
static const String patientQRCodeIcon = '$svgBasePath/patient_qr_code_icon.svg';
// PNGS //
static const String hmgLogo = '$pngBasePath/hmg_logo.png';

@ -1948,5 +1948,7 @@ abstract class LocaleKeys {
static const weeklyShift = 'weeklyShift';
static const dayOff = 'dayOff';
static const hide = 'hide';
static const viewPatientQR = 'viewPatientQR';
static const patientQR = 'patientQR';
}

@ -67,7 +67,7 @@ class _BookAppointmentPageState extends State<BookAppointmentPage> {
immediateLiveCareViewModel.initImmediateLiveCare();
if (appState.isAuthenticated) {
getIt.get<MyAppointmentsViewModel>().getPatientMyDoctors(isTop8: true);
getIt.get<MyAppointmentsViewModel>().getPatientFavouriteDoctors();
// getIt.get<MyAppointmentsViewModel>().getPatientFavouriteDoctors();
}
});
WidgetsBinding.instance.addPostFrameCallback((_) {

@ -481,6 +481,9 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
expansionMode: ExpansionMode.exactlyOne,
dividerColor: AppColors.dividerColor,
itemPadding: EdgeInsets.symmetric(vertical: 16.h, horizontal: 14.h),
onItemToggled: (index, isExpanded) {
print("Item at index $index is now ${isExpanded ? 'expanded' : 'collapsed'}");
},
items: [
ExpandableListItem(
title: LocaleKeys.medicalServices.tr(context: context).toText18(isBold: true),

@ -42,6 +42,8 @@ import 'package:in_app_review/in_app_review.dart';
import 'dart:ui' as ui;
import 'widgets/patient_qr_code_widget.dart';
class ProfileSettings extends StatefulWidget {
const ProfileSettings({super.key});
@ -232,6 +234,17 @@ class ProfileSettingsState extends State<ProfileSettings> {
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.r, hasShadow: false),
child: Column(
children: [
actionItem(AppAssets.patientQRCodeIcon, LocaleKeys.viewPatientQR.tr(context: context), () {
showCommonBottomSheetWithoutHeight(
title: LocaleKeys.patientQR.tr(context: context),
context,
child: PatientQrCodeWidget(),
callBackFunc: () {},
isFullScreen: false,
isCloseButtonVisible: true,
);
}),
1.divider,
actionItem(AppAssets.language_change, LocaleKeys.language.tr(context: context), () {
showCommonBottomSheetWithoutHeight(context, title: LocaleKeys.language.tr(context: context), child: AppLanguageChange(), callBackFunc: () {}, isFullScreen: false);
}, trailingLabel: Utils.appState.isArabic() ? "العربية" : "English"),

@ -0,0 +1,56 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/dependencies.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';
import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart';
import 'package:hmg_patient_app_new/widgets/chip/app_custom_chip_widget.dart';
import '../../../generated/locale_keys.g.dart';
class PatientQrCodeWidget extends StatelessWidget {
PatientQrCodeWidget({super.key});
late AppState appState;
@override
Widget build(BuildContext context) {
appState = getIt.get<AppState>();
return Column(
children: [
SizedBox(height: 8.h),
"${appState.getAuthenticatedUser()!.firstName} ${appState.getAuthenticatedUser()!.lastName}".toText18(isBold: true, textOverflow: TextOverflow.ellipsis, maxlines: 2),
SizedBox(height: 8.h),
Wrap(
direction: Axis.horizontal,
spacing: 4.w,
runSpacing: 6.w,
children: [
AppCustomChipWidget(
icon: AppAssets.file_icon,
labelText: "${LocaleKeys.fileno.tr(context: context)}: ${appState.getAuthenticatedUser()!.patientId}",
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
),
AppCustomChipWidget(
icon: AppAssets.checkmark_icon,
labelText: LocaleKeys.verified.tr(context: context),
iconColor: AppColors.successColor,
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
),
],
),
SizedBox(height: 16.h),
Image.network(
"https://api.qrserver.com/v1/create-qr-code/?size=250x250&data=${appState.getAuthenticatedUser()!.patientId.toString()}",
fit: BoxFit.fill,
height: 156.h,
width: 156.h,
),
SizedBox(height: 16.h),
],
);
}
}
Loading…
Cancel
Save