|
|
|
import 'package:diplomaticquarterapp/config/config.dart';
|
|
|
|
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
|
|
|
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/InsertAppointmentRequest.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Request.dart';
|
|
|
|
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
|
|
|
|
|
|
|
class DoctorsListService extends BaseService {
|
|
|
|
AppSharedPreferences sharedPref = AppSharedPreferences();
|
|
|
|
AppGlobal appGlobal = new AppGlobal();
|
|
|
|
|
|
|
|
Future<Map> getDoctorsList(int clinicID, int projectID) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
request = {
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": "10.20.10.20",
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"generalid": 'Cs2020@2016\$2958',
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"TokenID": "",
|
|
|
|
"DeviceTypeID": req.DeviceTypeID,
|
|
|
|
"SessionID": null,
|
|
|
|
"ClinicID": clinicID,
|
|
|
|
"ProjectID": projectID,
|
|
|
|
"ContinueDentalPlan": false,
|
|
|
|
"IsSearchAppointmnetByClinicID": true,
|
|
|
|
"PatientID": 0,
|
|
|
|
"gender": 0,
|
|
|
|
"age": 0,
|
|
|
|
"IsGetNearAppointment": false,
|
|
|
|
"Latitude": 0,
|
|
|
|
"Longitude": 0,
|
|
|
|
"License": true
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_DOCTORS_LIST_URL,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> getDoctorsListByName(String docName) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
request = {
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": "10.20.10.20",
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"generalid": 'Cs2020@2016\$2958',
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"TokenID": "",
|
|
|
|
"DeviceTypeID": req.DeviceTypeID,
|
|
|
|
"SessionID": null,
|
|
|
|
"ClinicID": 0,
|
|
|
|
"ProjectID": 0,
|
|
|
|
"ContinueDentalPlan": false,
|
|
|
|
"IsSearchAppointmnetByClinicID": false,
|
|
|
|
"DoctorName": docName,
|
|
|
|
"PatientID": 0,
|
|
|
|
"gender": 0,
|
|
|
|
"age": 0,
|
|
|
|
"IsGetNearAppointment": false,
|
|
|
|
"Latitude": 0,
|
|
|
|
"Longitude": 0,
|
|
|
|
"License": true
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_DOCTORS_LIST_URL,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> getDoctorsProfile(int docID, int clinicID, int projectID) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
request = {
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": "10.20.10.20",
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"generalid": 'Cs2020@2016\$2958',
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"TokenID": "",
|
|
|
|
"DeviceTypeID": req.DeviceTypeID,
|
|
|
|
"SessionID": null,
|
|
|
|
"doctorID": docID,
|
|
|
|
"ClinicID": clinicID,
|
|
|
|
"PatientID": 0,
|
|
|
|
"License": true,
|
|
|
|
"IsRegistered": true,
|
|
|
|
"ProjectID": projectID,
|
|
|
|
"isDentalAllowedBackend": false
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_DOCTOR_PROFILE,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> getDoctorFreeSlots(int docID, int clinicID, int projectID) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
request = {
|
|
|
|
"DoctorID": docID,
|
|
|
|
"IsBookingForLiveCare": 0,
|
|
|
|
"ClinicID": clinicID,
|
|
|
|
"ProjectID": projectID,
|
|
|
|
"OriginalClinicID": clinicID,
|
|
|
|
"days": 0,
|
|
|
|
"isReschadual": false,
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": 3,
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": "10.20.10.20",
|
|
|
|
"generalid": "Cs2020@2016\$2958",
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"SessionID": null,
|
|
|
|
"isDentalAllowedBackend": false,
|
|
|
|
"DeviceTypeID": 1
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_DOCTOR_FREE_SLOTS,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> insertAppointment(int docID, int clinicID, int projectID,
|
|
|
|
String selectedTime, String selectedDate) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
|
|
|
|
request = {
|
|
|
|
"IsForLiveCare": false,
|
|
|
|
"ProjectID": projectID,
|
|
|
|
"ClinicID": clinicID,
|
|
|
|
"DoctorID": docID,
|
|
|
|
"StartTime": selectedTime,
|
|
|
|
"SelectedTime": selectedTime,
|
|
|
|
"EndTime": selectedTime,
|
|
|
|
"InitialSlotDuration": 0,
|
|
|
|
"StrAppointmentDate": selectedDate,
|
|
|
|
"IsVirtual": false,
|
|
|
|
"DeviceType": "iOS",
|
|
|
|
"BookedBy": 102,
|
|
|
|
"VisitType": 1,
|
|
|
|
"VisitFor": 1,
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": req.IPAdress,
|
|
|
|
"generalid": req.generalid,
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"SessionID": "YckwoXhUmWBsnHKEKig",
|
|
|
|
"isDentalAllowedBackend": false,
|
|
|
|
"DeviceTypeID": 1,
|
|
|
|
"PatientID": 1231755,
|
|
|
|
"TokenID": "@dm!n",
|
|
|
|
"PatientTypeID": 1,
|
|
|
|
"PatientType": 1
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(INSERT_SPECIFIC_APPOINTMENT,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> getPatientShare(String appoID, int clinicID, int projectID) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
|
|
|
|
request = {
|
|
|
|
"ProjectID": projectID,
|
|
|
|
"ClinicID": clinicID,
|
|
|
|
"AppointmentNo": appoID,
|
|
|
|
"IsActiveAppointment": true,
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": req.IPAdress,
|
|
|
|
"generalid": req.generalid,
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"SessionID": "YckwoXhUmWBsnHKEKig",
|
|
|
|
"isDentalAllowedBackend": false,
|
|
|
|
"DeviceTypeID": 1,
|
|
|
|
"PatientID": 1231755,
|
|
|
|
"TokenID": "@dm!n",
|
|
|
|
"PatientTypeID": 1,
|
|
|
|
"PatientType": 1
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_PATIENT_SHARE,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response['OnlineCheckInAppointments'][0];
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<Map> getPatientAppointmentHistory(bool isActiveAppointment) async {
|
|
|
|
Map<String, dynamic> request;
|
|
|
|
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
|
|
|
Request req = appGlobal.getPublicRequest();
|
|
|
|
|
|
|
|
request = {
|
|
|
|
"IsActiveAppointment": isActiveAppointment,
|
|
|
|
"VersionID": req.VersionID,
|
|
|
|
"Channel": req.Channel,
|
|
|
|
"LanguageID": languageID == 'ar' ? 1 : 2,
|
|
|
|
"IPAdress": req.IPAdress,
|
|
|
|
"generalid": req.generalid,
|
|
|
|
"PatientOutSA": 0,
|
|
|
|
"SessionID": "YckwoXhUmWBsnHKEKig",
|
|
|
|
"isDentalAllowedBackend": false,
|
|
|
|
"DeviceTypeID": 1,
|
|
|
|
"PatientID": 1231755,
|
|
|
|
"TokenID": "@dm!n",
|
|
|
|
"PatientTypeID": 1,
|
|
|
|
"PatientType": 1
|
|
|
|
};
|
|
|
|
|
|
|
|
dynamic localRes;
|
|
|
|
|
|
|
|
await baseAppClient.post(GET_PATIENT_APPOINTMENT_HISTORY,
|
|
|
|
onSuccess: (response, statusCode) async {
|
|
|
|
localRes = response;
|
|
|
|
}, onFailure: (String error, int statusCode) {
|
|
|
|
throw error;
|
|
|
|
}, body: request);
|
|
|
|
return Future.value(localRes);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|