public ActionResult Addenda(string dfn, string ien)
        {
            AddendaModel model = new AddendaModel();

            // *** Set the patient ***
            model.Patient = this.CurrentPatient;

            // *** Get the parent note ***
            TiuNoteResult noteResult = this.DashboardRepository.Notes.GetNoteHeader(dfn, ien);

            if (!noteResult.Success)
            {
                this.Error("The note could not be found");
            }
            else
            {
                if (noteResult.Note != null)
                {
                    // *** Add parent note to model ***
                    model.OriginalNote = noteResult.Note;

                    if (noteResult.Note.AddendaIens.Count > 0)
                    {
                        // *** Get all the addenda ***
                        foreach (string addendaIen in noteResult.Note.AddendaIens)
                        {
                            // *** Get from VistA ***
                            TiuNoteResult addendaResult = this.DashboardRepository.Notes.GetNoteHeader(dfn, addendaIen);

                            // *** Add to list ***
                            if (addendaResult.Success)
                            {
                                if (addendaResult.Note != null)
                                {
                                    model.Addenda.Add(addendaResult.Note);
                                }
                            }
                        }
                    }
                }
            }

            TempData[ReturnUrl] = Url.Action("Addenda", new { dfn = dfn, ien = ien });

            return(View(model));
        }
        public ActionResult Edit(string dfn, string ien)
        {
            // *** Create a new dashboard note ***

            TiuNoteModel model = new TiuNoteModel();

            model.Patient = this.CurrentPatient;

            if (!model.Patient.NotFound)
            {
                TiuNoteResult headerResult = this.DashboardRepository.Notes.GetNoteHeader(dfn, ien);

                if (headerResult.Success)
                {
                    model.Note = headerResult.Note;
                    TiuNoteResult noteResult = this.DashboardRepository.Notes.GetNoteBody(ien);

                    if (!noteResult.Success)
                    {
                        this.Error(noteResult.Message);
                    }
                    else
                    {
                        model.Note.NoteText = noteResult.Note.NoteText;
                    }
                }
                else
                {
                    this.Error(headerResult.Message);
                }
            }

            // *** Get pregnancies ***
            model.Pregnancies = PregnancyUtilities.GetPregnanciesSelection(this.DashboardRepository, dfn);

            // *** Set return url ***
            if (TempData.ContainsKey(ReturnUrl))
            {
                model.ReturnUrl     = TempData[ReturnUrl].ToString();
                TempData[ReturnUrl] = TempData[ReturnUrl];
            }

            return(View("CreateNote", model));
        }
        public ActionResult ProgressNote(string dfn, string ien)
        {
            // *** Show last progress note ***

            ActionResult returnValue;
            TiuNoteModel model = new TiuNoteModel();

            // *** Get patient demographics ***
            model.Patient = this.CurrentPatient;

            // *** Check for success ***
            if (!model.Patient.NotFound)
            {
                // *** Get latest progress note ***
                //TiuNoteResult noteResult = this.DashboardRepository.Notes.GetProgressNote(ien);
                TiuNoteResult noteResult = this.DashboardRepository.Notes.GetNote(ien);

                if (noteResult.Success)
                {
                    model.Note = noteResult.Note;
                }
                else
                {
                    model.Note.NoteText = "Not Found";
                }
            }

            // *** Set return url ***
            if (TempData.ContainsKey(ReturnUrl))
            {
                model.ReturnUrl     = TempData[ReturnUrl].ToString();
                TempData[ReturnUrl] = TempData[ReturnUrl];
            }

            // *** Set return url so next page knows how to get back ***
            //TempData[ReturnUrl] = Url.Action("Details", "FlaggedPatients", new {@dfn=dfn });

            returnValue = View(model);

            return(returnValue);
        }
        public ActionResult Details(string dfn, string ien)
        {
            // *** Show details of a dashboard note ***

            TiuNoteModel model = new TiuNoteModel();

            model.Patient = this.CurrentPatient;

            if (!model.Patient.NotFound)
            {
                TiuNoteResult headerResult = this.DashboardRepository.Notes.GetNoteHeader(dfn, ien);

                if (headerResult.Success)
                {
                    if (headerResult.Note == null)
                    {
                        this.Error("Could not retrieve note data");
                    }
                    else
                    {
                        model.Note = headerResult.Note;

                        TiuNoteResult noteResult = this.DashboardRepository.Notes.GetNote(ien);

                        if (!noteResult.Success)
                        {
                            this.Error(noteResult.Message);
                        }
                        else
                        {
                            model.Note.NoteText = noteResult.Note.NoteText;
                        }
                    }
                }
                else
                {
                    this.Error(headerResult.Message);
                }
            }

            // *** Get pregnancies ***
            List <PregnancyDetails> pregList = PregnancyUtilities.GetPregnancies(this.DashboardRepository, dfn);

            // *** Get pregnancy description ***
            if (!string.IsNullOrWhiteSpace(model.Note.PregnancyIen))
            {
                foreach (PregnancyDetails preg in pregList)
                {
                    if (preg.Ien == model.Note.PregnancyIen)
                    {
                        model.PregnancyDescription = preg.Description;
                    }
                }
            }

            // *** Set default description ***
            if (string.IsNullOrWhiteSpace(model.PregnancyDescription))
            {
                model.PregnancyDescription = PregnancyUtilities.NotAssociatedMessage;
            }

            // *** Set return url ***
            if (TempData.ContainsKey(ReturnUrl))
            {
                model.ReturnUrl     = TempData[ReturnUrl].ToString();
                TempData[ReturnUrl] = TempData[ReturnUrl];
            }

            return(View(model));
        }