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.
diplomatic-quarter/lib/services/appointment_services/doctor_response_mapper.dart

42 lines
1.6 KiB
Dart

import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
class DoctorMapper{
static RegionList getMappedDoctor( List<DoctorList> doctorList ){
RegionList regionList = RegionList();
doctorList.forEach((element) {
var regionDoctorList = regionList.registeredDoctorMap?[element.region];
regionDoctorList ??= PatientDoctorAppointmentListByRegion();
List<PatientDoctorAppointmentList> doctorByHospital = [];
if(element.isHMC == true ){
doctorByHospital = regionDoctorList.hmcDoctorList?.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList() ?? [];
}else{
doctorByHospital = regionDoctorList.hmcDoctorList?.where((elementClinic) => elementClinic.filterName == element.getProjectCompleteName()).toList() ?? [];
}
if(doctorByHospital.isNotEmpty){
doctorByHospital.first.patientDoctorAppointmentList?.add(element);
}else{
doctorByHospital.add(
PatientDoctorAppointmentList(
filterName: element.getProjectCompleteName(),
distanceInKMs: element.projectDistanceInKiloMeters.toString(),
projectTopName: element.projectTopName,
projectBottomName: element.projectBottomName,
patientDoctorAppointment: element)
);
}
if(element.isHMC == true ){
regionDoctorList.hmcDoctorList = doctorByHospital;
}else{
regionDoctorList.hmgDoctorList = doctorByHospital;
}
regionList.registeredDoctorMap?[element.region!] = regionDoctorList;
});
return regionList;
}
}