Example #1
0
        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;
                }
            }
        }
Example #2
0
        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);
        }