public IActionResult BasicSearchExamination(BasicSearchDTO basicSearchDTO)
        {
            var available = _availableExaminationService.BasicSearch(basicSearchDTO).Select(
                e => e.ToUnscheduledExaminationDTO());

            return(Ok(available));
        }
Example #2
0
        public IActionResult BasicSearchAppointments(BasicSearchDTO parameters)
        {
            var patientJmbg = HttpContext.User.FindFirst("Jmbg").Value;

            parameters.PatientJmbg      = patientJmbg;
            parameters.EarliestDateTime = InitializeEarliestTime(parameters.EarliestDateTime);
            parameters.LatestDateTime   = InitializeLatestTime(parameters.LatestDateTime);

            return(RequestAdapter.SendRequestWithBody(_serviceSettings.ScheduleServiceUrl, "/api/examination/search-free/basic", parameters));
        }
        private IEnumerable <Examination> ApplyStrategy(IAdvancedSearchStrategy strategy)
        {
            for (BasicSearchDTO parameters = strategy.GetSearchParameters();
                 parameters != null;
                 parameters = strategy.GetSearchParameters())
            {
                IEnumerable <Examination> availableExaminations = BasicSearch(parameters);

                if (availableExaminations.Any())
                {
                    return(availableExaminations);
                }
            }

            return(Enumerable.Empty <Examination>());
        }
        private ExaminationGeneratorDTO GetExaminationGeneratorDTO(BasicSearchDTO basicSearchDTO)
        {
            Patient patient = _patientRepository.Get(basicSearchDTO.PatientJmbg,
                                                     basicSearchDTO.EarliestDateTime,
                                                     basicSearchDTO.LatestDateTime);
            Doctor doctor = _doctorRepository.Get(basicSearchDTO.DoctorJmbg,
                                                  basicSearchDTO.EarliestDateTime,
                                                  basicSearchDTO.LatestDateTime);
            IEnumerable <Room> rooms = _roomRepository.GetByEquipmentTypes(RoomType.Examination,
                                                                           basicSearchDTO.RequiredEquipmentTypes,
                                                                           basicSearchDTO.EarliestDateTime,
                                                                           basicSearchDTO.LatestDateTime);
            ExaminationGeneratorDTO examinationGeneratorDTO = new ExaminationGeneratorDTO(
                patient,
                doctor,
                rooms,
                FixTime(basicSearchDTO.EarliestDateTime),
                FixTime(basicSearchDTO.LatestDateTime));

            return(examinationGeneratorDTO);
        }
 public IEnumerable <Examination> BasicSearch(BasicSearchDTO basicSearchDTO)
 {
     return(_availableExaminationGenerator.Generate(GetExaminationGeneratorDTO(basicSearchDTO)));
 }
Example #6
0
 public TimeHasPriorityStrategy(BasicSearchDTO searchDTO, ICollection <string> potentiallyAvailableDoctors)
 {
     SearchDTO = searchDTO;
     PotentiallyAvailableDoctors = potentiallyAvailableDoctors;
 }
Example #7
0
 public DoctorHasPriorityStrategy(BasicSearchDTO searchDTO, int dateInterval)
 {
     SearchDTO     = searchDTO;
     _dateInterval = dateInterval;
 }