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); }
/// <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; } }
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); }
public async Task OnLoaded() { var visits = await Task.Run(() => _visitRepository.GetAll(i => !i.IsDeleted, "Customer")); SetItems(visits); }
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 }); }