public ActionResult SelectPatient() { UserClient uc = new UserClient(); var patientsForCurrentUser = uc.GetPatientsForUser(); List <PatientModel> data = new List <PatientModel>(); PatientClient client = new PatientClient(); foreach (var u in patientsForCurrentUser.StringDictionary) { OperationResultAsUserDetails result = client.GetDetailsForPatient(u.Key); if (!result.Succeeded) { TempData["ErrorMessage"] = result.ErrorMessages; } else { data.Add(new PatientModel() { Id = result.PatientDetails.Id, Firstname = result.PatientDetails.FirstName, LastName = result.PatientDetails.LastName, Email = result.PatientDetails.Email, DateOfBirth = result.PatientDetails.DateOfBirth, mobileNumber = result.PatientDetails.PhoneNumber, ExternalId = result.PatientDetails.ExternalId }); } } TempData["Patients"] = data; return(View()); }
public ActionResult Index(string patientId, bool closing = false) { Dictionary <Episode, List <QuestionnaireUserResponseGroup> > result = this.userQuestionnaireClient.GetOutstandingQuestionnairesForPatient(patientId).EpisodeQuestionnaires; Dictionary <Episode, List <QuestionnaireUserResponseGroup> > tmp = result == null ? new Dictionary <Episode, List <QuestionnaireUserResponseGroup> >() : result.ToDictionary(r => r.Key, r => r.Value.Where(g => !g.Completed).ToList()); tmp = tmp.OrderByDescending(e => e.Key.DateCreated).ToDictionary(d => d.Key, d => d.Value); foreach (KeyValuePair <Episode, List <QuestionnaireUserResponseGroup> > e in tmp) { List <QuestionnaireUserResponseGroup> value = e.Value.OrderByDescending(g => g.DueDate).OrderBy(g => g.Completed).ToList(); e.Value.Clear(); e.Value.AddRange(value); } ViewBag.Outstanding = tmp; Dictionary <Episode, List <QuestionnaireUserResponseGroup> > data = result == null ? new Dictionary <Episode, List <QuestionnaireUserResponseGroup> >() : result.ToDictionary(r => r.Key, r => r.Value.Where(g => g.Completed).ToList()); /*List<QuestionnaireUserResponseGroup> noEpisodes = data.Where(r => r.Key.Condition == null).SelectMany(r => r.Value).ToList(); * noEpisodes.OrderBy(g => g.Completed).ThenByDescending(g => g.DateTimeCompleted); * ViewBag.NoEpisodes = noEpisodes; */ data = data.OrderByDescending(e => e.Key.DateCreated).ToDictionary(d => d.Key, d => d.Value); //Dictionary<Episode, List<QuestionnaireUserResponseGroup>> tmp2 = data.Where(r => r.Key.Condition != null).ToDictionary(r => r.Key, r => r.Value); foreach (KeyValuePair <Episode, List <QuestionnaireUserResponseGroup> > e in data) { List <QuestionnaireUserResponseGroup> value = e.Value.OrderByDescending(g => g.DateTimeCompleted).OrderBy(g => g.Completed).ToList(); e.Value.Clear(); e.Value.AddRange(value); } ViewBag.Completed = data; if (!closing) { var resultWithPatientDetails = patientClient.GetDetailsForPatient(patientId); if (resultWithPatientDetails.Succeeded) { if (resultWithPatientDetails.PatientDetails.ShareDataForQualityAssurance == null || resultWithPatientDetails.PatientDetails.ShareDataWithResearcher == null) { ViewBag.ShowPopUp = "SelectConfidentialityScope"; } } } return(View()); }
public ActionResult CurrentCondition(string patientId, int?episodeId, FormCollection collection) { PatientEpisodeClient uec = new PatientEpisodeClient(); PatientClient client = new PatientClient(); var clientResult = client.GetDetailsForPatient(patientId); if (!clientResult.Succeeded) { ViewBag.ErrorMessage += clientResult.ErrorMessages; } else { //uec.GetConditionQuestionnaire(episodeId); ProClient pro = new ProClient(); QuestionnaireClient qc = new QuestionnaireClient(); ViewBag.Questionnaires = qc.GetAllQuestionnairesWithTags().Questionnaires; var uecResult = uec.GetEpisodesWithDetailsForPatient(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.Patient = clientResult.PatientDetails; ViewBag.PatientId = patientId; if (!episodeId.HasValue) { episodeId = 0; ViewBag.Episode = new Episode(); } else { ViewBag.Episode = uecResult.Episodes.Where(e => e.Id == episodeId.Value).FirstOrDefault(); } //if(episodeId.HasValue) { ViewBag.EpisodeId = episodeId.Value; var assignedQuestionnaires = uec.GetAssignedQuestionnairesForEpisode(episodeId.Value).AssignedQuestionnaires; ViewBag.AssignedQuestionnaires = assignedQuestionnaires; Dictionary <Episode, Dictionary <string, Dictionary <string, object> > > data; Dictionary <Episode, Dictionary <string, List <ProDomainResultSet> > > sets = ProResults.GetProDomainResultSetForPatient(patientId, episodeId.Value, out data); ViewBag.DomainResultsSetData = data; ViewBag.DomainResultsSet = sets; ViewBag.howManyColumns = 5; } } return(View()); }
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)); } }