public IenResult SavePatientItem(PatientEducationItem item)
        {
            IenResult result = new IenResult();

            if (this.broker != null)
            {
                DsioEducationItem dsioEdItem = GetDsioItem(item);

                DsioPatientEducationItem dsioItem = new DsioPatientEducationItem(dsioEdItem);

                dsioItem.EducationItemIen = item.EducationItemIen;
                dsioItem.PatientDfn       = item.PatientDfn;

                dsioItem.CompletedOn = Util.GetFileManDateAndTime(item.CompletedOn);

                DsioSavePatientEducationCommand command = new DsioSavePatientEducationCommand(this.broker);

                command.AddCommandArguments(dsioItem);

                RpcResponse response = command.Execute();

                result.SetResult(response.Status == RpcResponseStatus.Success, response.InformationalMessage);

                if (result.Success)
                {
                    result.Ien = command.Ien;
                }
            }

            return(result);
        }
        public static BrokerOperationResult CompleteEducationItem(IDashboardRepository repo, string patientDfn, string educationItemIen, string checklistItemIen)
        {
            BrokerOperationResult returnResult = new BrokerOperationResult();

            // *** Two-step process:
            // ***      (1) Create completed patient education item
            // ***      (2) Complete the checklist item

            PatientEducationItem patItem = new PatientEducationItem()
            {
                PatientDfn       = patientDfn,
                EducationItemIen = educationItemIen,
                CompletedOn      = DateTime.Now
            };

            IenResult saveResult = repo.Education.SavePatientItem(patItem);

            returnResult.SetResult(saveResult.Success, saveResult.Message);

            if (saveResult.Success)
            {
                PregnancyChecklistItemsResult result = repo.Checklist.GetPregnancyItems(patientDfn, "", checklistItemIen);

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

                if (result.Success)
                {
                    if (result.Items != null)
                    {
                        if (result.Items.Count > 0)
                        {
                            PregnancyChecklistItem checkItem = result.Items[0];

                            checkItem.CompletionStatus = DsioChecklistCompletionStatus.Complete;
                            checkItem.CompletionLink   = saveResult.Ien;

                            IenResult ienResult = repo.Checklist.SavePregnancyItem(checkItem);

                            returnResult.SetResult(ienResult.Success, ienResult.Message);

                            if (returnResult.Success)
                            {
                                returnResult = UpdateNextDates(repo, patientDfn, checkItem.PregnancyIen);

                                if (returnResult.Success)
                                {
                                    returnResult.Message = "Education item completed";
                                }
                            }
                        }
                    }
                }
            }

            return(returnResult);
        }
        public ActionResult PatientSelect(PatientEducationSelect model)
        {
            ActionResult returnResult;

            List <string> ienList = model.GetSelectedIenList();

            bool ok = false;

            if (ienList != null)
            {
                foreach (string ien in ienList)
                {
                    PatientEducationItem patItem = new PatientEducationItem();

                    patItem.EducationItemIen = ien;
                    patItem.PatientDfn       = model.Patient.Dfn;
                    patItem.CompletedOn      = DateTime.Now;

                    IenResult ienResult = this.DashboardRepository.Education.SavePatientItem(patItem);

                    if (!ienResult.Success)
                    {
                        this.Error(ienResult.Message);
                        ok = false;
                        break;
                    }
                    else
                    {
                        ok = true;
                    }
                }
            }

            if (ok)
            {
                this.Information("Education Items Added Successfully");
                returnResult = RedirectToAction("PatientIndex", new { dfn = model.Patient.Dfn });
            }
            else
            {
                this.CurrentPatientDfn = model.Patient.Dfn;
                model.Patient          = this.CurrentPatient;
                returnResult           = View(model);
            }

            return(returnResult);
        }
        public PatientEducationItemsResult GetPatientItems(string patientDfn, string ien, DateTime fromDate, DateTime toDate, EducationItemType itemType, int page, int itemsPerPage)
        {
            PatientEducationItemsResult result = new PatientEducationItemsResult();

            if (this.broker != null)
            {
                DsioGetPatientEducationCommand command = new DsioGetPatientEducationCommand(this.broker);

                string dsioItemType = GetDsioItemType(itemType);

                string fmFromDate = Util.GetFileManDate(fromDate);
                string fmToDate   = Util.GetFileManDate(toDate);

                command.AddCommandArguments(patientDfn, ien, fmFromDate, fmToDate, dsioItemType, page, itemsPerPage);

                RpcResponse response = command.Execute();

                result.SetResult(response.Status == RpcResponseStatus.Success, response.InformationalMessage);

                if (result.Success)
                {
                    if (command.Items != null)
                    {
                        if (command.Items.Count > 0)
                        {
                            foreach (DsioPatientEducationItem dsioItem in command.Items)
                            {
                                EducationItem item = GetItem(dsioItem);

                                PatientEducationItem patItem = new PatientEducationItem(item);

                                patItem.CompletedOn = Util.GetDateTime(dsioItem.CompletedOn);
                                patItem.CompletedBy = dsioItem.CompletedBy;

                                result.Items.Add(patItem);
                            }

                            result.TotalResults = command.TotalResults;
                        }
                    }
                }
            }

            return(result);
        }