referral lingual change

pull/255/head
tahaalam 15 hours ago
parent 1e65a67f0e
commit 66e23197c5

@ -1757,7 +1757,12 @@
"calculateCaloriesBasedOnFactors": "حساب السعرات الحرارية اليومية بناءً على عدة عوامل مثل الطول، الوزن، العمر، الجنس، والنشاط البدني اليومي.",
"conformationCall": "ستتلقى مكالمة لتأكيد طلبك قريباً.",
"radiologyLabResults": "نتائج الأشعة",
"disclaimerRadiology": "تم تحليل نتائج الأشعة هذه بواسطة الذكاء الاصطناعي، وهي لا تُعدّ نصيحة طبية. استشر طبيبك المختص للتشخيص والعلاج."
"disclaimerRadiology": "تم تحليل نتائج الأشعة هذه بواسطة الذكاء الاصطناعي، وهي لا تُعدّ نصيحة طبية. استشر طبيبك المختص للتشخيص والعلاج.",
"enterIdentificationNumberWithNoStar": "أدخل رقم الهوية",
"enterReferralNumber": "أدخل رقم الإحالة",
"referralNumber": "رقم الإحالة",
"phoneHint": "5xxxxxxxx",
"selectSearchCriteria": "اختر معيار البحث",
"selectCriteria": "اختيار المعيار"
}

@ -1745,8 +1745,13 @@
"insurance2": "Insurance",
"conformationCall": "You will receive a call from HMG for confirmation ",
"radiologyLabResults": "Radiology Results",
"disclaimerRadiology": "This radiology result was analyzed by AI, and it is not medical advice. Consult your healthcare provider for diagnosis and treatment."
"disclaimerRadiology": "This radiology result was analyzed by AI, and it is not medical advice. Consult your healthcare provider for diagnosis and treatment.",
"enterIdentificationNumberWithNoStar": "Enter Identification Number",
"enterReferralNumber": "Enter Referral Number",
"referralNumber": "Referral Number",
"phoneHint": "5xxxxxxxx",
"selectSearchCriteria": "Select the Search Criteria",
"selectCriteria": "Select Criteria"
}

@ -792,7 +792,6 @@ class EmergencyServicesViewModel extends ChangeNotifier {
allOrders.clear();
allOrders.addAll(ambulanceOrders ?? []);
allOrders.addAll(ordersRRT?.completedOrders ?? []);
_sortOrdersByDate(allOrders);
changeOrderDisplayItems(OrderDislpay.ALL);
notifyListeners();
},
@ -967,7 +966,6 @@ class EmergencyServicesViewModel extends ChangeNotifier {
allOrders.clear();
allOrders.addAll(ambulanceOrders ?? []);
allOrders.addAll(ordersRRT?.completedOrders ?? []);
_sortOrdersByDate(allOrders);
changeOrderDisplayItems(OrderDislpay.ALL);
notifyListeners();
},
@ -996,32 +994,38 @@ class EmergencyServicesViewModel extends ChangeNotifier {
this.currentlyDisplayedOrder = currentlyDisplayedOrder;
switch (currentlyDisplayedOrder) {
case OrderDislpay.ALL:
orderDisplayList = allOrders;
orderDisplayList = List.from(allOrders);
break;
case OrderDislpay.RRT:
orderDisplayList = ordersRRT?.completedOrders ?? [];
orderDisplayList = List.from(ordersRRT?.completedOrders ?? []);
break;
case OrderDislpay.AMBULANCE:
orderDisplayList = ambulanceOrders ?? [];
orderDisplayList = List.from(ambulanceOrders ?? []);
break;
}
_sortOrdersByDate(orderDisplayList);
orderDisplayList = _sortOrdersByDate(orderDisplayList);
notifyListeners();
}
void _sortOrdersByDate(List list) {
List _sortOrdersByDate(List list) {
list.sort((a, b) {
final String? dateA = _getCreatedDate(a);
final String? dateB = _getCreatedDate(b);
final bool hasDateA = dateA != null && dateA.contains('/Date(');
final bool hasDateB = dateB != null && dateB.contains('/Date(');
if (!hasDateA && !hasDateB) return 0;
if (!hasDateA) return 1;
if (!hasDateB) return -1;
final parsedA = DateUtil.convertStringToDate(dateA);
final parsedB = DateUtil.convertStringToDate(dateB);
return parsedB.compareTo(parsedA);
final DateTime? dateA = _parseCreatedDate(a);
final DateTime? dateB = _parseCreatedDate(b);
print("the dateA is $dateA and dateB is $dateB");
if (dateA == null && dateB == null) return 0;
if (dateA == null) return 1;
if (dateB == null) return -1;
return dateB.compareTo(dateA);
});
return list;
}
DateTime? _parseCreatedDate(dynamic order) {
final String? raw = _getCreatedDate(order);
return DateTime.tryParse(raw??"");
}
String? _getCreatedDate(dynamic order) {

@ -1748,5 +1748,11 @@ abstract class LocaleKeys {
static const conformationCall = 'conformationCall';
static const radiologyLabResults = 'radiologyLabResults';
static const disclaimerRadiology = 'disclaimerRadiology';
static const enterIdentificationNumberWithNoStar = 'enterIdentificationNumberWithNoStar';
static const enterReferralNumber = 'enterReferralNumber';
static const referralNumber = 'referralNumber';
static const phoneHint = 'phoneHint';
static const selectSearchCriteria = 'selectSearchCriteria';
static const selectCriteria = 'selectCriteria';
}

@ -193,7 +193,7 @@ class _NewReferralPageState extends State<NewReferralPage> {
children: List.generate(3, (index) {
// Fill current step and all previous completed steps
if (index <= _currentStep) {
return StepperWidget(widthOfOneState, AppColors.primaryRedColor, true, 4.h);
return StepperWidget(widthOfOneState, AppColors.primaryRedColor, index == _currentStep, 4.h);
} else {
return StepperWidget(widthOfOneState, AppColors.greyLightColor, false, 4.h);
}

@ -142,8 +142,8 @@ class _OtherDetailsStepState extends State<OtherDetailsStep> {
Widget _buildBranchField(BuildContext context, ReferralFormManager formManager) {
return DropdownWidget(
labelText: 'Branch',
hintText: formManager.formData.branch?.desciption ?? "Select Branch",
labelText: LocaleKeys.branch.tr(),
hintText: formManager.formData.branch?.desciption ?? LocaleKeys.selectBranch.tr(),
isEnable: false,
hasSelectionCustomIcon: true,
labelColor: Colors.black,

@ -2,9 +2,11 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
import 'package:hmg_patient_app_new/core/app_export.dart';
import 'package:hmg_patient_app_new/core/app_state.dart';
import 'package:hmg_patient_app_new/core/utils/validation_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/features/hmg_services/models/resq_models/get_all_cities_resp_model.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/e_referral/e_referral_form_manager.dart';
import 'package:provider/provider.dart';
@ -14,6 +16,8 @@ import 'package:hmg_patient_app_new/widgets/dropdown/dropdown_widget.dart';
import 'package:hmg_patient_app_new/widgets/input_widget.dart';
import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart';
import '../../../core/dependencies.dart' show getIt;
class PatientInformationStep extends StatefulWidget {
const PatientInformationStep({super.key});
@ -171,8 +175,8 @@ class PatientInformationStepState extends State<PatientInformationStep> {
Widget _buildPatientCityField(BuildContext context, ReferralFormManager formManager) {
return DropdownWidget(
labelText: 'City',
hintText: formManager.formData.patientCity?.description ?? LocaleKeys.selectCity.tr(context: context),
labelText: LocaleKeys.city.tr(),
hintText: getLocaleDescription(formManager.formData.patientCity) ?? LocaleKeys.selectCity.tr(context: context),
isEnable: false,
hasSelectionCustomIcon: true,
labelColor: Colors.black,
@ -187,6 +191,10 @@ class PatientInformationStepState extends State<PatientInformationStep> {
});
}
String? getLocaleDescription(GetAllCitiesResponseModel? patientCity){
return getIt.get<AppState>().isArabic() ? patientCity?.descriptionN: patientCity?.description;
}
void _showCityBottomSheet(BuildContext context, ReferralFormManager formManager) {
@ -217,7 +225,7 @@ class PatientInformationStepState extends State<PatientInformationStep> {
itemBuilder: (context, index) {
final city = cities[index];
return ListTile(
title: (city.description ?? 'Unknown').toText14(),
title: (getLocaleDescription(city) ?? 'Unknown').toText14(),
onTap: () {
formManager.updatePatientCity(city);
Navigator.pop(context);

@ -116,9 +116,9 @@ class RequesterFormStepState extends State<RequesterFormStep> {
Widget _buildRelationshipField(BuildContext context, ReferralFormManager formManager) {
return DropdownWidget(
labelText: LocaleKeys.relationship.tr(context: context),
hintText: formManager.formData.relationship?.textEn ?? LocaleKeys.selectRelation.tr(context: context),
hintText: formManager.formData.relationship?.text ?? LocaleKeys.selectRelation.tr(context: context),
isEnable: false,
selectedValue: formManager.formData.relationship?.textEn ?? LocaleKeys.selectRelation.tr(context: context),
selectedValue: formManager.formData.relationship?.text ?? LocaleKeys.selectRelation.tr(context: context),
errorMessage: formManager.errors.relationship,
hasError: !ValidationUtils.isNullOrEmpty(formManager.errors.relationship),
hasSelectionCustomIcon: false,
@ -182,7 +182,7 @@ class RequesterFormStepState extends State<RequesterFormStep> {
itemBuilder: (context, index) {
final relationship = hmgServicesVM.relationTypes[index];
return ListTile(
title:relationship.textEn?.toText14(),
title:relationship.text?.toText14(),
onTap: () {
formManager.updateRelationship(relationship);
Navigator.pop(context);

@ -1,6 +1,9 @@
import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:hmg_patient_app_new/core/app_export.dart';
import 'package:hmg_patient_app_new/core/utils/validation_utils.dart';
import 'package:hmg_patient_app_new/extensions/widget_extensions.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/presentation/e_referral/e_referral_form_manager.dart';
import 'package:provider/provider.dart';
import 'package:hmg_patient_app_new/core/app_assets.dart';
@ -69,12 +72,13 @@ class SearchEReferralFormFormState extends State<SearchEReferralFormForm> {
autofocus: true,
child: TextInputWidget(
controller: _searchController,
padding: const EdgeInsets.symmetric(horizontal: 16.0),
hintText: formManager.searchCriteria == 0 ? "Enter Identification Number" : "Enter Referral Number",
labelText: formManager.searchCriteria == 0 ? "Identification Number" : "Referral Number",
hintText: formManager.searchCriteria == 0 ? LocaleKeys.enterIdentificationNumber.tr() : LocaleKeys.enterReferralNumber.tr(),
labelText: formManager.searchCriteria == 0 ? LocaleKeys.identificationNumber.tr() : LocaleKeys.referralNumber.tr(),
keyboardType: TextInputType.number,
fontFamily: "Poppins",
errorMessage: formManager.errors.searchValue,
padding: EdgeInsets.symmetric(vertical: 14.h, horizontal: 16.h),
hasError: !ValidationUtils.isNullOrEmpty(formManager.errors.searchValue),
onChange: (value) {
formManager.updateSearchValue(value ?? '');
@ -90,10 +94,10 @@ class SearchEReferralFormFormState extends State<SearchEReferralFormForm> {
autofocus: false,
child: TextInputWidget(
autoFocus: false,
labelText: 'Phone Number',
hintText: "5xxxxxxxx",
labelText: LocaleKeys.phoneNumber.tr(),
hintText: LocaleKeys.phoneHint.tr(),
controller: _phoneController,
padding: const EdgeInsets.all(8),
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
keyboardType: TextInputType.number,
fontFamily: "Poppins",
onChange: (value) {
@ -122,8 +126,8 @@ class SearchEReferralFormFormState extends State<SearchEReferralFormForm> {
Widget _buildSelectionField(BuildContext context, ReferralFormManager formManager) {
return DropdownWidget(
labelText: "Select the Search Criteria",
hintText: formManager.searchCriteria == 0 ? "Identification Number" : "Referral Number",
labelText: LocaleKeys.selectCriteria.tr(),
hintText: formManager.searchCriteria == 0 ? LocaleKeys.identificationNumber.tr() : LocaleKeys.referralNumber.tr(),
isEnable: false,
hasSelectionCustomIcon: false,
labelColor: Colors.black,
@ -137,13 +141,13 @@ class SearchEReferralFormFormState extends State<SearchEReferralFormForm> {
void _showCriteriaBottomSheet(BuildContext context, ReferralFormManager formManager) {
final criteriaList = [
{0: 'Identification Number'},
{1: 'Referral Number'},
{0: LocaleKeys.identificationNumber.tr()},
{1: LocaleKeys.referralNumber.tr()},
];
showCommonBottomSheetWithoutHeight(
context,
title: "Select Criteria",
title: LocaleKeys.selectCriteria.tr(),
child: ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),

Loading…
Cancel
Save