You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hmg_nurses/lib/provider/patient_provider_model.dart

81 lines
3.4 KiB
Dart

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<IPatientApiRepo>();
late GenericResponseModel searchedPatient;
late GenericResponseModel vitalSignHistory;
List<GetPatientFileInformationPrmList> 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;
}
}
}