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)); }
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)); } }