|
|
|
|
@ -197,6 +197,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
dialogService.showFamilyBottomSheetWithoutH(
|
|
|
|
|
label: LocaleKeys.familyTitle.tr(context: context),
|
|
|
|
|
message: "",
|
|
|
|
|
isShowManageButton: true,
|
|
|
|
|
onSwitchPress: (FamilyFileResponseModelLists profile) {
|
|
|
|
|
medicalFileViewModel.switchFamilyFiles(responseID: profile.responseId, patientID: profile.patientId, phoneNumber: profile.mobileNumber);
|
|
|
|
|
},
|
|
|
|
|
@ -246,14 +247,6 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
icon: AppAssets.file_icon,
|
|
|
|
|
labelText: "${LocaleKeys.fileno.tr(context: context)}: ${appState.getAuthenticatedUser()!.patientId}",
|
|
|
|
|
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
|
|
|
|
|
onChipTap: () {
|
|
|
|
|
navigationService.pushPage(
|
|
|
|
|
page: FamilyMedicalScreen(
|
|
|
|
|
profiles: medicalFileViewModel.patientFamilyFiles,
|
|
|
|
|
onSelect: (FamilyFileResponseModelLists p1) {},
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
AppCustomChipWidget(
|
|
|
|
|
icon: AppAssets.checkmark_icon,
|
|
|
|
|
@ -293,8 +286,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
iconColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor,
|
|
|
|
|
textColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor : AppColors.successColor,
|
|
|
|
|
iconSize: 12.w,
|
|
|
|
|
backgroundColor:
|
|
|
|
|
insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor.withOpacity(0.1) : AppColors.successColor.withOpacity(0.1),
|
|
|
|
|
backgroundColor: insuranceVM.isInsuranceExpired ? AppColors.primaryRedColor.withOpacity(0.1) : AppColors.successColor.withOpacity(0.1),
|
|
|
|
|
labelPadding: EdgeInsetsDirectional.only(start: -4.w, end: 6.w),
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
@ -447,8 +439,8 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
),
|
|
|
|
|
ExpandableListItem(
|
|
|
|
|
title: LocaleKeys.medicalReports.tr(context: context).toText18(
|
|
|
|
|
weight: FontWeight.w600,
|
|
|
|
|
),
|
|
|
|
|
weight: FontWeight.w600,
|
|
|
|
|
),
|
|
|
|
|
expandedBackgroundColor: Colors.transparent,
|
|
|
|
|
children: [
|
|
|
|
|
SizedBox(height: 10.h),
|
|
|
|
|
@ -609,8 +601,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
? Container(
|
|
|
|
|
padding: EdgeInsets.all(12.w),
|
|
|
|
|
width: MediaQuery.of(context).size.width,
|
|
|
|
|
decoration:
|
|
|
|
|
RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, hasShadow: false),
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, hasShadow: false),
|
|
|
|
|
child: Column(
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(icon: AppAssets.home_calendar_icon, width: 32.h, height: 32.h),
|
|
|
|
|
@ -678,8 +669,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
child: AskDoctorRequestTypeSelect(
|
|
|
|
|
askDoctorRequestTypeList: myAppointmentsViewModel.askDoctorRequestTypeList,
|
|
|
|
|
myAppointmentsViewModel: myAppointmentsViewModel,
|
|
|
|
|
patientAppointmentHistoryResponseModel:
|
|
|
|
|
myAppointmentsVM.patientAppointmentsHistoryList[index],
|
|
|
|
|
patientAppointmentHistoryResponseModel: myAppointmentsVM.patientAppointmentsHistoryList[index],
|
|
|
|
|
),
|
|
|
|
|
callBackFunc: () {},
|
|
|
|
|
isFullScreen: false,
|
|
|
|
|
@ -757,8 +747,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
child: Column(
|
|
|
|
|
children: [
|
|
|
|
|
ListView.separated(
|
|
|
|
|
itemCount:
|
|
|
|
|
prescriptionVM.patientPrescriptionOrders.length <= 2 ? prescriptionVM.patientPrescriptionOrders.length : 2,
|
|
|
|
|
itemCount: prescriptionVM.patientPrescriptionOrders.length <= 2 ? prescriptionVM.patientPrescriptionOrders.length : 2,
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
padding: EdgeInsets.only(left: 0, right: 8.w),
|
|
|
|
|
physics: NeverScrollableScrollPhysics(),
|
|
|
|
|
@ -789,13 +778,11 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
spacing: 3.w,
|
|
|
|
|
runSpacing: 4.w,
|
|
|
|
|
children: [
|
|
|
|
|
AppCustomChipWidget(
|
|
|
|
|
labelText: prescriptionVM.patientPrescriptionOrders[index].clinicDescription!),
|
|
|
|
|
AppCustomChipWidget(labelText: prescriptionVM.patientPrescriptionOrders[index].clinicDescription!),
|
|
|
|
|
AppCustomChipWidget(
|
|
|
|
|
icon: AppAssets.doctor_calendar_icon,
|
|
|
|
|
labelText: DateUtil.formatDateToDate(
|
|
|
|
|
DateUtil.convertStringToDate(
|
|
|
|
|
prescriptionVM.patientPrescriptionOrders[index].appointmentDate),
|
|
|
|
|
DateUtil.convertStringToDate(prescriptionVM.patientPrescriptionOrders[index].appointmentDate),
|
|
|
|
|
false,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
@ -808,19 +795,13 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
Transform.flip(
|
|
|
|
|
flipX: appState.isArabic(),
|
|
|
|
|
child: Utils.buildSvgWithAssets(
|
|
|
|
|
icon: AppAssets.forward_arrow_icon_small,
|
|
|
|
|
width: 15.w,
|
|
|
|
|
height: 15.h,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
iconColor: AppColors.textColor)),
|
|
|
|
|
icon: AppAssets.forward_arrow_icon_small, width: 15.w, height: 15.h, fit: BoxFit.contain, iconColor: AppColors.textColor)),
|
|
|
|
|
],
|
|
|
|
|
).onPress(() {
|
|
|
|
|
prescriptionVM.setPrescriptionsDetailsLoading();
|
|
|
|
|
Navigator.of(context).push(
|
|
|
|
|
CustomPageRoute(
|
|
|
|
|
page: PrescriptionDetailPage(
|
|
|
|
|
isFromAppointments: false,
|
|
|
|
|
prescriptionsResponseModel: prescriptionVM.patientPrescriptionOrders[index]),
|
|
|
|
|
page: PrescriptionDetailPage(isFromAppointments: false, prescriptionsResponseModel: prescriptionVM.patientPrescriptionOrders[index]),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
@ -929,10 +910,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
fit: BoxFit.cover,
|
|
|
|
|
).circle(100).toShimmer2(isShow: true, radius: 50.r),
|
|
|
|
|
SizedBox(height: 8.h),
|
|
|
|
|
("Dr. John Smith Smith Smith")
|
|
|
|
|
.toString()
|
|
|
|
|
.toText12(fontWeight: FontWeight.w500, isCenter: true, maxLine: 2)
|
|
|
|
|
.toShimmer2(isShow: true),
|
|
|
|
|
("Dr. John Smith Smith Smith").toString().toText12(fontWeight: FontWeight.w500, isCenter: true, maxLine: 2).toShimmer2(isShow: true),
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
: myAppointmentsVM.patientMyDoctorsList.isEmpty
|
|
|
|
|
@ -1119,14 +1097,9 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
text: "${LocaleKeys.updateInsurance.tr(context: context)} ${LocaleKeys.updateInsuranceSubtitle.tr(context: context)}",
|
|
|
|
|
onPressed: () {
|
|
|
|
|
insuranceViewModel.setIsInsuranceUpdateDetailsLoading(true);
|
|
|
|
|
insuranceViewModel.getPatientInsuranceDetailsForUpdate(appState.getAuthenticatedUser()!.patientId.toString(),
|
|
|
|
|
appState.getAuthenticatedUser()!.patientIdentificationNo.toString());
|
|
|
|
|
showCommonBottomSheetWithoutHeight(context,
|
|
|
|
|
child: PatientInsuranceCardUpdateCard(),
|
|
|
|
|
callBackFunc: () {},
|
|
|
|
|
title: "",
|
|
|
|
|
isCloseButtonVisible: false,
|
|
|
|
|
isFullScreen: false);
|
|
|
|
|
insuranceViewModel.getPatientInsuranceDetailsForUpdate(
|
|
|
|
|
appState.getAuthenticatedUser()!.patientId.toString(), appState.getAuthenticatedUser()!.patientIdentificationNo.toString());
|
|
|
|
|
showCommonBottomSheetWithoutHeight(context, child: PatientInsuranceCardUpdateCard(), callBackFunc: () {}, title: "", isCloseButtonVisible: false, isFullScreen: false);
|
|
|
|
|
},
|
|
|
|
|
backgroundColor: AppColors.bgGreenColor.withOpacity(0.20),
|
|
|
|
|
borderColor: AppColors.bgGreenColor.withOpacity(0.0),
|
|
|
|
|
@ -1479,7 +1452,7 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
return [
|
|
|
|
|
// Page 1: BMI + Height
|
|
|
|
|
Padding(
|
|
|
|
|
padding: EdgeInsets.only(left: 24.w),
|
|
|
|
|
padding: EdgeInsets.only(left: 24.w),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
@ -1507,37 +1480,36 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
// Page 2: Weight + Blood Pressure
|
|
|
|
|
Padding(padding: EdgeInsets.symmetric(horizontal: 12.w),child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: _buildVitalSignCard(
|
|
|
|
|
icon: AppAssets.weightVital,
|
|
|
|
|
label: LocaleKeys.weight.tr(context: context),
|
|
|
|
|
value: vitalSign.weightKg?.toString() ?? '--',
|
|
|
|
|
unit: 'kg',
|
|
|
|
|
status: vitalSign.weightKg != null ? "Normal" : null,
|
|
|
|
|
onTap: onTap,
|
|
|
|
|
Padding(
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 12.w),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: _buildVitalSignCard(
|
|
|
|
|
icon: AppAssets.weightVital,
|
|
|
|
|
label: LocaleKeys.weight.tr(context: context),
|
|
|
|
|
value: vitalSign.weightKg?.toString() ?? '--',
|
|
|
|
|
unit: 'kg',
|
|
|
|
|
status: vitalSign.weightKg != null ? "Normal" : null,
|
|
|
|
|
onTap: onTap,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 12.w),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: _buildVitalSignCard(
|
|
|
|
|
icon: AppAssets.bloodPressure,
|
|
|
|
|
label: LocaleKeys.bloodPressure.tr(context: context),
|
|
|
|
|
value: vitalSign.bloodPressureLower != null && vitalSign.bloodPressureHigher != null
|
|
|
|
|
? "${vitalSign.bloodPressureHigher}/${vitalSign.bloodPressureLower}"
|
|
|
|
|
: '--',
|
|
|
|
|
unit: '',
|
|
|
|
|
status: _getBloodPressureStatus(
|
|
|
|
|
systolic: vitalSign.bloodPressureHigher,
|
|
|
|
|
diastolic: vitalSign.bloodPressureLower,
|
|
|
|
|
SizedBox(width: 12.w),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: _buildVitalSignCard(
|
|
|
|
|
icon: AppAssets.bloodPressure,
|
|
|
|
|
label: LocaleKeys.bloodPressure.tr(context: context),
|
|
|
|
|
value: vitalSign.bloodPressureLower != null && vitalSign.bloodPressureHigher != null ? "${vitalSign.bloodPressureHigher}/${vitalSign.bloodPressureLower}" : '--',
|
|
|
|
|
unit: '',
|
|
|
|
|
status: _getBloodPressureStatus(
|
|
|
|
|
systolic: vitalSign.bloodPressureHigher,
|
|
|
|
|
diastolic: vitalSign.bloodPressureLower,
|
|
|
|
|
),
|
|
|
|
|
onTap: onTap,
|
|
|
|
|
),
|
|
|
|
|
onTap: onTap,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
)),
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
)),
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1636,14 +1608,12 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
|
|
|
|
|
backgroundColor: scheme.chipBg,
|
|
|
|
|
textColor: scheme.chipFg,
|
|
|
|
|
),
|
|
|
|
|
]
|
|
|
|
|
else
|
|
|
|
|
] else
|
|
|
|
|
AppCustomChipWidget(
|
|
|
|
|
labelText: "",
|
|
|
|
|
backgroundColor: AppColors.bgScaffoldColor,
|
|
|
|
|
textColor:null,
|
|
|
|
|
textColor: null,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
|