public async Task <CurrentDiagnoseOutputModel> GetActiveDiagnose(string patientId) { var p = await _diagnoseContext.Patients .Where(x => x.UserId == patientId) .SingleOrDefaultAsync(); var diagnose = await _diagnoseContext.Diagnoses .Where(d => d.Id == p.ActiveDiagnoseId) .Include(d => d.Doctor) .Include(d => d.Patient) .SingleOrDefaultAsync(); if (diagnose == null) { return(null); } var doctor = await _userManager.FindByIdAsync(diagnose.Doctor.UserId); var patient = await _userManager.FindByIdAsync(diagnose.Patient.UserId); var tumorState = StateTranslator.TranslateTumorState(diagnose.PrimaryTumor); var distantMetastasisState = StateTranslator.TranslateMetastatsisState(diagnose.DistantMetastasis); var regionalLymphNodesState = StateTranslator.TranslateRegionalLymphNodesState(diagnose.RegionalLymphNodes); var outputModel = new CurrentDiagnoseOutputModel() { DoctorName = doctor.FirstName + " " + doctor.LastName, PatientName = patient.FirstName + " " + patient.LastName, Stage = diagnose.Stage.ToString(), PrimaryTumorState = tumorState, DistantMetastasisState = distantMetastasisState, RegionalLymphNodesState = regionalLymphNodesState }; return(outputModel); }