fix some issues
parent
e165ec5b1d
commit
65d04b2d0f
@ -0,0 +1,51 @@
|
||||
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/patient_type.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient/out_patient_service.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient/patientInPatientService.dart';
|
||||
import 'package:doctor_app_flutter/core/service/special_clinics/special_clinic_service.dart';
|
||||
import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart';
|
||||
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/util/date-utils.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
|
||||
|
||||
|
||||
class PharmacyInterventionViewModel extends BaseViewModel {
|
||||
OutPatientService _outPatientService = locator<OutPatientService>();
|
||||
SpecialClinicsService _specialClinicsService =
|
||||
locator<SpecialClinicsService>();
|
||||
|
||||
List<PatiantInformtion> get patientList => _outPatientService.patientList;
|
||||
|
||||
List<GetSpecialClinicalCareMappingListResponseModel>
|
||||
get specialClinicalCareMappingList =>
|
||||
_specialClinicsService.specialClinicalCareMappingList;
|
||||
|
||||
List<PatiantInformtion> filterData = [];
|
||||
|
||||
DateTime selectedFromDate;
|
||||
DateTime selectedToDate;
|
||||
|
||||
int firstSubsetIndex = 0;
|
||||
int inPatientPageSize = 20;
|
||||
int lastSubsetIndex = 20;
|
||||
|
||||
List<String> InpatientClinicList = [];
|
||||
|
||||
|
||||
PatientInPatientService _inPatientService =
|
||||
locator<PatientInPatientService>();
|
||||
|
||||
List<PatiantInformtion> get inPatientList => _inPatientService.inPatientList;
|
||||
|
||||
List<PatiantInformtion> get myIinPatientList =>
|
||||
_inPatientService.myInPatientList;
|
||||
|
||||
List<PatiantInformtion> filteredInPatientItems = List();
|
||||
List<PatiantInformtion> filteredMyInPatientItems = List();
|
||||
|
||||
}
|
@ -1,464 +0,0 @@
|
||||
import 'package:doctor_app_flutter/core/enum/filter_type.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/patient_type.dart';
|
||||
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||
import 'package:doctor_app_flutter/core/model/patient_muse/PatientSearchRequestModel.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient/out_patient_service.dart';
|
||||
import 'package:doctor_app_flutter/core/service/patient/patientInPatientService.dart';
|
||||
import 'package:doctor_app_flutter/core/service/special_clinics/special_clinic_service.dart';
|
||||
import 'package:doctor_app_flutter/models/dashboard/get_special_clinical_care_mapping_List_Respose_Model.dart';
|
||||
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
||||
import 'package:doctor_app_flutter/util/date-utils.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
import '../base_view_model.dart';
|
||||
|
||||
|
||||
|
||||
class SearchMedicationViewModel extends BaseViewModel {
|
||||
OutPatientService _outPatientService = locator<OutPatientService>();
|
||||
SpecialClinicsService _specialClinicsService =
|
||||
locator<SpecialClinicsService>();
|
||||
|
||||
List<PatiantInformtion> get patientList => _outPatientService.patientList;
|
||||
|
||||
List<GetSpecialClinicalCareMappingListResponseModel>
|
||||
get specialClinicalCareMappingList =>
|
||||
_specialClinicsService.specialClinicalCareMappingList;
|
||||
|
||||
List<PatiantInformtion> filterData = [];
|
||||
|
||||
DateTime selectedFromDate;
|
||||
DateTime selectedToDate;
|
||||
|
||||
int firstSubsetIndex = 0;
|
||||
int inPatientPageSize = 20;
|
||||
int lastSubsetIndex = 20;
|
||||
|
||||
List<String> InpatientClinicList = [];
|
||||
|
||||
searchData(String str) {
|
||||
var strExist = str.length > 0 ? true : false;
|
||||
if (strExist) {
|
||||
filterData = [];
|
||||
for (var i = 0; i < _outPatientService.patientList.length; i++) {
|
||||
String firstName =
|
||||
_outPatientService.patientList[i].firstName.toUpperCase();
|
||||
String lastName =
|
||||
_outPatientService.patientList[i].lastName.toUpperCase();
|
||||
String mobile =
|
||||
_outPatientService.patientList[i].mobileNumber.toUpperCase();
|
||||
String patientID =
|
||||
_outPatientService.patientList[i].patientId.toString();
|
||||
|
||||
if (firstName.contains(str.toUpperCase()) ||
|
||||
lastName.contains(str.toUpperCase()) ||
|
||||
mobile.contains(str) ||
|
||||
patientID.contains(str)) {
|
||||
filterData.add(_outPatientService.patientList[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
} else {
|
||||
filterData = _outPatientService.patientList;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
getOutPatient(PatientSearchRequestModel patientSearchRequestModel,
|
||||
{bool isLocalBusy = false}) async {
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.BusyLocal);
|
||||
} else {
|
||||
setState(ViewState.Busy);
|
||||
}
|
||||
await getDoctorProfile(isGetProfile: true);
|
||||
patientSearchRequestModel.doctorID = doctorProfile.doctorID;
|
||||
await _outPatientService.getOutPatient(patientSearchRequestModel);
|
||||
if (_outPatientService.hasError) {
|
||||
error = _outPatientService.error;
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.ErrorLocal);
|
||||
} else {
|
||||
setState(ViewState.Error);
|
||||
}
|
||||
} else {
|
||||
filterData = _outPatientService.patientList;
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
sortOutPatient({bool isDes = false}) {
|
||||
if (isDes)
|
||||
filterData = filterData.reversed.toList();
|
||||
else
|
||||
filterData = filterData.reversed.toList();
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
getPatientFileInformation(PatientSearchRequestModel patientSearchRequestModel,
|
||||
{bool isLocalBusy = false}) async {
|
||||
setState(ViewState.Busy);
|
||||
await _outPatientService
|
||||
.getPatientFileInformation(patientSearchRequestModel);
|
||||
if (_outPatientService.hasError) {
|
||||
error = _outPatientService.error;
|
||||
setState(ViewState.Error);
|
||||
} else {
|
||||
filterData = _outPatientService.patientList;
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
getPatientBasedOnDate(
|
||||
{item,
|
||||
PatientSearchRequestModel patientSearchRequestModel,
|
||||
PatientType selectedPatientType,
|
||||
bool isSearchWithKeyInfo,
|
||||
OutPatientFilterType outPatientFilterType}) async {
|
||||
String dateTo;
|
||||
String dateFrom;
|
||||
if (OutPatientFilterType.Previous == outPatientFilterType) {
|
||||
selectedFromDate = DateTime(
|
||||
DateTime.now().year, DateTime.now().month - 1, DateTime.now().day);
|
||||
selectedToDate = DateTime(
|
||||
DateTime.now().year, DateTime.now().month, DateTime.now().day - 1);
|
||||
dateTo = AppDateUtils.convertDateToFormat(selectedToDate, 'yyyy-MM-dd');
|
||||
dateFrom =
|
||||
AppDateUtils.convertDateToFormat(selectedFromDate, 'yyyy-MM-dd');
|
||||
} else if (OutPatientFilterType.NextWeek == outPatientFilterType) {
|
||||
dateTo = AppDateUtils.convertDateToFormat(
|
||||
DateTime(DateTime.now().year, DateTime.now().month,
|
||||
DateTime.now().day + 6),
|
||||
'yyyy-MM-dd');
|
||||
|
||||
dateFrom = AppDateUtils.convertDateToFormat(
|
||||
DateTime(DateTime.now().year, DateTime.now().month,
|
||||
DateTime.now().day + 1),
|
||||
'yyyy-MM-dd');
|
||||
} else {
|
||||
dateFrom = AppDateUtils.convertDateToFormat(
|
||||
DateTime(
|
||||
DateTime.now().year, DateTime.now().month, DateTime.now().day),
|
||||
'yyyy-MM-dd');
|
||||
dateTo = AppDateUtils.convertDateToFormat(
|
||||
DateTime(
|
||||
DateTime.now().year, DateTime.now().month, DateTime.now().day),
|
||||
'yyyy-MM-dd');
|
||||
}
|
||||
PatientSearchRequestModel currentModel = PatientSearchRequestModel();
|
||||
currentModel.patientID = patientSearchRequestModel.patientID;
|
||||
currentModel.firstName = patientSearchRequestModel.firstName;
|
||||
currentModel.lastName = patientSearchRequestModel.lastName;
|
||||
currentModel.middleName = patientSearchRequestModel.middleName;
|
||||
currentModel.doctorID = patientSearchRequestModel.doctorID;
|
||||
currentModel.from = dateFrom;
|
||||
currentModel.to = dateTo;
|
||||
await getOutPatient(currentModel, isLocalBusy: true);
|
||||
filterData = _outPatientService.patientList;
|
||||
}
|
||||
|
||||
PatientInPatientService _inPatientService =
|
||||
locator<PatientInPatientService>();
|
||||
|
||||
List<PatiantInformtion> get inPatientList => _inPatientService.inPatientList;
|
||||
|
||||
List<PatiantInformtion> get myIinPatientList =>
|
||||
_inPatientService.myInPatientList;
|
||||
|
||||
List<PatiantInformtion> filteredInPatientItems = List();
|
||||
List<PatiantInformtion> filteredMyInPatientItems = List();
|
||||
|
||||
Future getInPatientList(PatientSearchRequestModel requestModel,
|
||||
{bool isMyInpatient = false, bool isLocalBusy = false}) async {
|
||||
await getDoctorProfile();
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.BusyLocal);
|
||||
} else {
|
||||
setState(ViewState.Busy);
|
||||
}
|
||||
if (inPatientList.length == 0)
|
||||
await _inPatientService.getInPatientList(requestModel, false);
|
||||
if (_inPatientService.hasError) {
|
||||
error = _inPatientService.error;
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.ErrorLocal);
|
||||
} else {
|
||||
setState(ViewState.Error);
|
||||
}
|
||||
} else {
|
||||
setDefaultInPatientList();
|
||||
generateInpatientClinicList();
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
sortInPatient({bool isDes = false, bool isAllClinic, bool isMyInPatient}) {
|
||||
if (isMyInPatient
|
||||
? myIinPatientList.length > 0
|
||||
: isAllClinic
|
||||
? inPatientList.length > 0
|
||||
: filteredInPatientItems.length > 0) {
|
||||
List<PatiantInformtion> localInPatient = isMyInPatient
|
||||
? [...filteredMyInPatientItems]
|
||||
: isAllClinic
|
||||
? [...inPatientList]
|
||||
: [...filteredInPatientItems];
|
||||
if (isDes)
|
||||
localInPatient.sort((PatiantInformtion a, PatiantInformtion b) => b
|
||||
.admissionDateWithDateTimeForm
|
||||
.compareTo(a.admissionDateWithDateTimeForm));
|
||||
else
|
||||
localInPatient.sort((PatiantInformtion a, PatiantInformtion b) => a
|
||||
.admissionDateWithDateTimeForm
|
||||
.compareTo(b.admissionDateWithDateTimeForm));
|
||||
if (isMyInPatient) {
|
||||
filteredMyInPatientItems.clear();
|
||||
filteredMyInPatientItems.addAll(localInPatient);
|
||||
} else if (isAllClinic) {
|
||||
resetInPatientPagination();
|
||||
filteredInPatientItems
|
||||
.addAll(localInPatient.sublist(firstSubsetIndex, lastSubsetIndex));
|
||||
} else {
|
||||
filteredInPatientItems.clear();
|
||||
filteredInPatientItems.addAll(localInPatient);
|
||||
}
|
||||
}
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
resetInPatientPagination() {
|
||||
filteredInPatientItems.clear();
|
||||
firstSubsetIndex = 0;
|
||||
lastSubsetIndex = inPatientPageSize - 1;
|
||||
}
|
||||
|
||||
Future setDefaultInPatientList() async {
|
||||
setState(ViewState.BusyLocal);
|
||||
await getDoctorProfile();
|
||||
resetInPatientPagination();
|
||||
if (inPatientList.length > 0) {
|
||||
lastSubsetIndex = (inPatientList.length < inPatientPageSize - 1
|
||||
? inPatientList.length
|
||||
: inPatientPageSize - 1);
|
||||
|
||||
filteredInPatientItems
|
||||
.addAll(inPatientList.sublist(firstSubsetIndex, lastSubsetIndex));
|
||||
}
|
||||
|
||||
if (myIinPatientList.length > 0) {
|
||||
filteredMyInPatientItems.addAll(myIinPatientList);
|
||||
}
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
|
||||
generateInpatientClinicList() {
|
||||
InpatientClinicList.clear();
|
||||
inPatientList.forEach((element) {
|
||||
if (!InpatientClinicList.contains(element.clinicDescription)) {
|
||||
InpatientClinicList.add(element.clinicDescription);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
addOnFilteredList() {
|
||||
if (lastSubsetIndex < inPatientList.length) {
|
||||
firstSubsetIndex = firstSubsetIndex +
|
||||
(inPatientList.length - lastSubsetIndex < inPatientPageSize - 1
|
||||
? inPatientList.length - lastSubsetIndex
|
||||
: inPatientPageSize - 1);
|
||||
lastSubsetIndex = lastSubsetIndex +
|
||||
(inPatientList.length - lastSubsetIndex < inPatientPageSize - 1
|
||||
? inPatientList.length - lastSubsetIndex
|
||||
: inPatientPageSize - 1);
|
||||
filteredInPatientItems
|
||||
.addAll(inPatientList.sublist(firstSubsetIndex, lastSubsetIndex));
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
removeOnFilteredList() {
|
||||
if (lastSubsetIndex - inPatientPageSize - 1 > 0) {
|
||||
filteredInPatientItems.removeAt(lastSubsetIndex - inPatientPageSize - 1);
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
|
||||
filterByHospital({int hospitalId}) {
|
||||
filteredInPatientItems = [];
|
||||
for (var i = 0; i < inPatientList.length; i++) {
|
||||
if (inPatientList[i].projectId == hospitalId) {
|
||||
filteredInPatientItems.add(inPatientList[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
filterByClinic({String clinicName}) {
|
||||
filteredInPatientItems = [];
|
||||
for (var i = 0; i < inPatientList.length; i++) {
|
||||
if (inPatientList[i].clinicDescription == clinicName) {
|
||||
filteredInPatientItems.add(inPatientList[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void clearPatientList() {
|
||||
_inPatientService.inPatientList = [];
|
||||
_inPatientService.myInPatientList = [];
|
||||
}
|
||||
|
||||
void filterSearchResults(String query,
|
||||
{bool isAllClinic, bool isMyInPatient}) {
|
||||
var strExist = query.length > 0 ? true : false;
|
||||
|
||||
if (isMyInPatient) {
|
||||
List<PatiantInformtion> localFilteredMyInPatientItems = [
|
||||
...myIinPatientList
|
||||
];
|
||||
|
||||
if (strExist) {
|
||||
filteredMyInPatientItems.clear();
|
||||
for (var i = 0; i < localFilteredMyInPatientItems.length; i++) {
|
||||
String firstName =
|
||||
localFilteredMyInPatientItems[i].firstName.toUpperCase();
|
||||
String lastName =
|
||||
localFilteredMyInPatientItems[i].lastName.toUpperCase();
|
||||
String mobile =
|
||||
localFilteredMyInPatientItems[i].mobileNumber.toUpperCase();
|
||||
String patientID =
|
||||
localFilteredMyInPatientItems[i].patientId.toString();
|
||||
|
||||
if (firstName.contains(query.toUpperCase()) ||
|
||||
lastName.contains(query.toUpperCase()) ||
|
||||
mobile.contains(query) ||
|
||||
patientID.contains(query)) {
|
||||
filteredMyInPatientItems.add(localFilteredMyInPatientItems[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
} else {
|
||||
if (myIinPatientList.length > 0) filteredMyInPatientItems.clear();
|
||||
filteredMyInPatientItems.addAll(myIinPatientList);
|
||||
notifyListeners();
|
||||
}
|
||||
} else {
|
||||
if (isAllClinic) {
|
||||
if (strExist) {
|
||||
filteredInPatientItems = [];
|
||||
for (var i = 0; i < inPatientList.length; i++) {
|
||||
String firstName = inPatientList[i].firstName.toUpperCase();
|
||||
String lastName = inPatientList[i].lastName.toUpperCase();
|
||||
String mobile = inPatientList[i].mobileNumber.toUpperCase();
|
||||
String patientID = inPatientList[i].patientId.toString();
|
||||
|
||||
if (firstName.contains(query.toUpperCase()) ||
|
||||
lastName.contains(query.toUpperCase()) ||
|
||||
mobile.contains(query) ||
|
||||
patientID.contains(query)) {
|
||||
filteredInPatientItems.add(inPatientList[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
} else {
|
||||
if (inPatientList.length > 0) filteredInPatientItems.clear();
|
||||
filteredInPatientItems.addAll(inPatientList);
|
||||
notifyListeners();
|
||||
}
|
||||
} else {
|
||||
List<PatiantInformtion> localFilteredInPatientItems = [
|
||||
...filteredInPatientItems
|
||||
];
|
||||
|
||||
if (strExist) {
|
||||
filteredInPatientItems.clear();
|
||||
for (var i = 0; i < localFilteredInPatientItems.length; i++) {
|
||||
String firstName =
|
||||
localFilteredInPatientItems[i].firstName.toUpperCase();
|
||||
String lastName =
|
||||
localFilteredInPatientItems[i].lastName.toUpperCase();
|
||||
String mobile =
|
||||
localFilteredInPatientItems[i].mobileNumber.toUpperCase();
|
||||
String patientID =
|
||||
localFilteredInPatientItems[i].patientId.toString();
|
||||
|
||||
if (firstName.contains(query.toUpperCase()) ||
|
||||
lastName.contains(query.toUpperCase()) ||
|
||||
mobile.contains(query) ||
|
||||
patientID.contains(query)) {
|
||||
filteredInPatientItems.add(localFilteredInPatientItems[i]);
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
} else {
|
||||
if (localFilteredInPatientItems.length > 0)
|
||||
filteredInPatientItems.clear();
|
||||
filteredInPatientItems.addAll(localFilteredInPatientItems);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getSpecialClinicalCareMappingList(clinicId,
|
||||
{bool isLocalBusy = false}) async {
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.BusyLocal);
|
||||
} else {
|
||||
setState(ViewState.Busy);
|
||||
}
|
||||
await _specialClinicsService.getSpecialClinicalCareMappingList(clinicId);
|
||||
if (_specialClinicsService.hasError) {
|
||||
error = _specialClinicsService.error;
|
||||
if (isLocalBusy) {
|
||||
setState(ViewState.ErrorLocal);
|
||||
} else {
|
||||
setState(ViewState.Error);
|
||||
}
|
||||
} else {
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
||||
// import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_req_model.dart';
|
||||
// import 'package:doctor_app_flutter/core/model/vte_assessment/vte_assessment_res_model.dart';
|
||||
// import 'package:doctor_app_flutter/core/service/patient/profile/discharge_summary_servive.dart';
|
||||
// import 'package:doctor_app_flutter/core/service/patient/profile/vte_assessment_service.dart';
|
||||
// import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
||||
// import 'package:doctor_app_flutter/locator.dart';
|
||||
// import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryReqModel.dart';
|
||||
// import 'package:doctor_app_flutter/models/discharge_summary/GetDischargeSummaryResModel.dart';
|
||||
// import 'package:doctor_app_flutter/screens/patients/profile/new-medication-model/new_medication_res_model.dart';
|
||||
//
|
||||
// import '../../service/patient/profile/intervention_medication_service.dart';
|
||||
//
|
||||
// class SearchMedicationViewModel extends BaseViewModel {
|
||||
// bool hasError = false;
|
||||
// InterventionMedicationService _interventionMedicationService =
|
||||
// locator<InterventionMedicationService>();
|
||||
//
|
||||
// List<InterventionMedicationResModel> get allVteHistoryList =>
|
||||
// _interventionMedicationService.allVteHistoryList;
|
||||
//
|
||||
// Future getVteAssessment({
|
||||
// int patientId,
|
||||
// int admissionNo,
|
||||
// }) async {
|
||||
// VteAssessmentRequestModel vteAssessmentRequestModel =
|
||||
// VteAssessmentRequestModel(
|
||||
// transactionNo: admissionNo);
|
||||
// hasError = false;
|
||||
// setState(ViewState.Busy);
|
||||
// await _interventionMedicationService.getVteAssessment(
|
||||
// vteAssessmentRequestModel: vteAssessmentRequestModel);
|
||||
// if (_interventionMedicationService.hasError) {
|
||||
// error = _interventionMedicationService.error;
|
||||
// setState(ViewState.ErrorLocal);
|
||||
// } else {
|
||||
// setState(ViewState.Idle);
|
||||
// }
|
||||
// }
|
||||
// }
|
Loading…
Reference in New Issue