Example #1
0
        public IEnumerable <Visit> GetVisits()
        {
            IEnumerable <Visit> vt = visit_repo.GetAll(a => a.Patient, b => b.PatientVital, t => t.VisitTests, d => d.VisitDiagnoses);

            vt = vt.OrderByDescending(a => a.VisitId);
            return(vt);
        }
Example #2
0
        /// <summary>
        /// Get all visits of data base by city
        /// </summary>
        /// <returns>List<DTVisit></returns>
        public List <DTVisitsByCity> GetAllVisitsByCity()
        {
            List <DTVisitsByCity> VisitsByCity = new List <DTVisitsByCity>();

            try
            {
                var Query = _ObjVisitRepository.GetAll().Join(_ObjClientRepository.GetAll(),
                                                              visit => visit.IdClient,
                                                              client => client.IdClient,
                                                              (visit, client) => new { Visit = visit, client = client }).ToList();

                if (Query != null)
                {
                    List <int> cities = new List <int>();
                    foreach (var item in Query)
                    {
                        cities.Add(item.client.IdCity);
                    }

                    var result = cities.GroupBy(n => n)
                                 .Select(c => new DTVisitsByCity {
                        idcity = c.Key, totalvisits = c.Count()
                    }).ToList();
                    VisitsByCity = result;
                }
                return(VisitsByCity);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        public List <VisitGetAllDto> GetAll()
        {
            var result = _visitRepository.GetAll().Select(a => new VisitGetAllDto {
                Id           = a.Id,
                PatientName  = a.Patient.Name,
                PatientAge   = a.Patient.Age,
                PatientPhone = a.Patient.Phone,
                VisitDate    = a.VisitDate
            });

            return(result.ToList());
        }
        private PatientsReport GetPatientsReport()
        {
            IQueryable <Patient> patients = patientRepository.GetAll();
            IQueryable <Visit>   visits   = visitRepository.GetAll();

            var report = new PatientsReport();

            PatientsReportDataSet.PatientsDataTable patientsTable = report.PatientsReportDataSet.Patients;
            foreach (Patient patient in patients)
            {
                PatientsReportDataSet.PatientsRow row = patientsTable.NewPatientsRow();

                row.PatientId       = patient.Id;
                row.PatientInitials = patient.PatientInitials;
                row.PatientNumber   = patient.PatientNumber;
                if (patient.RandomisationDate.HasValue)
                {
                    row.RandomizationDate = patient.RandomisationDate.Value;
                }
                row.RandomizationNumber = patient.RandomisationNumber ?? 0;
                if (patient.EnrollDate.HasValue)
                {
                    row.EnrollDate = patient.EnrollDate.Value;
                }
                row.Enrolled = patient.IsEnrolled;
                row.Active   = patient.IsActive;

                patientsTable.Rows.Add(row);
            }

            PatientsReportDataSet.VisitsDataTable visitsTable = report.PatientsReportDataSet.Visits;
            foreach (Visit visit in visits.OrderBy(v => v.VisitDate != null ? v.VisitDate : v.ExpectedVisitDate))
            {
                PatientsReportDataSet.VisitsRow row = visitsTable.NewVisitsRow();

                row.VisitId   = visit.Id;
                row.PatientId = visit.Patient.Id;
                if (visit.VisitDate.HasValue)
                {
                    row.VisitDate = visit.VisitDate.Value;
                }
                row.VisitName = visit.Caption;
                row.Progress  = visit.Forms.Average(x => x.FormState == FormState.Completed ? 1 : 0);

                visitsTable.Rows.Add(row);
            }

            return(report);
        }
Example #5
0
        public async Task OnLoaded()
        {
            var visits = await Task.Run(() => _visitRepository.GetAll(i => !i.IsDeleted, "Customer"));

            SetItems(visits);
        }
Example #6
0
        public async Task <VisitInfoForIndexListVM> GetAllVisits(string sortOrder, int?pageNumber, DateTime?dateMin, DateTime?dateMax, int?dentistId, bool?inFuture)
        {
            sortOrder = String.IsNullOrEmpty(sortOrder) ? "" : sortOrder;
            var temporaryVisits = _visitRepository.GetAll().ProjectTo <VisitInfoForIndexVM>(_mapper.ConfigurationProvider);

            switch (sortOrder)
            {
            case "":
                temporaryVisits = temporaryVisits.OrderBy(v => v.VisitDate.Date)
                                  .ThenBy(v => v.VisitDate.TimeOfDay);
                break;

            case "descending":
                temporaryVisits = temporaryVisits.OrderByDescending(v => v.VisitDate.Date)
                                  .ThenBy(v => v.VisitDate.TimeOfDay);
                break;
            }

            if (inFuture.HasValue && inFuture.Value == true)
            {
                temporaryVisits = temporaryVisits.Where(v => v.VisitDate > DateTime.Now);
            }
            if (dateMax.HasValue && dateMin.HasValue)
            {
                temporaryVisits = dateMin < dateMax?temporaryVisits.Where(v => v.VisitDate >= dateMin && v.VisitDate <= dateMax.Value.AddDays(1)) :
                                      temporaryVisits.Where(v => v.VisitDate >= dateMax && v.VisitDate <= dateMin.Value.AddDays(1));
            }
            else if (dateMax.HasValue)
            {
                temporaryVisits = temporaryVisits.Where(v => v.VisitDate <= dateMax.Value.AddDays(1));
            }
            else if (dateMin.HasValue)
            {
                temporaryVisits = temporaryVisits.Where(v => v.VisitDate >= dateMin);
            }

            if (dentistId.HasValue && dentistId.Value != 0)
            {
                temporaryVisits = temporaryVisits.Where(v => v.DentistId == dentistId);
            }

            var visits = temporaryVisits.ToList();

            foreach (var visit in visits)
            {
                visit.Dentist = _mapper.Map <DentistBasicInfoVM>(_dentistRepository.GetById(visit.DentistId));
                visit.Patient = _mapper.Map <PatientBasicInfoVM>(_patientRepository.GetById(visit.PatientId));
                if (DateTime.Now >= visit.VisitDate && DateTime.Now < visit.VisitDate.AddMinutes(30) && visit.VisitStatus != Status.Canceled && visit.VisitStatus != Status.InProgress)
                {
                    visit.VisitStatus = Status.InProgress;
                    var v = _mapper.Map <Visit>(visit);
                    await _visitRepository.Update(v);
                }
                else if (DateTime.Now >= visit.VisitDate.AddMinutes(30) && visit.VisitStatus != Status.Canceled && visit.VisitStatus != Status.Done)
                {
                    visit.VisitStatus = Status.Done;
                    var v = _mapper.Map <Visit>(visit);
                    await _visitRepository.Update(v);
                }
            }
            var dentists = _dentistRepository.GetAll().ProjectTo <DentistBasicInfoVM>(_mapper.ConfigurationProvider);
            var dent     = dentists.Select(s => new SelectListItem {
                Text = s.Name + " " + s.LastName, Value = s.Id.ToString()
            }).ToList();

            dent.Insert(0, new SelectListItem {
                Text = "Any", Value = "0"
            });
            var pageSize = 2;
            var dates    = PaginatedList <DateTime> .Create(visits.GroupBy(d => d.VisitDate.Date).Select(d => d.Key).AsQueryable(), pageNumber ?? 1, pageSize);

            var min_date = string.IsNullOrEmpty(sortOrder) ? visits.Select(v => v.VisitDate).FirstOrDefault() : visits.Select(v => v.VisitDate).LastOrDefault();
            var max_date = string.IsNullOrEmpty(sortOrder) ? visits.Select(v => v.VisitDate).LastOrDefault() : visits.Select(v => v.VisitDate).FirstOrDefault();

            return(new VisitInfoForIndexListVM()
            {
                Visits = visits,
                PaginatedDates = dates,
                Dentists = dent,
                DentistId = dentistId.GetValueOrDefault(0),
                DateMax = dateMax.GetValueOrDefault(max_date).Date,
                DateMin = dateMin.GetValueOrDefault(min_date).Date,
                InFuture = inFuture.GetValueOrDefault(false),
                SortOrder = sortOrder
            });
        }