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 ""; + } + } }