public static PregnancyChecklistItemsResult GetSortedPregnancyChecklist(IDashboardRepository repo, string patientDfn, PregnancyDetails pregnancy, DsioChecklistCompletionStatus status)
        {
            PregnancyChecklistItemsResult result = new PregnancyChecklistItemsResult();

            PregnancyChecklistItemsResult chkResult = repo.Checklist.GetPregnancyItems(patientDfn, pregnancy.Ien, "", status);

            result.SetResult(chkResult.Success, chkResult.Message);

            if (result.Success)
            {
                PregnancyChecklistItemList tempList = new PregnancyChecklistItemList();

                tempList.AddRange(chkResult.Items);

                tempList.AddPregnancyDates(pregnancy.EDD, pregnancy.EndDate);

                tempList.Sort(delegate(PregnancyChecklistItem x, PregnancyChecklistItem y)
                {
                    return(x.DueDate.CompareTo(y.DueDate));
                });

                result.Items = tempList;
            }

            return(result);
        }
        //[HttpGet]
        //public ActionResult Timeline(string patientId)
        //{
        //    TrackedPatient model = this.DashboardRepository.Patients.Get("1234");

        //    return View(model);

        //}

        private void UpdateChecklistSummary(PatientSummary model, string dfn, PregnancyResult pregResult)
        {
            const int itemCount = 4;

            PregnancyChecklistItemsResult checklistResult = this.DashboardRepository.Checklist.GetPregnancyItems(dfn, pregResult.Pregnancy.Ien, "", DsioChecklistCompletionStatus.NotComplete);

            if (checklistResult.Success)
            {
                if (checklistResult.Items != null)
                {
                    PregnancyChecklistItemList tempList = new PregnancyChecklistItemList();

                    tempList.AddRange(checklistResult.Items);

                    tempList.AddPregnancyDates(pregResult.Pregnancy.EDD, pregResult.Pregnancy.EndDate);

                    tempList.Sort(delegate(PregnancyChecklistItem x, PregnancyChecklistItem y)
                    {
                        return(x.DueDate.CompareTo(y.DueDate));
                    });

                    int tempCount = 0;
                    foreach (PregnancyChecklistItem tempItem in tempList)
                    {
                        if (model.PregnancyChecklistItems == null)
                        {
                            model.PregnancyChecklistItems = new PregnancyChecklistItemList();
                        }

                        model.PregnancyChecklistItems.Add(tempItem);

                        tempCount += 1;

                        if (tempCount == itemCount)
                        {
                            break;
                        }
                    }

                    if (tempList.Count > itemCount)
                    {
                        model.MoreChecklistItems = string.Format("{0} more", tempList.Count - itemCount);
                    }

                    model.ChecklistLink = Url.Action("PregnancyIndex", "Checklist", new { dfn = model.Patient.Dfn, pregIen = pregResult.Pregnancy.Ien, page = "1" });
                }
            }
        }
        //public Dictionary<string, string> PregnancyFilter { get; set; }

        public PatientContactIndex()
        {
            this.Checklist = new PregnancyChecklistItemList();
            //this.PregnancyFilter = new Dictionary<string, string>();
        }