From b1d0e360387bf67483c6b89bf8e4d696167c993c Mon Sep 17 00:00:00 2001 From: tahaalam Date: Mon, 6 Jul 2026 15:02:13 +0300 Subject: [PATCH] V4-59246 filter issue fixed --- lib/core/viewModel/PatientSearchViewModel.dart | 18 ++++++++++++++---- .../In_patient/in_patient_list_page.dart | 6 ++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/core/viewModel/PatientSearchViewModel.dart b/lib/core/viewModel/PatientSearchViewModel.dart index 0656f73f..fa5168a8 100644 --- a/lib/core/viewModel/PatientSearchViewModel.dart +++ b/lib/core/viewModel/PatientSearchViewModel.dart @@ -35,6 +35,9 @@ class PatientSearchViewModel extends BaseViewModel { List InpatientClinicList = []; + String myInPatientQuery = ""; + String allInPatientQuery = ""; + searchData(String str) { var strExist = str.length > 0 ? true : false; if (strExist) { @@ -136,6 +139,7 @@ class PatientSearchViewModel extends BaseViewModel { List mainList = []; List filteredInPatientItems = []; List filteredMyInPatientItems = []; + List mainMyInPatientItems = []; PatientSearchRequestModel? requestModel; bool isVidaPlusProject = false; bool paginationLoading = false; @@ -144,6 +148,7 @@ class PatientSearchViewModel extends BaseViewModel { void resetViewModel() { // 1. Clear all lists that hold patient data. mainList.clear(); + mainMyInPatientItems.clear(); filteredInPatientItems.clear(); filteredMyInPatientItems.clear(); _inPatientService.inPatientList.clear(); @@ -242,8 +247,9 @@ class PatientSearchViewModel extends BaseViewModel { filteredMyInPatientItems.clear(); filteredMyInPatientItems.addAll(localInPatient); } else if (isAllClinic) { + filteredInPatientItems.clear(); resetInPatientPagination(); - filteredInPatientItems.addAll(localInPatient.sublist(firstSubsetIndex, lastSubsetIndex)); + filteredInPatientItems.addAll(localInPatient); } else { filteredInPatientItems.clear(); filteredInPatientItems.addAll(localInPatient); @@ -272,6 +278,7 @@ class PatientSearchViewModel extends BaseViewModel { } if (myIinPatientList.length > 0) { + mainMyInPatientItems.addAll(myIinPatientList); filteredMyInPatientItems.addAll(myIinPatientList); } setState(ViewState.Idle); @@ -336,9 +343,12 @@ class PatientSearchViewModel extends BaseViewModel { void filterSearchResults(String query, {bool isAllClinic = false, bool isMyInPatient = false}) { var strExist = query.length > 0 ? true : false; - + if(isMyInPatient) + myInPatientQuery = query; + else + allInPatientQuery = query; if (isMyInPatient) { - List localFilteredMyInPatientItems = [...filteredMyInPatientItems]; + List localFilteredMyInPatientItems = [...myIinPatientList]; if (strExist) { filteredMyInPatientItems.clear(); @@ -355,7 +365,7 @@ class PatientSearchViewModel extends BaseViewModel { notifyListeners(); } else { if (filteredMyInPatientItems.length > 0) filteredMyInPatientItems.clear(); - filteredMyInPatientItems.addAll(localFilteredMyInPatientItems); + filteredMyInPatientItems.addAll(mainMyInPatientItems); notifyListeners(); } } else { diff --git a/lib/screens/patients/In_patient/in_patient_list_page.dart b/lib/screens/patients/In_patient/in_patient_list_page.dart index c5004a9e..a49d9453 100644 --- a/lib/screens/patients/In_patient/in_patient_list_page.dart +++ b/lib/screens/patients/In_patient/in_patient_list_page.dart @@ -44,6 +44,12 @@ class _InPatientListPageState extends State { super.dispose(); } + @override + void initState() { + _searchController.text = widget.isMyInPatient? widget.patientSearchViewModel!.myInPatientQuery : widget.patientSearchViewModel!.allInPatientQuery; + super.initState(); + } + @override Widget build(BuildContext context) { return AppScaffold(