public MainPlanOfCareViewModel GetPlanOfCare(int PatientId, string UserId, bool isPharmixAdmin)
        {
            var result  = new MainPlanOfCareViewModel();
            var IsAdmin = false;

            if (IsAdminUser(UserId, isPharmixAdmin))
            {
                IsAdmin = true;
            }
            else
            {
                PatientId = _repository.GetContext().Patients.Where(p => p.UserId == UserId).Select(p => p.Id).FirstOrDefault();
            }

            var planOfCare = _repository.GetContext().PlanOfCare.Include(p => p.Pregnancy).Where(p => p.Pregnancy.PatientId == PatientId);

            List <PlanOfCareViewModel> planOfCares = Mapper.Map <List <PlanOfCareViewModel> >(planOfCare);

            var planCount = planOfCares.Count;
            int j         = 4 - planCount;

            for (int i = 1; i <= j; i++)
            {
                var newPlan = new PlanOfCareViewModel {
                    Id = 0
                };
                planOfCares.Add(newPlan);
            }

            result.IsAdmin             = IsAdmin;
            result.PatientId           = PatientId;
            result.PlanOfCareViewModel = planOfCares;

            return(result);
        }
        public bool SavePlanOfCare(MainPlanOfCareViewModel model, string UserId)
        {
            var result = false;

            try
            {
                var pregnancy = _repository.GetContext().Pregnancy.Where(p => p.PatientId == model.PatientId).FirstOrDefault();
                foreach (var plan in model.PlanOfCareViewModel)
                {
                    if (plan.Id > 0)
                    {
                        //save existing plan
                        var mapPlan = Mapper.Map <PlanOfCare>(plan);
                        mapPlan.SetUpdateDetails(UserId);

                        _repository.SaveExisting(mapPlan);
                    }
                    else if (plan.Id == 0 && (plan.CreatedDate != null || !string.IsNullOrEmpty(plan.JobTitle) || !string.IsNullOrEmpty(plan.LeadProfessional) || !string.IsNullOrEmpty(plan.ReasonIfChanged)))
                    {
                        //save new plan
                        var newPlan = Mapper.Map <PlanOfCare>(plan);
                        newPlan.SetCreateDetails(UserId);
                        newPlan.PregnancyId = pregnancy.Id;

                        var savePlan = _repository.SaveNew(newPlan);
                    }
                }

                result = true;
            }
            catch (Exception ex)
            {
                result = false;
            }

            return(result);
        }