Ejemplo n.º 1
0
        bool IsEquipmentTypePresentInRoom(Domain.Entities.Appointment appointment, int equipmentType)
        {
            List <HospitalEquipment> hospitalEquipment = _roomGateway.GetHospitalEquipmentByRoom(appointment.RoomId);

            if (hospitalEquipment.Where(a => a.EquipmentTypeId == equipmentType).ToList().Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        List <Domain.Entities.Appointment> FindMostRecentAppointment(List <Domain.Entities.Appointment> filteredAppointments)
        {
            Domain.Entities.Appointment mostRecentApp = filteredAppointments.ElementAt(0);
            foreach (Domain.Entities.Appointment appointment in filteredAppointments)
            {
                if (appointment.Period.StartTime < mostRecentApp.Period.StartTime)
                {
                    mostRecentApp = appointment;
                }
            }
            List <Domain.Entities.Appointment> newList = new List <Domain.Entities.Appointment>();

            newList.Add(mostRecentApp);
            return(newList);
        }
Ejemplo n.º 3
0
        public Tuple <List <Domain.Entities.Appointment>, List <int> > FindAppointmentsForRescheduling(PriorityParameters parameters, int equipmentType)
        {
            Doctor doctor = _userGateway.GetDoctorBy(parameters.DoctorId);
            List <Domain.Entities.Appointment>            potentionalAppointmentsForRescheduling;
            Dictionary <Domain.Entities.Appointment, int> dictionarytPostPoneTime = new Dictionary <Domain.Entities.Appointment, int>();

            if (equipmentType == -1)
            {
                potentionalAppointmentsForRescheduling = _appointmentService.GetAll().Where(a => a.Period.StartTime >= parameters.ChosenStartDate && a.Period.EndTime <= parameters.ChosenEndDate && a.Urgent == false && a.Doctor.SpecializationId == doctor.SpecializationId).ToList();
            }
            else
            {
                potentionalAppointmentsForRescheduling = _appointmentService.GetAll().Where(a => a.Period.StartTime >= parameters.ChosenStartDate && a.Period.EndTime <= parameters.ChosenEndDate && a.Urgent == false && a.Doctor.SpecializationId == doctor.SpecializationId).ToList();
                List <Domain.Entities.Appointment> appointments = new List <Domain.Entities.Appointment>();
                foreach (Domain.Entities.Appointment appointment in potentionalAppointmentsForRescheduling)
                {
                    if (IsEquipmentTypePresentInRoom(appointment, equipmentType))
                    {
                        appointments.Add(appointment);
                    }
                }
                potentionalAppointmentsForRescheduling = appointments;
            }
            foreach (Domain.Entities.Appointment appointment in potentionalAppointmentsForRescheduling)
            {
                Domain.Entities.Appointment a = _appointmentService.GetAvailableByDoctorAndTimeInterval(new PriorityParameters()
                {
                    DoctorId = appointment.DoctorId, ChosenStartDate = parameters.ChosenEndDate, ChosenEndDate = parameters.ChosenEndDate.AddDays(addDays)
                })[0];
                int time = (int)(a.Period.StartTime - appointment.Period.EndTime).TotalMinutes;
                dictionarytPostPoneTime.Add(appointment, time);
            }
            List <Domain.Entities.Appointment> keyList = new List <Domain.Entities.Appointment>(dictionarytPostPoneTime.Keys);
            List <int> valueList = new List <int>(dictionarytPostPoneTime.Values);

            return(Tuple.Create(keyList, valueList));
        }