private static void GetAllergicItemNames(AspergillosisContext context, PatientDetailsViewModel viewModel) { foreach (var item in viewModel.PatientAllergicIntoleranceItems) { switch (item.AllergyIntoleranceItemType) { case "Food": var allergyFoodItem = context.Foods .Where(i => i.ID == item.AllergyIntoleranceItemId) .FirstOrDefault(); if (allergyFoodItem != null) { item.AllergicItemName = allergyFoodItem.Name; } break; case "Drug": var allergyDrugItem = context.Drugs .Where(i => i.ID == item.AllergyIntoleranceItemId) .FirstOrDefault(); if (allergyDrugItem != null) { item.AllergicItemName = allergyDrugItem.Name; } break; case "Fungi": var fungiAllergicItem = context.Fungis .Where(i => i.ID == item.AllergyIntoleranceItemId) .FirstOrDefault(); if (fungiAllergicItem != null) { item.AllergicItemName = fungiAllergicItem.Name; } break; case "Other": var otherAllergicItem = context.OtherAllergicItems .Where(i => i.ID == item.AllergyIntoleranceItemId) .FirstOrDefault(); if (otherAllergicItem != null) { item.AllergicItemName = otherAllergicItem.Name; } break; } } }
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); }