public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } Patient patient = await _patientManager.FindPatientWithRelationsByIdAsync(id); LoadReleatedMedicalTrials(patient); LoadRelatedDrugLevels(patient); if (patient == null) { return(NotFound()); } _listResolver.BindSelects(patient); _listResolver.BindMedicalTrialsSelects(ViewBag, patient); _listResolver.BindDrugLevelSelects(ViewBag, patient); _listResolver.BindSurgeriesSelects(ViewBag, patient); ViewBag.CaseReportForms = (List <IGrouping <string, CaseReportFormResult> >)_caseReportFormManager .GetGroupedCaseReportFormsForPatient(patient.ID); return(PartialView(patient)); }
public static PatientDetailsViewModel BuildPatientViewModel(AspergillosisContext context, Patient patient, CaseReportFormManager caseReportFormManager) { var primaryDiagnosis = context.DiagnosisCategories.Where(dc => dc.CategoryName == "Primary").FirstOrDefault(); var otherDiagnosis = context.DiagnosisCategories.Where(dc => dc.CategoryName == "Other").FirstOrDefault(); var underlyingDiagnosis = context.DiagnosisCategories.Where(dc => dc.CategoryName == "Underlying diagnosis").FirstOrDefault(); var pastDiagnosis = context.DiagnosisCategories.Where(dc => dc.CategoryName == "Past Diagnosis").FirstOrDefault(); var probable = context.DiagnosisCategories.Where(dc => dc.CategoryName == "Probable").FirstOrDefault(); var patientDetailsViewModel = new PatientDetailsViewModel(); patientDetailsViewModel.Patient = patient; if (primaryDiagnosis != null) { patientDetailsViewModel.PrimaryDiagnoses = patient.PatientDiagnoses. Where(pd => pd.DiagnosisCategoryId == primaryDiagnosis.ID). ToList(); } if (otherDiagnosis != null) { patientDetailsViewModel.OtherDiagnoses = patient.PatientDiagnoses. Where(pd => pd.DiagnosisCategoryId == otherDiagnosis.ID). ToList(); } if (underlyingDiagnosis != null) { patientDetailsViewModel.UnderlyingDiseases = patient.PatientDiagnoses. Where(pd => pd.DiagnosisCategoryId == underlyingDiagnosis.ID). ToList(); } if (pastDiagnosis != null) { patientDetailsViewModel.PastDiagnoses = patient.PatientDiagnoses. Where(pd => pd.DiagnosisCategoryId == pastDiagnosis.ID). ToList(); } if (probable != null) { patientDetailsViewModel.ProbableDiagnoses = patient.PatientDiagnoses. Where(pd => pd.DiagnosisCategoryId == probable.ID). ToList(); } patientDetailsViewModel.PatientDrugs = patient.PatientDrugs; LoadReleatedMedicalTrials(context, patient); LoadRelatedDrugLevels(context, patient); patientDetailsViewModel.MedicalTrials = patient.MedicalTrials; patientDetailsViewModel.STGQuestionnaires = patient.STGQuestionnaires; patientDetailsViewModel.PatientImmunoglobulines = patient.PatientImmunoglobulines; patientDetailsViewModel.PatientRadiologyFindings = patient.PatientRadiologyFindings; patientDetailsViewModel.PatientMeasurements = patient.PatientMeasurements.OrderByDescending(q => q.DateTaken).ToList(); patientDetailsViewModel.DrugLevels = patient.DrugLevels.OrderByDescending(q => q.DateTaken).ToList(); patientDetailsViewModel.PatientSurgeries = patient.PatientSurgeries.OrderByDescending(q => q.SurgeryDate).ToList(); patientDetailsViewModel.PatientAllergicIntoleranceItems = patient.PatientAllergicIntoleranceItems.OrderByDescending(q => q.ID).ToList(); patientDetailsViewModel.PatientNACDates = patient.PatientNACDates; if (caseReportFormManager != null) { patientDetailsViewModel.CaseReportForms = caseReportFormManager.GetGroupedCaseReportFormsForPatient(patient.ID); } if (patientDetailsViewModel.ShowSmokingStatus) { context.Entry(patient).Reference(c => c.PatientSmokingDrinkingStatus).Load(); } GetAllergicItemNames(context, patientDetailsViewModel); return(patientDetailsViewModel); }