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.
143 lines
5.0 KiB
Dart
143 lines
5.0 KiB
Dart
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
|
|
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
|
|
import 'package:doctor_app_flutter/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart';
|
|
import 'package:doctor_app_flutter/core/service/home/dasboard_service.dart';
|
|
import 'package:doctor_app_flutter/core/service/patient/LiveCarePatientServices.dart';
|
|
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/end_call_req.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/start_call_req.dart';
|
|
import 'package:doctor_app_flutter/models/livecare/start_call_res.dart';
|
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
|
|
|
import '../../locator.dart';
|
|
|
|
class LiveCarePatientViewModel extends BaseViewModel {
|
|
List<PatiantInformtion> filterData = [];
|
|
|
|
LiveCarePatientServices _liveCarePatientServices =
|
|
locator<LiveCarePatientServices>();
|
|
|
|
StartCallRes get startCallRes => _liveCarePatientServices.startCallRes;
|
|
|
|
DashboardService _dashboardService = locator<DashboardService>();
|
|
|
|
getPendingPatientERForDoctorApp({bool isFromTimer = false}) async {
|
|
if (isFromTimer) {
|
|
setState(ViewState.Idle);
|
|
} else {
|
|
setState(ViewState.BusyLocal);
|
|
}
|
|
|
|
PendingPatientERForDoctorAppRequestModel
|
|
pendingPatientERForDoctorAppRequestModel =
|
|
PendingPatientERForDoctorAppRequestModel(
|
|
sErServiceID: _dashboardService.sServiceID, outSA: false);
|
|
await _liveCarePatientServices.getPendingPatientERForDoctorApp(
|
|
pendingPatientERForDoctorAppRequestModel);
|
|
if (_liveCarePatientServices.hasError) {
|
|
error = _liveCarePatientServices.error;
|
|
|
|
setState(ViewState.ErrorLocal);
|
|
} else {
|
|
filterData = _liveCarePatientServices.patientList;
|
|
setState(ViewState.Idle);
|
|
}
|
|
}
|
|
|
|
Future endCall(int vCID, bool isPatient) async {
|
|
await getDoctorProfile(isGetProfile: true);
|
|
EndCallReq endCallReq = new EndCallReq();
|
|
endCallReq.doctorId = doctorProfile.doctorID;
|
|
endCallReq.generalid = 'Cs2020@2016\$2958';
|
|
endCallReq.vCID = vCID;
|
|
endCallReq.isDestroy = isPatient;
|
|
|
|
setState(ViewState.BusyLocal);
|
|
await _liveCarePatientServices.endCall(endCallReq);
|
|
if (_liveCarePatientServices.hasError) {
|
|
error = _liveCarePatientServices.error;
|
|
setState(ViewState.ErrorLocal);
|
|
} else {
|
|
setState(ViewState.Idle);
|
|
}
|
|
}
|
|
|
|
getToken() async {
|
|
String token = await sharedPref.getString(TOKEN);
|
|
return token;
|
|
}
|
|
|
|
Future startCall({int vCID, bool isReCall}) async {
|
|
StartCallReq startCallReq = new StartCallReq();
|
|
await getDoctorProfile();
|
|
startCallReq.clinicId = super.doctorProfile.clinicID;
|
|
startCallReq.vCID = vCID; //["VC_ID"];
|
|
startCallReq.isrecall = isReCall;
|
|
startCallReq.doctorId = doctorProfile.doctorID;
|
|
startCallReq.isOutKsa = false; //["IsOutKSA"];
|
|
startCallReq.projectName = doctorProfile.projectName;
|
|
startCallReq.docotrName = doctorProfile.doctorName;
|
|
startCallReq.clincName = doctorProfile.clinicDescription;
|
|
startCallReq.docSpec = doctorProfile.doctorTitleForProfile;
|
|
startCallReq.generalid = 'Cs2020@2016\$2958';
|
|
|
|
setState(ViewState.BusyLocal);
|
|
await _liveCarePatientServices.startCall(startCallReq);
|
|
if (_liveCarePatientServices.hasError) {
|
|
error = _liveCarePatientServices.error;
|
|
setState(ViewState.ErrorLocal);
|
|
} else {
|
|
setState(ViewState.Idle);
|
|
}
|
|
}
|
|
|
|
Future endCallWithCharge(int vcID) async {
|
|
setState(ViewState.BusyLocal);
|
|
await _liveCarePatientServices.endCallWithCharge(vcID);
|
|
if (_liveCarePatientServices.hasError) {
|
|
error = _liveCarePatientServices.error;
|
|
setState(ViewState.ErrorLocal);
|
|
} else {
|
|
await getPendingPatientERForDoctorApp();
|
|
setState(ViewState.Idle);
|
|
}
|
|
}
|
|
|
|
Future transferToAdmin(int vcID, String notes) async {
|
|
setState(ViewState.BusyLocal);
|
|
await _liveCarePatientServices.transferToAdmin(vcID, notes);
|
|
if (_liveCarePatientServices.hasError) {
|
|
error = _liveCarePatientServices.error;
|
|
setState(ViewState.ErrorLocal);
|
|
} else {
|
|
await getPendingPatientERForDoctorApp();
|
|
setState(ViewState.Idle);
|
|
}
|
|
}
|
|
|
|
searchData(String str) {
|
|
var strExist = str.length > 0 ? true : false;
|
|
if (strExist) {
|
|
filterData = [];
|
|
for (var i = 0; i < _liveCarePatientServices.patientList.length; i++) {
|
|
String fullName =
|
|
_liveCarePatientServices.patientList[i].fullName.toUpperCase();
|
|
String patientID =
|
|
_liveCarePatientServices.patientList[i].patientId.toString();
|
|
String mobile =
|
|
_liveCarePatientServices.patientList[i].mobileNumber.toUpperCase();
|
|
|
|
if (fullName.contains(str.toUpperCase()) ||
|
|
patientID.contains(str) ||
|
|
mobile.contains(str)) {
|
|
filterData.add(_liveCarePatientServices.patientList[i]);
|
|
}
|
|
}
|
|
notifyListeners();
|
|
} else {
|
|
filterData = _liveCarePatientServices.patientList;
|
|
notifyListeners();
|
|
}
|
|
}
|
|
}
|