Exemplo n.º 1
0
        public ActionResult ChangePatientDetails(PatientDetails patientDetails, string patientId)
        {
            var resultWithPatientDetails = patientClient.GetDetailsForPatient(patientId);

            if (!resultWithPatientDetails.Succeeded)
            {
                TempData["ErrorMessage"] = resultWithPatientDetails.ErrorMessages;
            }
            else
            {
                resultWithPatientDetails.PatientDetails.Email = (String.IsNullOrWhiteSpace(patientDetails.Email)) ? resultWithPatientDetails.PatientDetails.Email : patientDetails.Email;
                resultWithPatientDetails.PatientDetails.ShareDataForQualityAssurance = patientDetails.ShareDataForQualityAssurance;
                resultWithPatientDetails.PatientDetails.ShareDataWithResearcher      = patientDetails.ShareDataWithResearcher;
                var result = patientClient.SavePatientDetails(patientId, resultWithPatientDetails.PatientDetails);
                if (!result.Succeeded)
                {
                    ViewBag.ErrorMessage = result.ErrorMessages;
                }
                else
                {
                    ViewBag.NotificationMessage = "Your patient details have been saved";
                }
            }

            return(View(patientDetails));
        }
Exemplo n.º 2
0
        public ActionResult Patient(string patientId, PatientDetails details, string externalEpisodeId, string Condition, string PractitionerId, DateTime?Date)
        {
            if (string.IsNullOrWhiteSpace(patientId))
            {
                return(RedirectToAction("SeachPatients"));
            }

            if (details != null && !string.IsNullOrWhiteSpace(details.FirstName) && !string.IsNullOrWhiteSpace(details.LastName))
            {
                details.Id = patientId;
                PatientClient pc     = new PatientClient();
                var           result = pc.SavePatientDetails(patientId, details);
                if (result.Succeeded)
                {
                    return(RedirectToAction("Patient", new { patientId = patientId }));
                }
                ViewBag.ErrorMessage = result.ErrorMessages;
            }
            else if (!string.IsNullOrWhiteSpace(Condition))
            {
                PatientEpisodeClient uec    = new PatientEpisodeClient();
                OperationResult      result = uec.AssignEpisode(patientId, Condition, Date, externalEpisodeId, PractitionerId);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Patient", new { patientId = patientId }));
                }
                ViewBag.ErrorMessage = result.ErrorMessages;
            }

            PatientClient client       = new PatientClient();
            var           clientResult = client.GetDetailsForPatient(patientId);

            if (!clientResult.Succeeded)
            {
                ViewBag.ErrorMessage += clientResult.ErrorMessages;
                return(View());
            }
            else
            {
                PatientEpisodeClient uec = new PatientEpisodeClient();
                var uecResult            = uec.GetEpisodesForPatient(patientId);

                if (!uecResult.Succeeded)
                {
                    ViewBag.ErrorMessage = uecResult.ErrorMessages;
                    return(View());
                }

                uecResult.Episodes.Sort((e1, e2) =>
                {
                    if (e1.MileStones.Count == 0 && e2.MileStones.Count == 0)
                    {
                        return(0);
                    }
                    if (e1.MileStones.Count > 0 && e2.MileStones.Count == 0)
                    {
                        return(-1);
                    }
                    if (e1.MileStones.Count == 0 && e2.MileStones.Count > 0)
                    {
                        return(1);
                    }

                    DateTime e1D = e1.MileStones.OrderByDescending(e => e.MilestoneDate).First().MilestoneDate;
                    DateTime e2D = e2.MileStones.OrderByDescending(e => e.MilestoneDate).First().MilestoneDate;

                    return(e1D.CompareTo(e2D));
                });

                ViewBag.Episodes  = uecResult.Episodes;
                ViewBag.PatientId = patientId;

                var ucClient = new UserClient();
                var ucResult = ucClient.GetPractitioners();
                ViewBag.Practitioners = ucResult.StringDictionary;
                return(View(clientResult.PatientDetails));
            }
        }