import 'package:flutter/material.dart'; import 'package:hmg_nurses/classes/utils.dart'; import 'package:hmg_nurses/config/app_state.dart'; import 'package:hmg_nurses/config/routes.dart'; import 'package:hmg_nurses/main.dart'; import 'package:hmg_nurses/model/base/generic_response_model.dart'; import 'package:hmg_nurses/model/patient/patient_file_information_prm_list.dart'; import 'package:hmg_nurses/provider/base_vm.dart'; import 'package:hmg_nurses/services/api_repo/patient_api_repo.dart'; import 'package:injector/injector.dart'; class PatientProviderModel extends BaseViewModel { final IPatientApiRepo _patientApiRepo = Injector.appInstance.get(); late GenericResponseModel searchedPatient; late GenericResponseModel vitalSignHistory; List filteredPatientsList = []; searchPatient(int patientId) async { try { Utils.showLoading(); searchedPatient = await _patientApiRepo.getPatientInfo(patientId); Utils.showToast(searchedPatient.getPatientFileInformationPrmList!.length.toString()); filteredPatientsList.addAll(searchedPatient.getPatientFileInformationPrmList!); Utils.hideLoading(); Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId); return true; } catch (e) { Utils.hideLoading(); Utils.handleException(e, navigatorKey.currentContext!, (msg) { Utils.confirmDialog(navigatorKey.currentContext!, msg); }); return false; } } filterPatient(String str) { var strExist = str.length > 0 ? true : false; if (strExist) { filteredPatientsList = []; for (var i = 0; i < searchedPatient.getPatientFileInformationPrmList!.length; i++) { String firstName = searchedPatient.getPatientFileInformationPrmList![i].firstName!.toUpperCase(); String lastName = searchedPatient.getPatientFileInformationPrmList![i].lastName!.toUpperCase(); String mobile = searchedPatient.getPatientFileInformationPrmList![i].mobileNumber!.toUpperCase(); String patientID = searchedPatient.getPatientFileInformationPrmList![i].patientId.toString(); if (firstName.contains(str.toUpperCase()) || lastName.contains(str.toUpperCase()) || mobile.contains(str) || patientID.contains(str)) { filteredPatientsList.add(searchedPatient.getPatientFileInformationPrmList![i]); } } notifyListeners(); } else { filteredPatientsList = searchedPatient.getPatientFileInformationPrmList!; notifyListeners(); } } fetchVitalSignsHistory(GetPatientFileInformationPrmList patient) async { try { Utils.showLoading(); vitalSignHistory = await _patientApiRepo.getVitalSigns( patientID: patient.patientId, patientTypeID: patient.patientType, inOutPatientType: 0, isDentalAllowedBackend: false, doctorID: appState.employeeId, setupID: appState.setupId, patientType: patient.patientType); Utils.showToast(vitalSignHistory.listDoctorPatientVitalSign!.length.toString()); Utils.hideLoading(); // Navigator.pushNamed(navigatorKey.currentContext!, AppRoutes.searchedFor, arguments: patientId); return true; } catch (e) { Utils.hideLoading(); Utils.handleException(e, navigatorKey.currentContext!, (msg) { Utils.confirmDialog(navigatorKey.currentContext!, msg); }); return false; } } }