Пример #1
0
        public PSFVisitsViewModel GetPendingPSFVisitsSummary(DateTime?fromVisitDate, DateTime?toVisitDate)
        {
            var missedPSFVisits = GetPendingPSFVisits().Where(v => (!fromVisitDate.HasValue || v.VisitDate.Date >= fromVisitDate.Value) &&
                                                              (!toVisitDate.HasValue || v.VisitDate.Date <= toVisitDate.Value));

            var pendingSessionsSummary = missedPSFVisits.GroupBy(v => v.VisitSettingId).Select(g => new { visitSettingId = g.Key, count = g.Count() }).ToList();
            var visitStages            = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17)
                                         .OrderBy(s => s.VisitStage).ToList();
            var pendingPSFVisits = new PSFVisitsViewModel();

            foreach (var visitstage in visitStages)
            {
                int count = 0;
                var group = pendingSessionsSummary.ToList().Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault();
                if (group != null)
                {
                    count = group.count;
                }

                var psfVisit = new PSFVisitStatusViewModel
                {
                    VisitSettingId = visitstage.VisitStage.Value,
                    VisitStage     = visitstage.VisitType,
                    Count          = count
                };

                pendingPSFVisits.PSFVisits.Add(psfVisit);
            }

            return(pendingPSFVisits);
        }
Пример #2
0
        private PSFVisitsViewModel GetUnCompletedPSFVisits(DateTime?fromVisitDate, DateTime?toVisitDate)
        {
            var psfVisits        = new PSFVisitsViewModel();
            var psfVisitStatuses = new List <PSFVisitStatusViewModel>();
            var psfSchedules     = _smokingStudyDbContext.PSFSchedules
                                   .Where(v =>
                                          (!fromVisitDate.HasValue || v.ExpectedDate.Date >= fromVisitDate) && (!toVisitDate.HasValue || v.ExpectedDate.Date <= toVisitDate));

            foreach (var visit in psfSchedules)
            {
                if (!IsCompleted(visit.ParticipantId, visit.VisitStage))
                {
                    var inCompleteVisit = new PSFVisitStatusViewModel
                    {
                        VisitSettingId = visit.VisitStage
                    };
                    psfVisitStatuses.Add(inCompleteVisit);
                }
            }

            var unCompletedPSFVisits = psfVisitStatuses.GroupBy(v => v.VisitSettingId)
                                       .Select(v => new { visitSettingId = v.Key, count = v.Count() });

            var visitStages = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17)
                              .OrderBy(s => s.VisitStage).ToList();

            foreach (var visitstage in visitStages)
            {
                int count = 0;
                var group = unCompletedPSFVisits.ToList().Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault();
                if (group != null)
                {
                    count = group.count;
                }

                var psfVisit = new PSFVisitStatusViewModel
                {
                    VisitSettingId = visitstage.VisitStage.Value,
                    VisitStage     = visitstage.VisitType,
                    Count          = count
                };

                psfVisits.PSFVisits.Add(psfVisit);
            }

            return(psfVisits);
        }
Пример #3
0
        private PSFVisitsViewModel GetCompletedPSFVisitsSummary(DateTime?fromVisitDate, DateTime?toVisitDate)
        {
            var psfVisitStatuses = new PSFVisitsViewModel();
            var psfVisits        = _smokingStudyDbContext.Visits
                                   .Where(
                v =>
                (!fromVisitDate.HasValue || v.VisitDate.Date >= fromVisitDate) && (!toVisitDate.HasValue || v.VisitDate.Date <= toVisitDate) &&
                v.VisitSettingId >= 10 && v.VisitSettingId <= 17 && v.ParticipantCame == 1 && v.Deleted == 0)
                                   .GroupBy(v => v.VisitSettingId)
                                   .Select(v => new { visitSettingId = v.Key, count = v.Count() });

            var visitStages = _smokingStudyDbContext.VisitSettings.Where(s => s.VisitStage.Value >= 10 && s.VisitStage.Value <= 17)
                              .OrderBy(s => s.VisitStage).ToList();

            foreach (var visitstage in visitStages)
            {
                int count = 0;
                var group = psfVisits.Where(g => g.visitSettingId == visitstage.VisitStage.Value).FirstOrDefault();

                if (group != null)
                {
                    count = group.count;
                }

                var psfVisit = new PSFVisitStatusViewModel
                {
                    VisitSettingId = visitstage.VisitStage.Value,
                    VisitStage     = visitstage.VisitType,
                    Count          = count
                };

                psfVisitStatuses.PSFVisits.Add(psfVisit);
            }

            return(psfVisitStatuses);
        }