diff --git a/assets/fonts/sar-Regular.otf b/assets/fonts/sar-Regular.otf
new file mode 100644
index 00000000..e906f654
Binary files /dev/null and b/assets/fonts/sar-Regular.otf differ
diff --git a/assets/fonts/saudi_riyal.eot b/assets/fonts/saudi_riyal.eot
new file mode 100644
index 00000000..f85e9aa1
Binary files /dev/null and b/assets/fonts/saudi_riyal.eot differ
diff --git a/assets/fonts/saudi_riyal.ttf b/assets/fonts/saudi_riyal.ttf
new file mode 100644
index 00000000..a0f1b762
Binary files /dev/null and b/assets/fonts/saudi_riyal.ttf differ
diff --git a/assets/fonts/saudi_riyal.woff b/assets/fonts/saudi_riyal.woff
new file mode 100644
index 00000000..7d733e98
Binary files /dev/null and b/assets/fonts/saudi_riyal.woff differ
diff --git a/assets/fonts/saudi_riyal.woff2 b/assets/fonts/saudi_riyal.woff2
new file mode 100644
index 00000000..f8072477
Binary files /dev/null and b/assets/fonts/saudi_riyal.woff2 differ
diff --git a/assets/images/new/Indoor_nav_appo.svg b/assets/images/new/Indoor_nav_appo.svg
new file mode 100644
index 00000000..81bf654d
--- /dev/null
+++ b/assets/images/new/Indoor_nav_appo.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/images/new/NFC_Hold.svg b/assets/images/new/NFC_Hold.svg
new file mode 100644
index 00000000..fbfa19ea
--- /dev/null
+++ b/assets/images/new/NFC_Hold.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/new/Saudi_Riyal_Symbol.svg b/assets/images/new/Saudi_Riyal_Symbol.svg
new file mode 100644
index 00000000..d57d83a1
--- /dev/null
+++ b/assets/images/new/Saudi_Riyal_Symbol.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/assets/images/new/download_1.svg b/assets/images/new/download_1.svg
new file mode 100644
index 00000000..6bf54066
--- /dev/null
+++ b/assets/images/new/download_1.svg
@@ -0,0 +1,5 @@
+
diff --git a/assets/images/new/hourglass.svg b/assets/images/new/hourglass.svg
new file mode 100644
index 00000000..564ff289
--- /dev/null
+++ b/assets/images/new/hourglass.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/new/indoor_nav_home.svg b/assets/images/new/indoor_nav_home.svg
new file mode 100644
index 00000000..bfe32eec
--- /dev/null
+++ b/assets/images/new/indoor_nav_home.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/images/new/tap.svg b/assets/images/new/tap.svg
new file mode 100644
index 00000000..cf73ddde
--- /dev/null
+++ b/assets/images/new/tap.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/new/waitingAppo.svg b/assets/images/new/waitingAppo.svg
new file mode 100644
index 00000000..c9bd0096
--- /dev/null
+++ b/assets/images/new/waitingAppo.svg
@@ -0,0 +1,6 @@
+
diff --git a/lib/config/config.dart b/lib/config/config.dart
index 04f86877..3c272d82 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -102,6 +102,7 @@ var GET_Patient_LAB_ORDERS_RESULT = 'Services/Patients.svc/REST/GetPatientLabOrd
var SEND_COVID_LAB_RESULT_EMAIL = 'Services/Notifications.svc/REST/GenerateCOVIDReport';
var COVID_PASSPORT_UPDATE = 'Services/Patients.svc/REST/Covid19_Certificate_PassportUpdate';
var GET_PATIENT_PASSPORT_NUMBER = 'Services/Patients.svc/REST/Covid19_Certificate_GetPassport';
+var SEND_LAB_RESULT_EMAIL_NEW = 'ReportsAPI/api/reports/labReport';
var UPDATE_WORKPLACE_NAME = 'Services/Patients.svc/REST/ActivateSickLeave_FromVida';
var GET_SICKLEAVE_STATUS_ADMISSION_NO = 'Services/ChatBot_Service.svc/REST/GetSickLeaveStatusByAdmissionNo';
@@ -352,7 +353,7 @@ var CAN_PAY_FOR_FOR_WALKIN_APPOINTMENT = 'Services/Doctors.svc/REST/CanPayForWal
var CHANNEL = 3;
var GENERAL_ID = 'Cs2020@2016\$2958';
var IP_ADDRESS = '10.20.10.20';
-var VERSION_ID = 17.4;
+var VERSION_ID = 17.6;
var SETUP_ID = '91877';
var LANGUAGE = 2;
// var PATIENT_OUT_SA = 0;
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index 7bfb0397..8dd0eb47 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -586,6 +586,7 @@ const Map localizedValues = {
"items": {"en": "item(s)", "ar": "عنصر"},
"checkOut": {"en": "CHECK OUT", "ar": "الدفع"},
"sar": {"en": "SAR", "ar": " ر.س "},
+ // "sar": {"en": "", "ar": " "},
"aed": {"en": "AED", "ar": "درهم"},
"payOnline": {"en": "PAY ONLINE", "ar": "اتمام عملية الدفع "},
"cancelOrder": {"en": "CANCEL ORDER", "ar": "الغاء الطلب "},
diff --git a/lib/core/service/client/base_app_client.dart b/lib/core/service/client/base_app_client.dart
index 8faf93bd..9097d2fd 100644
--- a/lib/core/service/client/base_app_client.dart
+++ b/lib/core/service/client/base_app_client.dart
@@ -187,7 +187,7 @@ class BaseAppClient {
// body['IdentificationNo'] = 1023854217;
// body['MobileNo'] = "531940021"; //0560717232
- // body['PatientID'] = 5185584; //4609100
+ // body['PatientID'] = 4769527; //4609100
// body['TokenID'] = "@dm!n";
// Patient ID: 3027574
diff --git a/lib/core/service/medical/labs_service.dart b/lib/core/service/medical/labs_service.dart
index c03b29f4..9b3904be 100644
--- a/lib/core/service/medical/labs_service.dart
+++ b/lib/core/service/medical/labs_service.dart
@@ -125,7 +125,7 @@ class LabsService extends BaseService {
}
Future updateWorkplaceName(String workplaceName, String workplaceNameAR, String occupation, String occupationAR, int requestNumber, String setupID, int projectID) async {
- // Future updateWorkplaceName(String workplaceName, String workplaceNameAR, int requestNumber, String setupID, int projectID) async {
+ // Future updateWorkplaceName(String workplaceName, String workplaceNameAR, int requestNumber, String setupID, int projectID) async {
hasError = false;
Map body = Map();
@@ -209,7 +209,7 @@ class LabsService extends BaseService {
RequestSendLabReportEmail _requestSendLabReportEmail = RequestSendLabReportEmail();
- Future sendLabReportEmail({PatientLabOrders? patientLabOrder, AuthenticatedUser? userObj, bool isVidaPlus = false, bool isDownload = false}) async {
+ Future sendLabReportEmail({PatientLabOrders? patientLabOrder, AuthenticatedUser? userObj, bool isVidaPlus = false, bool isDownload = false, int languageID = 1}) async {
_requestSendLabReportEmail.projectID = patientLabOrder!.projectID;
_requestSendLabReportEmail.invoiceNo = isVidaPlus ? "0" : patientLabOrder.invoiceNo;
_requestSendLabReportEmail.invoiceNoVP = isVidaPlus ? patientLabOrder.invoiceNo : "0";
@@ -228,11 +228,12 @@ class LabsService extends BaseService {
_requestSendLabReportEmail.orderNo = patientLabOrder.orderNo;
_requestSendLabReportEmail.isDownload = isDownload;
_requestSendLabReportEmail.doctorID = patientLabOrder.doctorID;
- _requestSendLabReportEmail.languageID = 1;
+ _requestSendLabReportEmail.languageID = languageID;
- await baseAppClient.post(SEND_LAB_RESULT_EMAIL, onSuccess: (dynamic response, int statusCode) {
+ // await baseAppClient.post(SEND_LAB_RESULT_EMAIL, onSuccess: (dynamic response, int statusCode) {
+ await baseAppClient.post(SEND_LAB_RESULT_EMAIL_NEW, onSuccess: (dynamic response, int statusCode) {
if (isDownload) {
- labReportPDF = response['LabReportsPDFContent'];
+ labReportPDF = response['PdfContent'];
}
}, onFailure: (String error, int statusCode) {
hasError = true;
diff --git a/lib/core/viewModels/medical/labs_view_model.dart b/lib/core/viewModels/medical/labs_view_model.dart
index fa67438d..ea45a312 100644
--- a/lib/core/viewModels/medical/labs_view_model.dart
+++ b/lib/core/viewModels/medical/labs_view_model.dart
@@ -1,3 +1,7 @@
+import 'dart:convert';
+import 'dart:io';
+import 'dart:typed_data';
+
import 'package:diplomaticquarterapp/core/enum/filter_type.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/labs/LabOrderResult.dart';
@@ -9,6 +13,8 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/widgets/charts/app_time_series_chart.dart';
+import 'package:open_filex/open_filex.dart';
+import 'package:path_provider/path_provider.dart';
import '../../../locator.dart';
import '../base_view_model.dart';
@@ -76,13 +82,7 @@ class LabsViewModel extends BaseViewModel {
getLaboratoryResult({String? projectID, int? clinicID, String? invoiceNo, String? invoiceType, String? orderNo, String? setupID, bool? isVidaPlus}) async {
setState(ViewState.Busy);
- await _labsService.getLaboratoryResult(invoiceNo: invoiceNo,
- invoiceType: invoiceType,
- orderNo: orderNo,
- projectID: projectID,
- clinicID: clinicID,
- setupID: setupID,
- isVidaPlus: isVidaPlus);
+ await _labsService.getLaboratoryResult(invoiceNo: invoiceNo, invoiceType: invoiceType, orderNo: orderNo, projectID: projectID, clinicID: clinicID, setupID: setupID, isVidaPlus: isVidaPlus);
if (_labsService.hasError) {
error = _labsService.error!;
setState(ViewState.Error);
@@ -109,7 +109,7 @@ class LabsViewModel extends BaseViewModel {
// })
// .toList();
// if (value.isEmpty)
- labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])].patientLabResultList!.add(element);
+ labResultLists[labResultLists.indexOf(patientLabOrdersClinic[0])].patientLabResultList!.add(element);
} else {
labResultLists.add(LabResultList(filterName: element.testCode, lab: element));
}
@@ -150,15 +150,31 @@ class LabsViewModel extends BaseViewModel {
}
}
- sendLabReportEmail({PatientLabOrders? patientLabOrder, String? mes, AuthenticatedUser? userObj, required bool isVidaPlus, bool isDownload = false}) async {
- await _labsService.sendLabReportEmail(patientLabOrder: patientLabOrder, userObj: userObj, isVidaPlus: isVidaPlus, isDownload: isDownload);
+ sendLabReportEmail({PatientLabOrders? patientLabOrder, String? mes, AuthenticatedUser? userObj, required bool isVidaPlus, bool isDownload = false, int languageID = 1}) async {
+ await _labsService.sendLabReportEmail(patientLabOrder: patientLabOrder, userObj: userObj, isVidaPlus: isVidaPlus, isDownload: isDownload, languageID: languageID);
if (_labsService.hasError) {
error = _labsService.error!;
} else {
if (isDownload) {
+ if (labReportPDF.isNotEmpty) {
+ String path = await _createFileFromString(labReportPDF, "pdf");
+ try {
+ OpenFilex.open(path);
+ } catch (ex) {
+ AppToast.showErrorToast(message: "Cannot open file.");
+ }
+ }
} else {
AppToast.showSuccessToast(message: mes!);
}
}
}
+
+ Future _createFileFromString(String encodedStr, String ext) async {
+ Uint8List bytes = base64.decode(encodedStr);
+ String dir = (await getApplicationDocumentsDirectory()).path;
+ File file = File("$dir/" + DateTime.now().millisecondsSinceEpoch.toString() + "." + ext);
+ await file.writeAsBytes(bytes);
+ return file.path;
+ }
}
diff --git a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart
index 33a7cbd6..02f8ebe7 100644
--- a/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart
+++ b/lib/pages/AlHabibMedicalService/ancillary-orders/ancillaryOrdersDetails.dart
@@ -30,6 +30,7 @@ import 'package:diplomaticquarterapp/widgets/dragable_sheet.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class AnicllaryOrdersDetails extends StatefulWidget {
@@ -151,7 +152,8 @@ class _AnicllaryOrdersState extends State with SingleTic
width: MediaQuery.of(context).size.width * 0.75,
child: getPaymentMethods(),
),
- _amountView(TranslationBase.of(context).patientShareTotalToDo, getTotalValue() + " " + TranslationBase.of(context).sar, isBold: true, isTotal: true),
+ _amountView(TranslationBase.of(context).patientShareTotalToDo, getTotalValue(), isBold: true, isTotal: true),
+ // _amountView(TranslationBase.of(context).patientShareTotalToDo, getTotalValue(), isBold: true, isTotal: true),
SizedBox(height: 12),
DefaultButton(
TranslationBase.of(context).payNow.toUpperCase(),
@@ -177,15 +179,14 @@ class _AnicllaryOrdersState extends State with SingleTic
return Text(
text,
style: TextStyle(
- fontSize: isBold
- ? isTotal
- ? 16
- : 12
- : 11,
- letterSpacing: -0.5,
- color: isBold ? Color(0xff2E303A) : Color(0xff575757),
- fontWeight: isTotal ? FontWeight.bold : FontWeight.w600,
- ),
+ fontSize: isBold
+ ? isTotal
+ ? 16
+ : 12
+ : 11,
+ letterSpacing: -0.5,
+ color: isBold ? Color(0xff2E303A) : Color(0xff575757),
+ fontWeight: isTotal ? FontWeight.bold : FontWeight.w600),
);
}
@@ -197,7 +198,13 @@ class _AnicllaryOrdersState extends State with SingleTic
child: _getNormalText(title),
),
Expanded(
- child: _getNormalText(value, isBold: isBold, isTotal: isTotal),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ _getNormalText(value, isBold: isBold, isTotal: isTotal),
+ ],
+ ),
),
]),
);
@@ -572,9 +579,9 @@ class _AnicllaryOrdersState extends State with SingleTic
});
}),
Utils.tableColumnValue('${value.procedureName}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
- Utils.tableColumnValue('${value.patientShare.toString() + " " + TranslationBase.of(context).sar.toUpperCase()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
- Utils.tableColumnValue('${value.patientTaxAmount.toString() + " " + TranslationBase.of(context).sar.toUpperCase()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
- Utils.tableColumnValue('${value.patientShareWithTax.toString() + " " + TranslationBase.of(context).sar.toUpperCase()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
+ Utils.tableColumnValue('${value.patientShare.toString()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
+ Utils.tableColumnValue('${value.patientTaxAmount.toString()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
+ Utils.tableColumnValue('${value.patientShareWithTax.toString()}', isLast: true, isCapitable: false, mProjectViewModel: projectViewModel),
]),
);
return tableRow;
@@ -660,27 +667,27 @@ class _AnicllaryOrdersState extends State with SingleTic
service.applePayInsertRequest(applePayInsertRequest, context).then((res) async {
if (res["MessageStatus"] == 1) {
await context.read().initiateApplePayWithPayfort(
- customerName: projectViewModel.user.firstName! + " " + projectViewModel.user.lastName!,
- // customerEmail: projectViewModel.authenticatedUserObject.user.emailAddress,
- customerEmail: "CustID_${projectViewModel.user.patientID}@HMG.com",
- orderDescription: "Ancillary Order Payment",
- orderAmount: double.parse(getTotalValue()),
- merchantReference: transID,
- payfortProjectDetailsRespModel: payfortProjectDetailsRespModel,
- currency: projectViewModel.user.outSA == 1 ? "AED" : "SAR",
- onFailed: (failureResult) async {
- GifLoaderDialogUtils.hideDialog(context);
- log("failureResult: ${failureResult.message.toString()}");
- AppToast.showErrorToast(message: failureResult.message.toString());
- },
- onSuccess: (successResult) async {
- log("Payfort: ${successResult.responseMessage}");
- await context.read().addPayfortApplePayResponse(projectViewModel.user.patientID!, result: successResult);
- checkPaymentStatus(AppoitmentAllHistoryResultList());
- },
- projectId: widget.projectID,
- serviceTypeEnum: ServiceTypeEnum.ancillaryOrder,
- );
+ customerName: projectViewModel.user.firstName! + " " + projectViewModel.user.lastName!,
+ // customerEmail: projectViewModel.authenticatedUserObject.user.emailAddress,
+ customerEmail: "CustID_${projectViewModel.user.patientID}@HMG.com",
+ orderDescription: "Ancillary Order Payment",
+ orderAmount: double.parse(getTotalValue()),
+ merchantReference: transID,
+ payfortProjectDetailsRespModel: payfortProjectDetailsRespModel,
+ currency: projectViewModel.user.outSA == 1 ? "AED" : "SAR",
+ onFailed: (failureResult) async {
+ GifLoaderDialogUtils.hideDialog(context);
+ log("failureResult: ${failureResult.message.toString()}");
+ AppToast.showErrorToast(message: failureResult.message.toString());
+ },
+ onSuccess: (successResult) async {
+ log("Payfort: ${successResult.responseMessage}");
+ await context.read().addPayfortApplePayResponse(projectViewModel.user.patientID!, result: successResult);
+ checkPaymentStatus(AppoitmentAllHistoryResultList());
+ },
+ projectId: widget.projectID,
+ serviceTypeEnum: ServiceTypeEnum.ancillaryOrder,
+ );
} else {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: "An error occurred while processing your request");
diff --git a/lib/pages/BookAppointment/BookSuccess.dart b/lib/pages/BookAppointment/BookSuccess.dart
index f4df725b..6bdc612c 100644
--- a/lib/pages/BookAppointment/BookSuccess.dart
+++ b/lib/pages/BookAppointment/BookSuccess.dart
@@ -31,6 +31,7 @@ import 'package:diplomaticquarterapp/widgets/new_design/doctor_header.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import '../../config/shared_pref_kay.dart';
@@ -41,6 +42,7 @@ class BookSuccess extends StatefulWidget {
DoctorList docObject;
late MyInAppBrowser browser;
+
// final ChromeSafariBrowser chromeBrowser = new MyChromeSafariBrowser(new MyInAppBrowser());
String appoDateFormatted;
@@ -123,8 +125,8 @@ class _BookSuccessState extends State {
),
TableRow(
children: [
- TableCell(child: _getHeadingText("SR " + widget.patientShareResponse.patientShare.toString())),
- TableCell(child: _getHeadingText("SR " + widget.patientShareResponse.patientShareWithTax.toString())),
+ TableCell(child: _getHeadingText(widget.patientShareResponse.patientShare.toString())),
+ TableCell(child: _getHeadingText(widget.patientShareResponse.patientShareWithTax.toString())),
],
),
],
@@ -1094,15 +1096,21 @@ class _BookSuccessState extends State {
_getHeadingText(text) {
return Container(
padding: EdgeInsets.only(bottom: 10.0, left: 20, right: 20),
- child: Text(
- text,
- textAlign: TextAlign.start,
- style: TextStyle(
- fontSize: 16.0,
- letterSpacing: -0.64,
- color: Colors.white,
- fontWeight: FontWeight.w600,
- ),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16, color: Colors.white),
+ mWidth(6),
+ Text(
+ text,
+ textAlign: TextAlign.start,
+ style: TextStyle(
+ fontSize: 16.0,
+ letterSpacing: -0.64,
+ color: Colors.white,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
),
);
}
diff --git a/lib/pages/DrawerPages/family/my-family.dart b/lib/pages/DrawerPages/family/my-family.dart
index d2c6c383..fa256d11 100644
--- a/lib/pages/DrawerPages/family/my-family.dart
+++ b/lib/pages/DrawerPages/family/my-family.dart
@@ -14,6 +14,8 @@ import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart' as list;
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_info_response_model.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_request_info_response_model.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart';
import 'package:diplomaticquarterapp/routes.dart';
@@ -467,6 +469,42 @@ class _MyFamily extends State with TickerProviderStateMixin {
});
}
+ checkIfIsInPatient(BuildContext context) {
+ bool isAdmitted = false;
+ bool hasAdmissionRequest = false;
+ GetAdmissionInfoResponseModel getAdmissionInfoResponseModel;
+ GetAdmissionRequestInfoResponseModel getAdmissionRequestInfoResponseModel;
+ ClinicListService service = new ClinicListService();
+ service.checkIfInPatientAPI(context).then((res) {
+ if (res['MessageStatus'] == 1) {
+ isAdmitted = res['isAdmitted'];
+ hasAdmissionRequest = res['hasAdmissionRequests'];
+ print("IS ADMITTED: $isAdmitted");
+ print("Has Admission Request: $hasAdmissionRequest");
+ if (isAdmitted) {
+ if (res['PatientAdmittedInformation'].length != 0) {
+ getAdmissionInfoResponseModel = GetAdmissionInfoResponseModel.fromJson(res['PatientAdmittedInformation'][0]);
+ projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['ProjectID']);
+ projectViewModel.setInPatientAdmissionInfo(getAdmissionInfoResponseModel);
+ projectViewModel.setIsPatientAdmitted(true);
+ }
+ }
+ if (hasAdmissionRequest) {
+ if (res['MedicalInstruction'].length != 0) {
+ getAdmissionRequestInfoResponseModel = GetAdmissionRequestInfoResponseModel.fromJson(res['MedicalInstruction'][0]);
+ // projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['ProjectID']);
+ projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['projectId']);
+ projectViewModel.setInPatientAdmissionRequest(getAdmissionRequestInfoResponseModel);
+ projectViewModel.setPatientHasAdmissionRequest(true);
+ }
+ }
+ } else {}
+ }).catchError((err) {
+ projectViewModel.setIsPatientAdmitted(false);
+ projectViewModel.setPatientHasAdmissionRequest(false);
+ });
+ }
+
loginAfter(result, context) async {
var currentLang = await sharedPref.getString(APP_LANGUAGE);
Provider.of(AppGlobal.context, listen: false).setPrivilege(privilegeList: result, isLoginChild: true);
@@ -501,6 +539,7 @@ class _MyFamily extends State with TickerProviderStateMixin {
try {
// await appointmentRateViewModel.getIsLastAppointmentRatedList();
+ checkIfIsInPatient(context);
await getToDoCount();
if (appointmentRateViewModel.isHaveAppointmentNotRate) {
Navigator.pushAndRemoveUntil(
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart
index 6d6c846b..0371fd24 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/BillAmount.dart
@@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
class BillAmount extends StatefulWidget {
final Function changeCurrentTab;
@@ -98,7 +99,13 @@ class _BillAmountState extends State {
child: _getNormalText(TranslationBase.of(context).patientShareTotalToDo),
),
Expanded(
- child: _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}', isBold: true, isTotal: true),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ _getNormalText(TranslationBase.of(context).sar + ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}', isBold: true, isTotal: true),
+ ],
+ ),
)
],
),
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
index 7dec3944..093789f3 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/PickupLocation.dart
@@ -22,6 +22,7 @@ import 'package:diplomaticquarterapp/widgets/pickupLocation/PickupLocationFromMa
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import '../AvailableAppointmentsPage.dart';
@@ -519,9 +520,15 @@ class _PickupLocationState extends State {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(TranslationBase.of(context).patientShareTotalToDo, style: TextStyle(fontSize: 13.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
- Text(
- TranslationBase.of(context).sar + (widget.patientER_RC.transportationDetails!.tripType == 1 ? ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}' : ' ${(widget.patientER_RC.patientERTransportationMethod!.priceTotal * 2)}'),
- style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ (widget.patientER_RC.transportationDetails!.tripType == 1 ? ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}' : ' ${(widget.patientER_RC.patientERTransportationMethod!.priceTotal * 2)}'),
+ style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ ),
+ ],
),
],
)
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
index d994d31b..23bd8b18 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/SelectTransportationMethod.dart
@@ -11,6 +11,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
enum Direction { ToHospital, FromHospital }
@@ -123,13 +124,19 @@ class _SelectTransportationMethodState extends State
),
Expanded(
flex: 1,
- child: Text(
- TranslationBase.of(context).sar + ' ${widget.amRequestViewModel.amRequestModeList[index].priceTotal}',
- style: TextStyle(
- fontSize: 12.0,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ ' ${widget.amRequestViewModel.amRequestModeList[index].priceTotal}',
+ style: TextStyle(
+ fontSize: 12.0,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
),
)
],
@@ -325,9 +332,15 @@ class _SelectTransportationMethodState extends State
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(TranslationBase.of(context).patientShareTotalToDo, style: TextStyle(fontSize: 13.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
- Text(
- TranslationBase.of(context).sar + (_way == Way.OneWay ? ' ${_erTransportationMethod.priceTotal}' : ' ${(_erTransportationMethod.priceTotal * 2)}'),
- style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ (_way == Way.OneWay ? ' ${_erTransportationMethod.priceTotal}' : ' ${(_erTransportationMethod.priceTotal * 2)}'),
+ style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ ),
+ ],
),
],
)
diff --git a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
index b9533089..10be1e11 100644
--- a/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
+++ b/lib/pages/ErService/AmbulanceRequestIndexPages/Summary.dart
@@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -18,14 +19,14 @@ class Summary extends StatefulWidget {
final PatientER_RC patientER_RC;
final AmRequestViewModel amRequestViewModel;
final TabController tabController;
- Summary({Key? key, required this.changeCurrentTab, required this.patientER, required this.patientER_RC, required this.amRequestViewModel, required this.tabController});
+
+ Summary({Key? key, required this.changeCurrentTab, required this.patientER, required this.patientER_RC, required this.amRequestViewModel, required this.tabController});
@override
_SummaryState createState() => _SummaryState();
}
class _SummaryState extends State {
-
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
@@ -129,12 +130,17 @@ class _SummaryState extends State {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(TranslationBase.of(context).patientShareTotalToDo, style: TextStyle(fontSize: 13.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
- Text(
- TranslationBase.of(context).sar +
+ Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
(widget.patientER_RC.transportationDetails!.tripType == 1
? ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}'
: ' ${(widget.patientER_RC.patientERTransportationMethod!.priceTotal * 2)}'),
- style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
+ ),
+ ],
),
],
)
diff --git a/lib/pages/ErService/EROnlineCheckIn/EROnlineCheckInPaymentDetails.dart b/lib/pages/ErService/EROnlineCheckIn/EROnlineCheckInPaymentDetails.dart
index 69da5dfc..53fd0f34 100644
--- a/lib/pages/ErService/EROnlineCheckIn/EROnlineCheckInPaymentDetails.dart
+++ b/lib/pages/ErService/EROnlineCheckIn/EROnlineCheckInPaymentDetails.dart
@@ -27,6 +27,7 @@ import 'package:diplomaticquarterapp/widgets/dragable_sheet.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class EROnlineCheckInPaymentDetails extends StatefulWidget {
@@ -278,7 +279,7 @@ class _EROnlineCheckInPaymentDetailsState extends State {
),
),
Expanded(
- child: Text(
- '$amount ${TranslationBase.of(context).sar}',
- style: TextStyle(
- fontSize: 12,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 12, height: 12),
+ mWidth(6),
+ Text(
+ amount,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
),
),
],
@@ -231,13 +240,19 @@ class RRTRequestPageState extends State {
),
),
Expanded(
- child: Text(
- '$vat ${TranslationBase.of(context).sar}',
- style: TextStyle(
- fontSize: 12,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 12, height: 12),
+ mWidth(6),
+ Text(
+ vat,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
),
),
],
@@ -259,13 +274,20 @@ class RRTRequestPageState extends State {
),
),
Expanded(
- child: Text(
- '$total ${TranslationBase.of(context).sar}',
- style: TextStyle(
- fontSize: 14,
- letterSpacing: -0.48,
- fontWeight: FontWeight.bold,
- ),
+ child: Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 14, height: 14),
+ mWidth(6),
+ Text(
+ total,
+ style: TextStyle(
+ fontSize: 14,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.bold,
+ color: CustomColors.black
+ ),
+ ),
+ ],
),
),
],
diff --git a/lib/pages/InPatientServices/components/inpatient_pending_advance_payment.dart b/lib/pages/InPatientServices/components/inpatient_pending_advance_payment.dart
index 170895f8..9df2c92f 100644
--- a/lib/pages/InPatientServices/components/inpatient_pending_advance_payment.dart
+++ b/lib/pages/InPatientServices/components/inpatient_pending_advance_payment.dart
@@ -11,6 +11,7 @@ import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
+import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
import 'package:share_plus/share_plus.dart';
import 'package:url_launcher/url_launcher.dart';
@@ -166,13 +167,19 @@ class _InPatientPendingAdvancePaymentState extends State {
),
),
Expanded(
- child: Text(
- widget.getERAppointmentFeesList.amount! + " " + widget.getERAppointmentFeesList.currency!,
- style: TextStyle(
- fontSize: 12,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
- ),
+ child: (widget.getERAppointmentFeesList.currency! == "ريال" || widget.getERAppointmentFeesList.currency! == "SAR")
+ ? Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ widget.getERAppointmentFeesList.amount!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
+ )
+ : Text(
+ widget.getERAppointmentFeesList.amount! + " " + widget.getERAppointmentFeesList.currency!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
),
],
),
@@ -161,14 +176,29 @@ class _LiveCarePatmentPageState extends State {
),
),
Expanded(
- child: Text(
- widget.getERAppointmentFeesList.tax! + " " + widget.getERAppointmentFeesList.currency!,
- style: TextStyle(
- fontSize: 12,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
- ),
+ child: (widget.getERAppointmentFeesList.currency! == "ريال" || widget.getERAppointmentFeesList.currency! == "SAR")
+ ? Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ widget.getERAppointmentFeesList.tax!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
+ )
+ : Text(
+ widget.getERAppointmentFeesList.tax! + " " + widget.getERAppointmentFeesList.currency!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
),
],
),
@@ -189,14 +219,29 @@ class _LiveCarePatmentPageState extends State {
),
),
Expanded(
- child: Text(
- widget.getERAppointmentFeesList.total! + " " + widget.getERAppointmentFeesList.currency!,
- style: TextStyle(
- fontSize: 12,
- letterSpacing: -0.48,
- fontWeight: FontWeight.w600,
- ),
- ),
+ child: (widget.getERAppointmentFeesList.currency! == "ريال" || widget.getERAppointmentFeesList.currency! == "SAR")
+ ? Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ mWidth(6),
+ Text(
+ widget.getERAppointmentFeesList.total!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
+ ],
+ )
+ : Text(
+ widget.getERAppointmentFeesList.total! + " " + widget.getERAppointmentFeesList.currency!,
+ style: TextStyle(
+ fontSize: 12,
+ letterSpacing: -0.48,
+ fontWeight: FontWeight.w600,
+ ),
+ ),
),
],
),
diff --git a/lib/pages/login/confirm-login.dart b/lib/pages/login/confirm-login.dart
index b02674c7..ee4208f4 100644
--- a/lib/pages/login/confirm-login.dart
+++ b/lib/pages/login/confirm-login.dart
@@ -709,32 +709,36 @@ class _ConfirmLogin extends State {
}
checkIfUserAgreedBefore(CheckActivationCode result) {
- this.authService.checkIfUserAgreed().then((result) {
- if (result['IsPatientAlreadyAgreed']) {
- goToHome();
- } else {
- this.authService.getUserAgreementContent().then((result) {
- GifLoaderDialogUtils.hideDialog(AppGlobal.context);
- Navigator.pushAndRemoveUntil(
- context,
- FadePage(
- page: UserLoginAgreementPage(
- userAgreementText: result['UserAgreementContent'],
- authenticatedUserObject: authenticatedUserObject,
- appointmentRateViewModel: appointmentRateViewModel,
- selectedOption: selectedOption,
+ if (projectViewModel.havePrivilege(109)) {
+ this.authService.checkIfUserAgreed().then((result) {
+ if (result['IsPatientAlreadyAgreed']) {
+ goToHome();
+ } else {
+ this.authService.getUserAgreementContent().then((result) {
+ GifLoaderDialogUtils.hideDialog(AppGlobal.context);
+ Navigator.pushAndRemoveUntil(
+ context,
+ FadePage(
+ page: UserLoginAgreementPage(
+ userAgreementText: result['UserAgreementContent'],
+ authenticatedUserObject: authenticatedUserObject,
+ appointmentRateViewModel: appointmentRateViewModel,
+ selectedOption: selectedOption,
+ ),
),
- ),
- (r) => false);
- }).catchError((err) {
- GifLoaderDialogUtils.hideDialog(context);
- print(err);
- });
- }
- }).catchError((err) {
- GifLoaderDialogUtils.hideDialog(context);
- print(err);
- });
+ (r) => false);
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ }
+ }).catchError((err) {
+ GifLoaderDialogUtils.hideDialog(context);
+ print(err);
+ });
+ } else {
+ goToHome();
+ }
// if (result.isNeedUserAgreement == true) {
// // move to agreement page.
diff --git a/lib/pages/login/user-login-agreement-page.dart b/lib/pages/login/user-login-agreement-page.dart
index a8df31fe..c21fa273 100644
--- a/lib/pages/login/user-login-agreement-page.dart
+++ b/lib/pages/login/user-login-agreement-page.dart
@@ -3,6 +3,8 @@ import 'package:diplomaticquarterapp/core/viewModels/TermsConditionsViewModel.da
import 'package:diplomaticquarterapp/core/viewModels/appointment_rate_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_info_response_model.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_request_info_response_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
import 'package:diplomaticquarterapp/pages/rateAppointment/rate_appointment_doctor.dart';
@@ -13,6 +15,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
+import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_container.dart';
import 'package:diplomaticquarterapp/widgets/buttons/custom_text_button.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -51,6 +54,7 @@ class _UserLoginAgreementPageState extends State {
NavigationDelegate(
onProgress: (int progress) {
// Update loading bar.
+ print("Progress: $progress");
},
onPageStarted: (String url) {},
onPageFinished: (String url) {
@@ -82,7 +86,15 @@ class _UserLoginAgreementPageState extends State {
showNewAppBar: true,
isShowDecPage: false,
appBarTitle: TranslationBase.of(context).userAgreement,
- body: WebViewWidget(controller: _controller),
+ body: isPageLoaded
+ ? WebViewWidget(controller: _controller)
+ : Container(
+ child: Center(
+ child: GifLoaderContainer(
+ barrierDismissible: false,
+ ),
+ ),
+ ),
// Padding(
// padding: const EdgeInsets.all(8.0),
// child: SingleChildScrollView(child: WebViewWidget(controller: _controller)
@@ -193,6 +205,39 @@ class _UserLoginAgreementPageState extends State {
});
}
+ checkIfIsInPatient() {
+ bool isAdmitted = false;
+ bool hasAdmissionRequest = false;
+ GetAdmissionInfoResponseModel getAdmissionInfoResponseModel;
+ GetAdmissionRequestInfoResponseModel getAdmissionRequestInfoResponseModel;
+ ClinicListService service = new ClinicListService();
+ service.checkIfInPatientAPI(context).then((res) {
+ if (res['MessageStatus'] == 1) {
+ isAdmitted = res['isAdmitted'];
+ hasAdmissionRequest = res['hasAdmissionRequests'];
+ print("IS ADMITTED: $isAdmitted");
+ print("Has Admission Request: $hasAdmissionRequest");
+ if (isAdmitted) {
+ if (res['PatientAdmittedInformation'].length != 0) {
+ getAdmissionInfoResponseModel = GetAdmissionInfoResponseModel.fromJson(res['PatientAdmittedInformation'][0]);
+ projectViewModel.setInPatientProjectID(res['PatientAdmittedInformation'][0]['ProjectID']);
+ projectViewModel.setInPatientAdmissionInfo(getAdmissionInfoResponseModel);
+ projectViewModel.setIsPatientAdmitted(true);
+ }
+ }
+ if (hasAdmissionRequest) {
+ if (res['MedicalInstruction'].length != 0) {
+ getAdmissionRequestInfoResponseModel = GetAdmissionRequestInfoResponseModel.fromJson(res['MedicalInstruction'][0]);
+ // projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['ProjectID']);
+ projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['projectId']);
+ projectViewModel.setInPatientAdmissionRequest(getAdmissionRequestInfoResponseModel);
+ projectViewModel.setPatientHasAdmissionRequest(true);
+ }
+ }
+ } else {}
+ });
+ }
+
goToHome() async {
widget.authenticatedUserObject.isLogin = true;
widget.appointmentRateViewModel.isLogin = true;
@@ -202,6 +247,7 @@ class _UserLoginAgreementPageState extends State {
// GifLoaderDialogUtils.hideDialog(context);
getToDoCount();
+ checkIfIsInPatient();
widget.appointmentRateViewModel
.getIsLastAppointmentRatedList(projectViewModel.isArabic ? 1 : 2)
.then((value) => {
diff --git a/lib/pages/medical/balance/confirm_payment_page.dart b/lib/pages/medical/balance/confirm_payment_page.dart
index 0c0f354c..ca46b5cb 100644
--- a/lib/pages/medical/balance/confirm_payment_page.dart
+++ b/lib/pages/medical/balance/confirm_payment_page.dart
@@ -25,6 +25,7 @@ import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/in_app_browser/InAppBrowser.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@@ -149,16 +150,20 @@ class _ConfirmPaymentPageState extends State {
)
: Image.asset(getImagePath(widget.selectedPaymentMethod!)),
),
- Text(
- widget.advanceModel!.hospitalsModel!.projectOutSA!
- ? '${widget.advanceModel!.amount} ' + TranslationBase.of(context).aed
- : '${widget.advanceModel!.amount} ' + TranslationBase.of(context).sar,
- // '${widget.advanceModel.amount} ' + TranslationBase.of(context).sar,
- style: TextStyle(
- fontSize: 20,
- fontWeight: FontWeight.w900,
- letterSpacing: -0.48,
- ),
+ Row(
+ children: [
+ widget.advanceModel!.hospitalsModel!.projectOutSA! ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 20, height: 20),
+ mWidth(6),
+ Text(
+ widget.advanceModel!.hospitalsModel!.projectOutSA! ? '${widget.advanceModel!.amount} ' + TranslationBase.of(context).aed : '${widget.advanceModel!.amount}',
+ // '${widget.advanceModel.amount} ' + TranslationBase.of(context).sar,
+ style: TextStyle(
+ fontSize: 20,
+ fontWeight: FontWeight.w900,
+ letterSpacing: -0.48,
+ ),
+ ),
+ ],
)
],
),
@@ -320,27 +325,27 @@ class _ConfirmPaymentPageState extends State {
service.applePayInsertRequest(applePayInsertRequest, context).then((res) async {
if (res["MessageStatus"] == 1) {
await context.read().initiateApplePayWithPayfort(
- customerName: projectViewModel.authenticatedUserObject.user.firstName! + " " + projectViewModel.authenticatedUserObject.user.lastName!,
- // customerEmail: projectViewModel.authenticatedUserObject.user.emailAddress,
- customerEmail: "CustID_${widget.advanceModel!.fileNumber!}@HMG.com",
- orderDescription: "Advance Payment",
- orderAmount: double.parse(widget.advanceModel!.amount!),
- merchantReference: transID,
- payfortProjectDetailsRespModel: payfortProjectDetailsRespModel,
- currency: projectViewModel.authenticatedUserObject.user.outSA == 1 ? "AED" : "SAR",
- onFailed: (failureResult) async {
- GifLoaderDialogUtils.hideDialog(context);
- log("failureResult: ${failureResult.message.toString()}");
- AppToast.showErrorToast(message: failureResult.message.toString());
- },
- onSuccess: (successResult) async {
- log("Payfort: ${successResult.responseMessage}");
- await context.read().addPayfortApplePayResponse(num.parse(widget.advanceModel!.fileNumber!), result: successResult);
- checkPaymentStatus(AppoitmentAllHistoryResultList());
- },
- projectId: widget.advanceModel!.hospitalsModel!.iD,
- serviceTypeEnum: ServiceTypeEnum.advancePayment,
- );
+ customerName: projectViewModel.authenticatedUserObject.user.firstName! + " " + projectViewModel.authenticatedUserObject.user.lastName!,
+ // customerEmail: projectViewModel.authenticatedUserObject.user.emailAddress,
+ customerEmail: "CustID_${widget.advanceModel!.fileNumber!}@HMG.com",
+ orderDescription: "Advance Payment",
+ orderAmount: double.parse(widget.advanceModel!.amount!),
+ merchantReference: transID,
+ payfortProjectDetailsRespModel: payfortProjectDetailsRespModel,
+ currency: projectViewModel.authenticatedUserObject.user.outSA == 1 ? "AED" : "SAR",
+ onFailed: (failureResult) async {
+ GifLoaderDialogUtils.hideDialog(context);
+ log("failureResult: ${failureResult.message.toString()}");
+ AppToast.showErrorToast(message: failureResult.message.toString());
+ },
+ onSuccess: (successResult) async {
+ log("Payfort: ${successResult.responseMessage}");
+ await context.read().addPayfortApplePayResponse(num.parse(widget.advanceModel!.fileNumber!), result: successResult);
+ checkPaymentStatus(AppoitmentAllHistoryResultList());
+ },
+ projectId: widget.advanceModel!.hospitalsModel!.iD,
+ serviceTypeEnum: ServiceTypeEnum.advancePayment,
+ );
} else {
GifLoaderDialogUtils.hideDialog(context);
AppToast.showErrorToast(message: "An error occurred while processing your request");
diff --git a/lib/pages/medical/balance/my_balance_page.dart b/lib/pages/medical/balance/my_balance_page.dart
index 459b7250..25f22797 100644
--- a/lib/pages/medical/balance/my_balance_page.dart
+++ b/lib/pages/medical/balance/my_balance_page.dart
@@ -5,6 +5,7 @@ import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@@ -17,7 +18,7 @@ import 'package:provider/provider.dart';
import 'advance_payment_page.dart';
class MyBalancePage extends StatelessWidget {
- List imagesInfo =[];
+ List imagesInfo = [];
late ProjectViewModel projectViewModel;
@@ -95,18 +96,31 @@ class MyBalancePage extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisSize: MainAxisSize.min,
children: [
- Text(
- double.parse(model.totalAdvanceBalanceAmount?.toString() ?? "0").toStringAsFixed(2),
- style: TextStyle(
- fontSize: 24,
- fontWeight: FontWeight.bold,
- letterSpacing: -1.44,
- height: 24 / 23,
- color: Colors.white,
- ),
+ Row(
+ children: [
+ projectViewModel.user!.outSA == 1
+ ? Container()
+ : SvgPicture.asset(
+ "assets/images/new/Saudi_Riyal_Symbol.svg",
+ width: 22,
+ height: 22,
+ color: Colors.white,
+ ),
+ mWidth(6),
+ Text(
+ double.parse(model.totalAdvanceBalanceAmount?.toString() ?? "0").toStringAsFixed(2),
+ style: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.bold,
+ letterSpacing: -1.44,
+ height: 24 / 23,
+ color: Colors.white,
+ ),
+ ),
+ ],
),
Text(
- projectViewModel.user!.outSA == 1 ? TranslationBase.of(context).aed : TranslationBase.of(context).sar,
+ projectViewModel.user!.outSA == 1 ? TranslationBase.of(context).aed : "",
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
@@ -156,14 +170,26 @@ class MyBalancePage extends StatelessWidget {
),
),
),
- Text(
- amount.toStringAsFixed(2) + " " + (projectViewModel.user!.outSA == 1 ? TranslationBase.of(context).aed : TranslationBase.of(context).sar),
- style: TextStyle(
- fontSize: 16,
- letterSpacing: -0.64,
- fontWeight: amount > 0 ? FontWeight.bold : FontWeight.w500,
- color: Color(0xff2E303A),
- ),
+ Row(
+ children: [
+ projectViewModel.user!.outSA == 1
+ ? Container()
+ : Row(
+ children: [
+ SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
+ ],
+ ),
+ mWidth(6),
+ Text(
+ amount.toStringAsFixed(2) + " " + (projectViewModel.user!.outSA == 1 ? TranslationBase.of(context).aed : ""),
+ style: TextStyle(
+ fontSize: 16,
+ letterSpacing: -0.64,
+ fontWeight: amount > 0 ? FontWeight.bold : FontWeight.w500,
+ color: Color(0xff2E303A),
+ ),
+ ),
+ ],
),
],
),
diff --git a/lib/pages/medical/labs/laboratory_result_page.dart b/lib/pages/medical/labs/laboratory_result_page.dart
index 855836e3..8441492e 100644
--- a/lib/pages/medical/labs/laboratory_result_page.dart
+++ b/lib/pages/medical/labs/laboratory_result_page.dart
@@ -64,6 +64,8 @@ class _LaboratoryResultPageState extends State {
patientLabOrder: widget.patientLabOrders,
mes: TranslationBase.of(context).sendSuc,
userObj: projectViewModel.user,
+ languageID: projectViewModel.isArabic ? 1 : 2,
+ isDownload: true,
isVidaPlus: Utils.isVidaPlusProject(
projectViewModel,
int.parse(widget.patientLabOrders!.projectID!),
@@ -118,14 +120,6 @@ class _LaboratoryResultPageState extends State {
);
}
- Future _createFileFromString(String encodedStr, String ext) async {
- Uint8List bytes = base64.decode(encodedStr);
- String dir = (await getApplicationDocumentsDirectory()).path;
- File file = File("$dir/" + DateTime.now().millisecondsSinceEpoch.toString() + "." + ext);
- await file.writeAsBytes(bytes);
- return file.path;
- }
-
String getSpecialResults(LabsViewModel model) {
String labResults = "";
model.patientLabSpecialResult.forEach((element) {
diff --git a/lib/pages/medical/my_invoices/invoice_detail_page.dart b/lib/pages/medical/my_invoices/invoice_detail_page.dart
index c4cfe3e2..767354e2 100644
--- a/lib/pages/medical/my_invoices/invoice_detail_page.dart
+++ b/lib/pages/medical/my_invoices/invoice_detail_page.dart
@@ -151,7 +151,7 @@ class _InvoiceDetailState extends State {
child: _getNormalText(TranslationBase.of(context).discount),
),
Expanded(
- child: _getNormalText(this.totalDiscount.toString() + " " + TranslationBase.of(context).sar, isBold: true),
+ child: _getNormalText(this.totalDiscount.toString(), isBold: true),
)
],
),
@@ -169,7 +169,7 @@ class _InvoiceDetailState extends State {
"%): "),
),
Expanded(
- child: _getNormalText(num.tryParse(this.totalVAT.toString())!.toStringAsFixed(2) + " " + TranslationBase.of(context).sar, isBold: true),
+ child: _getNormalText(num.tryParse(this.totalVAT.toString())!.toStringAsFixed(2), isBold: true),
)
],
),
@@ -184,7 +184,7 @@ class _InvoiceDetailState extends State {
child: _getNormalText(TranslationBase.of(context).total),
),
Expanded(
- child: _getNormalText(this.subTotal.toString() + " " + TranslationBase.of(context).sar, isBold: true),
+ child: _getNormalText(this.subTotal.toString(), isBold: true),
)
],
),
@@ -199,7 +199,7 @@ class _InvoiceDetailState extends State {
child: _getNormalText(TranslationBase.of(context).paid),
),
Expanded(
- child: _getNormalText(this.grandTotal.toString() + " " + TranslationBase.of(context).sar, isBold: true),
+ child: _getNormalText(this.grandTotal.toString(), isBold: true),
)
],
),
@@ -283,9 +283,9 @@ class _InvoiceDetailState extends State {
isLast: i == (widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation!.length - 1), mProjectViewModel: projectViewModel),
Utils.tableColumnValue('${widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation![i].quantity}',
isLast: i == (widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation!.length - 1), mProjectViewModel: projectViewModel),
- Utils.tableColumnValue('${widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation![i].price.toString() + " " + TranslationBase.of(context).sar}',
+ Utils.tableColumnValue('${widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation![i].price.toString()}',
isLast: i == (widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation!.length - 1), mProjectViewModel: projectViewModel),
- Utils.tableColumnValue('${widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation![i].total.toString() + " " + TranslationBase.of(context).sar}',
+ Utils.tableColumnValue('${widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation![i].total.toString()}',
isLast: i == (widget.dentalInvoiceDetailResponse.listEInvoiceForDental![0].listConsultation!.length - 1), mProjectViewModel: projectViewModel),
]),
);
diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart
index 3ce068fb..99b113f7 100644
--- a/lib/uitl/translations_delegate_base.dart
+++ b/lib/uitl/translations_delegate_base.dart
@@ -62,6 +62,7 @@ class TranslationBase {
String get hospitalName => localizedValues['hospitalName'][locale.languageCode];
String get doctorName => localizedValues['doctorName'][locale.languageCode];
+
String get NoClinicFound => localizedValues['NoClinicFound'][locale.languageCode];
String get nearestAppo => localizedValues['nearestAppo'][locale.languageCode];
@@ -1136,6 +1137,7 @@ class TranslationBase {
String get myPrescription => localizedValues['myPrescription'][locale.languageCode];
String get quantity => localizedValues['quantity'][locale.languageCode];
+
String get productQuantity => localizedValues['productQuantity'][locale.languageCode];
String get conditionsHMG => localizedValues['conditionsHMG'][locale.languageCode];
@@ -1483,6 +1485,7 @@ class TranslationBase {
String get enablingWifi => localizedValues['enablingWifi'][locale.languageCode];
String get offerAndPackages => localizedValues['offerAndPackages'][locale.languageCode];
+
String get orderHistory => localizedValues['orderHistory'][locale.languageCode];
String get offerAndPackagesDetails => localizedValues['offerAndPackagesDetails'][locale.languageCode];
@@ -1854,6 +1857,7 @@ class TranslationBase {
String get needPrescription => localizedValues['needPrescription'][locale.languageCode];
String get outOfStockMsg => localizedValues['outOfStockMsg'][locale.languageCode];
+
String get productOutOfStock => localizedValues['productOutOfStock'][locale.languageCode];
String get noArabicLetters => localizedValues['noArabicLetters'][locale.languageCode];
@@ -2816,235 +2820,454 @@ class TranslationBase {
String get submitReview => localizedValues["submitReview"][locale.languageCode];
String get Protein => localizedValues["Protein"][locale.languageCode];
+
String get Cals => localizedValues["Cals"][locale.languageCode];
+
String get gramsPerDay => localizedValues["gramsPerDay"][locale.languageCode];
+
String get gr => localizedValues["gr"][locale.languageCode];
+
String get gramsPerMeal => localizedValues["gramsPerMeal"][locale.languageCode];
String get cancelReminder => localizedValues["CancelReminder"][locale.languageCode];
String get reminderCancelSuccess => localizedValues["reminderCancelSuccess"][locale.languageCode];
+
String get syncSuccess => localizedValues["syncSuccess"][locale.languageCode];
+
String get useLakumPoints => localizedValues["useLakumPoints"][locale.languageCode];
+
String get points => localizedValues["points"][locale.languageCode];
+
String get availableBalance => localizedValues["availableBalance"][locale.languageCode];
+
String get ordersDashboard => localizedValues["ordersDashboard"][locale.languageCode];
+
String get requestedDateLiveCare => localizedValues["requestedDateLiveCare"][locale.languageCode];
+
String get yourTurn => localizedValues["yourTurn"][locale.languageCode];
+
String get patients => localizedValues["patients"][locale.languageCode];
+
String get group => localizedValues["group"][locale.languageCode];
+
String get ancillaryOrdersPaymentConfirm => localizedValues["ancillaryOrdersPaymentConfirm"][locale.languageCode];
+
String get covidTestTodo => localizedValues["covidTestTodo"][locale.languageCode];
+
String get successRegister => localizedValues["successRegister"][locale.languageCode];
+
String get pharmacyLiveCare => localizedValues["pharmacyLiveCare"][locale.languageCode];
+
String get ancillaryOrderPaymentSuccess => localizedValues["ancillaryOrderPaymentSuccess"][locale.languageCode];
+
String get connectTitle => localizedValues["connectTitle"][locale.languageCode];
+
String get connectSubtitle => localizedValues["connectSubtitle"][locale.languageCode];
+
String get declineLbl => localizedValues["declineLbl"][locale.languageCode];
+
String get covidConsent => localizedValues["covidConsent"][locale.languageCode];
+
String get covidConsentHeader => localizedValues["covidConsentHeader"][locale.languageCode];
+
String get drawOverAppsPermission => localizedValues["drawOverAppsPermission"][locale.languageCode];
+
String get selectTamaraPlan => localizedValues["selectTamaraPlan"][locale.languageCode];
+
String get installments => localizedValues["installments"][locale.languageCode];
+
String get cameraPermissionDialog => localizedValues["cameraPermissionDialog"][locale.languageCode];
+
String get galleryPermission => localizedValues["galleryPermission"][locale.languageCode];
+
String get locationPermissionDialog => localizedValues["locationPermissionDialog"][locale.languageCode];
+
String get calendarPermission => localizedValues["calendarPermission"][locale.languageCode];
+
String get recordAudioPermission => localizedValues["recordAudioPermission"][locale.languageCode];
+
String get wifiPermission => localizedValues["wifiPermission"][locale.languageCode];
+
String get physicalActivityPermission => localizedValues["physicalActivityPermission"][locale.languageCode];
+
String get bluetoothPermission => localizedValues["bluetoothPermission"][locale.languageCode];
+
String get privacyPolicy => localizedValues["privacyPolicy"][locale.languageCode];
+
String get termsConditions => localizedValues["termsConditions"][locale.languageCode];
+
String get liveCarePermissions => localizedValues["liveCarePermissions"][locale.languageCode];
+
String get prescriptionDeliveryError => localizedValues["prescriptionDeliveryError"][locale.languageCode];
+
String get lakumUnhold => localizedValues["lakumUnhold"][locale.languageCode];
+
String get lakumDiscontinue => localizedValues["lakumDiscontinue"][locale.languageCode];
+
String get lakumSuccess => localizedValues["lakumSuccess"][locale.languageCode];
+
String get deleteAccount => localizedValues["deleteAccount"][locale.languageCode];
+
String get deactivateAccount => localizedValues["deactivateAccount"][locale.languageCode];
+
String get accountDeactivated => localizedValues["accountDeactivated"][locale.languageCode];
+
String get accountDeactivatedMsg => localizedValues["accountDeactivatedMsg"][locale.languageCode];
+
String get updateInsuranceManually => localizedValues["updateInsuranceManually"][locale.languageCode];
+
String get enterInsuranceDetails => localizedValues["enterInsuranceDetails"][locale.languageCode];
+
String get cardHolderName => localizedValues["cardHolderName"][locale.languageCode];
+
String get membershipNo => localizedValues["membershipNo"][locale.languageCode];
+
String get insurancePolicyNo => localizedValues["policyNo"][locale.languageCode];
+
String get insuranceClassName => localizedValues["insuranceClassName"][locale.languageCode];
+
String get NFCNotSupported => localizedValues["NFCNotSupported"][locale.languageCode];
+
String get paymentOnly => localizedValues["paymentOnly"][locale.languageCode];
+
String get pendingOnly => localizedValues["pendingOnly"][locale.languageCode];
+
String get insuranceRequestSubmit => localizedValues["insuranceRequestSubmit"][locale.languageCode];
+
String get enterWorkplaceName => localizedValues["enter-workplace-name"][locale.languageCode];
+
String get workplaceName => localizedValues["workplaceName"][locale.languageCode];
+
String get needApproval => localizedValues["needApproval"][locale.languageCode];
+
String get callLiveCareSupport => localizedValues["callLiveCareSupport"][locale.languageCode];
+
String get pendingActivation => localizedValues["pendingActivation"][locale.languageCode];
+
String get awaitingApproval => localizedValues["awaitingApproval"][locale.languageCode];
+
String get liveCareSupportContact => localizedValues["liveCareSupportContact"][locale.languageCode];
+
String get scanNFC => localizedValues["scanNFC"][locale.languageCode];
+
String get pharmaLiveCare => localizedValues["pharmaLiveCare"][locale.languageCode];
+
String get pharmaLiveCare1 => localizedValues["pharmaLiveCare1"][locale.languageCode];
+
String get pharmaLiveCareDesc1 => localizedValues["pharmaLiveCareDesc1"][locale.languageCode];
+
String get wherePharmaLiveCare => localizedValues["wherePharmaLiveCare"][locale.languageCode];
+
String get pharmaLiveCareDesc2 => localizedValues["pharmaLiveCareDesc2"][locale.languageCode];
+
String get howPharmaLiveCare => localizedValues["howPharmaLiveCare"][locale.languageCode];
+
String get pharmaLiveCareDesc3 => localizedValues["pharmaLiveCareDesc3"][locale.languageCode];
+
String get pharmaLiveCareScanQR => localizedValues["pharmaLiveCareScanQR"][locale.languageCode];
+
String get pharmaLiveCareScanQR1 => localizedValues["pharmaLiveCareScanQR1"][locale.languageCode];
+
String get pharmaLiveCareMakePayment => localizedValues["pharmaLiveCareMakePayment"][locale.languageCode];
+
String get pharmaLiveCareMakePayment1 => localizedValues["pharmaLiveCareMakePayment1"][locale.languageCode];
+
String get pharmaLiveCareJoinConsultation => localizedValues["pharmaLiveCareJoinConsultation"][locale.languageCode];
+
String get pharmaLiveCareJoinConsultation1 => localizedValues["pharmaLiveCareJoinConsultation1"][locale.languageCode];
+
String get emergencyServicesSubtitle => localizedValues["emergencyServicesSubtitle"][locale.languageCode];
+
String get rateDoctorResponse => localizedValues["rateDoctorResponse"][locale.languageCode];
+
String get comments => localizedValues["comments"][locale.languageCode];
+
String get rateDoctorResponseHeading => localizedValues["rateDoctorResponseHeading"][locale.languageCode];
+
String get updateInsuranceManuallyDialog => localizedValues["updateInsuranceManuallyDialog"][locale.languageCode];
+
String get viewReport => localizedValues["viewReport"][locale.languageCode];
+
String get sickLeaveAdmittedPatient => localizedValues["sickLeaveAdmittedPatient"][locale.languageCode];
+
String get InPatient => localizedValues["InPatient"][locale.languageCode];
+
String get inPatientServices => localizedValues["InPatientServices"][locale.languageCode];
+
String get InPatientServicesHeader => localizedValues["InPatientServicesHeader"][locale.languageCode];
+
String get admissionGeneral => localizedValues["admissionGeneral"][locale.languageCode];
+
String get consent => localizedValues["consent"][locale.languageCode];
+
String get generalInstructionsTitle => localizedValues["generalInstructionsTitle"][locale.languageCode];
+
String get generalInstructionsSubTitle => localizedValues["generalInstructionsSubTitle"][locale.languageCode];
+
String get medicalInstructionsTitle => localizedValues["medicalInstructionsTitle"][locale.languageCode];
+
String get medicalInstructionsSubTitle => localizedValues["medicalInstructionsSubTitle"][locale.languageCode];
+
String get mealPlanTitle => localizedValues["mealPlanTitle"][locale.languageCode];
+
String get mealPlanSubTitle => localizedValues["mealPlanSubTitle"][locale.languageCode];
+
String get birthNotificationTitle => localizedValues["birthNotificationTitle"][locale.languageCode];
+
String get birthNotificationSubTitle => localizedValues["birthNotificationSubTitle"][locale.languageCode];
+
String get admissionNoticeTitle => localizedValues["admissionNoticeTitle"][locale.languageCode];
+
String get admissionNoticeSubTitle => localizedValues["admissionNoticeSubTitle"][locale.languageCode];
+
String get mothersMRN => localizedValues["mothersMRN"][locale.languageCode];
+
String get mothersName => localizedValues["mothersName"][locale.languageCode];
+
String get fathersNameEN => localizedValues["fathersNameEN"][locale.languageCode];
+
String get fathersNameAR => localizedValues["fathersNameAR"][locale.languageCode];
+
String get babysNameEN => localizedValues["babysNameEN"][locale.languageCode];
+
String get babysNameAR => localizedValues["babysNameAR"][locale.languageCode];
+
String get contactNumber => localizedValues["contactNumber"][locale.languageCode];
+
String get scanID => localizedValues["scanID"][locale.languageCode];
+
String get birthNotificationNotes1 => localizedValues["birthNotificationNotes1"][locale.languageCode];
+
String get birthNotificationNotes2 => localizedValues["birthNotificationNotes2"][locale.languageCode];
+
String get birthNotificationNotes3 => localizedValues["birthNotificationNotes3"][locale.languageCode];
+
String get placeOrder => localizedValues["placeOrder"][locale.languageCode];
+
String get isFasting => localizedValues["isFasting"][locale.languageCode];
+
String get noGeneralInstructions => localizedValues["noGeneralInstructions"][locale.languageCode];
+
String get noMedicalInstructions => localizedValues["noMedicalInstructions"][locale.languageCode];
+
String get medicalInstructions => localizedValues["medicalInstructions"][locale.languageCode];
+
String get generalInstructions => localizedValues["generalInstructions"][locale.languageCode];
+
String get copyLink => localizedValues["copyLink"][locale.languageCode];
+
String get copyLinkTxt => localizedValues["copyLinkTxt"][locale.languageCode];
+
String get paymentLinkCopied => localizedValues["paymentLinkCopied"][locale.languageCode];
+
String get proErrorMessage => localizedValues["proErrorMessage"][locale.languageCode];
+
String get admissionNo => localizedValues["admissionNo"][locale.languageCode];
+
String get admissionReqNo => localizedValues["admissionReqNo"][locale.languageCode];
+
String get dischargeDate => localizedValues["dischargeDate"][locale.languageCode];
+
String get selectAdmissionText => localizedValues["selectAdmissionText"][locale.languageCode];
+
String get onlyAdmitted => localizedValues["onlyAdmitted"][locale.languageCode];
+
String get assistYou => localizedValues["assistYou"][locale.languageCode];
+
String get receive => localizedValues["receive"][locale.languageCode];
+
String get PRO => localizedValues["PRO"][locale.languageCode];
+
String get patientRelationOffice => localizedValues["patientRelationOffice"][locale.languageCode];
+
String get roomNo => localizedValues["roomNo"][locale.languageCode];
+
String get generalConsent => localizedValues["generalConsent"][locale.languageCode];
+
String get generalConsent1 => localizedValues["generalConsent1"][locale.languageCode];
+
String get hospitalRules => localizedValues["hospitalRules"][locale.languageCode];
+
String get generalConsent2 => localizedValues["generalConsent2"][locale.languageCode];
+
String get communicationConsent => localizedValues["communicationConsent"][locale.languageCode];
+
String get generalConsent3 => localizedValues["generalConsent3"][locale.languageCode];
+
String get releaseConsent => localizedValues["releaseConsent"][locale.languageCode];
+
String get generalConsent4 => localizedValues["generalConsent4"][locale.languageCode];
+
String get generalConsent5 => localizedValues["generalConsent5"][locale.languageCode];
+
String get valuables => localizedValues["valuables"][locale.languageCode];
+
String get generalConsent6 => localizedValues["generalConsent6"][locale.languageCode];
+
String get financialConsent => localizedValues["financialConsent"][locale.languageCode];
+
String get generalConsent7 => localizedValues["generalConsent7"][locale.languageCode];
+
String get dataSharingConsent => localizedValues["dataSharingConsent"][locale.languageCode];
+
String get generalConsent8 => localizedValues["generalConsent8"][locale.languageCode];
+
String get permissionLeaveConsent => localizedValues["permissionLeaveConsent"][locale.languageCode];
+
String get generalConsent9 => localizedValues["generalConsent9"][locale.languageCode];
+
String get observeConsent => localizedValues["observeConsent"][locale.languageCode];
+
String get generalConsent10 => localizedValues["generalConsent10"][locale.languageCode];
+
String get noGuaranteeConsent => localizedValues["noGuaranteeConsent"][locale.languageCode];
+
String get generalConsent11 => localizedValues["generalConsent11"][locale.languageCode];
+
String get disputeConsent => localizedValues["disputeConsent"][locale.languageCode];
+
String get generalConsent12 => localizedValues["generalConsent12"][locale.languageCode];
+
String get patientsRightsConsent => localizedValues["patientsRightsConsent"][locale.languageCode];
+
String get generalConsent13 => localizedValues["generalConsent13"][locale.languageCode];
+
String get acknowledgementConsent => localizedValues["acknowledgementConsent"][locale.languageCode];
+
String get generalConsent14 => localizedValues["generalConsent14"][locale.languageCode];
+
String get invalidEligibility => localizedValues["invalidEligibility"][locale.languageCode];
+
String get invalidInsurance => localizedValues["invalidInsurance"][locale.languageCode];
+
String get continueCash => localizedValues["continueCash"][locale.languageCode];
+
String get updateInsuranceText => localizedValues["updateInsurance"][locale.languageCode];
+
String get downloadReport => localizedValues["downloadReport"][locale.languageCode];
+
String get habibCallCenter => localizedValues["habibCallCenter"][locale.languageCode];
+
String get cashAmountUpdateInsurance => localizedValues["cashAmountUpdateInsurance"][locale.languageCode];
+
String get validInsurance => localizedValues["validInsurance"][locale.languageCode];
+
String get contactRRT => localizedValues["contactRRT"][locale.languageCode];
+
String get checkInViaLocation => localizedValues["checkInViaLocation"][locale.languageCode];
+
String get locationCheckInError => localizedValues["locationCheckInError"][locale.languageCode];
+
String get upcoming => localizedValues["upcoming"][locale.languageCode];
+
String get noUpcomingAppointment => localizedValues["noUpcomingAppointment"][locale.languageCode];
+
String get locationTimeoutError => localizedValues["locationTimeoutError"][locale.languageCode];
+
String get loadMore => localizedValues["loadMore"][locale.languageCode];
+
String get selectHospitalBloodDonation => localizedValues["selectHospitalBloodDonation"][locale.languageCode];
+
String get wecare => localizedValues["wecare"][locale.languageCode];
+
String get myinstructions => localizedValues["myinstructions"][locale.languageCode];
+
String get clinicLocation => localizedValues["clinicLocation"][locale.languageCode];
+
String get waitingAppointment => localizedValues["waitingAppointment"][locale.languageCode];
+
String get whatWaitingAppointment => localizedValues["whatWaitingAppointment"][locale.languageCode];
+
String get waitingAppointmentText1 => localizedValues["waitingAppointmentText1"][locale.languageCode];
+
String get waitingAppointmentText2 => localizedValues["waitingAppointmentText2"][locale.languageCode];
+
String get waitingAppointmentText3 => localizedValues["waitingAppointmentText3"][locale.languageCode];
+
String get waitingAppointmentVerificationMethod => localizedValues["waitingAppointmentVerificationMethod"][locale.languageCode];
+
String get howToUseVerificationMethod => localizedValues["howToUseVerificationMethod"][locale.languageCode];
+
String get addToWaitingList => localizedValues["addToWaitingList"][locale.languageCode];
+
String get searchClinic => localizedValues["searchClinic"][locale.languageCode];
+
String get enterMobileNumber => localizedValues["enterMobileNumber"][locale.languageCode];
+
String get videoCall => localizedValues["videoCall"][locale.languageCode];
+
String get audioCall => localizedValues["audioCall"][locale.languageCode];
+
String get phoneCall => localizedValues["phoneCall"][locale.languageCode];
+
String get selectCallType => localizedValues["selectCallType"][locale.languageCode];
+
String get selectedCallType => localizedValues["selectedCallType"][locale.languageCode];
+
String get selectBranch => localizedValues["selectBranch"][locale.languageCode];
+
String get searchByBranch => localizedValues["searchByBranch"][locale.languageCode];
+
String get existingPackage => localizedValues["existingPackage"][locale.languageCode];
+
String get continueOrbookNew => localizedValues["continueOrbookNew"][locale.languageCode];
+
String get newAppointment => localizedValues["newAppointment"][locale.languageCode];
+
String get proceedPackage => localizedValues["proceedPackage"][locale.languageCode];
+
String get hospitalNavigationTitle => localizedValues["hospitalNavigationTitle"][locale.languageCode];
+
String get hospitalNavigationSubtitle => localizedValues["hospitalNavigationSubtitle"][locale.languageCode];
+
String get workplaceNameAr => localizedValues["workplaceNameAr"][locale.languageCode];
+
String get occupationNameEn => localizedValues["occupationNameEn"][locale.languageCode];
+
String get occupationNameAr => localizedValues["occupationNameAr"][locale.languageCode];
+
String get continueAgreeTerms => localizedValues["continueAgreeTerms"][locale.languageCode];
+
String get agreeText => localizedValues["agreeText"][locale.languageCode];
+
String get ERCheckInSuccess => localizedValues["ERCheckInSuccess"][locale.languageCode];
+
String get generalConsentTitle => localizedValues["generalConsentTitle"][locale.languageCode];
+
String get generalConsentSubTitle => localizedValues["generalConsentSubTitle"][locale.languageCode];
+
String get incorrectNationalId => localizedValues["incorrectNationalId"][locale.languageCode];
+
String get resultStatus => localizedValues["resultStatus"][locale.languageCode];
+
String get labResultFlag => localizedValues["labResultFlag"][locale.languageCode];
+
String get selectOccupation => localizedValues["selectOccupation"][locale.languageCode];
+
String get selectOccupationError => localizedValues["selectOccupationError"][locale.languageCode];
String get whatIsOnlineCheckIn => localizedValues["whatIsOnlineCheckIn"][locale.languageCode];
+
String get EROnlineCheckInDesc1 => localizedValues["EROnlineCheckInDesc1"][locale.languageCode];
+
String get EROnlineCheckInHow => localizedValues["EROnlineCheckInHow"][locale.languageCode];
+
String get EROnlineCheckInTapOn => localizedValues["EROnlineCheckInTapOn"][locale.languageCode];
+
String get EROnlineCheckInTapOnCheckIn => localizedValues["EROnlineCheckInTapOnCheckIn"][locale.languageCode];
+
String get EROnlineCheckInHoldPhone => localizedValues["EROnlineCheckInHoldPhone"][locale.languageCode];
+
String get EROnlineCheckInHoldPhoneInstruction => localizedValues["EROnlineCheckInHoldPhoneInstruction"][locale.languageCode];
+
String get EROnlineCheckInWaitTurn => localizedValues["EROnlineCheckInWaitTurn"][locale.languageCode];
+
String get EROnlineCheckInWaitTurnInstruction => localizedValues["EROnlineCheckInWaitTurnInstruction"][locale.languageCode];
String get download => localizedValues["download"][locale.languageCode];
- String get share => localizedValues["share"][locale.languageCode];
+ String get share => localizedValues["share"][locale.languageCode];
}
class TranslationBaseDelegate extends LocalizationsDelegate {
diff --git a/lib/uitl/utils.dart b/lib/uitl/utils.dart
index 2dc03b03..77059a65 100644
--- a/lib/uitl/utils.dart
+++ b/lib/uitl/utils.dart
@@ -41,6 +41,7 @@ import 'package:diplomaticquarterapp/pages/medical/vital_sign/vital_sign_details
import 'package:diplomaticquarterapp/pages/vaccine/my_vaccines_screen.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/alert_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/covid_consent_dialog.dart';
@@ -824,18 +825,25 @@ class Utils {
);
}
- static Widget tableColumnValue(String text, {bool isLast = false, bool isCapitable = true, bool isHighLow = false, required ProjectViewModel mProjectViewModel}) {
+ static Widget tableColumnValue(String text, {bool isLast = false, bool isCapitable = true, bool isHighLow = false, bool isCurrency = false, required ProjectViewModel mProjectViewModel}) {
ProjectViewModel projectViewModel = mProjectViewModel ?? Provider.of(AppGlobal.context);
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 12),
- Text(
- isCapitable && !projectViewModel.isArabic ? text.toLowerCase().capitalizeFirstofEach : text,
- maxLines: 2,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: isHighLow ? CustomColors.accentColor : Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
+ Row(
+ children: [
+ Expanded(
+ child: Text(
+ isCapitable && !projectViewModel.isArabic ? text.toLowerCase().capitalizeFirstofEach : text,
+ maxLines: 2,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: isHighLow ? CustomColors.accentColor : Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
+ ),
+ ),
+ isCurrency ? getSaudiRiyalSymbol() : Container(),
+ ],
),
SizedBox(height: 12),
if (!isLast)
@@ -963,6 +971,10 @@ class Utils {
return projectDetailListModel;
}
+ static Widget getSaudiRiyalSymbol({double fontSize = 16}) {
+ return Text(" SAR ", style: TextStyle(fontFamily: "SaudiRiyal", fontSize: fontSize));
+ }
+
//static String generateSignature() {}
}
@@ -1032,6 +1044,26 @@ extension StringExtension on String {
}
}
+extension TextToRichTextWithIcon on Text {
+ RichText toRichTextWithIcon() {
+ // Create the base TextSpan with the text data and style from the Text widget
+ return RichText(
+ text: TextSpan(
+ style: this.style, // Inherit the text style
+ children: [
+ WidgetSpan(
+ child: Text(" SAR ", style: TextStyle(fontFamily: "SaudiRiyal")),
+ ),
+ TextSpan(
+ text: this.data, // Add the original text
+ style: this.style, // Inherit the text style
+ ),
+ ],
+ ),
+ );
+ }
+}
+
/*
userBoard.asMap().map((i, element) => MapEntry(i, Stack(
GestureDetector(onTap: () {
diff --git a/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart
index 6ad54a8f..c492ee55 100644
--- a/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart
+++ b/lib/widgets/data_display/medical/LabResult/laboratory_result_widget.dart
@@ -67,6 +67,10 @@ class _LaboratoryResultWidgetState extends State {
widget.patientLabOrder!.actualDoctorRate!,
widget.patientLabOrder!.noOfPatientsRate!,
projectViewModel.user.emailAddress!),
+ buttonTitle: TranslationBase.of(context).downloadReport,
+ buttonIcon: "assets/images/new/download_1.svg",
+ showConfirmMessageDialog: false,
+ isDownload: true,
onTap: widget.onTap!,
),
SizedBox(height: 10),
diff --git a/lib/widgets/drawer/app_drawer_widget.dart b/lib/widgets/drawer/app_drawer_widget.dart
index f82047a5..a4dfe9aa 100644
--- a/lib/widgets/drawer/app_drawer_widget.dart
+++ b/lib/widgets/drawer/app_drawer_widget.dart
@@ -15,6 +15,8 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/models/Authentication/check_activation_code_response.dart';
import 'package:diplomaticquarterapp/models/Authentication/select_device_imei_res.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStatusResponse.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_info_response_model.dart';
+import 'package:diplomaticquarterapp/models/InPatientServices/get_admission_request_info_response_model.dart';
import 'package:diplomaticquarterapp/pages/Blood/user_agreement_page.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/notifications/notifications_page.dart';
import 'package:diplomaticquarterapp/pages/landing/landing_page.dart';
@@ -700,6 +702,42 @@ class _AppDrawerState extends State {
});
}
+ checkIfIsInPatient(BuildContext context) {
+ bool isAdmitted = false;
+ bool hasAdmissionRequest = false;
+ GetAdmissionInfoResponseModel getAdmissionInfoResponseModel;
+ GetAdmissionRequestInfoResponseModel getAdmissionRequestInfoResponseModel;
+ ClinicListService service = new ClinicListService();
+ service.checkIfInPatientAPI(context).then((res) {
+ if (res['MessageStatus'] == 1) {
+ isAdmitted = res['isAdmitted'];
+ hasAdmissionRequest = res['hasAdmissionRequests'];
+ print("IS ADMITTED: $isAdmitted");
+ print("Has Admission Request: $hasAdmissionRequest");
+ if (isAdmitted) {
+ if (res['PatientAdmittedInformation'].length != 0) {
+ getAdmissionInfoResponseModel = GetAdmissionInfoResponseModel.fromJson(res['PatientAdmittedInformation'][0]);
+ projectProvider?.setInPatientProjectID(res['PatientAdmittedInformation'][0]['ProjectID']);
+ projectProvider?.setInPatientAdmissionInfo(getAdmissionInfoResponseModel);
+ projectProvider?.setIsPatientAdmitted(true);
+ }
+ }
+ if (hasAdmissionRequest) {
+ if (res['MedicalInstruction'].length != 0) {
+ getAdmissionRequestInfoResponseModel = GetAdmissionRequestInfoResponseModel.fromJson(res['MedicalInstruction'][0]);
+ // projectViewModel.setInPatientProjectID(res['MedicalInstruction'][0]['ProjectID']);
+ projectProvider?.setInPatientProjectID(res['MedicalInstruction'][0]['projectId']);
+ projectProvider?.setInPatientAdmissionRequest(getAdmissionRequestInfoResponseModel);
+ projectProvider?.setPatientHasAdmissionRequest(true);
+ }
+ }
+ } else {}
+ }).catchError((err) {
+ projectProvider?.setIsPatientAdmitted(false);
+ projectProvider?.setPatientHasAdmissionRequest(false);
+ });
+ }
+
loginAfter(result, context, isMainUser) async {
Utils.hideProgressDialog();
String APNSToken = "";
@@ -741,6 +779,8 @@ class _AppDrawerState extends State {
await this.sharedPref.remove(APPOINTMENT_HISTORY_MEDICAL);
+ checkIfIsInPatient(context);
+
appointmentRateViewModel
.getIsLastAppointmentRatedList(languageID)
.then((value) => {
diff --git a/lib/widgets/new_design/doctor_header.dart b/lib/widgets/new_design/doctor_header.dart
index e3495561..11dd6724 100644
--- a/lib/widgets/new_design/doctor_header.dart
+++ b/lib/widgets/new_design/doctor_header.dart
@@ -25,6 +25,7 @@ class DoctorHeader extends StatelessWidget {
final String? buttonIcon;
final bool isNeedToShowButton;
final bool isShowName;
+ final bool isDownload;
DoctorHeader(
{Key? key,
@@ -35,6 +36,7 @@ class DoctorHeader extends StatelessWidget {
this.isShowName = false,
this.buttonIcon,
this.showConfirmMessageDialog = true,
+ this.isDownload = false,
this.onRatingAndReviewTap})
: super(key: key);
@@ -107,7 +109,9 @@ class DoctorHeader extends StatelessWidget {
if (headerModel.nationalityFlagURL != null)
Padding(
padding: const EdgeInsets.only(top: 8.0),
- child: headerModel.nationalityFlagURL.isNotEmpty && headerModel.nationalityFlagURL != null && headerModel.nationalityFlagURL != 'null'? Image.network(headerModel.nationalityFlagURL, height: 20) : SizedBox(),
+ child: headerModel.nationalityFlagURL.isNotEmpty && headerModel.nationalityFlagURL != null && headerModel.nationalityFlagURL != 'null'
+ ? Image.network(headerModel.nationalityFlagURL, height: 20)
+ : SizedBox(),
),
],
)
@@ -178,7 +182,8 @@ class DoctorHeader extends StatelessWidget {
child: Container(
padding: EdgeInsets.only(top: 10, bottom: 10, right: 15, left: 15),
decoration: BoxDecoration(
- color: Color(0XFFD02127), borderRadius: projectViewModel.isArabic ? BorderRadius.only(topRight: Radius.circular(10)) : BorderRadius.only(topLeft: Radius.circular(10))),
+ color: isDownload ? CustomColors.green : CustomColors.accentColor,
+ borderRadius: projectViewModel.isArabic ? BorderRadius.only(topRight: Radius.circular(10)) : BorderRadius.only(topLeft: Radius.circular(10))),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
diff --git a/pubspec.yaml b/pubspec.yaml
index f7ccd8f5..2abbf93f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,7 +1,7 @@
name: diplomaticquarterapp
description: A new Flutter application.
-version: 4.6.080+4050080
+version: 4.6.002+1
environment:
sdk: ">=3.0.0 <3.13.0"
@@ -279,6 +279,11 @@ flutter:
fonts:
- asset: assets/app_icons/fonts/DQIcons.ttf
+ - family: SaudiRiyal
+ fonts:
+# - asset: assets/fonts/saudi_riyal.ttf
+ - asset: assets/fonts/sar-Regular.otf
+
- family: Poppins
fonts:
- asset: assets/fonts/poppins/Poppins-Black.ttf