diff --git a/assets/images/svg/view_report_icon.svg b/assets/images/svg/view_report_icon.svg
new file mode 100644
index 0000000..0f7d866
--- /dev/null
+++ b/assets/images/svg/view_report_icon.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index 99867f1..304dba1 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -778,5 +778,7 @@
"aboutApp": "حول التطبيق",
"dontHaveAccount": "ليس لديك حساب؟",
"loginOrRegister": "تسجيل الدخول أو التسجيل",
- "myFiles" : "ملفاتي"
+ "myFiles" : "ملفاتي",
+ "resultsPending": "النتائج معلقة",
+ "resultsAvailable": "النتائج متاحة"
}
\ No newline at end of file
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 3ab5259..e369613 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -774,5 +774,7 @@
"termsConditions": "These Online Services Terms of Use (Service Terms) govern certain online services provided by Dr Sulaiman Al Habib Medical Services Group Company (HMG, we, us, our)...",
"dontHaveAccount": "Don't have an account?",
"loginOrRegister": "Login or Register",
- "myFiles": "My Files"
+ "myFiles": "My Files",
+ "resultsPending": "Results Pending",
+ "resultsAvailable": "Results Available"
}
\ No newline at end of file
diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart
index e24968a..53adac7 100644
--- a/lib/core/app_assets.dart
+++ b/lib/core/app_assets.dart
@@ -61,6 +61,7 @@ class AppAssets {
static const String recharge_icon = '$svgBasePath/recharge_icon.svg';
static const String eye_result_icon = '$svgBasePath/eye_results_icon.svg';
static const String search_icon = '$svgBasePath/search_icon.svg';
+ static const String view_report_icon = '$svgBasePath/view_report_icon.svg';
//bottom navigation//
diff --git a/lib/features/lab/lab_repo.dart b/lib/features/lab/lab_repo.dart
index 6d2711c..326379c 100644
--- a/lib/features/lab/lab_repo.dart
+++ b/lib/features/lab/lab_repo.dart
@@ -31,7 +31,7 @@ class LabRepoImp implements LabRepo {
"PatientType": 1,
"PatientTypeID": 1,
"TokenID": "@dm!n",
- "PatientID": "2663907",
+ "PatientID": "1018977",
"PatientOutSA": "0",
"SessionID": "03478TYC02N80874CTYN04883475!?"
};
@@ -52,7 +52,6 @@ class LabRepoImp implements LabRepo {
throw Exception("lab list is empty");
}
- // final labOrders = list.map((item) => PatientLabOrdersResponseModel.fromJson(item as Map)).toList();
final labOrders = list
.map((item) => PatientLabOrdersResponseModel.fromJson(item as Map))
.toList()
diff --git a/lib/features/lab/models/resp_models/patient_lab_orders_response_model.dart b/lib/features/lab/models/resp_models/patient_lab_orders_response_model.dart
index 8f6dc4f..11bf573 100644
--- a/lib/features/lab/models/resp_models/patient_lab_orders_response_model.dart
+++ b/lib/features/lab/models/resp_models/patient_lab_orders_response_model.dart
@@ -45,7 +45,7 @@ class PatientLabOrdersResponseModel {
dynamic? projectNameN;
String? qR;
String? setupID;
- List? speciality;
+ // List? speciality;
int? status;
String? statusDesc;
String? strOrderDate;
@@ -98,7 +98,7 @@ class PatientLabOrdersResponseModel {
this.projectNameN,
this.qR,
this.setupID,
- this.speciality,
+ // this.speciality,
this.status,
this.statusDesc,
this.strOrderDate,
@@ -151,7 +151,7 @@ class PatientLabOrdersResponseModel {
projectNameN = json['ProjectNameN'];
qR = json['QR'];
setupID = json['SetupID'];
- speciality = json['Speciality'].cast();
+ // speciality = json['Speciality'].cast();
status = json['Status'];
statusDesc = json['StatusDesc'];
strOrderDate = json['StrOrderDate'];
@@ -211,7 +211,7 @@ class PatientLabOrdersResponseModel {
data['ProjectNameN'] = this.projectNameN;
data['QR'] = this.qR;
data['SetupID'] = this.setupID;
- data['Speciality'] = this.speciality;
+ // data['Speciality'] = this.speciality;
data['Status'] = this.status;
data['StatusDesc'] = this.statusDesc;
data['StrOrderDate'] = this.strOrderDate;
diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart
index 72832b1..a1082b3 100644
--- a/lib/generated/locale_keys.g.dart
+++ b/lib/generated/locale_keys.g.dart
@@ -777,5 +777,7 @@ abstract class LocaleKeys {
static const dontHaveAccount = 'dontHaveAccount';
static const loginOrRegister = 'loginOrRegister';
static const myFiles = 'myFiles';
+ static const resultsPending = 'resultsPending';
+ static const resultsAvailable = 'resultsAvailable';
}
diff --git a/lib/presentation/lab/lab_orders_page.dart b/lib/presentation/lab/lab_orders_page.dart
index 7854ee8..a60f3cf 100644
--- a/lib/presentation/lab/lab_orders_page.dart
+++ b/lib/presentation/lab/lab_orders_page.dart
@@ -98,6 +98,7 @@ class _LabOrdersPageState extends State {
});
},
child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.all(16.h),
@@ -108,7 +109,7 @@ class _LabOrdersPageState extends State {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
CustomButton(
- text: LocaleKeys.pending.tr(context: context),
+ text: getLabOrderStatusText(model.patientLabOrders[index].status!),
onPressed: () {},
backgroundColor: getLabOrderStatusColor(model.patientLabOrders[index].status!).withOpacity(0.15),
borderColor: getLabOrderStatusColor(model.patientLabOrders[index].status!).withOpacity(0.01),
@@ -172,7 +173,39 @@ class _LabOrdersPageState extends State {
firstChild: SizedBox.shrink(),
secondChild: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.h, vertical: 8.h),
- child: Text('Details for ${model.patientLabOrders[index].clinicDescription}'),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ ...model.patientLabOrders[index].testDetails!.map((detail) {
+ return Padding(
+ padding: EdgeInsets.only(bottom: 8.h),
+ child: '● ${detail.description}'.toText14(weight: FontWeight.w500),
+ );
+ }).toList(),
+ SizedBox(height: 16.h),
+ Row(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ SizedBox(),
+ CustomButton(
+ icon: AppAssets.view_report_icon,
+ iconColor: AppColors.primaryRedColor,
+ iconSize: 16.h,
+ text: "View Report",
+ onPressed: () {},
+ backgroundColor: AppColors.secondaryLightRedColor,
+ borderColor: AppColors.secondaryLightRedColor,
+ textColor: AppColors.primaryRedColor,
+ fontSize: 14,
+ fontWeight: FontWeight.bold,
+ borderRadius: 12,
+ padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
+ height: 40.h,
+ ),
+ ],
+ ),
+ ],
+ ),
),
crossFadeState: isExpanded ? CrossFadeState.showSecond : CrossFadeState.showFirst,
duration: Duration(milliseconds: 300),
@@ -209,4 +242,19 @@ class _LabOrdersPageState extends State {
return AppColors.greyColor;
}
}
+
+ String getLabOrderStatusText(num status) {
+ switch (status) {
+ case 44:
+ return LocaleKeys.resultsPending.tr(context: context);
+ case 45:
+ return LocaleKeys.resultsPending.tr(context: context);
+ case 16:
+ return LocaleKeys.resultsAvailable.tr(context: context);
+ case 17:
+ return LocaleKeys.resultsAvailable.tr(context: context);
+ default:
+ return "";
+ }
+ }
}