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/AppoimentAllHistoryResultList.dart'; import 'package:diplomaticquarterapp/models/Request.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; class DoctorsListService extends BaseService { AppSharedPreferences sharedPref = AppSharedPreferences(); AppGlobal appGlobal = new AppGlobal(); Future getDoctorsList(int clinicID, int projectID) async { Map 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 getDoctorsListByName(String docName) async { Map 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 getDoctorsProfile(int docID, int clinicID, int projectID) async { Map 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 getDoctorFreeSlots(int docID, int clinicID, int projectID) async { Map 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 insertAppointment(int docID, int clinicID, int projectID, String selectedTime, String selectedDate) async { Map 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 getPatientShare(String appoID, int clinicID, int projectID) async { Map 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 getPatientAppointmentHistory(bool isActiveAppointment) async { Map 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); } Future confirmAppointment(int appoNo, int clinicID, int projectID) async { Map request; var languageID = await sharedPref.getString(APP_LANGUAGE); Request req = appGlobal.getPublicRequest(); request = { "AppointmentNumber": appoNo, "ClinicID": clinicID, "ProjectID": projectID, "ConfirmationBy": 102, "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(CONFIRM_APPOINTMENT, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; }, body: request); return Future.value(localRes); } Future cancelAppointment(AppoitmentAllHistoryResultList appo) async { Map request; var languageID = await sharedPref.getString(APP_LANGUAGE); Request req = appGlobal.getPublicRequest(); request = { "AppointmentID": appo.appointmentNo, "ClinicID": appo.clinicID, "ProjectID": appo.projectID, "EndTime": appo.endTime, "StartTime": appo.startTime, "DoctorID": appo.doctorID, "IsForLiveCare": appo.isLiveCareAppointment, "OriginalClinicID": appo.originalClinicID, "OriginalProjectID": appo.originalProjectID, "StrAppointmentDate": DateUtil.getDateFormatted(appo.appointmentDate), "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(CANCEL_APPOINTMENT, onSuccess: (response, statusCode) async { localRes = response; }, onFailure: (String error, int statusCode) { throw error; }, body: request); return Future.value(localRes); } }